// global flag
var isIE = false;
// global request and XML document objects
var req;
var curobj;
var cursubject;
var curfarm;

function createRequestObject() 
{
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        thereq = new XMLHttpRequest();
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        isIE = true;
        thereq = new ActiveXObject("Microsoft.XMLHTTP");
    }
	return thereq;
}

function display_category(the_value)
{
	req = createRequestObject();
	var url='ajax.php?f=display_category&id='+the_value;
	curobj = 'category_div';
	cursubject='content';
	if (req && url)
	{
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
	}
}

function get_suburb()
{
	req = createRequestObject();
	var url='ajax.php?f=get_suburb&id='+document.getElementById('state_id').value;
	curobj = 'suburb';
	cursubject='content';
	if (req && url)
	{
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
	}
}

function get_farm(the_farm)
{
	req = createRequestObject();
	var url='ajax.php?f=get_farm&id='+document.getElementById('zone_id').value;
	curobj='farm';
	curfarm = the_farm;
	cursubject='content';
	if (req && url)
	{
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
	}
}

function get_service_region(passed1, passed2)
{
	req = createRequestObject();
	var url='ajax.php?f=get_service_region&v='+passed1+'|'+passed2+'&id='+document.getElementById('service_state').value;
	curobj = 'service_state_sub';
	cursubject='content';
	if (req && url)
	{
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
	}
}

function save_region(passed1, passed2, theform)
{
	var temp_selected = new Array;
	var count=0;
	for (i=0; i<theform.service_region.options.length; i++)
	{
		if (theform.service_region.options[i].selected)
		{
			temp_selected[count] = theform.service_region.options[i].value;
			count++;
		}
	}
	req = createRequestObject();
	var url='ajax.php?f=save_region&v='+passed1+'|'+passed2+'&id='+temp_selected.join("|")+'&state='+document.getElementById('service_state').value;
	curobj = 'service_area';
	cursubject='content';
	if (req && url)
	{
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
	}
}

function get_postcode()
{
	if (document.getElementById('suburb_id').value)
	{
		req = createRequestObject();
		var url='ajax.php?f=get_postcode&id='+document.getElementById('suburb_id').value;
		curobj = 'postcode';
		cursubject='value';
		if (req && url)
		{
	        req.onreadystatechange = processReqChange;
	        req.open("GET", url, true);
	        req.send(null);
		}
	} else
	{
		document.getElementById('postcode').value='';
	}
}
function save_user(what, user, value)
{
	req = createRequestObject();
	var save_key = what;
	var save_user = document.getElementById('user_id_'+user).value;
	curobj = '';
	var url = 'ajax.php?f=save_user&v='+save_key+'|'+value+'|'+save_user;
	if (req && url)
	{
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
	}
}

function save_gallery_hits(pic_id)
{
	req = createRequestObject();
	curobj = '';
	var url = 'ajax.php?f=save_gallery&v='+pic_id;
	if (req && url)
	{
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
	}
}

function save_album_hits(pic_id)
{
	req = createRequestObject();
	curobj = '';
	var url = 'ajax.php?f=save_album&v='+pic_id;
	if (req && url)
	{
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
	}
}

function send_report(id,what,reason)
{
	req = createRequestObject();
	curobj = '';
	var url = 'ajax.php?f=send_report&v='+id+'|'+what+'|'+reason;
	if (req && url)
	{
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
	}
}

function rm (z,t,d)
{
	req = createRequestObject();
	url = "/ajax.php?f=v&z="+z+"&d="+d+"&t="+t;
	curobj = "rm";
	if (req)
	{
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
	}
}

function processRate(text)
{
	text = text.split("|");
	if (text[1])
	{
		document.getElementById('rate_icon').innerHTML = text[1];
	}
	
	if (text[0])
	{
		alert (text[0]);
	}
}

function dm(a, b)
{
	req = createRequestObject();
	var url = '/ajax.php?f=w&a='+a+'&b='+b;
	curobj = 'dm';
	if (req && url)
	{
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
	}
}

function im(a, b)
{
	req = createRequestObject();
	var url = '/ajax.php?f=x&a='+a+'&b='+b;
	curobj = 'im';
	if (req && url)
	{
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
	}
}

function si(a, b)
{
	req = createRequestObject();
	var url = '/ajax.php?f=y&a='+a+'&b='+b;
	curobj = 'si';
	if (req && url)
	{
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
	}
}

// handle onreadystatechange event of req object
function processReqChange()
{
    if (req.readyState == 4) 
	{
        // only if "OK"
        if (req.status == 200) 
		{
			if (curobj=="rm")
				processRate(req.responseText);
			else if (cursubject=='content')
			{
				document.getElementById(curobj).innerHTML=req.responseText;
				if (curobj=="farm")
				{
					get_all_farm(curfarm);
				}
			}
			else
				document.getElementById(curobj).value=req.responseText;
        } else {
		 	//alert ('Error');
         }
    } else
	{
	}
}
