/*-------------------------------------------------------------------
	This script files contains all the elements needed to do a
	form submit using and IFRAME
---------------------------------------------------------------------*/


var m_bFirstLoad = true;
var m_bIsProcessing = false;
//var m_aFormReqHolder = new Array();
function globalForm (cURL,cDelimFormData,oCallBackFunc)
{
	
/*******************************************************
	cURL =				query string 
							Ex1: default.asp?class=Task&method=ListMain&key=listmain
							Ex2:globalForm("default.asp?class=Task&method=ListMain&key=listmain","QBE&=<ttt></ttt>##!Layout&=<mmm></mmm>",mycallbackfunction)						
	cDelimFormData =	Data to be submitted in the form
							Ex: QBE&=<ttt></ttt>##!Layout&=<mmm></mmm>
	oCallBackFunc =     the object or function to call back after iframe 
						receives data from the server
						
MB:11/4/2003 - Added support for file uploads.  The file value MUST be the first element in the Delimited list of form elements.
*******************************************************/				
	//create IFrame if not already submitting(processing)
	if(!m_bIsProcessing){
		var oIFrame = document.createElement("iframe");
		oIFrame.id = "GlobalIFrame";
		oIFrame.name = "GlobalIFrame";
		oIFrame.height= '0';
		oIFrame.width='0';	
		
		document.body.appendChild(oIFrame);	
		
		if(typeof(oCallBackFunc)=='string'){
			eval('oIFrame.attachEvent("onload", ' + oCallBackFunc + ')');
		} else {
			oIFrame.attachEvent('onload', oCallBackFunc);
		}
			
		
			//for some reason the GlobalIFrame name is needed here 
			//othewise the form will not be able to recognize it as a target		
		GlobalIFrame.name = "GlobalIFrame"
			//parse cDelimFormData				
		var aTokens = parseToken(cDelimFormData, "##!");			
		var iFormElements = aTokens.length;			
			
			//create form		
		oGlobalForm = document.createElement("form");
		oGlobalForm.id = "GlobalForm";
		oGlobalForm.name = "GlobalForm";
		oGlobalForm.style.position = "absolute";	
		oGlobalForm.target = "GlobalIFrame";
		oGlobalForm.method = "post";
		
			//create hi elelemts and append to form			
		for(var i = 0; i< iFormElements -1; i++){
			oHiddenFields = document.createElement("INPUT");
			var aArgName = parseToken(aTokens[i],"&=");
			oHiddenFields.id = aArgName[0];
			oHiddenFields.name = aArgName[0];
			oHiddenFields.type = "hidden";
			oHiddenFields.value = aArgName[1];
			oGlobalForm.appendChild(oHiddenFields);
			oHiddenFields = null;						
		}
			
			//append form to body
		document.body.appendChild(oGlobalForm);
		
			//set form action to url string
		
		document.all.GlobalForm.action = cURL;
		
		
		
			//flag that we are processing
		m_bIsProcessing = true;
			//submit form			
		
		GlobalForm.submit();
		
		
}
}
function killGlobalIFrameForm(){
		/* Kills(removes) global IFrame and form-prevents memory leak.
		   Callback function for form must call this function*/
		
		try{	
				document.all.GlobalIFrame.removeNode(true)
				document.all.GlobalForm.removeNode(true)
				
		}catch(e){};
		m_bIsProcessing = false;
}
function parseToken(cStrParsing, cDelimiter)
{
	var sParsedArr = cStrParsing.split(cDelimiter);	
	return sParsedArr;		
}
function isFirstLoad(){
	return m_bFirstLoad
}


