// JavaScript Document
var debug = false;	//whether you want to see the results of the javascript in alerts

//global response from ajax_product_form.php
var globalResponse="";

crir.addEvent(window, 'load', submitForm, false);

function submitForm()
{
	sendRequest(document.generalForm);
}

function sendRequest(objForm)
{
	document.getElementById('show').innerHTML = "<img src='/images/loading_chess.gif' style='padding:20px;' />"
	
	var vars = 'task=ajax_update';
	var regexp = RegExp(/[^0-9]/gi);	//regular expression
	var tmp="";
	
	try
	{
		for (var i=0; i<objForm.elements.length; i++)
		{
			if (objForm.elements[i].name)
			{	
				if (objForm.elements[i].type!="checkbox" || objForm.elements[i].checked)
				{
					vars += '&'+objForm.elements[i].name+'='+objForm.elements[i].value;
				}
				else
				{
					vars += '&'+objForm.elements[i].name+'=N';
				}
				if (objForm.elements[i].type=="checkbox")
				{
					objForm.elements[i].checked = false;
					objForm.elements[i].disabled = true;
					document.getElementById("label_for_"+objForm.elements[i].id).className = "checkbox_disabled";
				}
			}
		}
	}
	catch (e)
	{
		alert(e);
	}
	
	new Ajax.Request("/inc/ajax_search_form.php", 
		{ 
		method: 'post', 
		postBody: vars,
		onComplete: showResponse 
		});
	
	//return false;	//this is needed so page doesn't refresh
}

function showResponse(req)
{
	/*
	if (req.responseText.indexOf("***RELOAD_PAGE***") != -1)
	{
		window.location.reload();
		return;
	}
	//*/
	if (req.responseText.indexOf("***ONE_THING_FOUND***") != -1)
	{
		var onething = req.responseText.split("***ONE_THING_FOUND***");
		top.location.href = "/puzzle/"+onething[1];
		return;
	}
	//split up the response by *@@@* as noted in ajax_product_form.php 
	globalResponse = req.responseText.split('*@@@*');
	if (globalResponse.length > 1)
		updateFilterables();
	document.getElementById('show').innerHTML = req.responseText;
	
	//if nothing was found, make the form submit to the search form again
	if (req.responseText.indexOf("***NOTHING_FOUND***")!=-1)
	{
		document.generalForm.action = "/inc/search_form.php";
		document.generalForm.method = "post";
	}
}

function updateFilterables()
{
	var to_enable, i, paging;
	
	if (debug)
	{
		alert("Fields to enable:\n"+globalResponse[1]+"\n\nFields to check:\n"+globalResponse[2]);
	}
	try
	{
		if (globalResponse[1]!="")	//to enable
		{
			to_enable = globalResponse[1].split(",");
			for (i=0; i<to_enable.length; i++)
			{
				document.getElementById(to_enable[i]).disabled = false;
				document.getElementById("label_for_"+to_enable[i]).className = "checkbox_unchecked";
			}
			
			//things are already disabled that need to be, so we don't have to do anything with them
		}
		
		if (globalResponse[2]!="")	//to check
		{
			to_check = globalResponse[2].split(",");
			for (i=0; i<to_check.length; i++)
			{
				document.getElementById(to_check[i]).disabled = false;
				document.getElementById(to_check[i]).checked = true;
				document.getElementById("label_for_"+to_check[i]).className = "checkbox_checked";
			}
		}
	}
	catch (e)
	{
		//alert(e+"\nProblem with: "+to_enable[i]);
	}
	
	//show paging (Page X of Y)
	document.getElementById("paging").innerHTML = "Page "+globalResponse[3]+" of "+globalResponse[4];
	document.getElementById("paging2").innerHTML = "Page "+globalResponse[3]+" of "+globalResponse[4];
	document.getElementById("cur_page").value = globalResponse[3];
}

function clearAll()
{
	var objForm = document.generalForm;
	for (var i=0; i<objForm.elements.length; i++)
	{
		if (objForm.elements[i].name)
		{	
			if (objForm.elements[i].type=="checkbox")
			{
				objForm.elements[i].checked = false;
				objForm.elements[i].disabled = false;
				document.getElementById("label_for_"+objForm.elements[i].id).className = "checkbox_unchecked";
			}
		}
	}
	document.getElementById('cur_page').value = 1;
	sendRequest(objForm);
}

function navigate(direction)
{
	if (direction == "first")
	{
		document.getElementById('cur_page').value = 1;
	}
	else if (direction == "previous")
	{
		document.getElementById('cur_page').value = Math.max(1, parseInt(document.getElementById('cur_page').value)-1);
	}
	else if (direction == "next")
	{
		document.getElementById('cur_page').value = Math.min(1000, parseInt(document.getElementById('cur_page').value)+1);
	}
	else if (direction == "last")
	{
		document.getElementById('cur_page').value = 1000;	//hopefully there are never more than 1000 pages - sheesh.
	}
	submitForm();
}

function changeBar(key, obj)
{
	document.generalForm.elements[key].value = obj.value;
	submitForm();
}