/*
	Get a page element
*/
var IE = document.all?true:false;

function eid (element)
{
	return document.getElementById(element);
}
/*
	Get a page elements value
*/
function v (element)
{
	return document.getElementById(element).value;
}

function xy (element) {
	var curleft = curtop = 0;
	if (element.offsetParent) {
		curleft = element.offsetLeft;
		curtop = element.offsetTop;
		while (element = element.offsetParent) {
			curleft += element.offsetLeft;
			curtop += element.offsetTop;
		}
	}
	return [curleft, curtop];
}

function seed () {
	return Math.floor(Math.random()*10000000000);
}

function grab_focus (fieldname) {
	eid(fieldname).focus();
}

/* 
	disable a form (eg. on submit)
	sets all inputs to readonly and submits to disabled
*/
function disableForm (form)
{
	var f = document.getElementById(form);
	for (var i=0; i<f.length; i++)
	{
		if (f.elements[i].type == "input")
		{
			f.elements[i].readOnly = true;
			f.elements[i].style.backgroundColor = "#cccccc";
		}
		if (f.elements[i].type == "submit")
		{
			f.elements[i].disabled = true;
		}
	}
}

/* check that the end time is after the start time */
function check_time (sender, start, end) {
	
}


/* add a garagesale to the users favourites */
function add_2_fav (sender, garagesale_id, remove) {
	new Ajax.Request('/inc/ajax/ajax.php', {
		method: 'get',
		parameters: {
			action: 'add_2_fav',
			id: garagesale_id,
			remove: remove,
			seed: seed()
		},
		onSuccess: function (r) {
			eid('actions'+garagesale_id).innerHTML = r.responseText;
		}
	});
}
/*@Function Name:
 *@Function Description:
 *@Params:
 *
 *
 *@Return Type:
 *@Author:
 *@Date:
 */
function submitByDClickState(sender)
{
	select_browse_time(eid("browse-this-week"));
	eid("advsearch-frm").submit();
}
//Following Functions is for testing purpose only
function submitByDClickState1(sender)
{
	//alert(sender.id);
}
function moveDirectionUp(garagesale_id)
{
	alert(garagesale_id);
	new Ajax.Request('/inc/ajax/ajax.php', {
		method: 'get',
		parameters: {
			action: 'myMap_move_up',
			id: garagesale_id,
			remove: remove,
			seed: seed()
		},
		onSuccess: function (r) {
			//alert(r.responseText);
			eid('actions'+garagesale_id).innerHTML = r.responseText;
		}
	});
}
function remove_from_fav (sender, garagesale_id, remove) {
	var comfirmDel = confirm("Do you really want to remove this from 'My map'?");
	if(comfirmDel == true)
	{
		if(getGet("Nav") == "mymap")
		{
			eid("result_"+garagesale_id).parentNode.remove();
		}
		
		// if remove is present, then the call came from the maps page
		if (remove != undefined) {
			// remove the garage sale result row
			// this should be the parent result of the action
			sender.parentNode.parentNode.parentNode.removeChild(sender.parentNode.parentNode);
			// remove the marker from the map
			mymap_remove_garagesale(garagesale_id);
		}
		
		new Ajax.Request('/inc/ajax/ajax.php', {
			method: 'get',
			parameters: {
				action: 'remove_from_fav',
				id: garagesale_id,
				remove: remove,
				seed: seed()
			},
			onSuccess: function (r) {
				//alert(r.responseText);
				eid('actions'+garagesale_id).innerHTML = r.responseText;
			}
		});
	}
	
}
function getGet(name)
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}
function browse_tags_onclick (sender) {
	eid('locations').value = eid('locations_txt').value;
	eid('browse_tags_frm').submit();
}

var last_suburb_hint_value = '';				// global
function get_suburbs_hint (sender, e) {
	
//	alert(sender.id);
	eid(sender.id.replace(/-\d+$/, '')).value = sender.value;
//	alert(sender.id.replace(/-\d+$/, ''));
	if (sender.value.length > 2) {
		new Ajax.Request('/inc/ajax/location_ajax.php', {
			method: 'get',
			parameters: {
				action: 'get-suburbs-hint',
				field: sender.id,
				data: sender.value,
				seed: seed()
			},
			onSuccess: function (r) {
				//alert(r.responseText);
				if (r.responseText != '') {
					eid(sender.id.replace(/-\d+$/, '')+'-hints').innerHTML = r.responseText;
					show_hinter(sender);
				}
			}
		});
	}
}

function choose_suburb (sender, field, pcode) {
	eid(field).value = sender.innerHTML;
	eid(field.replace(/-\d+$/, '')).value = pcode;
	hide_hinter();
}

function suburb_hint_blur (sender, e) {
	setTimeout('hide_hinter()', 300);
	if (sender.value == '') {
		sender.value = last_suburb_hint_value;
	}
}
function suburb_hint_focus (sender, e) {
	last_suburb_hint_value = sender.value;
	sender.value = '';
	unSelectedAllRegion();
}


function jCheckBrowser()
{
	var ua = navigator.userAgent.toLowerCase(); 
	var browserName = ""; 
	if ( ua.indexOf( "opera" ) != -1 ) 
	{
		browserName = "opera";
	}
	else if ( ua.indexOf( "msie" ) != -1 ) 
	{
		browserName = "msie";
	} 
	else if ( ua.indexOf( "safari" ) != -1 ) 
	{
		browserName = "safari";
	} 
	else if(ua.indexOf("msie") != -1)
	{
		browserName = "msie";
	}
	else if ( ua.indexOf( "mozilla" ) != -1 ) 
	{
		if ( ua.indexOf( "firefox" ) != -1 ) {
			browserName = "firefox";
		} else {
			browserName = "mozilla";
		} 
	}
	return browserName;
}
function unSelectedAllRegion()
{
	if(jCheckBrowser() == "msie")
	{
		eid("search_region").value=0;
		eid("refineSearchResults").innerHTML = '';
	}
	else
	{
		var countCheckBoxes = eid("search_region").length;
		for(var i = 0; i < countCheckBoxes; i++)
		{
			eid("search_region").options[i].selected = false;
			eid("refineSearchResults").innerHTML = '';
	
		}
	}
	
	
}
function show_hinter (owner) {
	var hinter = eid(owner.id.replace(/-\d+$/, '')+'-hints');
	var pos = xy(owner);
	hinter.style.display = "block";
	
}
function hide_hinter () {
	eid('suburb-hints').style.display = "none";
}
function select_browse_time (sender) {
	// convert something like 'browse-this-weekend' to 'this weekend'
	eid('browse-time').value = sender.id.replace(/browse-/, '').replace('-', ' ');
	// set all to white border
	eid('browse-this-week').style.border = '2px solid white';
	if (eid('browse-this-weekend') != undefined) eid('browse-this-weekend').style.border = '2px solid white';
	eid('browse-next-week').style.border = '2px solid white';
	if (eid('browse-next-weekend') != undefined) eid('browse-next-weekend').style.border = '2px solid white';
	// set sender to have a border
	sender.style.border = '2px solid black';
}
function toggle_browse_options (sender) {
	if (eid('browse-tags-container').style.display == 'none') {
		// more options
		eid('browse-tags-container').style.display = 'block';
		eid('browse_toggletags_btn-caption').innerHTML = 'Show&nbsp;Fewer&nbsp;Options';
	} else {
		// fewer options
		eid('browse-tags-container').style.display = 'none';
		eid('browse_toggletags_btn-caption').innerHTML = 'Show&nbsp;More&nbsp;Options';
	}
}

function advsearch_onclick (sender) {
	var errors = '';
	
	//Check if user has not entered a suburb or selected a region	
	if (eid('suburb').value == '' && eid('search_region').value == '') 		
										errors += ' - You need to enter a suburb or select a region\n';	
	if (eid('browse-time').value == '') 	errors += ' - You need to specify a time\n';
	
	if (errors != '') {
		alert('You need to fix some things:\n'+errors);	
	} else {
		eid('advsearch-frm').submit();
	}
}

function jValidateFeedbackForm()
{
	if(eid('feedback').value == "")
	{
		alert("Feedback Can NOT be blank!");
		return false;
	}
	return true;
}


function toggleCategorySearchColor(sender)
{
	//alert(sender.id);
	if(sender.checked == true)
	{
		sender.parentNode.style.color ="#666666";
	}
	else
	{
		sender.parentNode.style.color ="BLACK";
	}
}
function toggle_map (map_area, display_address_div, lat, lng)
{	
	var m = eid(map_area);
	if (m.style.display != "block") {
		m.style.display = "block";
		if (map == false) {
			
			//google.load("maps", "2");
			var title = eid("title").innerHTML;
			show_address(title, eid(display_address_div).innerHTML, lat, lng);
		} else {
			
			point = new google.maps.LatLng(lat, lng);
			map.setCenter(point, 15);
		}
	} else {
		m.style.display = "none";
	}
}

function validateFeedBackForm()
{
	var errors = "";
	if(eid("name").value == "")
	{
		errors += "Name can NOT be blank! \n";
	}
	if(eid("email").value == "")
	{
		errors += "Email can NOT be blank! \n";
	}
	if(eid("comments").value == "")
	{
		errors += "Comments can NOT be blank! \n";
	}
	
	if(errors == "")
	{
		if(isEmail(eid("email").value))
		{
			return true;
		}
		else
		{
			alert("Invalided Email!");
			return false;
		}
	}
	else
	{
		alert(errors);
		return false;
	}
}

