// JavaScript Document

function toggleAccountOptions(accountType) {
	
	if (accountType == 'agent') {
		
		var optionsStr = "<table>\n";
		
		optionsStr += "<tr>\n";
		optionsStr += "	<td class=\"options-label\">Username</td>\n";
		optionsStr += "	<td><input type=\"text\" name=\"register[username]\" /></td>\n";
		optionsStr += "</tr>\n";
		
		optionsStr += "<tr>\n";
		optionsStr += "	<td class=\"options-label\">Password</td>\n";
		optionsStr += "	<td><input type=\"text\" name=\"register[password]\" /></td>\n";
		optionsStr += "</tr>\n";
		
		optionsStr += "<tr>\n";
		optionsStr += "	<td class=\"options-label\">Agency Name</td>\n";
		optionsStr += "	<td><input type=\"text\" name=\"register[agency]\" /></td>\n";
		optionsStr += "</tr>\n";
		
		optionsStr += "<tr>\n";
		optionsStr += "	<td class=\"options-label\">Agency License Number</td>\n";
		optionsStr += "	<td><input type=\"text\" name=\"register[license_number]\" /></td>\n";
		optionsStr += "</tr>\n";
		
		optionsStr += "<tr>\n";
		optionsStr += "	<td class=\"options-label\">State</td>\n";
		optionsStr += "	<td><select name=\"register[address_state]\"><option></option></select></td>\n";
		optionsStr += "</tr>\n";
		
		optionsStr += "<tr>\n";
		optionsStr += "	<td class=\"options-label\">Contact First Name</td>\n";
		optionsStr += "	<td><input type=\"text\" name=\"register[f_name]\" /></td>\n";
		optionsStr += "</tr>\n";
		
		optionsStr += "<tr>\n";
		optionsStr += "	<td class=\"options-label\">Contact Last Name</td>\n";
		optionsStr += "	<td><input type=\"text\" name=\"register[l_name]\" /></td>\n";
		optionsStr += "</tr>\n";
		
		optionsStr += "<tr>\n";
		optionsStr += "	<td class=\"options-label\">Phone</td>\n";
		optionsStr += "	<td><input type=\"text\" name=\"register[phone]\" /></td>\n";
		optionsStr += "</tr>\n";
		
		optionsStr += "<tr>\n";
		optionsStr += "	<td class=\"options-label\">Email</td>\n";
		optionsStr += "	<td><input type=\"text\" name=\"register[email]\" /></td>\n";
		optionsStr += "</tr>\n";
		
		optionsStr += "</table>\n\n";
		
		$('account-cell').innerHTML = optionsStr;
		
		/*
		
		$('agent-options').className = 'show';
		$('bidder-options').className = 'hide';
		
		*/
		
	} else if (accountType == 'bidder') {
		
		var optionsStr = "<table>\n";
		
		optionsStr += "<tr>\n";
		optionsStr += "	<td class=\"options-label\">Username</td>\n";
		optionsStr += "	<td><input type=\"text\" name=\"register[username]\" /></td>\n";
		optionsStr += "</tr>\n";
		
		optionsStr += "<tr>\n";
		optionsStr += "	<td class=\"options-label\">Password</td>\n";
		optionsStr += "	<td><input type=\"text\" name=\"register[password]\" /></td>\n";
		optionsStr += "</tr>\n";
		
		optionsStr += "<tr>\n";
		optionsStr += "	<td class=\"options-label\">First Name</td>\n";
		optionsStr += "	<td><input type=\"text\" name=\"register[f_name]\" /></td>\n";
		optionsStr += "</tr>\n";
		
		optionsStr += "<tr>\n";
		optionsStr += "	<td class=\"options-label\">Last Name</td>\n";
		optionsStr += "	<td><input type=\"text\" name=\"register[l_name]\" /></td>\n";
		optionsStr += "</tr>\n";
		
		optionsStr += "<tr>\n";
		optionsStr += "	<td class=\"options-label\">Email</td>\n";
		optionsStr += "	<td><input type=\"text\" name=\"register[email]\" /></td>\n";
		optionsStr += "</tr>\n";
		
		optionsStr += "</table>\n\n";
		
		$('account-cell').innerHTML = optionsStr;
		
		/*
		
		$('agent-options').className = 'hide';
		$('bidder-options').className = 'show';
		
		*/
		
	}
	
}

function toggleBannerAd(href, background) {
	
	$('link-home').innerHTML = '<a href="'+href+'" target="_blank" style="background:url('+background+') center center no-repeat;">&nbsp;</a>';
	
}

function updateNotificationSetting(notificationID, notificationType, element) {
	
	if (notificationType != 'email' && notificationType != 'sms') {
		
		return false;
		
	}
	
	//
	
	var obj = new Ajax.Updater('notification-'+notificationID+'-'+notificationType+'-response', './pages/myaccount/templates/ajax.notification_settings_update.php?id='+notificationID+'&type='+notificationType+'&value='+element.value, {asynchronous:true, evalScripts:true});
	
	//alert(element.value);
	
}

//Element $('elementID')

//var currentElement = false;

//var lastElement = false;

function slideElement(element) {
	
	if (lastElement == false) {
	
		//Make the current element also the last.
		
		lastElement = element;
	
	}
	
	//

	if (currentElement != element) {

		if (currentElement == false) {
		
			currentElement = element;
		
		}
	
		//Don't close item if clicked on.
	
		//Open clicked on element.
		//Make it the current element.
		
		new Effect.BlindDown(element, {duration:1.0});
		currentElement = element;
		
		//If there is a last element.
		
		if (lastElement != false && lastElement != currentElement) {
	
			//Close last.
			//Make it the last element.
			
			new Effect.BlindUp(lastElement, {duration:1.0});
			lastElement = element;
		
		}
	
	}
	
	//End of if not clicking on same element.
	
	//Testing.
	
	//alert('currentElement = ' + currentElement.getAttribute('id') + "\n" + 'lastElement = ' + lastElement.getAttribute('id'));
	
	//

}

//End of slideElement function.

//Call slide to open first element.


function submitForm(responseID, formElement) {
	
	//showProgress(formElement);
	
	var params = Form.serialize(formElement);
	var obj = new Ajax.Updater(responseID, formElement.action, {asynchronous:true, parameters:params, evalScripts:true});
	
	return false;
	
}

function loadMenu(component, userType, navElement) {
	
	if (typeof(currentNav) != 'undefined' && currentNav != navElement) {
		
		currentNav.className = '';
		currentNav = navElement;
		
	}
	
	if (userType == '') {
		userType = '';
	}
	
	navElement.className = 'current';
	
	$('admin-content').update('<div class="progress">&nbsp;</div>');
	
	var obj = new Ajax.Updater('admin-content', './pages/myaccount/'+userType+'/'+component+'/include.start.php', {asynchronous:true, evalScripts:true});	
	
}

function showProgress(element) {
	
	$(element).innerHTML = '<div class="progress">&nbsp;</div>';
	
}

function loadAjax(element, url) {
	
	showProgress(element);
	
	var obj = new Ajax.Updater(element, url, {asynchronous:true, evalScripts:true});	
	
}

//
//Functions used in home search.
//

function submitSearch() {
	
	//Get suburbs from $('suburbs').value; 
	
	var searchStr = 'auctions.php?search=search&';
	
	searchStr += 'payed=' + $('payed').value + '&';
	
	var suburbsArray = $('suburbs').value.split(', ');
	
	var tempStr = '';
	
	for (var i = 0; i < suburbsArray.length; i ++) {
		
		tempStr += 'location[]=' + suburbsArray[i];
		
		if (i < suburbsArray.length - 1) {
			
			tempStr += '&';
			
		}
		
	}
	
	window.document.location = searchStr + tempStr;
	
	return false;
	
}

function trim(str) {
	
	while (str.charAt(0) == (" ")) {  
	
		str = str.substring(1);
	
	}
	
	while (str.charAt(str.length-1) == " ") {  
	
		str = str.substring(0,str.length-1);
	
	}
  
	return str;
	
}

//Function to autocomplete suburbs in search form.

function checkSuburbs(autocompleteTarget, inputFieldTarget, updateFieldTarget) {
	
	$(autocompleteTarget).innerHTML = '';
	
	var suburbsStr = $(inputFieldTarget).value;
	
	var multiple = false;
	
	for (var i = 0; i < suburbsStr.length; i ++) {
		
		//Get the last occurance of a comma in the search string.
		
		if (suburbsStr.charAt(suburbsStr.length - i) == ',') {
			
			multiple = true;
			
			break;
			
		}
		
	}
	
	if (multiple == true) {
		
		var tempSearchStr = suburbsStr.substr(suburbsStr.length - i, i);
	
		var searchStr = tempSearchStr.substr(1, tempSearchStr.length);
		
	} else if (multiple == false) {
		
		var tempSearchStr = suburbsStr;
		
		var searchStr = tempSearchStr;
		
	}
	
	//Strip any white space from the search string.
	
	searchStr = trim(searchStr);
	
	if (searchStr != '') {
	
		loadAjax(autocompleteTarget, './pages/myaccount/templates/ajax.location_search.php?similar=' + searchStr.toUpperCase() + '&showAll=true&autocompleteTarget=' + autocompleteTarget + '&insertFieldTarget=' + insertFieldTarget + '&updateFieldTarget=' + updateFieldTarget);
	
	}
	
	//Get the current suburb being typed.
	
}

function addSuburb(suburb) {
	
	var suburbsStr = $('suburbs').value;
	
	var multiple = false;
	
	for (var i = 0; i < suburbsStr.length; i ++) {
		
		//Get the last occurance of a comma in the search string.
		
		if (suburbsStr.charAt(suburbsStr.length - i) == ',') {
			
			multiple = true;
			
			break;
			
		}
		
	}
	
	//Get string before place to append.
	
	if (multiple == true) {
		
		var tempStr = suburbsStr.substr(0, suburbsStr.length - i);
	
		$('suburbs').value = tempStr + ', ' + suburb;
		
	} else if (multiple == false) {
		
		var tempStr = suburb;
		
		$('suburbs').value = tempStr;
		
	}
	
	$('autocomplete').innerHTML = '';
	
	$('suburbs').focus();
	
}

function toggleTextField(targetElement, initValue) {
	
	var fieldText = $(targetElement).value;
	
	if (fieldText == initValue) {
		
		$(targetElement).value = '';
		
	} else if (fieldText == '') {
		
		$(targetElement).value = initValue;
		
	}
	
}

function toggleSuburbText() {
	
	var suburbText = $('suburbs').value;
	
	if (suburbText == 'Enter your suburbs here ...') {
		
		$('suburbs').value = '';
		
	} else if (suburbText == '') {
		
		$('suburbs').value = 'Enter your suburbs here ...';
		
	}
	
}

//Functions for selecting suburbs in admin.

function toggleLocationsText(initValue, element) {
	
	var locationsText = $(element).value;
	
	if (locationsText == initValue) {
		
		$(element).value = '';
		
	} else if (locationsText == '') {
		
		$(element).value = initValue;
		
	}
	
}

function searchLocations(listingID) {
	
	if (listingID == 0) {
		
		var targetAutocomplete = 'autocomplete';
		
		var id_str = '';
		
	} else {
		
		var targetAutocomplete = 'autocomplete-' + listingID;
		
		var id_str = 'id=' + listingID + '&';
	}
	//alert($(targetAutocomplete));
	
	$(targetAutocomplete).innerHTML = '';
		
	var locationsStr = $(targetAutocomplete).value;
		
	var tempSearchStr = locationsStr;
	
	var searchStr = tempSearchStr;
	
	//Strip any white space from the search string.
	
	searchStr = trim(searchStr);
	
	if (searchStr != '') {
	
		loadAjax(targetAutocomplete, './pages/myaccount/templates/ajax.location_search.php?' + id_str + 'similar=' + searchStr.toUpperCase() + '&showAll=true');
	
	}
	
	//Get the current suburb being typed.
	
}

function selectLocation(targetElement, locationID, location) {
	
	//Update the location.
	
	$(targetElement).value = locationID;
	
	//Update the location text.
	
	$(targetElement).value = location;
	
	//Hide the drop down list.
	
	$(targetElement).innerHTML = '';
	
}

function toggleMenu(element, elementList) {
	
	/*
	
	Show the effect.
	
	*/
	
	if (lastListElement == false) {
	
		//Make the current element also the last.
		
		lastListElement = elementList;
	
	}
	
	if (lastElement == false) {
	
		//Make the current element also the last.
		
		lastElement = element;
	
	}
	
	//

	if (currentElement != element) {

		if (currentElement == false) {
		
			currentElement = element;
		
		}
	
		//Don't close item if clicked on.
	
		//Open clicked on element.
		//Make it the current element.
		
		//new Effect.BlindDown(element, {duration:1.0});
		element.className = 'current';
		currentElement = element;
		
		//If there is a last element.
		
		if (lastElement != false && lastElement != currentElement) {
	
			//Close last.
			//Make it the last element.
			
			//new Effect.BlindUp(lastElement, {duration:1.0});
			lastElement.className = '';
			lastElement = element;
		
		}
	
	}
	
	if (currentListElement != elementList) {

		if (currentListElement == false) {
		
			currentListElement = elementList;
		
		}
		
		new Effect.BlindDown(elementList, {duration:0.5});
		currentListElement = elementList;
		
		if (lastListElement != false && lastListElement != currentListElement) {
	
			//Close last.
			//Make it the last element.
			
			new Effect.BlindUp(lastListElement, {duration:0.5});
			lastListElement = elementList;
		
		}
		
	}
	
	//End of if not clicking on same element.
	
	//Testing.
	
	//alert('currentElement = ' + currentElement.getAttribute('id') + "\n" + 'lastElement = ' + lastElement.getAttribute('id'));
	
	//
	
}

function autocomplete(listTarget, selectFrom, updateTo, script) {
	
	var searchStr = $(selectFrom).value;
	
	if (searchStr.length >= 3) {
	
		loadAjax(listTarget, script + '?search=' + searchStr + '&listTarget=' + listTarget + '&selectorElement=' + selectFrom + '&updaterElement=' + updateTo);
	
	}
	
}

function selectAutocompleteItem(listTarget, selectorElement, selectorValue, updaterElement, updaterValue) {
	
	$(selectorElement).value = selectorValue;
	
	$(updaterElement).value = updaterValue;
	
	$(listTarget).innerHTML = '';
	
}


function hiddenForm(form_name, action, form_parameters) {
	form = Builder.node('form', { method: 'POST', id: form_name, action: action });
	for (var i in form_parameters) {
		if (form_parameters[i] == null) { form_parameters[i] = ''; }
		this_element = Builder.node('input', {type: 'hidden', name: i, value: form_parameters[i]});
		form.appendChild(this_element);
	}
	document.body.appendChild(form);
}

function closeTab(div) {
	if ($(div).closeTabFunc) {
		$(div).closeTabFunc(div);
	}
	$(div).innerHTML = '';
}

function loadAdminPanel(component, arguments, userType) {
	Effect.Appear('admin-popup-bg',{duration:0.15, to: 0.8});
	Effect.Appear('admin-panel-popup',{duration:0.15});
	
	$('admin-popup-content').update('<div class="progress">&nbsp;</div>');
	Effect.ScrollTo('admin-popup-content');
	
	url = './pages/myaccount/';
	if (userType) {
		url += userType + '/';
	}
	url += component+'/include.start.php';

	if (arguments) {
		url += '?' + $H(arguments).toQueryString(); 
	}
	
	var obj = new Ajax.Updater('admin-popup-content', url, {asynchronous:true, evalScripts:true});	
//	loadAjax('admin-content', content_address);	
	
}
function loadAdminGeneric(component) {
	Effect.Appear('admin-popup-bg',{duration:0.15, to: 0.8});
	Effect.Appear('admin-panel-popup',{duration:0.15});
	
	$('admin-popup-content').update('<div class="progress">&nbsp;</div>');
	Effect.ScrollTo('admin-popup-content');
	
	var obj = new Ajax.Updater('admin-popup-content', component, {asynchronous:true, evalScripts:true});	
//	loadAjax('admin-content', content_address);	
	
}
function closeAdminPanel() {
	Effect.Fade('admin-popup-bg',{duration:0.15});
	Effect.Fade('admin-panel-popup',{duration:0.15});
}

