
	function getElementTextNS(prefix, local, parentElem, index) {
	    var result = "";
	    var isIE = true;
	    var prefix = "fuckprefix";
	    if (prefix && isIE) {
	        // IE/Windows way of handling namespaces
	        //result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
		//result = parentElem.attributes.getNamedItem(local)[index];
		//alert(parentElem);parentElem.childNodes[1].text
		alert(parentElem.childNodes[1].text);
	    } else {
	        // the namespace versions of this method
	        // (getElementsByTagNameNS()) operate
	        // differently in Safari and Mozilla, but both
	        // return value with just local name, provided
	        // there aren't conflicts with non-namespace element
	        // names
	        result = parentElem.getElementsByTagNameNS("*",local)[index];
	
	    }
	    if (result) {
	        // get text, accounting for possible
	        // whitespace (carriage return) text nodes
	        if (result.childNodes.length > 1) {
	            return result.childNodes[1].nodeValue;
	        } else {
	            return result.firstChild.nodeValue;           
	        }
	    } else {
	        return "n/a";
	    }
	}

	function loadXMLDoc(dname){
		try { //IE
			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			window.isIE = true;
		} catch(e){
			try { //Fox & co.
				xmlDoc=document.implementation.createDocument("","",null);
				window.isIE = false;
			} catch(e) {
				alert(e.message)
			}
  		}
		try {
			xmlDoc.async=false;
			xmlDoc.load(dname);
			return(xmlDoc);
		} catch(e) {
			alert(e.message)
		}
		return(null);
	}

	function fixFooter(){
		var containerDiv = document.getElementById('sub_container');
		var containerDivHeight = containerDiv.offsetHeight;
		theBody = document.getElementById('body');
		headerOffset = 0;
		minimumBodyHeight = containerDivHeight+headerOffset;
		theBody.style.minHeight = minimumBodyHeight + 'px';
		
	}

	function loadMakes(){
		makeSelect = document.getElementById('make_select');
		makeSelect.innerHTML = '<option value="0">Loading Makes...</option>';
		makesUrl = './?action=make_model_xml&request_type=make';
		makesXML = loadXMLDoc(makesUrl);
		makeSelect.innerHTML = '';
		makeNodes = makesXML.getElementsByTagName('make');
		totalMakes = makeNodes.length;
		var j = 0;
		makeSelect[j] = new Option('Any Make','0',false);
		for(var i=0; i<totalMakes; i++){
			if(window.isIE == true){
				makeId = makeNodes[i].childNodes[0].text;
				makeName = makeNodes[i].childNodes[1].text;
			}else{
				makeId = makeNodes[i].getElementsByTagNameNS("*",'id')[0].firstChild.nodeValue;
				makeName = makeNodes[i].getElementsByTagNameNS("*",'name')[0].firstChild.nodeValue;
			}
			j++;
			makeSelect[j] = new Option(makeName,makeId,false);
		}
	}

	function loadModels(makeId){
		modelSelect = document.getElementById('model_select');
		modelSelect.innerHTML = '<option value="0">Loading Models...</option>';
		modelsUrl = './?action=make_model_xml&request_type=model&make_id=' + makeId;
		modelsXML = loadXMLDoc(modelsUrl);
		modelNodes = modelsXML.getElementsByTagName('model');
		totalModels = modelNodes.length;
		var j = 0;
		modelSelect[j] = new Option('Any Model','0',false);
		for(var i=0; i<totalModels; i++){
			if(window.isIE == true){
				modelName = modelNodes[i].childNodes[0].text;
			}else{
				modelName = modelNodes[i].getElementsByTagNameNS("*",'name')[0].firstChild.nodeValue;
			}
			j++;
			modelSelect[j] = new Option(modelName,modelName,false);
		}
	}

	function validateMinMax(minFieldId,maxFieldId,whichField){
		minField = document.getElementById(minFieldId);
		maxField = document.getElementById(maxFieldId);
		minFieldValue = parseInt(minField.value);
		maxFieldValue = parseInt(maxField.value);
		switch(whichField){
			case "min" :
				if(minFieldValue > maxFieldValue){
					maxField.value = minFieldValue;
				}
			break;
			case "max" :
				if(maxFieldValue < minFieldValue){
					minField.value = maxFieldValue;
				}
			break;
			default :
				break;
		}
		return(true);	
	}

	function loadSearch(){
		makeId = document.getElementById('make_select').value;
		modelName = document.getElementById('model_select').value;
		priceMin = document.getElementById('price_min').value;
		priceMax = document.getElementById('price_max').value;
		yearMin = document.getElementById('year_min').value;
		yearMax = document.getElementById('year_max').value;
		loadSearchUrl = './?action=cars&make_id=' + makeId + '&model_name=' + modelName + '&price_min=' + priceMin + '&price_max=' + priceMax + '&year_min=' + yearMin + '&year_max=' + yearMax;
		document.location = loadSearchUrl;
	}

	function pageLoadEditor(pageId){
		pageUrl = './?action=page_xml&page_id=' + pageId;
		var ed = tinyMCE.get('input_page_body');
		ed.setProgressState(1);
		new Ajax.Request(pageUrl, {
		  onComplete: function(transport) {
		    if (200 == transport.status){
		    	pageIds = transport.responseXML.getElementsByTagName('id');
			pageIdNode = pageIds[0];
			pageId = pageIdNode.firstChild.nodeValue;
		    	pageHeadings = transport.responseXML.getElementsByTagName('heading');
			pageHeadingNode = pageHeadings[0];
			unescape(pageHeading = pageHeadingNode.firstChild.nodeValue);
		    	pageBodys = transport.responseXML.getElementsByTagName('body');
			pageBodyNode = pageBodys[0];
			pageBody = pageBodyNode.firstChild.nodeValue;
			document.getElementById('input_page_id').value = pageId;
			document.getElementById('input_page_heading').value = pageHeading;
			ed.setProgressState(0);
			ed.setContent(pageBody);	    	
		    }
		  }
		});
	}


	function pageUpdate(pageId){
		pageId = document.getElementById('input_page_id').value;
		pageHeading = document.getElementById('input_page_heading').value;
		var ed = tinyMCE.get('input_page_body');
		pageBody = escape(ed.getContent());
		pageUpdateUrl = './?action=admin_page_update&page_id=' + pageId + '&page_heading=' + pageHeading + '&page_body=' + pageBody;
		new Ajax.Request(pageUpdateUrl, {
		  onComplete: function(transport) {
		    if (200 == transport.status){
		    	alert(transport.responseText);
		    }
		  }
		});
	}

	function tinyMCEInit(){
		tinyMCE.init({
			mode : "textareas",
			theme : "simple"
		});
	}
		

	function processOnLoad(action){
		switch(action){
			case "cars" :
				loadMakes();
				break;
			default :
				//do nothing
				break;
		}
	}


