/*
*	Paremtric search javascript
*/

/*
*	Create the search query by creating a valid GET request from the available fields
*/
function psearch(form_id) {
	var form=document.getElementById(form_id);
	var element=null;
	var i=0;
	var j=0;
	var query='';
	var replacements=new Array();

	for(i=0;i<form.elements.length;i++) {
		element=form.elements[i];

		if (element.tagName.toLowerCase()=='select') { // only do select elements for now
			replacements[replacements.length]=element.id;

			for(j=0;j<element.length;j++){
				if(element.options[j].selected){
					
					query=query+'&'+element.name+'='+encodeURIComponent(element.options[j].value);
				}
			}
		}
	}

	HTML_AJAX.replace('psearch_response','/res/process.php?action=getallfields&pname='+replacements[i]+query);
}

// Override the ajax function cos IE select.innerHTML doesn't play ball
// this version deals with getallfields
// the number of \n is a delimter....
HTML_AJAX.replace=function(id) {
	var callback = function(result) {

		var reg = new RegExp('<option[^v]*value="([^"]*)"([^>]*)>([^<]*)</option>', "i");
		var res=null; // option/ values for each option
		var details=null; // id and innnerhtml for each element
		var newvals=null; // array of res before regexp
		var element=null; // current element in question
		var splitres=result.split('\n\n\n');

		for (var x=0;x<splitres.length;x++) {
			details=splitres[x].split('\n\n');
			element=document.getElementById(details[0]);
			newvals=details[1].split('\n');

			element.options.length=0; //clear array

			for(var i=0;i<newvals.length;i++) {
				res=reg.exec(newvals[i]);
				if (res) {
					element.options.length++;
					element.options[element.options.length-1].text=res[3];
					element.options[element.options.length-1].value=res[1];
					if (res[2].indexOf('selected')>0) element.options[element.options.length-1].selected=true;
				}
			}

		}
    }
	if (arguments.length == 2) {
		// grab replacement
        HTML_AJAX.grab(arguments[1],callback);
	} else {
		// call replacement
		var args = new Array();
		for(var i = 3; i < arguments.length; i++) {
			args.push(arguments[i]);
		}
		HTML_AJAX.fullcall(HTML_AJAX.defaultServerUrl,HTML_AJAX.defaultEncoding,arguments[1],arguments[2],callback,args, false, true);
	}
}

/*
*	Reset the search
*/
function preset () {
	HTML_AJAX.replace('psearch_response','/res/process.php?action=getallfields');
}