var IFrameObj; // our IFrame object
function callToServer( theFormName ) {
    if (!document.createElement) {return true};
    var IFrameDoc;
    var URL = '/perl/furnace.pl' + buildQueryString(theFormName);
    if (!IFrameObj && document.createElement) {
	// create the IFrame and assign a reference to the
	// object to our global variable IFrameObj.
	// this will only happen the first time 
	// callToServer() is called
	try {
	    var tempIFrame=document.createElement('iframe');
	    tempIFrame.setAttribute('id','RSIFrame');
	    tempIFrame.style.border='0px';
	    tempIFrame.style.width='0px';
	    tempIFrame.style.height='0px';
	    IFrameObj = document.body.appendChild(tempIFrame);

	    if (document.frames) {
		// this is for IE5 Mac, because it will only
		// allow access to the document object
		// of the IFrame if we access it through
		// the document.frames array
		IFrameObj = document.frames['RSIFrame'];
	    }
	} catch(exception) {
	    // This is for IE5 PC, which does not allow dynamic creation
	    // and manipulation of an iframe object. Instead, we'll fake
	    // it up by creating our own objects.
	    iframeHTML='\<iframe id="RSIFrame" style="';
	    iframeHTML+='border:0px;';
	    iframeHTML+='width:0px;';
	    iframeHTML+='height:0px;';
	    iframeHTML+='"><\/iframe>';
	    document.body.innerHTML+=iframeHTML;
	    IFrameObj = new Object();
	    IFrameObj.document = new Object();
	    IFrameObj.document.location = new Object();
	    IFrameObj.document.location.iframe = document.getElementById('RSIFrame');
	    IFrameObj.document.location.replace = function(location) {
		this.iframe.src = location;
	    }
	}
    }

    if (navigator.userAgent.indexOf('Gecko') !=-1 && !IFrameObj.contentDocument) {
	// we have to give NS6 a fraction of a second
	// to recognize the new IFrame
	setTimeout('callToServer()',10);
	return false;
    }

    if (IFrameObj.contentDocument) {
	// For NS6
	IFrameDoc = IFrameObj.contentDocument; 
    } else if (IFrameObj.contentWindow) {
	// For IE5.5 and IE6
	IFrameDoc = IFrameObj.contentWindow.document;
    } else if (IFrameObj.document) {
	// For IE5
	IFrameDoc = IFrameObj.document;
    } else {
	return true;
    }

    IFrameDoc.location.replace(URL);
    return false;
}

function buildQueryString(theFormName) {
    theForm = document.forms[theFormName];
    var qs = ''
    for (e=0;e<theForm.elements.length;e++) {
	if (theForm.elements[e].name!='') {
	    if ( theForm.elements[e].name=='phase' ) {
	      for (var i = 0; i < theForm.phase.length; i++){
		    if (theForm.phase[i].checked) {
			qs+=(qs=='')?'?':'&'
			qs+='phase='+escape( theForm.phase[i].value )
			break
		    }
		}
	    }
	    else if ( theForm.elements[e].name=='fuel_type' ) {
	      for (var i = 0; i < theForm.fuel_type.length; i++){
		    if (theForm.fuel_type[i].checked) {
			qs+=(qs=='')?'?':'&'
			qs+='fuel_type='+escape( theForm.fuel_type[i].value )
			break
		    }
		}
	    }
	    else if ( theForm.elements[e].name=='air_flow' ) {
	      for (var i = 0; i < theForm.air_flow.length; i++){
		    if (theForm.air_flow[i].checked) {
			qs+=(qs=='')?'?':'&'
			qs+='air_flow='+escape( theForm.air_flow[i].value )
			break
		    }
		}
	    }
	    else if ( theForm.elements[e].name=='afue' ) {
	      for (var i = 0; i < theForm.afue.length; i++){
		    if (theForm.afue[i].checked) {
			qs+=(qs=='')?'?':'&'
			qs+='afue='+escape( theForm.afue[i].value )
			break
		    }
		}
	    }
	    else if ( theForm.elements[e].name=='input_btu' ) {
		qs+=(qs=='')?'?':'&'
		qs+='input_btu='+escape( theForm.input_btu.options[theForm.input_btu.selectedIndex].value )
	    //    break
	    }
	    else if ( theForm.elements[e].name=='search_type' ) {
		break
	    }
	    else {
		qs+=(qs=='')?'?':'&'
		qs+=theForm.elements[e].name+'='+escape(theForm.elements[e].value)
	    }
	}
    }
    //Make sure furnace.pl returns just the count
    qs+=(qs=='')?'?':'&'
    qs+='search_type=picker'

    return qs
}

function handleResponse( count ) {
    var responseMessage = document.getElementById('count_div');
    responseMessage.innerHTML = count;
}
