	function selectTransactionForRefund(amountField, checkboxField, counter)
	{
		if (amountField.length == undefined)
		{
			// single field
			if (amountField.value !="")
			 	checkboxField.checked = true;
			 else
			 	checkboxField.checked = false;
		}
		else
		{
			if (amountField[counter].value !="")
			 	checkboxField[counter].checked = true;
			 else
			 	checkboxField[counter].checked = false;
		}
	}

	function selectAll(state)
	{
	   if (document.refundForm.selected.length == undefined)
		   document.refundForm.selected.checked = state;
	   else
	   {
		   for (i=0;i<document.refundForm.selected.length;i++)
				document.refundForm.selected[i].checked = state;
		}
	}

	function setCheckBoxState()
	{
		if (document.refundForm.selected.length == undefined)
			document.refundForm.checkboxString.value = document.refundForm.selected.checked;		
		else
		{
			for (i=0;i<document.refundForm.checkboxString.length;i++)
			{
				document.refundForm.checkboxString[i].value = document.refundForm.selected[i].checked;					
			}
		}
	}

	// not used. example of ajax.request
	function doAjaxRequest_NotUsed(divId, transactionId)
	{
		var url = 'getTransactionDetails.html';
		var pars = 'transactionId='+transactionId;
		
		var myAjax = new Ajax.Request(
			url, 
			{
				parameters: pars,
				onComplete: showResponse
			});
	    document.getElementById(divId).innerHTML = '<span class="waitMsg">Loading....</span>';			
	}

	// not used.
	function showResponse(originalRequest)
	{
		document.getElementById('getDetailsDiv').innerHTML = originalRequest.responseText;
	}
	
	function getPaypalBalance(makeAPICall)
	{
		// do not make the call if false is passed. on the first invocation, this value is blank, hence the function enters the else condition.
		// the result of the first call is saved in session. on future calls, we pass this value. if false, we avoid future calls.
		// this is done so as to make the getpaypalbalance call once and continue making if successful else stop ..for that session.
		
		if (makeAPICall == 'false') 
		{
			return;
		}
		else
		{
			doAjax('ppBalance', 'getBalance.html', 0);
		}
	}
	
	// main ajax call that handles calling 'getBalance.html' ,'getTransactionDetails.html' and 'searchRelated.html'
	function doAjax(divName, url, transactionId) {
		var pars = 'transactionId='+transactionId;
		new Ajax.Updater(divName, url,
			{ parameters: pars, evalScripts: false, 
			}
		);
		$(divName).innerHTML = '<span class="waitMsg">Loading....</span>';
	}

	// Ajax call that handles Search
	function doSearch(divName, url, form) {
		var queryStr = buildQueryString(form);
	
		new Ajax.Updater(divName, url, 
			    { parameters: queryStr, method : 'post' , evalScripts: false,
			    }
		);
		$(divName).innerHTML = '<span class="waitMsg">Loading....</span>';
	}
	
	function buildQueryString(form)
	{
		var queryStr = "";
		var elems = form.elements;
		for (var x = 0; x < elems.length; x++) 
		{
			var elem = elems[x];
			var elemValue = $F(elem);
			/* Certain field values like ... can have special 
			   characters like '&' etc. So we make a check and escape it 
			   and send it. */
			   if (elem.name == "refundableOnly")
			   {
				    if (elem.checked == false)
				    	queryStr += elem.name + "=" + "false" + "&";
				    else
				    	queryStr += elem.name + "=" + "true" + "&";
			    }
			    else if (elem.name != "refundableOnly")
			    {
			       if (elemValue != null && !elemValue.blank()) 
			       {
						if(elemValue != null && elemValue.include('&'))
						{
							queryStr += elem.name + "=" + escape($F(elem)) + "&";
						}
						else
						{
							queryStr += elem.name + "=" + $F(elem) + "&";
						}
					}
				}
		}
		return queryStr;
	}
	
