﻿// JScript File

// For use with the Advanced Quick Search module
// see RE/MAX Southern Ohio for example

function loadCitySuggestion( ) {
	var companyID = arguments[0];
	var inputField = arguments[1];
	var newOpts = arguments[2];
	var opts = {suggestionKeystrokeMinimum:3, displayInfo:true, infoSize:35, expandedWidth:262};
    
	if (newOpts) {
		for (var key in newOpts) {
			if (opts[key]) { opts[key] = newOpts[key]; }
		}
	}
	
	var x = new reliance.controls.SuggestionField(inputField, 'getcitiesbycompany.aspx?companyid=' + companyID, null, opts);
}

function formSubmitQuickSearch( ) {
	var form = arguments[0];
	var search = form.searchtype.value;
	
	if (search == 'mlsnumber') {
		var inputList = document.getElementsByName('multimlsnumber');
		for (var i=0; i<inputList.length; i++) {
			if (!String.isNullOrEmpty(inputList[i].value)) {
				if (!form.mlsnumber) { form.appendChild(reliance.domUtilities.createFormElement('input', {type:'hidden', name:'mlsnumber'})); }
				form.mlsnumber.value += (form.mlsnumber.value.length > 0 ? ',' : '') + inputList[i].value.trim( );
			}
		}

		if (!form.mlsnumber || form.mlsnumber.length == 0) {
			alert('Enter one or more MLS Numbers to search.');
			return false;
		}
	}
	else {
		form.globalinput.value = form.globalinput.value.trim( );
		if (search != 'county' && search != 'schooldistrict' && (form.globalinput.value == form.globalinput.getAttribute('_default') || String.isNullOrEmpty(form.globalinput.value))) {
			alert('Enter ' + (search == 'address' ? 'Enter Street Address' : 'City or Zip Code'));
			return false;
		}

		switch (search) {
			case 'address':
				if (!form.streetname) { form.appendChild(reliance.domUtilities.createFormElement('input', {type:'hidden', name:'streetname'})); }
				form.streetname.value = form.globalinput.value;
				break;
			case 'county':
			case 'schooldistrict':
				break;
			default:
				if (search == 'openhouse') {
					form.selected.value = 'openhouse';
					if (!form.openhouse) { form.appendChild(reliance.domUtilities.createFormElement('input', {type:'hidden', name:'openhouse'})); }
					form.openhouse.value = 'true';
				}
				else if (search == 'luxury') {
					if (!form.luxury) { form.appendChild(reliance.domUtilities.createFormElement('input', {type:'hidden', name:'luxury'})); }
					form.luxury.value = 'true';

					if (!form.redirectoverride) { form.appendChild(reliance.domUtilities.createFormElement('input', {type:'hidden', name:'redirectoverride'})); }
					form.redirectoverride.value = 'map';
				}

				if (!form.cityzip) { form.appendChild(reliance.domUtilities.createFormElement('input', {type:'hidden', name:'cityzip'})); }
				form.cityzip.value = form.globalinput.value;
				break;
		}

		switch (form.searchtarget.value) {
			case 'commercial':
				if (!form.groupproptype) { form.appendChild(reliance.domUtilities.createFormElement('input', {type:'hidden', name:'groupproptype'})); }
				form.groupproptype.value = '700:Commercial';
				break;
			case 'foreclosure':
				form.selected.value = 'foreclosure';
				break;
			case 'subdivision':
				form.selected.value = 'custom2';
				if (!form.redirectoverride) { form.appendChild(reliance.domUtilities.createFormElement('input', {type:'hidden', name:'redirectoverride'})); }
				form.redirectoverride.value = 'map';
				break;
			case 'rental':
				form.selected.value = 'custom1';
				if (!form.redirectoverride) { form.appendChild(reliance.domUtilities.createFormElement('input', {type:'hidden', name:'redirectoverride'})); }
				form.redirectoverride.value = 'map';
				break;
		}
	}

	return true;
}

function selectTopSearch( ) {
	var search = arguments[0];
	var searchTabId;

	selectSubSearch('location');
	document.getElementById('subnav').style.display = 'none';
	document.getElementById('qscontent').style.backgroundPosition = '0px -1px';
	document.getElementById('qsMlsNumberSearch').style.display = 'none';
	document.getElementById('additionalQS').style.display = 'inline';
	document.getElementById('additionalQS').rows[0].style.display = 'inline';
	document.getElementById('additionalQS').rows[1].cells[0].rowSpan = 1;
	document.getElementById('additionalQS').rows[1].cells[1].rowSpan = 1;
	document.getElementById('additionalQS').rows[2].cells[0].style.display = 'inline';
	document.getElementById('additionalQS').rows[2].cells[1].style.display = 'inline';
	document.getElementById('additionalQS').rows[2].cells[2].style.display = 'inline';
	//document.getElementById('additionalCriteria').rows[0].cells[0].style.display = 'inline';
	//document.getElementById('additionalCriteria').rows[1].cells[0].style.display = 'inline';
	switch (search) {
		case 'propertysearch':
			searchTabId = 'qsPropSearch';
			document.getElementById('subnav').style.display = 'inline';
			document.getElementById('qscontent').style.backgroundPosition = '0px 19px';
			break;
		case 'mlsnumber':
			searchTabId = 'qsMlsSearch';
			document.getElementById('additionalQS').style.display = 'none';
			document.getElementById('qsMlsNumberSearch').style.display = 'inline';
			break;
		case 'openhouse':
			searchTabId = 'qsOpenHouse';
			document.getElementById('additionalQS').rows[0].style.display = 'none';
			break;
		case 'luxury':
			searchTabId = 'qsCollection';
			document.getElementById('additionalQS').rows[0].style.display = 'none';
			document.getElementById('additionalQS').rows[1].cells[0].rowSpan = 2;
			document.getElementById('additionalQS').rows[1].cells[1].rowSpan = 2;
			document.getElementById('additionalQS').rows[2].cells[0].style.display = 'none';
			document.getElementById('additionalQS').rows[2].cells[1].style.display = 'none';
			document.getElementById('additionalQS').rows[2].cells[2].style.display = 'none';
			break;
	}

	var list = document.getElementById('topnav');
	for (var i=0; i<list.childNodes.length; i++) {
		if (list.childNodes[i].tagName) {
			list.childNodes[i].firstChild.className = list.childNodes[i].id == searchTabId ? 'selected' : '';
		}
	}

	document.forms['frmQuickSearch'].searchtype.value = search;
}

function selectSubSearch( ) {
	var search = arguments[0];
	var form = document.forms['frmQuickSearch'];
	var searchTabId;

	form.globalinput.style.color = '#a9a9a9';
	switch (search) {
		case 'location':
			searchTabId = 'qsCitySuburb';
			document.getElementById('qsInputLabel').firstChild.innerHTML = 'City:';
			form.globalinput.value = 'Enter City or Zip Code';
			form.globalinput.setAttribute('_default', 'Enter City or Zip Code');
			form.countyname.style.display = 'none';
			form.schooldistrictname.style.display = 'none';
			form.globalinput.style.display = 'inline';
			break;
		case 'address':
			searchTabId = 'qsStreetName';
			document.getElementById('qsInputLabel').firstChild.innerHTML = 'Addr:';
			form.globalinput.value = 'Enter Street Address';
			form.globalinput.setAttribute('_default', 'Enter Street Address');
			form.countyname.style.display = 'none';
			form.schooldistrictname.style.display = 'none';
			form.globalinput.style.display = 'inline';
			break;
		case 'county':
			searchTabId = 'qsCounty';
			document.getElementById('qsInputLabel').firstChild.innerHTML = 'County:';
			form.globalinput.style.display = 'none';
			form.schooldistrictname.style.display = 'none';
			form.countyname.selectedIndex = 0;
			form.countyname.style.display = 'inline';
			break;
		case 'schooldistrict':
			searchTabId = 'qsSchoolDist';
			document.getElementById('qsInputLabel').firstChild.innerHTML = 'School Dist:';
			form.globalinput.style.display = 'none';
			form.countyname.style.display = 'none';
			form.schooldistrictname.selectedIndex = 0;
			form.schooldistrictname.style.display = 'inline';
			break;
	}

	var list = document.getElementById('subnav');
	for (var i=0; i<list.childNodes.length; i++) {
		if (list.childNodes[i].tagName) {
			list.childNodes[i].firstChild.className = list.childNodes[i].id == searchTabId ? 'selected' : '';
		}
	}

	form.searchtype.value = search;
}

function checkInputTextField( ) {
    var input = arguments[0];
    if (input.value == input.getAttribute('_default')) {
        input.value = '';
        input.style.color = '#483e34';
    }
    else if (String.isNullOrEmpty(input.value)) {
        input.value = input.getAttribute('_default');
        input.style.color = '#a9a9a9';
    }
}

String.isNullOrEmpty = function(str) { return !str || str.match(/^\s*$/gi); }
String.prototype.trim = function( ) { return this ? this.replace(/^\s+|\s+$/gi, '') : ''; }
