var vIclBrowserId=0
, vIclAttr={"icl":1}
, vAwfActiveRid=0
, vAwfSeq=0
, vAwfQueue={}	// Queue in case awf is invoked while waiting for previous request
;

function
iclGetHtml()
{
	var l=document.getElementsByTagName("HTML");
	return l[0];
}

function
iclGetPageSizes()
{
	var x=0,y=0,w=0,h=0,e=iclGetHtml();
	if( e ){x=e.scrollLeft;y=e.scrollTop;w=e.offsetWidth;h=e.offsetHeight;};
	return {"scrollLeft":x,"scrollTop":y,"offsetWidth":w,"offsetHeight":h};
}

function
iclGetEventPos(e)
{
	var x=0,y=0;
	if( e )
	{
		if(e.x || e.y)
		{
			x=e.x;
			y=e.y;
		}
		else
		{
			x=e.clientX;
			y=e.clientY;
		}
	}
	return {"x":x,"y":y};
}
function
iclGetEvent(e)
{
	var bid=iclGetBrowserId();
	if( bid=="ie" )
		return window.event;
	else
		return e;
}
function
iclGetEventSrc(e,needId)
{
	if( (e=iclGetEvent(e)) )
		e = e.srcElement ? e.srcElement : e.target;
	if( e && needId && !e.id && e.tagName=="IMG")
		return e.parentNode;
	return e;
}
function
iclCancelEvent(e)
{
	var bid=iclGetBrowserId();
	if( bid=="ie" )
	{
		if(window.event)
		{
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		}
		return window.event;
	}
	else
	{
		if( e )
		{
			e.stopPropagation();
			e.preventDefault();
		}
		return e;
	}
}

function
iclGetBrowserId()
{ 	
	if( !vIclBrowserId )
	{
		if( navigator.userAgent.match(/\bMSIE\b/) )
			vIclBrowserId="ie";
		else
		{
			if( navigator.userAgent.match(/Firefox/) )
				vIclBrowserId="fx";		
			else
			if( navigator.userAgent.match(/Opera/) )
				vIclBrowserId="op";		
			else
				vIclBrowserId="unk";		
		}
	}
	return vIclBrowserId;
}


function
iclElt(id)
{
return document.getElementById(id); }

function
iclTopElt(vId)
{
	var vTop=iclGetTopFrame();
	return vTop.iclElt(vId);
}

function
iclSetEltHtm(id,v)
{ 
	var e;
	try{ 
		if( e = iclElt(id) )
		{
			e.innerHTML=v;
		}
		else
			alert("CannotSetElt("+id+"): "+v);
	}
	catch(ex)
	{}
}

function
iclSetTopEltHtm(vId,vHtm)
{
	var vTop=iclGetTopFrame();
	vTop.iclSetEltHtm(vId,vHtm);
}
// --
function
iclScrollToTop()
{ 
	var e=iclGetHtml();
	if(e)e.scrollTop=0;
}
// --
function
iclScrollElt(vId,vTop)
{ 
	var e=iclElt(vId);
	if(e)e.scrollIntoView(vTop);
}
// --
function
iclDisplayElt(vId,v)
{ 
	var e;
	if( e = iclElt(vId) )e.style.display=v;
}
// --
function
iclAddOption(vSel,vVal,vText)
{ 
	var vOpt=document.createElement("OPTION");
	vOpt.value=vVal;
	vOpt.text=vText;
	if( iclGetBrowserId()=="ie" )
		vSel.add(vOpt);
	else
		vSel.add(vOpt,null);
}

function
iclOnExpandLink(e,vId)
{
	var vElt
	,	vDiv
	,	vExp=0;
	if( !vId && e )
	{
		vElt = iclGetEventSrc(e,1);
		vId = vElt? vElt.id : 0;
	}

	if( vId  )
	{
		var vDiv=iclElt(vId+"_div");
		if( vElt && (vElt.tagName=="INPUT") && ( vElt.type=="radio" || vElt.type=="checkbox" ) )
		{
			vExp=vElt.checked;
			// Don't cancel event
		}
		else
		{	
			iclCancelEvent(e);
			vExp= vDiv && vDiv.style.display=="none";	
		}
		if(vDiv)
		{
			vDiv.style.display=vExp?"block":"none";
			if( vDiv=iclElt(vId+"_hide") )	
				vDiv.style.display=vExp?"none":"block";
			if( vExp )
			{
				vId+="_focus";
				if( iclElt(vId) )iclDelayFocus(vId,50);
			}
		}
	}
	else
		iclCancelEvent(e);
	return vExp;
}

function
iclAddDiv(id,vHtm,vAttr,vScroll)
{ 
	var e = id && id>"" ? iclElt(id) : document.body;
	if( e )
	{
		var v,vDiv=document.createElement("DIV");
		if( vAttr && vAttr!="0")
		{
			if( v=vAttr["id"] )vDiv.id=v;
			if( v=vAttr["class"] )vDiv.className=v;
		}
		vDiv.innerHTML=vHtm;
		e.appendChild(vDiv);
		if(vScroll)vDiv.scrollIntoView(false);
	}
}
function
iclGetEltVal(id)
{ 
	var e;
	return ( e = iclElt(id) )  ? e.value:"";
}
function
iclSetEltVal(id,v)
{ 
	var e;
	if( e = iclElt(id) )  e.value=v;
}

function
iclEnableElt(id,v)
{ 
	var e;
	if( e = iclElt(id) )e.disabled=v?false:true;
}
function
iclFocus(id)
{ 
	var e;
	if( e = iclElt(id) )
	{
		try{ e.focus(); return 1;}
		catch(e){}
	}
	alert("Cannot focus: "+id);
	return 0;
}
function
iclDelayFocus(id,delay)
{ 
	if(!delay)
		iclFocus(id);
	else 
		setTimeout("iclFocus('"+id+"')", delay); 
}

function
iclGetWinDoc(vWin)
{
	try{ return vWin?vWin.document:0; }
	catch(e) {	return 0; }
}
// --
function
iclGetFrameDoc(vFrame)
{
	if( typeof(vFrame)=="string" )vFrame=iclElt(vFrame);
	try{ return vFrame ? vFrame.contentWindow.document : 0;	}
	catch(e)
	{	return 0; }
}

function
iclGetFrameWin(vFrame)
{
	if( typeof(vFrame)=="string" )vFrame=iclElt(vFrame);
	try{ return (vFrame ) ? vFrame.contentWindow: 0;	}	// && vFrame.src>"" 
	catch(e)
	{	return 0; }
}
function
iclGetFrameLoader(vFrame)
{
	var vW=iclGetFrameWin(vFrame);
	return (vW && vW.AwfLoad) ? vW : 0;
}
// --
function
iclOnAwfSubmit(e,vElt,vExtra)
{
	iclCancelEvent(e);
	if( vElt.tagName!="FORM")vElt=vElt.form;
	AwfExecForm(vElt,vExtra);
}
// --
function
iclGetTopFrame()
{
	var vMe=window
		,vP=vMe.parent;
	if( vMe!=vP && vP.iclGetTopFrame)return vP.iclGetTopFrame();
	return vMe;
}
function
iclCopyTopFrameMap()
{
	var vTop=iclGetTopFrame();
	if( window!=vTop )vIclAttr["frame_map"]=vTop.vIclAttr["frame_map"];
}
// --
function
iclPrintFrameMap()
{	
	var vKey,vStr="",vMap = vIclAttr["frame_map"];
	if( vMap )
	for(vKey in vMap)
	{
		vStr+="<div>"+vKey+"="+vMap[vKey]+"</div>";
	}
	iclDebug("<b>frame_map</b><div style=\"padding-left:10px\">"+vStr+'</div>');
}
// --
function
iclMapFrameCode(vCode)
{
	var vMap=vIclAttr["frame_map"]
		,v=vMap ? vMap[vCode] : 0;
	return v ? v : vCode;
}
// --
function
iclGetFrameByCode(vCode)
{
	var vName=iclMapFrameCode(vCode)
	,	vMe=window;
	if( !vName )return 0;
	if( vName==vMe.name )return vMe;
	var vTop=iclGetTopFrame();
	return vName == '@top' ? vTop : vTop.iclFindFrame(vName,vTop!=vMe);
}
// --
function
iclFindFrame(vName,vTestSelf)
{
	var i,fr
	,	vMe=window;
	if( !vName )return 0;
	if( vTestSelf && vName==vMe.name )return vMe;
	for(i=0;i<frames.length;i++)
	{
		try {
			if( frames[i].iclFindFrame && (fr=frames[i].iclFindFrame(vName,1)) )
				return fr;
		}
		catch(e)
		{}
	}
	return 0;
}

function
ObjInfo(v)
{
	var a="";
	if( v )
	{
		a+="O";
		if( v.id )
			a+=" id:'"+v.id+"'";
		if( v.name )
			a+=" name:'"+v.name+"'";
		if( v.tagName )
			a+=" tag:'"+v.tagName+"'";
	}
	if( a<="" )
		a="null";
	return a;
}
var vTestCallNum=1;

function
AwfEvent(vTgt,vId,vParams)
{
	var vWin;
	if( !vTgt )
		vWin=iclGetTopFrame()
	else
	{
		var vType=vTgt.substr(0,1)
		,	vName=vTgt.substr(1);
		switch(vType)
		{
		case "c":
			vWin=iclGetFrameByCode(vName);
			break;
		case "f":
			vWin=iclGetTopFrame().iclFindFrame(vName,1);
			break;
		case "w":
			vWin=window;
			break;
		default:
			return;
		}
	}
	if( vWin && vWin.AwfDispEvent)vWin.AwfDispEvent(vId,vParams);
}

function
AwfDispEvent(vId,vParams)
{
	if( window.OnAwfEvent && !window.OnAwfEvent(vId,vParams) )
		return 0;
	var i,fr;
	for(i=0;i<frames.length;i++)
	{
		fr=frames[i];
		if( fr.AwfDispEvent && !fr.AwfDispEvent(vId,vParams))
			return 0;
	}
	return 1;
}
function
OnAwfExec(e,vCmd,vData,vExtra)
{
	iclCancelEvent(e);
	AwfExec(vCmd,vData,vExtra)
}
// --
function
AwfExec(vCmd,vData,vExtra)
{
	var vType,vFmt;
	if( !vExtra )vExtra={};
	
	if( !vData )vData="";
	if( vCmd )
		vExtra["cmd"]=vCmd;
	else
	if( !vExtra["cmd"] )
	{
		alert("no_cmd");
		return 0;
	}
	
	if( !(vType=vExtra["type"]) )vType="post";
	
// ExecLoad
	var vTask=AwfAllocTask(vType,vExtra);
	
	if( typeof(vData)=="object" )
	{
		var vKey
			,vVars=vData
			,vData="";
		if( vVars )
		{
			for(vKey in vVars )
				if( vKey!="awf" )vData+="&"+vKey+"="+encodeURIComponent(vVars[vKey]);
			vData=vData.substr(1);
		}
	}
	vTask.data = vData;
	return AwfStartTask(vTask);
}
// --
function
AwfLoad(vCmd,vData,vExtra)
{
	if( !vExtra )vExtra={};
	vExtra["type"]="post";
	return AwfExec(vCmd,vData,vExtra); 
}

// --
function
AwfExecFormId(vFormId,vExtra)
{ return AwfExecForm(iclElt(vFormId),vExtra); }
// 
function
AwfBuildFormExtra(vForm,vExtra)
{
	if( !vForm )return 0;
	if( !vExtra )vExtra={};
	vExtra["form"]=vForm;
	if( !vExtra["url"] && vForm.action)vExtra["url"]=vForm.action;
	if( !vExtra["cmd"] )vExtra["cmd"]="submit";
	return vExtra;
}
// --
function
AwfExecForm(vForm,vExtra)
{
	if( !(vExtra = AwfBuildFormExtra(vForm,vExtra)) )
		return 0;
	if( !vExtra["disable_list"] && !vExtra["no_auto_disable"])
		vExtra["disable_list"]=[vForm];
	var i=0,ix,e,vIsUpload=0;
	vVars=new Array();
	vVars["awf_form_id"]=vForm.id;
	var vDis={};
	for(ix=0;ix<vForm.elements.length;ix++)
	{
		e=vForm.elements[ix];
		if( e.name=="awf" )
			continue;
		if( e.tagName=="INPUT" )
		{
			if( e.type=="file" )
			{
				if( e.value > "" )
				{
					vIsUpload=1;	// use uploader frame
					break;
				}
				continue;	// ignore
			}
			if( (e.type=="radio" || e.type=="checkbox") && !e.checked  )
				continue;
		}
		else
		if( !(e.tagName=="SELECT"||e.tagName=="TEXTAREA") )
			continue;
		vVars[e.name]=e.value;
	}
	
	if( vIsUpload )
	{
		// Form should post to a hidden frame: We can't use HttpAsyncRequest for uploads
		// The hidden frame should exist and form's TARGET should be set
		var vTask=AwfAllocTask("upload",vExtra)
		,	vUrl
		,	vProc;
		vTask["fail_if_busy"]=true;
		vTask["uploadTimer"]=vTask["uploadPerc"]=0;
		
		if( !(vProc=vExtra["uploadProc"]) )vProc=AwfGetAttr("awf_upload_proc");
		if( !(vUrl=vExtra["uploadUrl"]) )vUrl=AwfGetAttr("awf_url");
		
		vTask["uploadUrl"]=vUrl;
		vTask["uploadProc"]=vProc;

		return AwfStartTask(vTask);
	}
	else
		return AwfExec(0,vVars,vExtra);
}
// --
function
AwfAllocTask(vType,vExtra)
{
	var vUrl = vExtra["url"]
	,	vTag = vExtra["tag"]
	,	vFmt = vExtra["fmt"]
	,	vTimeout=vExtra["timeout"]
	,	vCs="utf-8";
	if( !vFmt )vFmt="post";
	if( !vTag)vTag="";
	if( !vUrl )vUrl=document.location.pathname;
	if( !vTimeout) vTimeout=120000;
	return {"type":vType
			,"cmd":vExtra["cmd"]
			,"tag":vTag
			,"form":vExtra["form"]
			,"url":vUrl
			,"win":window
			,"timeout":vTimeout
			,"timeoutTimer":0
			,"fail_if_busy":vExtra["fail_if_busy"]
			,"disable_list":vExtra["disable_list"]
			,"fmt":vFmt
			,"charSet":vCs};
}
// --
function
AwfGetTaskUrl(vTask)
{
	return vTask.url+"?awf="+AwfGetTaskQS(vTask);
}
// --
function
AwfGetTaskQS(vTask)
{
	return vTask.rid+";"+vTask.cmd+";"+vTask.type+";"+vTask.fmt+";"+vTask.charSet
		+"&caller="+vTask.win.name
		+"&executer="+window.name;
}

function
AwfGetWorkWin()
{
	var vWin=iclGetFrameByCode("awf");
	if( !vWin || !vWin.AwfGetWorkWin)
		// Not found or does not contain awf scripts, try the top frame
		vWin=iclGetTopFrame();
	return vWin;
}
// --
function
AwfGetAttr(vName)
{ 
	var vAttr = AwfGetWorkWin().vIclAttr; 
	return vAttr ? vAttr[vName]:null;
}

function
AwfGetWorkFrame(vId,vCreate)
{
	vId="awf_"+vId+"_worker";
	var vFrame=iclElt(vId);
	if(!vFrame && vCreate)
	{
		vFrame=document.createElement("IFRAME");
		vFrame.id=vId;
		vFrame.name=vId;
		vFrame.style.width="1px";
		vFrame.style.height="1px";
		vFrame.style.display="none";
		alert( ObjInfo(vFrame) );
		document.body.appendChild(vFrame);
		window.frames[vId].window.onload=function(){ alert('on_load'); }
	}
	return vFrame;
}
function
AwfOnFrameLoad()
{
	alert("AwfOnFrameLoad");
}
// --
function
AwfStartTask(vTask)
{
	// Find special frame for awf calls
	var vWin=AwfGetWorkWin();
	if( vWin!=window )	// delegate if not us
		return vWin.AwfStartTask(vTask);
		
	var vRid=vTask.rid;
	if( !vRid )
	{
		if( vTask.in_queue )
		{
			iclDebug("AwfStartTask("+vRid+") does not have a rid, but is in queue!");
			return 0;
		}
		var d=new Date();
		vRid = ""+d.getTime()
		vTask.rid=vRid="t"+vRid.substr(vRid.length-10,8)+vAwfSeq;
		vAwfSeq++;
		vTask.in_queue=1;
		vAwfQueue[vRid]=vTask;
	}
	
	if( vTask.type=="upload" )
	{
		var vForm=vTask.form
		,	vElt=vForm?vForm.elements["awf"]:0
		,	vApc=vForm?vForm.elements["APC_UPLOAD_PROGRESS"]:0;
		if( !vForm || !vElt || !vApc || !vForm.id)
		{
			AwfEndTask(vTask,"Invalid form");
			return 0;
		}
		vTask["uploadFormId"]=vForm.id;
		vElt.value=AwfGetTaskQS(vTask);
		vApc.value=vRid;
		AwfDisableTaskElts(vTask,false);
		alert("WILL_SUBMIT_FORM (id="+vForm.id+", target="+vForm.target+"\nrid="+vElt.value+")");
		vForm.submit();
		// Disable form elements while waiting
		AwfDisableTaskElts(vTask,true);
		AwfReportUpload(vTask,"start",{});
		AwfSetUploadTimer(vTask,50);
		
		return vRid;
	}
	else	
	if( vAwfActiveRid )
	{
		if( vTask.fail_if_busy )
		{
			AwfEndTask(vTask,"Task cannot wait");
			return 0;
		}
		// iclDebug("AwfStartTask("+vRid+") waits for "+vAwfActiveRid);
		// AwfPrintActiveTasks();
		AwfDisableTaskElts(vTask,true);
		return vRid;	// Will wait in queue
	}
	if( !vTask.data )vTask.data="";
	if( vTask.type=="post" )	
	{
		var vHttReq = AwfAllocHttpReq();
		if( !vHttReq )
		{
			AwfEndTask(vTask,"Cannot create request");
			return 0;
		}
		try{
			var vCT;
			vHttReq.onreadystatechange = function ()
				{ 
					if(vHttReq.readyState == 4 )
						AwfHttpReqEnd(vRid,vHttReq.status,vHttReq.responseText); 
				}

			if( vTask.fmt == "raw" )
				vCT="text/plain;charset="+vTask.charSet;
			else
			if( vTask.fmt == "post" )
				vCT="application/x-www-form-urlencoded";
			else
				vCT=0;
			vHttReq.open("POST", AwfGetTaskUrl(vTask) );			
			if( vCT )vHttReq.setRequestHeader("Content-Type",vCT);
			vHttReq.setRequestHeader("Content-Length",vTask.data.length);
			vHttReq.send(vTask.data);
		}
		catch(e)
		{
			vHttReq=null;
			AwfEndTask(vTask,"Exception: "+e);
			return 0;
		}
	}
	else
	if( vTask.type=="load" )
	{
		var vFrame=AwfGetWorkFrame("load",1);
		vFrame.src=AwfGetTaskUrl(vTask)+"&"+vTask.data;
	}
	else
	{
		AwfEndTask(vTask,"Invalid type");
		return 0;
	}
	vTask.timeoutTimer=setTimeout("AwfTimeout('"+vRid+"')", vTask.timeout);
	vAwfActiveRid=vRid;
	AwfDisableTaskElts(vTask,true);
	return vRid;
}
function
AwfDisableTaskElts(vTask,vDis)
{
	if( vDis )
	{
		if( vTask.disabled_elts || !vTask.disable_list)
			return;	// Already disabled
		vTask.disabled_elts=iclDisableElts(vTask.disable_list);
	}
	else
	{
		if( vTask.disabled_elts )
		{
			iclEnableElts(vTask.disabled_elts);
			vTask.disabled_elts=0;
		}
	}
}

function
AwfGetUploadFormRid(vTask)
{
	var vForm=vTask.win.iclElt(vTask.uploadFormId)
	,	vApc=vForm?vForm.elements["APC_UPLOAD_PROGRESS"]:0;
	return vApc?vApc.value:0;
}
function
AwfSetUploadTimer(vTask,vMsecs)
{
	vTask.uploadTimer=setTimeout("AwfUploadTimer('"+vTask.rid+"')", vMsecs);
}

function
AwfUploadTimer(vRid)
{
	var vTask = vAwfQueue[vRid];
	if( vTask )
	{
		vTask.uploadTimer=0;
		// Check if upload form is still preset
		var vFormRid=AwfGetUploadFormRid(vTask);
		if( vFormRid!=vRid )
		{
			// Form no longer exists or is uploading another thing
			AwfEndTask(vTask,"aborted (now uploading:"+vFormRid+")");
			return;
		}
		
		// Invokes the page which should in turn invoke the AwfOnUploadProgress() method
		if( !vTask.uploadUrl || !AwfExec("upload_progress","rid="+vRid,{"url":vTask.uploadUrl,"fail_if_busy":1}) )
		{
			iclDebug("AwfUploadTimer("+vRid+"): wait_again");
			AwfSetUploadTimer(vTask,1000);
		}
	}
	else
	{
		iclDebug("AwfUploadTimer("+vRid+"): task_not_found");
	}
}

function
AwfOnUploadProgress(vRid,vPerc)
{
	var vTask = vAwfQueue[vRid];
	if( !vTask || vTask.type!="upload")
	{
		iclDebug("AwfOnUploadProgress("+vRid+","+vPerc+"): task_not_found");
		return;
	}
	vTask.uploadPerc=vPerc;
	if( AwfGetUploadFormRid(vTask)==vRid )
	{
		AwfReportUpload(vTask,"progress",{"perc":vPerc});
		if( vPerc<100 )AwfSetUploadTimer(vTask,1000);
	}
	else
	{
		AwfEndTask(vTask,"no_longer_active");
	}
}
function
AwfReportUpload(vTask,vEvent,vParams)
{
	if( vTask.uploadProc )
	{
		vParams["tag"]=vTask.tag;
		vTask.uploadProc(vEvent,vParams);
	}
}

// --
function
AwfTimeout(vRid)
{
	AwfEndTaskRid(vRid,"Timeout",1);
}

// --
function
AwfRemoveTask(vRid)
{
	var vKey,vFound=0,vTask,vNewQueue={};
	for(vKey in vAwfQueue )
	{
		vTask=vAwfQueue[vKey];
		if( vKey == vRid )
			vFound=vTask;	// Found task: Don't place it in the queue
		else
			vNewQueue[vKey]=vTask;
	}
	if( vFound )
	{
		vFound.in_queue=0;
		vAwfQueue=vNewQueue;	// Replace old queue
	}
	return vFound;
}
// --
function
AwfEndTaskRid(vRid,vErr,vTimeout)
{
	var vTask= AwfRemoveTask(vRid);
	if( vTimeout )alert("AwfTask(rid="+vRid+" TIMEOUT, task_exists=" + (vTask?"yes":"no") );
	if( vTask )
	{
		if(vTimeout)vTask.timeoutTimer=0;
		AwfEndTask(vTask,vErr);
	}
	else
	{
		iclDebug("AwfEndTaskRid("+vRid+") task not found");
		AwfPrintActiveTasks();
		AwfOnTaskEnd(vRid);
	}
	return vTask;
}
// --
function
AwfEndTask(vTask,vErr)
{
	var vRid=vTask.rid;
	if( vTask.timeoutTimer )clearTimeout(vTask.timeoutTimer);
	if( vTask.uploadTimer)clearTimeout(vTask.uploadTimer);
	if( vTask.in_queue  )
	{
		if( !AwfRemoveTask(vRid) )
			iclDebug("AwfEndTask("+vRid+"): in_queue=true, but AwfRemoveTask returns false");
	}
	else
	{
		if( AwfRemoveTask(vRid) )
			iclDebug("AwfEndTask("+vRid+"): in_queue=false, but AwfRemoveTask returns true");
	}
	if( vErr )iclDebug("AwfEndTask("+vRid+") status="+(vErr?"err:"+vErr : "ok") );
	AwfDisableTaskElts(vTask,false);
	
	if( vTask.type=="upload" )
	{
		if( !vErr && AwfGetUploadFormRid(vTask)==vRid)
			AwfReportUpload(vTask,"stop",{});
	}
	else
		AwfOnTaskEnd(vRid);
}
// --
function
AwfOnTaskEnd(vRid)
{
	if( vAwfActiveRid == vRid )
	{
		var vNextTask=0,vTask;
		vAwfActiveRid=0;
		for(vRid in vAwfQueue )
		{
			vTask=vAwfQueue[vRid];	// Found first task
			if( vTask.type!="upload" )
			{
				vNextTask=vTask;
				break;
			}
		}
		if( vNextTask )
		{
			if( !vNextTask.in_queue )
				iclDebug("AwfEndTask("+vRid+"): in queue but in_queue=false");
			AwfStartTask(vNextTask);	
		}
	}
}
function
AwfOnTaskData(vTask,vData)
{
	if( vData )
	{
		try
		{eval(vData);}
		catch(e)
		{}
		
	}
}

function
AwfPrintActiveTasks()
{
	var vTask;		
	for(vRid in vAwfQueue )
	{
		vTask=vAwfQueue[vRid];	// Found first task
		iclDebug("ActiveTask="+vRid+" type="+vTask.type);
	}
}
function
AwfHttpReqEnd(vRid,vStatus,vData)
{
	var vTask = AwfEndTaskRid(vRid,null,0);
	if( vTask )
	{
		if( vStatus == 200 )
			vTask.win.AwfOnTaskData(vTask,vData);	
	}
}		

function
AwfOnLoadData(vRid,vData)
{
	var vTask = vAwfQueue[vRid];
	if( vTask )
	{
		if( vTask.timeoutTimer )
		{
			// Reset timer
			clearTimeout(vTask.timeoutTimer);
			vTask.timeoutTimer=setTimeout("AwfTimeout('"+vRid+"')", vTask.timeout);
		}
		vTask.win.AwfOnTaskData(vTask,vData);
		return 1;
	}
	// Task not found, maybe we're not the awf window
	var vAwf=AwfGetWorkWin();
	if( vAwf!=window )return vAwf.AwfOnLoadData(vRid,vData);
		
	iclDebug("AwfOnLoadData("+vRid+") task not found");
	AwfPrintActiveTasks();
	return 0;
}
// --
function
AwfOnLoadEnd(vRid)
{
	var vAwf=AwfGetWorkWin();
	if( vAwf!=window )return vAwf.AwfOnLoadEnd(vRid);
	AwfEndTaskRid(vRid,null,0);
}		

// --
function
AwfAllocHttpReq(vUrl)
{
	var hr=null;
	if(window.XMLHttpRequest) 
	{ 
		try
		{ hr=new XMLHttpRequest(); 	} 
		catch(e) 
		{ hr=null;}
	} 
	if( !hr && window.ActiveXObject )
	{
		try { hr = new ActiveXObject("Msxml2.XMLHTTP"); } 
		catch(e) 
		{ hr=null;}
		
		if( !hr )
		{
			try { hr = new ActiveXObject("Microsoft.XMLHTTP"); } 
			catch (e) {hr=null}
		}
	}
	return hr;
}
function
iclHideObjects()
{
	var vA={count:0,list:new Array()}
	var e,i,vM;
	try {
		vM=document.embeds.length;
	}
	catch(e) {
		vM=0;
	}
	for(i=0;i<vM;i++)
	{
		e=document.embeds.item(i);
		vA.list[vA.count++]={
			 "elt":e
			,"vis":e.style && e.style.visibility ? e.style.visibility : ""
		};
		e.style.visibility="hidden";
	}
	for(i=0;i<frames.length;i++)
	{
		try {
			if( frames[i].iclHideObjects )
			{
				var j,vB=frames[i].iclHideObjects();
				for(j=0;j<vB.count;j++)
					vA.list[vA.count++]=vB.list[j];
			}
		}
		catch(e)
		{}
	}
	return vA;
}

function
iclRestoreObjects(vA)
{
	if( vA && vA.count )
	{
		var i;	
		for(i=0;i<vA.count;i++)		
			vA.list[i].elt.style.visibility=vA.list[i].vis;
	}
}
function
iclDisableElts(vObj)
{
	if(vObj)
	{
		var vA={count:0,list:new Array()};
		iclDoDisable(vA,vObj);
		return vA["list"];
	}
	return null;
}

function
iclDoDisable(vA,vObj)
{
	if( !vObj )return;
	var e,to=typeof(vObj);
	if( to=="string" )
	{
		if( (e=iclElt(vObj)) && !e.disabled)
		{
			vA.list[vA.count++]=e;
			e.disabled=true;
		}
	}
	else
	if( to=="object" )
	{
		if( vObj.tagName )
		{
			if( vObj.tagName=="FORM" )
			{
				var ix;
				for(ix=0;ix<vObj.elements.length;ix++)
				{
					e=vObj.elements[ix];
					if( (e.tagName=="SELECT"||e.tagName=="TEXTAREA"||e.tagName=="INPUT"||e.tagName=="BUTTON") && !e.disabled )
					{
						vA.list[vA.count++]=e;
						e.disabled=true;
					}
				}
			}
			else
			if( !vObj.disabled )
			{
				vA.list[vA.count++]=vObj;
				vObj.disabled=true;
			}
		}
		else
		{
			var vKey;
			for(vKey in vObj )
				iclDoDisable(vA,vObj[vKey]);
		}
	}
}
// --
function
iclEnableElts(vList)
{
	var ix,mx;
	if(vList && (mx=vList.length)>0)
		for(ix=0;ix<mx;ix++)vList[ix].disabled=false;
}
// --
function
iclDebug(msg)
{ 
	var vWin=iclGetFrameByCode("view");
	if( vWin && vWin.iclDebug && vWin!=window )return vWin.iclDebug(msg);
	if( iclElt("id_icl_debug") )
		iclAddDiv("id_icl_debug",msg,0,0); 
	else
		iclAddDiv(null,msg,0,0); 
	return 1;
}


function
iclB64(vStr)
{
	var vWin=window;
	while(1)
	{
		if( vWin.vIclB64Jones )return vWin.vIclB64Jones.encode(vStr);
		if( vWin==vWin.parent || !vWin.parent)return null;
		vWin=vWin.parent;
	}
}
function
iclShare(vId,vUrl,vTitle)
{
	var vWin=window;
	while(1)
	{
		if( vWin.vIclShareJones )return vWin.vIclShareJones.Open(vId,vUrl,vTitle);
		if( vWin==vWin.parent || !vWin.parent)
		{
			alert("vIclShareJones not found!");
			return 0;
		}
		vWin=vWin.parent;
	}
}
function
iclGetEdit(vId)
{
	var vElt=iclElt(vId);
	if( vElt )
	{
		if( vElt.tagName=="IFRAME")
		{
			var vWin=iclGetFrameWin(vElt);
			if( vWin )
			{
				var fck=vWin.FCK;
				if( fck && fck.UpdateLinkedField)
					return {"type":"fck","elt":vElt,"fck":fck};
			}
		}
		else
		if( vElt.tagName=="TEXTAREA" || vElt=="INPUT" )
			return {"type":"std","elt":vElt};
	}
	return null;
}
function
iclGetEditValue(vId)
{
	var vVal=""
		,vEdit=iclGetEdit(vId);
	if( vEdit )
	{
		if( vEdit.type=="fck")
		{
			vEdit.fck.UpdateLinkedField();
			vVal = vEdit.fck.LinkedField.value; 
		}
		else
		if( vEdit.type=="std")
			vVal=vEdit.elt.value;
	}
	return vVal;
}
function
iclSetEditValue(vId,vVal)
{
	var vEdit=iclGetEdit(vId);
	if( vEdit )
	{
		if( vEdit.type=="fck")
			vEdit.fck.SetHTML(vVal);
		else
		if( vEdit.type=="std")
			vEdit.elt.value=vVal;
	}
	return vVal;

}

function
iclSetStyleElt(vId,vCss)
{
	var bid=iclGetBrowserId()
	,	e=iclElt(vId);
	if( e )
	{
		if( bid=="ie" )
		{
			alert("will set cssText");
			e.cssText=vCss;	
		}
		else
			e.innerHTML=vCss;	
	}
}



