function test(){
	val = document.getElementById("username").value;
	validate(val, {
		'target':'msg'
	});
}

function changeimg(el1, el2){
	e1 = document.getElementById(el1);
	e2 = document.getElementById(el2);
	value = e1.value;

	home_page_image(value,
	{
		"content_type": "json",
		"onFinish": function(response){
			e1.value = response.value;

			e2.style.backgroundImage='url(/images/homepage/' + response.image + ')';
		}
	})
}

function rotateimage(){
	changeimg('homeleftintroindex','homeleftdiv');
	setTimeout('rotateimage()', 5000);
}

function loadFeature(elementimg, elementTitle, elementDesc, elementLink,  elementst, myintTime){

	var st, e1, e2, string;
	var type = "";
	if(arguments.length>6){
		type = arguments[6];
	}

	var e1 = document.getElementById(elementimg);
	var e2 = document.getElementById(elementst);
	var e3 = document.getElementById(elementTitle);
	var e4 = document.getElementById(elementDesc);
	var e6 = document.getElementById(elementLink);
	var e5 = document.getElementById('more_detail2');
	var st = e2.value;
	var timeout = 13000;
	var timeout_fade = 500;
	var random_timeout = Math.floor(Math.random()*4000);

	if(myintTime!=0){
		st = 0;
	}

	getNewSlideshow(type, st,  1,
	{
		"content_type": "json",
		"onFinish": function(response){
			e2.value = response.st;
			e1.src = response.imagelink;
			e3.innerHTML = response.headline;
			e4.innerHTML = response.desc;
			e5.href = response.link;
			e6.href = response.link;
			preloadImage = new Image();
			preloadImage.src = e1.src;
			if(response.next!="")
				preloadImage.src = response.next;
		}
	});

	if(myintTime!=0)
		timeout = timeout + myintTime;
	string = 'fadeFeature("'+elementimg+'","'+elementTitle+'","'+elementDesc+'","'+elementLink+'","'+elementst+'","'+type+'")';
	setTimeout(string, timeout+random_timeout);

	string = 'appearFeature("'+elementimg+'","grow")';
	setTimeout(string, timeout_fade);
	timeout_fade += 200;
	string = 'appearFeature("'+elementTitle+'")';
	setTimeout(string, timeout_fade);
	string = 'appearFeature("'+elementDesc+'")';
	setTimeout(string, timeout_fade);
	string = 'appearFeature("'+elementLink+'")';
	setTimeout(string, timeout_fade);
	string = 'appearFeature("more_detail2")';
	setTimeout(string, timeout_fade);
	string = 'appearPulse("'+elementLink+'")';
	setTimeout(string, timeout_fade+1400);

}

function appearFeature(element){

	if(arguments.length==2)
		type = arguments[1];
	else
		type = "appear";
	var e1 = document.getElementById(element);
	if(type!="appear")
		Effect.Grow(element, {
			duration: 1.8
		});
	else
		Effect.Appear(element, {
			duration: 1.0
		});


}

function appearPulse(element){

	Effect.Pulsate(element, {
		pulses: 4,
		duration: 1.5
	});

}

function fadeFeature(elementimg, elementTitle, elementDesc, elementLink,  elementst, type){

	string = 'loadFeature("'+elementimg+'","'+elementTitle+'","'+elementDesc+'","'+elementLink+'","'+elementst+'",0,"'+type+'")';
	setTimeout(string, 1000);

	Effect.Fade(elementTitle, {
		duration: 0.8
	});
	Effect.Fade(elementDesc, {
		duration: 0.8
	});
	Effect.Fade(elementLink, {
		duration: 0.8
	});
	Effect.Puff(elementimg, {
		duration: 1.0
	});
}

function printpreview(url){
	window.open(url+'?printpreview','printlisting','toolbar=0,location=0,directories=0,status=0,menubar=1,scrollbars=1,resizable=1,width=600,height=700,left=10,top=10');
	return false;
}

function populate_suburbs(region, sub_el){

	sub_el.options.length = 0;
	var o = document.createElement("option");
	o.text = "loading ...";
	o.value = "";
	sub_el.options.add(o);

	if(arguments.length>=2){
		sel=arguments[2];
	} else
		sel="";

	load_suburbs(region,
	{
		"content_type": "json",
		"onFinish": function(response){
			update_suburbs(response, sub_el,sel, 'Suburbs');
		}
	});
}

function populate_areas(region, sub_el, sub1_el){

	sub_el.options.length = 0;
	var o = document.createElement("option");
	o.text = "loading ...";
	o.value = "";
	sub_el.options.add(o);

	if(arguments.length>=3){
		sel=arguments[3];
	} else
		sel="";

	load_areas(region,
	{
		"content_type": "json",
		"onFinish": function(response){
			update_suburbs(response, sub_el,sel, 'Districts');
			update_suburbs('', sub1_el,'', 'Suburbs');
		}
	});
}
function update_suburbs(response, suburbs, sel, text){


	suburbs.options.length = 0;
	var o = document.createElement("option");
	o.text = "All " + text;
	o.value = "";
	suburbs.options.add(o);
	if(response.length>0){
		for(var a=0;a<response.length;a++){
			o = document.createElement("option");
			o.text = response[a];
			o.value = o.text;
			suburbs.options.add(o);
		}

		if(sel!=""){
			for(a = 0;a<suburbs.length;a++){
				if(sel==suburbs.options[a].value)
					suburbs.options[a].selected = true;
			}
		}

	}
}

function lightBoxStart(start) {
	if(($(start).rel.indexOf('lightbox') ) !=-1){
//		document.getElementById(start).click();
		myLightbox.start($(start));
	}
}

function checkSearchOptions(form, search, val) {

	var search = document.getElementById(search);
	var f = document.getElementById(form);

	if (search.value != val) {
		search.value = val;
		f.submit();
	}
}

function autoCounter() {

	el1 = document.getElementById('auto_slide_show');
	el2 = document.getElementById('auto_ticks');
	seconds = Number(document.getElementById('rollover_ticks').value);

	if(el1&&el2){
		if(el1.value == 'play'){
			ticks = Number(el2.value);
			if(ticks<=0){
				if(typeof(myLightbox.activeImage)!='undefined'){
					maxImages = myLightbox.imageArray.length - 1;
					nextImage = myLightbox.activeImage + 1;
					if(nextImage > maxImages) nextImage = 0;
					myLightbox.changeImage(nextImage);
				}
				ticks = seconds + 1;
			}
			el2.value = ticks - 1;
		}

		autoPlaySlideShowText();
		setTimeout('autoCounter()', 1000);
	}

}

function autoPlaySlideShow() {

	state = document.getElementById('auto_slide_show');
	ticks = document.getElementById('auto_ticks');
	seconds = Number(document.getElementById('rollover_ticks').value);

	current_status = state.value;

	if(typeof(arguments[0])!= 'undefined')
		current_status = arguments[0];

	switch(current_status){
		case 'play':
		case 'stop':
			current_status='pause';
			break;
		case 'pause':
		case 'start':
			current_status='play';
			break;
		case 'same':
			current_status=state.value;
	}

	ticks.value = seconds;

	state.value = current_status;

}

function autoPlaySlideShowText(){

	el1 = document.getElementById('bottomNavPlayPause');
	el2 = document.getElementById('auto_slide_show').value;
	el3 = document.getElementById('auto_ticks').value;

	el3 = Number(el3) + 1;

	if(el1) {

		switch(el2){
			case 'play' :
				text = 'Click to pause (changing in ' + el3 + ' seconds)';
				break;
			case 'pause':
			default:
				text = 'Play automatically...';
		}

		if(el1.childNodes){
			tn = findTextNode(el1);
			if(!(tn==null))
				tn.nodeValue = text;
		}

	}
}

function findTextNode(element)
{
	var num = element.childNodes.length;

	for (var count = 0; count < num; count++)
	{
		var currentNode = element.childNodes[count];

		if (currentNode.nodeType == 3) /* its a text node */
		{
			return currentNode;
		}
		else if (currentNode.nodeType == 1) /* its an element node */
		{
			currentNode = findTextNode(currentNode);
			if (! (currentNode == null))
			{
				return currentNode;
			}
		}
	}

	return null;
}

function toggle_vis(el1){

	var action;

	if(document.getElementById(el1).style.display == 'none'){
		document.getElementById(el1).style.display = 'block';
		action = 'show';
	} else {
		document.getElementById(el1).style.display = 'none';
		action = 'hide';
	}

	if(arguments.length>1){
		tochange = arguments[1];
		if(action=='show'){
			tochange.innerHTML = arguments[2];
		} else
			tochange.innerHTML = arguments[3];
	}

	if(arguments.length>3){

		for(a = 4;a<arguments.length;a++){
			if(document.getElementById(arguments[a]).style.display!='none')
				document.getElementById(arguments[a]).style.display='none';
		}

	}

}

function toggle_visibility(el1, el2){

	if(document.getElementById(el1).style.display == 'none'){
		if(document.getElementById(el2).style.display == 'none'){
			document.getElementById(el2).style.display = 'block';
		} else {
			document.getElementById(el2).style.display = 'none';
			document.getElementById(el1).style.display = 'block';
		}
	} else {
		document.getElementById(el1).style.display = 'none';
		document.getElementById(el2).style.display = 'block';
	}

	if(arguments.length>1){

		for(a = 2;a<arguments.length;a++){
			document.getElementById(arguments[a]).style.display='none';
		}

	}

	return true;
}

function toggle_button_text(buttonel, text1, text2, el1, el2){

	action_text = text1;

	if(document.getElementById(el2).style.display != 'none')
		action_text = text2;

	document.getElementById(buttonel).innerHTML = action_text;

}

function hide_el(el1){
	if(document.getElementById(el1).style.display != 'none')
		document.getElementById(el1).style.display = 'none';
}

function delay(string, delay){
	setTimeout(string, delay);
}

function google_map(canvas, lat, lng, zoom){

	var marker_map_center = true;

	if(lat==0||lng==0)
		return false;

	var latlng = new google.maps.LatLng(lat, lng);

	var myOptions = {
		zoom: zoom,
		center: latlng,
		mapTypeId: google.maps.MapTypeId.ROADMAP,
		streetViewControl: false
	};
	var map = new google.maps.Map(document.getElementById(canvas), myOptions);

	//	if(arguments.length>3){
	//		marker_map_center = arguments[4];
	//	}

	if(marker_map_center){
		var marker = new google.maps.Marker({
			position: latlng,
			map: map
		});
	}

	//	var LocalLayer = new google.maps.KmlLayer('http://tremains.stage.ps1.co.nz/kml/geo' + Math.floor(Math.random()*100000) + '.kml', {
	//		preserveViewport:true
	//	});
	//	LocalLayer.setMap(map)

	return map;

}

function push_marker(map, lat, lng, title){

	if(lat==0||lng==0)
		return false;

	var latlng = new google.maps.LatLng(lat, lng);

	var marker = new google.maps.Marker({
		position: latlng,
		map: map,
		title: title
	});

	return marker;
}

function gmap_refresh(map, lat, lng){

	google.maps.event.trigger(map, "resize");
	map.setCenter(new google.maps.LatLng(lat, lng));
	google.maps.event.trigger(map, "resize");
	var marker = new google.maps.Marker({
		position:new google.maps.LatLng(lat, lng),
		map: map
	});

}

function SavePropertySearch(obj) {
	if(obj.innerHTML.substr(0,5)=="Saved")
		return true;
	if(obj.innerHTML.substr(0,6)==" saving"){
		return false;
	} else {
		obj.innerHTML = " saving ...";
		obj.style.textDecoration = "none";
		save_property_search(
		{
			"content_type": "json",
			"onFinish": function(response){
				if(response.success){
					obj.innerHTML = "Saved to your property-tracker";
					obj.style.textDecoration = "underline";
					obj.href="/property-tracker";
				} else {
					obj.innerHTML = "Saving failed - please try again.";
					obj.style.textDecoration = "underline";
				}
			}
		});
		return false;
	}
}

function delete_tracking_search(searchid){

	document.getElementById('identifier').value = '';
	document.getElementById('perform').value = '';

	answer = confirm("Once this search has been removed, it will be permanently deleted - it cannot be restored.\nAre you sure you wish to delete it?");

	if(answer){
		document.getElementById('identifier').value = searchid;
		document.getElementById('perform').value = 'search_delete';
		document.getElementById('action_form').submit();
	}
}

function delete_tracking_watchlist(searchid){

	document.getElementById('identifier').value = '';
	document.getElementById('perform').value = '';

	answer = confirm("Once this property has been removed from your watchlist, You will need to find and add the property to your watchlist to re-instate.\nAre you sure you wish to delete it?");

	if(answer){
		document.getElementById('identifier').value = searchid;
		document.getElementById('perform').value = 'watchlist_delete';
		document.getElementById('action_form').submit();
	}
}

function clear_search_fields(){

	document.getElementById('search_id').value = '';
	document.getElementById('search_name').value = '';
	document.getElementById('search_notifications_cb').checked = false;
	document.getElementById('search_keyword').value = '';
	dd = document.getElementById('search_area');
	dd.selectedIndex = 0;
	dd = document.getElementById('search_suburb');
	dd.selectedIndex = 0;
	dd = document.getElementById('search_propertytype');
	dd.selectedIndex = 0;
	dd = document.getElementById('search_pricefrom');
	dd.selectedIndex = 0;
	dd = document.getElementById('search_priceto');
	dd.selectedIndex = 0;
	document.getElementById('search_openhomes_cb').checked = false;
	if(document.getElementById('updated_message'))
		document.getElementById('updated_message').style.display = 'none';

}

function edit_search(searchid){

	clear_search_fields();
	document.body.style.cursor = "wait";

	if(searchid==0){
		document.getElementById('edit_panel').style.display = 'block';
		document.body.style.cursor = "default";
	} else
		get_property_search(searchid,
		{
			"content_type": "json",
			"onFinish": function(response){
				document.getElementById('search_id').value = response.search.id;
				document.getElementById('search_name').value = response.search.search_name;
				if(response.search.notifications=='1')
					document.getElementById('search_notifications_cb').checked = true;
				// Keywords
				if(response.values.keyword)
					document.getElementById('search_keyword').value = response.values.keyword;
				// Area
				dd = document.getElementById('search_area');
				dc = false;
				for(a=0;a<dd.length;a++){
					if(dd.options[a].value == response.values.area){
						dd.options[a].selected = true;
						dc = true;
						populate_suburbs(response.values.area, document.getElementById('search_suburb'), response.values.suburb);
					}
				}
				if(!response.values.area){
					dd = document.getElementById('search_suburb');
					dc = false;
					for(a=0;a<dd.length;a++){
						if(dd.options[a].value == response.values.suburb){
							dd.options[a].selected = true;
							dc = true;
						}
					}
				}
				dd = document.getElementById('search_propertytype');
				dc = false;
				for(a=0;a<dd.length;a++){
					if(dd.options[a].value == response.values.propertytype){
						dd.options[a].selected = true;
						dc=true;
					}
				}
				dd = document.getElementById('search_pricefrom');
				dc = false;
				for(a=0;a<dd.length;a++){
					if(dd.options[a].value == response.values.pricefrom){
						dd.options[a].selected = true;
						dc = true;
					}
				}
				dd = document.getElementById('search_priceto');
				dc = false;
				for(a=0;a<dd.length;a++){
					if(dd.options[a].value == response.values.priceto){
						dd.options[a].selected = true;
					}
				}
				if(response.values.openhomesonly=='1')
					document.getElementById('search_openhomes_cb').checked = true;

				document.getElementById('edit_panel').style.display = 'block';
				document.body.style.cursor = "default";
			}
		});

}

function checkBoxCheck(cb, dispbut){

	disp = document.getElementById(dispbut);

	if(cb.checked){
		disp.style.display="block";
		disp.disabled=false;
	}else{
		disp.style.display="none";
		disp.disabled=true;
	}
}

function displayMenu(menu_id){

	submenu_node = document.getElementById('submenus').childNodes;

	if(submenu_node){
		if(submenu_node.length)
			for(a = 0 ; a < submenu_node.length ; a++){
				if(submenu_node[a].nodeType==1)
					submenu_node[a].style.display='none';
			}
		document.getElementById(menu_id).style.display = "block";
	}

}

function check_user(el1, el2){

	username = document.getElementById(el1);

	if(username.value.length<5){
		if(arguments.length>2)
			alert(arguments[2]);
		return false;
	}

	check_tracking_user(username.value,
	{
		"content_type": "json",
		"onFinish": function(response){
			if(response==0){
				alert("We couldn't find a registration matching that email address.  Please check and retry, or sign up using our registration form");
			} else {
				if(document.getElementById(el2))
					document.getElementById(el2).submit();
			}
		}
	});

	return false;
}

function ctu(el1){

	if(el1.value.length>5){

		check_tracking_user(el1.value,1,
		{
			"content_type": "json",
			"onFinish": function(response){
				if(response==0){
					return true;
				} else {
					alert("That email address is already in use!  Please use the forgotten password tool or use a different email address");
					el1.focus();
					return false;
				}
			}
		});
	}

}

function highlight(el1){

	dcm = document.getElementById(el1);

	dcm.focus();
	dcm.style.background = "red";

	return true;

}

function display_button(btn1, text1, text2){

	el1 = document.getElementById(btn1);

	if(el1.innerHTML == text1)
		el1.innerHTML = text2;
	else
		el1.innerHTML = text1;

}
