function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_displayStatusMsg(msgStr) { //v1.0
  status=msgStr;
  document.MM_returnValue = true;
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function searchChange(){
	var temp ;
	temp = document.getElementById("ParcelType").selectedIndex;
	if(temp != 1) {
		//	document.getElementById('resImp').style.visibility = 'hidden';
			document.getElementById('NumBathrooms').selectedIndex = '';
			document.getElementById('StoryHeight').selectedIndex = '';
			document.search_form.SqrFootage1.value ='';
			document.search_form.Basement1.value = '';
			document.search_form.SqrFootage2.value = '';
			document.search_form.Basement2.value = '';
			document.getElementById('StoryHeight').disabled = true;
			document.getElementById('NumBathrooms').disabled = true;
			document.getElementById('SqrFootage1').disabled = true;
			document.getElementById('Basement1').disabled = true;
			document.getElementById('SqrFootage2').disabled = true;
			document.getElementById('Basement2').disabled = true;
	}
	
	if(temp == 1)
	{		
			//document.getElementById('resImp').style.visibility= 'visible';
			document.getElementById('StoryHeight').disabled = false;
			document.getElementById('NumBathrooms').disabled = false;
			document.getElementById('SqrFootage1').disabled = false;
			document.getElementById('Basement1').disabled = false;
			document.getElementById('SqrFootage2').disabled = false;
			document.getElementById('Basement2').disabled = false;
	}	
		
}

function disable_form(form_Obj){
	//form_Obj.search2.x =1;
	
	for (var i=0; i<form_Obj.elements.length; i++) {
		form_Obj.elements[i].disabled =true;	
	}	
	return false;
	
}
var imageProcessing = new Image();
imageProcessing.src ='';

function swapSearchImage()
{//This is run when the submit order button is pressed.

		document.getElementById('search1').src=imageProcessing.src;
		return false;
}
function run_search(){
	if (document.getElementById('search1').src == imageProcessing.src){
		document.getElementById('search1').disabled=true;
		document.getElementById('search2').disabled=true;
		document.getElementById('clearer1').disabled=true;
		document.getElementById('clearer2').disabled=true;
		document.getElementById('submitsearch.x').value='submit';
		disable_form(search_form);
		document.forms['search_form'].submit();
		return true;
	}else{
		return false;
	}
}
/*
function finishcheckout2()
{//This is run when the submit order button is pressed.	
	if (document.getElementById('submitOrder').src == imageProcessing.src){
			
			document.getElementById('submitOrder').disabled=true;	
			killRadioButtons(document.checkout3,'ShippingMethod');
			document.getElementById('updatebtn').disabled=true;
			document.getElementById('submitOrder.x').value='submit';
			document.forms['checkout3'].submit();
			return true;
		}else{
			return false;
		}
	
}
*/
function clear_info(form_Obj,clearAll){
	var tmp
	// || formName.elements[i].name != savedQueries || formName.elements[i].name != sortBy2 || formName.elements[i].name != savedQueries2
	for (var i=0; i<form_Obj.elements.length; i++) {
			//alert(form_Obj.elements[i].id)
			if (form_Obj.elements[i].type != 'hidden' && form_Obj.elements[i].name.length > 0){
			//alert('1 ' + form_Obj.elements[i].type);
		 	form_Obj.elements[i].value = '';
			}
			if (clearAll && form_Obj.elements[i].name.length > 0){
				
				form_Obj.elements[i].value = '';	
			}
			if (form_Obj.elements[i].name.length <1 ){
				tmp = InStr(form_Obj.elements[i].id, '_Month_ID');
				if (tmp < 0 ){
					form_Obj.elements[i].style.visibility='hidden';
				}else{
					SalesDateStart_Object.hideElements('hidden');
					SalesDateEnd_Object.hideElements('hidden');
					form_Obj.elements[i].value = '';
				}
				
			}
		}	
	return false;
	
}
function numbers_only(form_item) {
	var sText;
	var strippedText
	var ValidChars = "0123456789.";
    var IsNumber=true;
    var Char;
	strippedText =""
	sText = document.getElementById(form_item).value
	for (i = 0; i < sText.length; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) != -1) 
         {
          strippedText = strippedText + Char;
         }
      }
	 // alert(strippedText);
	  document.getElementById(form_item).value = strippedText;
   return true;
	//alert(document.getElementById(form_item).value.length);
}
function phone_numbers(form_item) {
	var sText;
	var strippedText
	var ValidChars = "0123456789.()-";
    var IsNumber=true;
    var Char;
	strippedText =""
	sText = document.getElementById(form_item).value
	for (i = 0; i < sText.length; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) != -1) 
         {
          strippedText = strippedText + Char;
         }
      }
	 // alert(strippedText);
	  document.getElementById(form_item).value = strippedText;
   return true;
	//alert(document.getElementById(form_item).value.length);
}

/***********************************************
* Disable "Enter" key in Form script- By Nurul Fadilah(nurul@REMOVETHISvolmedia.com)
* This notice must stay intact for use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
                
function handleEnter (field, event) {
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
		if (keyCode == 13) {
			/*var i;
			for (i = 0; i < field.form.elements.length; i++)
				if (field == field.form.elements[i])
					break;
			i = (i + 1) % field.form.elements.length;
			field.form.elements[i].focus();*/
			return false;
		} 
		else
		return true;
	}      

// ===================================================================
// Author: Matt Kruse <matt@mattkruse.com>
// WWW: http://www.mattkruse.com/
//
// NOTICE: You may use this code for any purpose, commercial or
// private, without any further permission from the author. You may
// remove this notice from your final code if you wish, however it is
// appreciated by the author if at least my web site address is kept.
//
// You may *NOT* re-distribute this code in any way except through its
// use. That means, you can include it in your product, or your web
// site, or any other form where the code is actually being used. You
// may not put the plain javascript up on your site for download or
// include it in your javascript libraries for download. 
// If you wish to share this code with others, please just point them
// to the URL instead.
// Please DO NOT link directly to my .js files from your site. Copy
// the files to your server and use them there. Thank you.
// ===================================================================

// -------------------------------------------------------------------
// autoComplete (text_input, select_input, ["text"|"value"], [true|false])
//   Use this function when you have a SELECT box of values and a text
//   input box with a fill-in value. Often, onChange of the SELECT box
//   will fill in the selected value into the text input (working like
//   a Windows combo box). Using this function, typing into the text
//   box will auto-select the best match in the SELECT box and do
//   auto-complete in supported browsers.
//   Arguments:
//      field = text input field object
//      select = select list object containing valid values
//      property = either "text" or "value". This chooses which of the
//                 SELECT properties gets filled into the text box -
//                 the 'value' or 'text' of the selected option
//      forcematch = true or false. Set to 'true' to not allow any text
//                 in the text box that does not match an option. Only
//                 supported in IE (possible future Netscape).
// -------------------------------------------------------------------
function autoComplete (field, select, property, forcematch) {
	var found = false;
	for (var i = 0; i < select.options.length; i++) {
	if (select.options[i][property].toUpperCase().indexOf(field.value.toUpperCase()) == 0) {
		found=true; break;
		}
	}
	if (found) { select.selectedIndex = i; }
	else { select.selectedIndex = -1; }
	if (field.createTextRange) {
		if (forcematch && !found) {
			field.value=field.value.substring(0,field.value.length-1); 
			return;
			}
		var cursorKeys ="8;46;37;38;39;40;33;34;35;36;45;";
		if (cursorKeys.indexOf(event.keyCode+";") == -1) {
			var r1 = field.createTextRange();
			var oldValue = r1.text;
			var newValue = found ? select.options[i][property] : oldValue;
			if (newValue != field.value) {
				field.value = newValue;
				var rNew = field.createTextRange();
				rNew.moveStart('character', oldValue.length) ;
				rNew.select();
				}
			}
		}
	}
	
//VB FUNCTIONS FOR JAVASCRIP
function Mid(str, start, len)
	/***
			IN: str - the string we are LEFTing
				start - our string's starting position (0 based!!)
				len - how many characters from start we want to get

			RETVAL: The substring from start to start+len
	***/
	{
			// Make sure start and len are within proper bounds
			if (start < 0 || len < 0) return "";

			var iEnd, iLen = String(str).length;
			if (start + len > iLen)
					iEnd = iLen;
			else
					iEnd = start + len;

			return String(str).substring(start,iEnd);
	}
 function Right(str, n)
	/***
			IN: str - the string we are RIGHTing
				n - the number of characters we want to return

			RETVAL: n characters from the right side of the string
	***/
	{
			if (n <= 0)     // Invalid bound, return blank string
			   return "";
			else if (n > String(str).length)   // Invalid bound, return
			   return str;                     // entire string
			else { // Valid bound, return appropriate substring
			   var iLen = String(str).length;
			   return String(str).substring(iLen, iLen - n);
			}
	}
 function Left(str, n)
	/***
			IN: str - the string we are LEFTing
				n - the number of characters we want to return

			RETVAL: n characters from the left side of the string
	***/
	{
			if (n <= 0)     // Invalid bound, return blank string
					return "";
			else if (n > String(str).length)   // Invalid bound, return
					return str;                // entire string
			else // Valid bound, return appropriate substring
					return String(str).substring(0,n);
	}
function Len(str)
/***
		IN: str - the string whose length we are interested in

		RETVAL: The number of characters in the string
***/
{  return String(str).length;  }
function InStr(strSearch, charSearchFor)
/*
InStr(strSearch, charSearchFor) : Returns the first location a substring (SearchForStr)
                           was found in the string str.  (If the character is not
                           found, -1 is returned.)
                           
Requires use of:
	Mid function
	Len function
*/
{
	for (i=0; i < Len(strSearch); i++)
	{
	    if (charSearchFor == Mid(strSearch, i, Len(strSearch)))
	    {
			return i;
	    }
	}
	return -1;
}



function LTrim(str)
/***
		PURPOSE: Remove leading blanks from our string.
		IN: str - the string we want to LTrim

		RETVAL: An LTrimmed string!
***/
{
		var whitespace = new String(" \t\n\r");

		var s = new String(str);

		if (whitespace.indexOf(s.charAt(0)) != -1) {
			// We have a string with leading blank(s)...

			var j=0, i = s.length;

			// Iterate from the far left of string until we
			// don't have any more whitespace...
			while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
				j++;


			// Get the substring from the first non-whitespace
			// character to the end of the string...
			s = s.substring(j, i);
		}

		return s;
}
 function RTrim(str)
/***
		PURPOSE: Remove trailing blanks from our string.
		IN: str - the string we want to RTrim

		RETVAL: An RTrimmed string!
***/
{
		// We don't want to trip JUST spaces, but also tabs,
		// line feeds, etc.  Add anything else you want to
		// "trim" here in Whitespace
		var whitespace = new String(" \t\n\r");

		var s = new String(str);

		if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
			// We have a string with trailing blank(s)...

			var i = s.length - 1;       // Get length of string

			// Iterate from the far right of string until we
			// don't have any more whitespace...
			while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
				i--;


			// Get the substring from the front of the string to
			// where the last non-whitespace character is...
			s = s.substring(0, i+1);
		}

		return s;
}
 function Trim(str)
/***
		PURPOSE: Remove trailing and leading blanks from our string.
		IN: str - the string we want to Trim

		RETVAL: A Trimmed string!
***/
{
		return RTrim(LTrim(str));
}
function ShowHint(Event, Message,tipwidth) {
  if (tipwidth!=""){
	 var dropmenuobj=document.getElementById("ToolTipDiv")
	dropmenuobj.widthobj=dropmenuobj.style
	dropmenuobj.widthobj.width=tipwidth
  }
  PopUpHint.showTheHint(Event, Message);
}

function HideHint() {
  PopUpHint.hideTheHint();
}
