	
		//register onload events here.
		//EventListener.addEvent(window, 'load', function() {
		//});
		// ----------------------

		//navigation hover state...
		function ninout(oElement) { 
			ClassFX.flipClass(oElement, 'over');			
		}

		//ANNOYANCE:
		var editor;	 
		function loadRTE(oLink) {
			editor = Xinha.startEditors(xinha_editors);
			oLink.parentNode.removeChild(oLink); //have to refresh page in order to toggle rte. kind of lame... 
			document.getElementById('hideRTE').style.display='inline';
			return editor;	
		}	 
		function unloadRTE(oLink) { 
			oLink.parentNode.removeChild(oLink); 
			if(__xinhas[0]) {
				//undo what xihna screwed up
				__xinhas[0]._textArea.style.display='block';
				__xinhas[0]._htmlArea.style.display='none';
				__xinhas[0]._textArea.innerText = __xinhas[0].outwardHtml(__xinhas[0].getHTML());
				document.getElementById('content_edit_container').appendChild(__xinhas[0]._textArea.parentNode.removeChild(__xinhas[0]._textArea));
				__xinhas[0]._htmlArea.parentNode.removeChild(__xinhas[0]._htmlArea);
				__xinhas[0]._iframe.parentNode.removeChild(__xinhas[0]._iframe);
			}
			Xinha.setContent();		
		}
		//ANNOYANCE:

		/*corespin form js bug*/		
		function validateForm_2(loForm, loInput){ //stub doesn't really do anything just forces a return value of true.
		    var oURLField = document.getElementById('slug');  
			//if (oURLField!==false) {
			//	setRecordURL(oURLField.value,oURLField);
			//}
			loForm = document.getElementById(loForm);
			lsFormID = '';
			if(loForm) {
			  if(loForm.id) {
			      lsFormID = loForm.id
			  }
			}
			lsSubmitID = '__submitjs' + lsFormID;
			lsConfirmID = '__confirmjs' + lsFormID;
			loSubmit = document.getElementById(lsSubmitID);
			loConfirm = document.getElementById(lsConfirmID);
			if(loSubmit) {
			  loSubmit.value = true;
			}
			if(loConfirm) {
			  loConfirm.value = true;
			}
			lsSubmitID = '__submitjs';
			lsConfirmID = '__confirmjs';
			loSubmit = document.getElementById(lsSubmitID);
			loConfirm = document.getElementById(lsConfirmID);
			if(loSubmit) {
			  loSubmit.value = true;
			}
			if(loConfirm) {
			  loConfirm.value = true;
			}
			return true;
		}
		/*corespin form js bug*/		
		
		
		//JS SCROLLING
		//*****************************************
		
		var scrollUpInterval;
		var scrollDownInterval;
		var oScrollDiv;
		//*****************************************
		function scrollUp(iElementId, iJumpRate, iRate) {
			if (scrollUpInterval != null) {
				return;	
			}
			oScrollDiv = document.getElementById(iElementId);
			scrollUpInterval = window.setInterval("oScrollDiv.scrollTop-="+iJumpRate, iRate);
		}
		//*****************************************
		
		//*****************************************
		function scrollDown(iElementId, iJumpRate, iRate) {
			if (scrollDownInterval != null) {
				return;	
			}
			oScrollDiv = document.getElementById(iElementId);
			scrollDownInterval = window.setInterval("oScrollDiv.scrollTop+="+iJumpRate, iRate);
		}
		//*****************************************
		
		//*****************************************
		function scrollStop() {
			if (scrollUpInterval != null) {
				window.clearInterval(scrollUpInterval);
				scrollUpInterval = null;
			}
			if (scrollDownInterval != null) {
				window.clearInterval(scrollDownInterval);	
				scrollDownInterval = null;
			}
		}
		//*****************************************		
		
		function insertAfter(loInsertThisElement,loAfterThisElement) { //why is there no DOM.insertAfter?
			if(loAfterThisElement.nextSibling) {
				return (loAfterThisElement.parentNode.insertBefore(loInsertThisElement,loAfterThisElement.nextSibling));
			} else {
				return (loAfterThisElement.parentNode.appendChild(loInsertThisElement));
			}
		}
		//*****************************************

		//GENERIC CORESPIN IMPLEMENTATION FUNCTIONS
		//*****************************************
		var searchInterval = false;		 
		function automaton(lsFunction,liTime) { //used for list filter...
			clearInterval(searchInterval);
			searchInterval = setInterval(lsFunction, liTime); //fire whatever function
			//trace('setting::'+searchInterval);
			removeInterval = setTimeout('clearSearch('+searchInterval+')',liTime); //clear after firing
			return searchInterval; 
		}
		function clearSearch(interval) {
			if(!interval) {return;}
			//trace('clearing::'+interval);
			clearInterval(interval);
		}
		//*****************************************

		//ARCHITECTURE CONTENT AND PAGE LINKAGE MANAGEMENT BLOCK
		function newPage (iNodeID) { //stub
			return;
		}
		//*****************************************
		
		//******************************************************

		function ChangePageLinkage (iObjectID,iLinkageId) {
			var lsID = interstate(iObjectID, 440, 400, '/corespin/content_linkage?_linkage_id='+iLinkageId);
			return lsID;
		}
		//*****************************************

		function select_tier(lsTierType,liValue,lsContext) {
			if (lsTierType=='architecture_type_id') { //update architecture list as well, indicate type
				if(lsContext=='architecture') {
					document.getElementById('_architecture_id').value=''; //remove architecture id, or query returns bad results
				} else {
					document.getElementById('_linkage_architecture_id').value=''; //remove architecture id when type changes, or query returns bad results
				}
				ArchitectureLinkageSelector('architecture','_architecture_type_id='+liValue,lsContext);
			} else {
				updateArchitectureLinkageSelectors(lsContext);
			}
		}
		//*****************************************

		function ArchitectureLinkageSelector(lsSelector,lsKey,lsContext) {
			var lsSelectCallBack = '';
			if(lsContext!='architecture') {
				lsSelectCallBack = '_linkage_';
			}
			lsSelectCallBack += lsSelector + '_selector';

			if (!document.getElementById(lsSelectCallBack)) {return;}
			var loSelectCallBack = document.getElementById(lsSelectCallBack);
			loSelectCallBack.disabled=true;
			ClassFX.addClass(loSelectCallBack,'obscured');
			var lsRequest = '/corespin/' + lsSelector + '_select_list/?' + lsKey + '&_context='+lsContext;
			ajaxEvent(lsRequest,loSelectCallBack,false,true); //synch
			ClassFX.removeClass(loSelectCallBack,'obscured');
			loSelectCallBack.disabled=false;
		}
		//*****************************************

		function updateArchitectureLinkageSelectors(lsContext) {
			var oArchitectureField;
			var oArchitectureTypeField;
			var oArchitectureSelector = document.getElementById(lsContext+'_architecture_select_list');
			var oArchitectureTypeSelector = document.getElementById(lsContext+'_architecture_types_select_list');
			if(lsContext=='architecture') {
				oArchitectureField = document.getElementById('_architecture_id');
				oArchitectureTypeField = document.getElementById('_architecture_type_id');
			} else {
				oArchitectureField = document.getElementById('_linkage_architecture_id');
				oArchitectureTypeField = document.getElementById('_linkage_architecture_type_id');
			}
			if(oArchitectureSelector.selectedIndex>-1) { //get select box values
				oArchitectureField.value=oArchitectureSelector.options[oArchitectureSelector.selectedIndex].value;
			} else {
				oArchitectureField.value='';
			}
			if(oArchitectureTypeSelector.selectedIndex>-1) {
				oArchitectureTypeField.value=oArchitectureTypeSelector.options[oArchitectureTypeSelector.selectedIndex].value;
			} else {
				oArchitectureField.value='';
			}
			refreshContent(lsContext);
		}
		//*****************************************

		function refreshContent(lsContext) {
			if(lsContext=='architecture') {
				refreshContentList(lsContext);
			} else {
				refreshContentLinkage(lsContext);
			}
		}
		//*****************************************

		function refreshContentLinkage(lsContext) { //called from automaton for content linkage
			if(!lsContext){lsContext='';}
			var oArchitectureField;
			var sArchitectureField;
			var oArchitectureTypeField;
			var sArchitectureTypeField;
			var oLinkage;
			var sLinkage;
			var lsURI;
			var loCallBack;
			var loLoadingIMG = document.getElementById('_linkage_search_icon');
			var oFilter;
			var sFilter;
			oArchitectureField = document.getElementById('_linkage_architecture_id');
			sArchitectureField = (oArchitectureField.value!=undefined)?(oArchitectureField.value):('');
			oArchitectureTypeField = document.getElementById('_linkage_architecture_type_id');
			sArchitectureTypeField = (oArchitectureTypeField.value!=undefined)?(oArchitectureTypeField.value):('');
			oFilter = document.getElementById('_linkage_slug');
			sFilter = (oFilter.value!=undefined)?(oFilter.value):('');
			oLinkage = document.getElementById('_linkage_id');
			sLinkage = (oLinkage.value!=undefined)?(oLinkage.value):('');
			lsURI = '/corespin/content_linkage/?_linkage_filter='+sFilter+'&_linkage_architecture_id='+sArchitectureField+'&_linkage_architecture_type_id='+sArchitectureTypeField+'&_linkage_id='+sLinkage+'&_context='+lsContext;
			loCallBack = document.getElementById('DDFX_linkage').parentNode;
			loLoadingIMG.src='/box/system/loading-small.gif';
			ajaxEvent(lsURI,loCallBack,false,true);
			loLoadingIMG.src='/box/system/arrow_switch.png';
			this.bFiring = false; //global reference?
			if(document.getElementById('_linkage_slug')) {
				setTimeout("document.getElementById('_linkage_slug').focus()",200);
			}
		}
		//*****************************************

		function refreshContentList(lsContext) { //called from automaton for content list
			if(!lsContext){lsContext='';}
			var oArchitectureField;
			var sArchitectureField;
			var oArchitectureTypeField;
			var sArchitectureTypeField;
			var oFilter;
			var sFilter;
			var lsURI;
			var loCallBack;
			var loLoadingIMG = document.getElementById('_search_icon');
			oArchitectureField = document.getElementById('_architecture_id');
			sArchitectureField = (oArchitectureField.value!=undefined)?(oArchitectureField.value):('');
			oArchitectureTypeField = document.getElementById('_architecture_type_id');
			sArchitectureTypeField = (oArchitectureTypeField.value!=undefined)?(oArchitectureTypeField.value):('');
			oFilter = document.getElementById('_architecture_slug');
			sFilter = (oFilter.value!=undefined)?(oFilter.value):('');
			lsURI = '/corespin/content_list/?_architecture_filter='+sFilter+'&_architecture_id='+sArchitectureField+'&_architecture_type_id='+sArchitectureTypeField+'&_context='+lsContext;
			loCallBack = document.getElementById('content_list');
			loLoadingIMG.src='/box/system/loading-small.gif';
			ajaxEvent(lsURI,loCallBack,false,true);
			loLoadingIMG.src='/box/system/arrow_switch.png';
			//this.bFiring = false; //global reference?
			if(document.getElementById('_architecture_slug')) {
				setTimeout("document.getElementById('_architecture_slug').focus()",300);
			}
		}
		//*****************************************

		//******************************************************
		//ARCHITECTURE CONTENT AND PAGE LINKAGE MANAGEMENT BLOCK
		//******************************************************

		//******************************************************

		//INSERT or UPDATE relationships
		function MultiPass(key, oElement, primary, relation, primaryID, parameters) {
			var relationID = 0; //trigger for new record.
			var statusID = "";
			var key = 0;
			BigLeagueChew(key, oElement, primary, relation, primaryID, relationID, statusID, 'insert', parameters);
		}
		//*****************************************
		
		//INSERT or UPDATE relationships
		function PassKey(liKey, loElement, lsPrimary, lsRelation, liPrimaryID, liRelationID, liStatusID) {
			if(!liRelationID) {
				liRelationID = 0; //trigger for new record.
			}
			if(!liStatusID) {
				liStatusID = "";
			}
			if(!liKey||liKey==0) {
				BigLeagueChew(liKey, loElement, lsPrimary, lsRelation, liPrimaryID, liRelationID, liStatusID, 'insert');
			} else {
				BigLeagueChew(liKey, loElement, lsPrimary, lsRelation, liPrimaryID, liRelationID, liStatusID, 'update');
			}
		}
		//*****************************************
		
		//INSERT or UPDATE relationships
		function BigLeagueChew(liKey, loElement, lsPrimary, lsRelation, liPrimaryID, liRelationID, liStatusID, lsOperation, parameters) {  //When ur in the BigLeague Chew http://www.youtube.com/watch?v=0GyEkvqtHPs
			if (!lsPrimary){return;}
			if (lsOperation=='update') {
				this.YURI='/corespin/pattern_update_relation/'; //
			} else {
				this.YURI='/corespin/pattern_insert_relation/'; //
			}
			var params = (parameters)?(parameters):("");
			lsRequest='?_key='+liKey;
			lsRequest+='&_primary='+lsPrimary;
			lsRequest+='&_relation='+lsRelation;
			lsRequest+='&_primary_id='+liPrimaryID;
			lsRequest+='&_relation_id='+liRelationID;
			lsRequest+='&_status_id='+liStatusID;
			this.YURI+=lsRequest + params;
			ajaxEvent(this.YURI,loElement,false,true); //callback, replace contents, synchronous.
		}
		//*****************************************

		//this is specifically for INSERTION of a NEW relational value = misnamed, use PassKey|BigLeagueChew Instead
		function UpdateRelationalField(loElement,lsPrimary,lsRelation,liPrimaryID,liRelationID,llCallBack,lsContextArguments) { //Single Field Edit
			if (!lsPrimary){return;} //lsContextArguments = 'name=value'; //additional arguments can be supplied here, parsed and validated.
			this.UpdateURI='/corespin/pattern_insert_saved/'; //current XML HTTP Request URI
			lsRequest='?_primary='+lsPrimary;
			lsRequest+='&_relation='+lsRelation;
			lsRequest+='&_primary_id='+liPrimaryID;
			lsRequest+='&_relation_id='+liRelationID;
			this.UpdateURI+=lsRequest;
			ajaxEvent(this.UpdateURI,(llCallBack)?(loElement):(false),false,false); //callback, replace contents, synchronous.
		}
		//*****************************************

		function UpdateSingleField(loElement,lsContext,lsID,lsField,luValue,llCallBack,sFunction) { //Single Field Edit
			if (!lsContext){return;}
			if (!lsID){return;}
			if (!lsField){return;}
			this.UpdateURI='/corespin/_update_single_field/';//current XML HTTP Request URI //this.UpdateURI='/corespin/pf_update/';//current XML HTTP Request URI
			lsRequest='?_context='+lsContext;
			lsRequest+='&_id='+lsID;
			lsRequest+='&_field='+lsField;
			lsRequest+='&_value='+PrepValue(luValue);
			this.UpdateURI+=lsRequest;
			if (!llCallBack) {
				//loElement=false;
			}
			var lsFunction='';
			var lsArguments='';
			if (loElement) {
				if(loElement.id){
					if (loElement.id=='RTESaveEdit') {
						lsFunction='RTERemoveFrame';
						lsArguments='';
						loElement = false;
					}
				}
			}
			if(sFunction!='') {
				lsFunction = sFunction;
			}
			llQueued=false;
			if(lsContext=='payments'){llQueued=true;} //custom
			ajaxEvent(this.UpdateURI,loElement,false,llQueued,lsFunction,lsArguments); //callback, replace contents, synchronous.
			return true;
		}
		//*****************************************


		
		//custom functions for insert forms default value completion
		function setTitleFields(lsQualifier,lsValue) {
			if(lsQualifier=='locations::schools') {
				document.getElementById('location').value=lsValue;
				document.getElementById('company').value=lsValue;
				document.getElementById('meta_keywords').value=lsValue;
				setRecordURL(lsValue,document.getElementById('slug'));
			}
			if(lsQualifier=='pages') {
				document.getElementById('meta_keywords').value=lsValue;
				setRecordURL(lsValue,document.getElementById('slug'));
			}
		}
		//*****************************************

		function setRecordURL(lsValue,loElement) {
			if (!loElement){return;}
			if (typeof(lsValue) == 'string') {
				lsValue = lsValue.replace(/\//g,"");
				lsValue = lsValue.replace(/\s/g,"-");
				lsValue=lsValue.replace(/\'/g,"''");
				lsValue=lsValue.replace(/\"/g,"");
				lsValue = encodeRE(lsValue);
			}
			loElement.value=lsValue.toLowerCase();
		}
		//*****************************************

		function encodeRE(lsValue) {
			lsValue=lsValue.replace(/\s/g,"");
			lsValue=lsValue.replace(/\'/g,"");
			lsValue=lsValue.replace(/\"/g,"");
  			lsValue = lsValue.replace(/[^a-zA-Z0-9\.\-\_\\]/g,'');
  			return lsValue; //.replace(/([~`@#%*^&*=!+?^${}()|[\]\/\\])/g,'');
		}
		//*****************************************

		
		

		function spacer(loContainer) { //returns a reference to a spacer object (used frequently in drag and drop routines as a UI trigger)
			var loSpacer = loContainer.nextSibling;
			if(loSpacer=='[object Text]') { //while?
				loSpacer = loContainer.nextSibling.nextSibling;
				if(loSpacer=='[object Text]') { //screw it
					loSpacer = loContainer.nextSibling.nextSibling.nextSibling;
				}
			} else {
				loSpacer = loContainer.nextSibling;
			}
			if (ClassFX.hasClass(loSpacer,'spacer')) {
				return loSpacer;
			}
			return false; //no spacer where in places where it should be.
		}
		//*****************************************

		function showLoadingGIFWOW() { //really unimpressive ui effect
			if(document.getElementById('loading')) {
				document.getElementById('loading').style.display='block';
				ClassFX.removeClass(document.getElementById('loading'),'none');
				return(true);
			}
		}
		//*****************************************








		
		function NewRelation(lsURI) {
			var loContainer = createOverlayDiv(750,500);
			loContainer.appendChild(theLove(lsURI));
		}
		//*****************************************
		

		function UpdateFile(loElement,lsContext,lsID,lsField,luValue,llCallBack) { //Singular File for record insert/updating
			if (!lsContext){return;}
			if (!lsID){return;}
			if (!lsField){return;}
			this.URI='/corespin/add-file/';
			lsRequest='?_context='+lsContext;
			lsRequest+='&_id='+lsID;
			lsRequest+='&_field='+lsField;
			lsRequest+='&_value=';
			this.URI+=lsRequest;
			var loTheAggravatingIframe = theLove(this.URI); // Variable naming
			loTheAggravatingIframe.width='337px';
			loTheAggravatingIframe.height='430px';
			var iFileUpload = interstate(null, 357, 482, loTheAggravatingIframe);
		}
		//*****************************************
							
		//UI EFFECTS
		//*****************************************
		// Change opacity of element. IE requires the element to have (layout) specific width.
		function changeOpacity(loElement, iOpacity) {
			if(!loElement) {return(false);}
			if(!iOpacity) {return(false);}
			var lsTagName=loElement.tagName.toLowerCase();
			var loElementStyle = loElement.style;
			if(!loElementStyle) {return;}
			loElementStyle.opacity = (iOpacity / 100);
			loElementStyle.MozOpacity = (iOpacity / 100);
			loElementStyle.KhtmlOpacity = (iOpacity / 100);
			loElementStyle.filter = "alpha(opacity=" + iOpacity + ");"; //WOW talk about obscure, if you dont add the semicolon in the filter attrib IE bombs.
			if (iOpacity==0) {
				loElementStyle.display = 'none';
			} else {
				if (lsTagName=='div') {
					loElementStyle.display = 'block';
				} else {
					loElementStyle.display = 'inline';
				}
			}
		}
		//*****************************************

		
		// Style based fading. -MM
		function fadeControl(lsItem, iOpacStart, iOpacEnd, iMilliseconds) {
			var speed = Math.round(iMilliseconds / 100); //speed for each frame
			var timer = 0;
			if(iOpacStart > iOpacEnd) { //determine the direction for the blending, if start and end are the same use pulse effect
				for(i = iOpacStart; i >= iOpacEnd; i--) {
					setTimeout("changeOpacity(document.getElementById('" + lsItem + "'),'" + i + "')",(timer*speed));
					timer++;
				}
			} else if(iOpacStart < iOpacEnd) {
				for(i = iOpacStart; i <= iOpacEnd; i++) {
					setTimeout("changeOpacity(document.getElementById('" + lsItem + "'),'" + i + "')",(timer*speed));
					timer++;
				}
			} else if(iOpacStart==iOpacEnd) { //pulse, not finished -- just pulses without considering value from/to which it's pulsing (just from full opacity to zero and back)
				for(i=0; i<3.1; i+=0.1) {
					setTimeout("changeOpacity(document.getElementById('" + lsItem + "'),'" + Math.round(Math.abs(Math.cos(i)*100)) + "')",(timer*speed));
					timer++;
				}
				changeOpacity(document.getElementById(lsItem),iOpacEnd); //hard set back to iOpacEnd, temp...
			}
		}
		//*****************************************


		//SOME POTENTIALLY USEFUL TOOLS
		//*****************************************
		function $$() { //returns object reference || array of object references.... $$ bill y'all
			//still working on this one...
			var loElements = document.getElementsByTagName(arguments[0]);
			var loElement = loElements[0]; //mostly just want to get the first element in the list
			loElements = null; //discard for now 
			return loElement;
		}
		//*****************************************

		function functionBroker() { //used for brokering function requests (in dev stage :: doesn't really work yet)
 			if(typeof(this[arguments[0]])=='function') {
				var loArguments = arguments[0]; //ditch first arg as function name, start from first argument if any.
				for (var a=1;a<arguments.length;a++ ) {
					loArguments += ',' + arguments[a];
				}
				this[arguments[0]](loArguments);
			}
		}
		//*****************************************

		
		function UpdateFileName(oElement) { //auto populate elements for files...
			oName = document.getElementById('name');
			if(oName) {
				oName.value=justStemAndExtension(oElement.value);
			}
			oSlug = document.getElementById('slug');
			if(oSlug) {
				oSlug.value=justStemAndExtension(oElement.value.toLowerCase());
			}
			oMetaKeywords = document.getElementById('meta_keywords');
			if(oMetaKeywords) {
				oMetaKeywords.innerText=justStemAndExtension(oElement.value);
			}
			oMetaDescription = document.getElementById('meta_description');
			if(oMetaDescription) {
				oMetaDescription.innerText=justStemAndExtension(oElement.value);
			}
			oTitle = document.getElementById('title');
			if(oTitle) {
				oTitle.value=justStemAndExtension(oElement.value);
			}
			oIntro = document.getElementById('intro');
			if(oIntro) {
				oIntro.innerText=justStemAndExtension(oElement.value);
			}
		}
		//*****************************************
		
		function justStemAndExtension(lsFileName) { //
			lsFileName=(lsFileName.substring(lsFileName.lastIndexOf('/')+1));
			lsFileName=(lsFileName.substring(lsFileName.lastIndexOf('\\')+1));
			return lsFileName;
		}
		//*****************************************

		function RID() { //Scrappy Random ID Generator...
			var result, i, j;
			result = '';
			for(j=0; j<32; j++) {
			if( j == 8 || j == 12|| j == 16|| j == 20)
				result = result + '-';
				i = Math.floor(Math.random()*16).toString(16).toUpperCase();
				result = result + i;
			}
			return result;
		}
		//*****************************************

		function trace(lsEvent) {
			lsTracer='tracer';
			loTracer=document.getElementById(lsTracer);
			(loTracer)?(loTracer.value=lsEvent+'\r'+loTracer.value):(false);
			lsTracer='debugForm';
			loTracer=document.getElementById(lsTracer);
			(loTracer)?(loTracer.value=lsEvent+'\r'+loTracer.value):(false);
		}
		//*****************************************


		function escapeSearch(lsValue) {
			lsValue=lsValue.replace(/\'/g," ");
			lsValue=lsValue.replace(/\"/g," ");
  			return lsValue;
		}
		//*****************************************


		//DEPRECATED
		function newWindow(url) {
			oNewWindow=window.open(url,'newWindow','width=760,height=550','location=no, status=no, liScrolling=no, resize=yes');
			if (window.focus) {oNewWindow.focus()}
		}
		//*****************************************

		function updateTime( loElementQualifier ) {
			loHourElement=document.getElementById(loElementQualifier+'-hour');
			llConstituents=(loHourElement)?(true):(false);
			loMinuteElement=document.getElementById(loElementQualifier+'-minute');
			llConstituents=(loMinuteElement)?(true):(false);
			loMeridianElement=document.getElementById(loElementQualifier+'-meridian');
			llConstituents=(loMeridianElement)?(true):(false);
			var loElement = document.getElementById(loElementQualifier+'_time');
			llConstituents=(loElement)?(true):(false);
			if (!llConstituents) {
				return false;
			} else {
				lsHour=loHourElement.options[loHourElement.selectedIndex].value;
				lsMinute=loMinuteElement.options[loMinuteElement.selectedIndex].value;
				lsMeridian=loMeridianElement.options[loMeridianElement.selectedIndex].value;
				lsTime = lsHour + ':' + lsMinute + ' ' + lsMeridian;
				loElement.value=lsTime;
				return true;
			}
		}
		//*****************************************

		function formatThisDate(loDateField) { //pg formatted timestamp as expected input -(haxxors for datepicker weirdness)
			if (!document.getElementById(loDateField)){return false;}
			lsMM_DD_YYYY = document.getElementById(loDateField).value;
			lsMM_DD_YYYY = lsMM_DD_YYYY.substring(0, 10);
			lsMM_DD_YYYY = lsMM_DD_YYYY.substring(5, 7) + '-' + lsMM_DD_YYYY.substring(8, 10) + '-' + lsMM_DD_YYYY.substring(0, 4);
			document.getElementById(loDateField).value=lsMM_DD_YYYY;
		}
		//*****************************************

		function PrepValue(luValue) { //interceptor - prior to sql insert, deprecated - use input formatters
			if(Number(luValue)) {
				luValue = luValue + ""; //quick assertion to string
				if(luValue.substring(0,2)=='0x') { //octals are numeric but use character fields to omit type hassle value is delivered as HTML/XML end of day so recasting to octal is trivial
					luValue='\'' + luValue + '\'';
					return luValue;
				}
				
				return luValue;
			}
			if (typeof(luValue) == 'string') {
				luValue=luValue.replace(/\'/g,"''");
				luValue=escape(luValue);
				luValue = luValue.replace(/\//g,"%2F");
				luValue = luValue.replace(/\?/g,"%3F");
				luValue = luValue.replace(/=/g,"%3D");
				luValue = luValue.replace(/&/g,"%26");
				luValue = luValue.replace(/@/g,"%40");
				luValue='\'' + luValue + '\'';
				return luValue;
			}
			return luValue;
		}
		//*****************************************






