/*******************************************************************
propertyLocator.js

common JavaScript functions used in Property Locator pages
*******************************************************************/

function startSearch(form) {
    if(! minMaxCheck(form.ddMinPrice.options[form.ddMinPrice.options.selectedIndex].value, form.ddMaxPrice.options[form.ddMaxPrice.options.selectedIndex].value) ) {
        alert('A maximum price that is lower than the minimum, will return no results.');
        form.ddMaxPrice.focus();
	    return false;
	   }
     if(! minMaxCheck(form.ddMinBedrooms.options[form.ddMinBedrooms.options.selectedIndex].value, form.ddMaxBedrooms.options[form.ddMaxBedrooms.options.selectedIndex].value) ) {
        alert('A maximum bedroom count that is lower than the minimum, will return no results.');
        form.ddMaxBedrooms.focus();
	    return false;
	   }
	 /*  old code validation for bathroom counts 
     if(! minMaxCheck(form.ddMinBathrooms.options[form.ddMinBathrooms.options.selectedIndex].value, form.ddMaxBathrooms.options[form.ddMaxBathrooms.options.selectedIndex].value) ) {
        alert('A maximum bathroom count that is lower than the minimum, will return no results.');
        form.ddMaxBathrooms.focus();
	    return false;
	   }
	 */
	   /*  old code validation for parking space counts
	   if(! minMaxCheck(form.ddMinParking.options[form.ddMinParking.options.selectedIndex].value, form.ddMaxParking.options[form.ddMaxParking.options.selectedIndex].value) ) {
	   alert('A maximum parking space count that is lower than the minimum, will return no results.');
	   form.ddMaxParking.focus();
	   return false;  
	   }
	   */
    if(form.ddSuburb.options[form.ddSuburb.options.selectedIndex].value == 0)
        form.hSuburb.value = '';
    else
        form.hSuburb.value = form.ddSuburb.options[form.ddSuburb.options.selectedIndex].text;       
	
	form.hSearching.value = 'showResults';

	form.submit();
}

function minMaxCheck(minValue, maxValue){
    if(isNaN(minValue)) minValue = 0;
    if(isNaN(maxValue)) maxValue = 999999;
    return (parseInt(maxValue) >= parseInt(minValue));
}

function resetSearch(form) {
	form.reset(); 	
}

/**************** contact-us.asp **********************************/
function validateContactUsForm(formName) {
		// name
		if (formName.txtName.value.length < 3) {
			alert('Name field must be at least 3 characters long.');
			formName.txtName.focus();
			return false;
		}
		//email
		if (! validEmail(formName.txtEmail.value) ) {
			alert('The email address you entered was invalid.');
			formName.txtEmail.focus();
			return false;
		}
		if (formName.txtEmail.value != formName.txtConfEmail.value ) {
			alert('The confirmation email address does not match the email address.');
			formName.txtEmail.focus();
			return false;
		}
		// message
		if (formName.txtEnquiry.value.length < 20) {
			alert('Message field must be at least 20 characters long.');
			formName.txtEnquiry.focus();
			return false;
		}

		formName.submit();
}

/*************** moreinfo.asp ***********************************/
function validateContactForm(formName){
		// name
		if (formName.txtUserName.value.length < 3) {
			alert('Name field must be at least 3 characters long.');
			formName.txtUserName.focus();
			return false;
		}
		//email
		if (! validEmail(formName.txtUserEmail.value) ) {
			alert('The email address you entered was invalid.');
			formName.txtUserEmail.focus();
			return false;
		}
		//phone
		if (formName.txtUserPhone.value.length < 8) {
			alert('Phone field must be at least 8 characters long.');
			formName.txtUserPhone.focus();
			return false;
		}
		//message
		if (formName.txtUserComment.value.length < 20) {
			alert('Message field must be at least 20 characters long.');
			formName.txtUserComment.focus();
			return false;
		}
		//alert('work on this form has not yet been completed');
		//return false;
		return true;
    }

/*************** register.asp **********************/
function validateRegistration(form) {
	if (isBlank(form.regName.value)){
		alert("Please enter your name...");
		form.regName.focus();
		return (false);
	}

	if (!validEmail(form.regEmail.value)) {
		alert('The email address you entered was invalid.');
		form.regEmail.focus();
		return false
	} 

	if (isBlank(form.regEmailC.value)){
		alert("Please confirm your eMail address.")
		form.regEmailC.focus();
		return false
	} 

	if(form.regEmail.value != form.regEmailC.value){
		alert("The keyed email addresses do not match.  \nPlease try again.")
		form.regEmail.focus();
		form.regEmail.select();
		form.regEmailC.value = "";
		return false
	}
	
	form.submit();
}

/***************** unRegister.asp ******************/
function validateUnRegistration(form) {

	if (!validEmail(form.regEmail.value)) {
		alert('The email address you entered was invalid.');
		form.regEmail.focus();
		return false
	} 

	if (isBlank(form.regEmailC.value)){
		alert("Please confirm your eMail address.")
		form.regEmailC.focus();
		return false
	} 

	if(form.regEmail.value != form.regEmailC.value){
		alert("The keyed email addresses do not match.  \nPlease try again.")
		form.regEmail.focus();
		form.regEmail.select();
		form.regEmailC.value = "";
		return false
	}
	
	form.submit();
}
        
/***************** admin_Password.asp **********************/
function validatePasswordChange(form) {
	if (isBlank(form.password.value)){
		alert("You must enter your current password.")
		form.password.focus();
		return false
	} 

	if (isBlank(form.newpass1.value)){
		alert("You must enter a new password. \nThis password must be at least 5 characters long.")
		form.newpass1.focus();
		return false
	} 

	if(form.newpass1.value.length < 5 || form.newpass1.value.length > 20){
		alert("Your new password must be between 5 - 20 characters long. \nPlease choose another password.")
		form.newpass1.focus();
		form.newpass1.select();
		form.newpass2.value = "";
		return false
	} 

	if(form.newpass1.value != form.newpass2.value){
		alert("The new password fields did not match.  \nPlease try again.")
		form.newpass1.focus();
		form.newpass1.select();
		form.newpass2.value = "";
		return false
	}
}


    
/****************************************************************/    
function validEmail(emailAddress) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(emailAddress)){
		return (true);
	} else {
		return (false);
	}
}

/****************************************************************/    
function validWebAddres(webAddress) {
    return true;
	//return (/^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([\w]+)(.[\w]+){2,2}$/.test(webAddress))
}

/****************************************************************/
function isBlank(passedVal){
    return /^\s*$/.test(passedVal);
}


/****************************************************************/
function cashToInt(inputField) {
	var s = inputField.value;
	filteredValues = "$,";     
	var i;
	var returnString = "";
	for (i = 0; i < s.length; i++) { 
	var c = s.charAt(i);
	if (filteredValues.indexOf(c) == -1) returnString += c;
	}
	inputField.value = parseInt(returnString);
}


/****************************************************************/
function IsCash(sText)
{
	if(isBlank(sText))
		return false;
		
   var ValidChars = "0123456789$,.";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++) 
   { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
      {
         IsNumber = false;
      }
   }
   return IsNumber;
}


/****************************************************************/
function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
   // blank is not numeric
   if(sText.length < 1) IsNumber = false;
   
   for (i = 0; i < sText.length && IsNumber == true; i++) 
   { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
      {
         IsNumber = false;
      }
   }
   return IsNumber;
}

/****************************************************************/
function IsPhoneNumber(sText)
{
	if(isBlank(sText))
		return false;
		
   var ValidChars = "0123456789() "; // there is a space in here.
   var isPhone=true;
   var Char;
   for (i = 0; i < sText.length && isPhone == true; i++) 
   { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
      {
         isPhone = false;
      }
   }
   return isPhone;
}

/****************************************************************/
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}


/*******************************************************************************/
/*******************************************************************************/
  var da = (document.all) ? 1 : 0;
  var pr = (window.print) ? 1 : 0;
  var mac = (navigator.userAgent.indexOf("Mac") != -1); 


  /******************************/
  function printPage() {
    if (pr) // NS4, IE5
   	window.print()
    else if (da && !mac) // IE4 (Windows)
   	vbPrintPage()
    else // other browsers
   	alert("Sorry, your browser doesn't support this feature.");
  }



  if (da && !pr && !mac) with (document) {
    writeln('<OBJECT ID="WB" WIDTH="0" HEIGHT="0" CLASSID="clsid:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>');
    writeln('<' + 'SCRIPT LANGUAGE="VBScript">');
    writeln('Sub window_onunload');
    writeln('  On Error Resume Next');
    writeln('  Set WB = nothing');
    writeln('End Sub');
    writeln('Sub vbPrintPage');
    writeln('  OLECMDID_PRINT = 6');
    writeln('  OLECMDEXECOPT_DONTPROMPTUSER = 2');
    writeln('  OLECMDEXECOPT_PROMPTUSER = 1');
    writeln('  On Error Resume Next');
    writeln('  WB.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER');
    writeln('End Sub');
    writeln('<' + '/SCRIPT>');
  }

