var req;
var req2;
var lastval=-1;
var lastid=-1;
var lastval2="";

var lastcatval=-1;
var lastcatindid=-1;
var lastcatid=-1;
var lastcatval2="";
var AccordianDefaultPanel=0;

var bSaveInProgress=false;

var DEBUG=0;

var cmdText="";

var dirtyform;
dirtyform=false;
function GetXmlHttpObject()
{ 
var objXMLHttp=null

if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
else if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest()
}
    
    
return objXMLHttp
}

function loadXMLDoc(url) 
{
    //alert(url);
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP"); //Newer version is: MSXML2.ServerXMLHTTP
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();
        }
    }
        
}

function getNodeText(xmlNode)
{
    if(!xmlNode) return '';
    if(typeof(xmlNode.textContent) != "undefined") return xmlNode.textContent;
    return xmlNode.firstChild.nodeValue;
}

function startInProgress()
{
 //document.getElementById("inprogress").innerHTML="<img src='./images/form-ajax-loader.gif' border=0>";
 
 grayOut(true);
    this.name="ecomain";
    window.scroll(0,0);
    var cY = getScreenCenterY();   
    var cX = getScreenCenterX();   

    document.getElementById("pageloading").style.top = cY + "px";
    document.getElementById("pageloading").style.left = cX + "px";
    document.getElementById("pageloading").style.visibility="visible";
    
}

function stopInProgress()
{
 
 grayOut(false);
    //this.name="ecomain";
    //window.scroll(0,0);
    document.getElementById("pageloading").style.visibility="hidden";
    
}

var Accordion3;

function showSectionBlurb(x)
{
    changetabs('images/'+TAB1NAME);
    sendcmdx('mainContent','displaysectionblurb',currentFORMID,x+1,currentPROFILEID);
 
}

function updateAll(src,dest,cnt)
{
//window.alert(val);
var qArr;
var i;
var objSrc;
var objDest;
objSrc=document.getElementById("field_"+src+"_"+cnt);
var srcPtid=document.getElementById("field_"+src+"_"+cnt+"_ptid").value;
var destPtid=0;
var destCnt=0;
//window.alert(srcPtid);

qArr = dest.split(",")
if(qArr.length>1)
{
    if( (objSrc.value=="" + srcPtid + "_0")|| (objSrc.value=="" + srcPtid + "_1") )
    {
    return true;
    }
}

for (i=0;i<qArr.length;i++)
{
    
    destCnt = document.getElementById("field_"+qArr[i]+"_cnt").value;
    
    for (j=0;j<destCnt;j++)
    {
        destPtid=document.getElementById("field_"+qArr[i]+"_"+j+"_ptid").value;
        //window.alert(qArr[i] + ":" + srcPtid + "\n" + "j=" + j + "\n" + "destPtid=" + destPtid);
        if(destPtid==srcPtid)
        {
            objDest=document.getElementById("field_"+qArr[i]+"_"+j);
            objDest.selectedIndex=objSrc.selectedIndex;
        }
    }
}
}

var statusReqCount1;
var statusReqCount2;
var statusReqCount3;
function processReqChangeX(x_req) 
{
    
    tReq=x_req;
    var id;
    var list1;
    var title;
    var response;
    var ind;
    var dest;
    var i;
    var method;
    var content;
    var content2;
    var flipper;
    //id = new Array();
    //title= new Array();
    // only if req shows "complete"
    if (tReq.readyState != 4)
    {
    
    //if(tReq.readyState==1) {statusReqCount1++;document.getElementById("pageloadingmsg").innerHTML= "<font color=white>[Loading:" + statusReqCount1 + "]</font>";}
    //if(tReq.readyState==2) {statusReqCount2++;document.getElementById("pageloadingmsg").innerHTML= "<font color=white>[Loaded:" + statusReqCount2 + "]</font>";}
    //if(tReq.readyState==3) {statusReqCount3++;document.getElementById("pageloadingmsg").innerHTML= "<font color=white>[Finalising:" + statusReqCount3 + "]</font>";}
    
    }
    if (tReq.readyState == 4)
    {
        statusReqCount1=0;
        statusReqCount2=0;
        statusReqCount3=0;
        if (tReq.status == 200) {
        //alert("0");
			response  = tReq.responseXML.documentElement;
			
			if(response!=null)
			{
				method    = response.getElementsByTagName('method')[0].firstChild.data;
				//alert(method);
                if(method=="nop")
                {
                }
			    else if(method=="displaysections")
			    {
			            
				        lngth=response.getElementsByTagName('result').length;
                    
                        var i=0;
                        var str="";
                        var placeID
                        var sectionnumber;
                        
                        placeID=response.getElementsByTagName('placeid')[i].firstChild.data;
                        sectionnumber=response.getElementsByTagName('sectionnumber')[i].firstChild.data;
                        content = getNodeText(response.getElementsByTagName('content')[i]);
                        pcstatus = response.getElementsByTagName('pcstatus')[i].firstChild.data;
					    str +="" + content;
					    //str +="<div style='position:absolute;text-align:center;' id='livehelpanchor'><a href='javascript:void(0);' onclick='showlivehelp();'><img src='images/chat_button.png' alt='Click here to chat to a live support person...' width='200' height='99' border='0' /></a></div><br />";
					    str +="<div style='position:absolute;text-align:center;' id='livehelpanchor'><br><br><br><br><br><br><br><br><br><br><br><br>If you need assistance,<br>please don't hesitate<br>to contact our head office<br>to speak to an<br>eco accreditation officer.<br>Telephone: +61 (0)7 3252 1530<br>Fax: +61 (0)7 3257 0331<br>Monday to Friday 9 AM - 5 PM<br>Brisbane time.<br>or email us<br><br>Email: eco@ecotourism.org.au</div><br />";
					    str +="<p align='left'>" + pcstatus + "</p>";
					    
					    document.getElementById(placeID).innerHTML=str;    
					    //window.alert(sectionnumber);
					    AccordionDefaultPanel=sectionnumber-1;
					    Accordion3 = new Spry.Widget.Accordion("Accordion3");
					    var panels = Accordion3.getPanels();
	                    /*
	                    for(  i = 0 ; i < panels.length; i++ )
	                    {
		                    if( Accordion3.currentPanel == panels[i] )
			                    return i;
	                    }
	                    */
					    //Accordion3.onPanelClick(panels[sectionnumber-1]);
					    Accordion3.openPanel(panels[sectionnumber-1]);
					    
					    
					    
					    
					    
				    
				}
				else if(method=="displaysectionblurb")
			    {
			        
                    document.getElementById("pageloading").style.visibility="hidden";
				        lngth=response.getElementsByTagName('result').length;
                    
                        var i=0;
                        var str="";
                        var placeID
                        
                        placeID=response.getElementsByTagName('placeid')[i].firstChild.data;
                        content = getNodeText(response.getElementsByTagName('content')[i]);
					    str +="" + content;
					    document.getElementById(placeID).innerHTML=str;   
					    dirtyform=false; 
					    stopInProgress();
				    
				}
				else if(method=="displayqa")
			    {
			        
                    document.getElementById("pageloading").style.visibility="hidden";
				        lngth=response.getElementsByTagName('result').length;
                    
                        var i=0;
                        var str="";
                        var placeID
                        
                        placeID=response.getElementsByTagName('placeid')[i].firstChild.data;
                        content = getNodeText(response.getElementsByTagName('content')[i]);
					    str +="" + content;
					    document.getElementById(placeID).innerHTML=str;   
					    dirtyform=false; 
					    stopInProgress();
				    
				}
				else if(method=="displaystatus")
			    {
			        
				        lngth=response.getElementsByTagName('result').length;
                    
                        var i=0;
                        var str="";
                        var placeID
                        
                        placeID=response.getElementsByTagName('placeid')[i].firstChild.data;
                        content = response.getElementsByTagName('content')[i].firstChild.data;
                        content2 = response.getElementsByTagName('content2')[i].firstChild.data;
                        var programsexist = response.getElementsByTagName('noprograms')[i].firstChild.data;
					    str +="" + content;
					    document.getElementById(placeID).innerHTML=str;   
					    dirtyform=false;
					    str="";
					    str +="" + content2;
					    document.getElementById("sidebar1").innerHTML=str;
					    
					    if(programsexist=="false")
					    {
					        changetabs('images/F1_04_Programs.png');
					        //window.alert(currentPROFILEID);
					        sendcmdx('mainContent','displayprograms',1,1,currentPROFILEID);
					    }
				    
				}
				else if(method=="displayprograms")
			    {
			        
				        lngth=response.getElementsByTagName('result').length;
                    
                        var i=0;
                        var str="";
                        var placeID
                        var errorMsg;
                        placeID=response.getElementsByTagName('placeid')[i].firstChild.data;
                        errorMsg = response.getElementsByTagName('msg')[i].firstChild.data;
                        content = response.getElementsByTagName('content')[i].firstChild.data;
					    str +="" + content;
					    document.getElementById(placeID).innerHTML=str;   
					    dirtyform=false; 
					    document.getElementById('msgfld').innerHTML=errorMsg;
				    
				}
				else if(method=="displayprogramschanged")
			    {
			        
				        lngth=response.getElementsByTagName('result').length;
                    
                        var i=0;
                        var str="";
                        var placeID
                        var errorMsg;
                        placeID=response.getElementsByTagName('placeid')[i].firstChild.data;
                        errorMsg = response.getElementsByTagName('msg')[i].firstChild.data;
                        content = response.getElementsByTagName('content')[i].firstChild.data;
					    str +="" + content;
					    document.getElementById(placeID).innerHTML=str;   
					    dirtyform=false; 
					    document.getElementById('msgfld').innerHTML=errorMsg;
					    window.alert(errorMsg);
				    
				}
				else if(method=="displaytodo")
			    {
			        
				        lngth=response.getElementsByTagName('result').length;
                    
                        var i=0;
                        var str="";
                        var placeID
                        
                        placeID=response.getElementsByTagName('placeid')[i].firstChild.data;
                        content = getNodeText(response.getElementsByTagName('content')[i]);
					    str +="" + content;
					    document.getElementById(placeID).innerHTML=str;   
					    dirtyform=false;
	
                        var CollapsiblePanel1 = new Spry.Widget.CollapsiblePanel("CollapsiblePanel1", {contentIsOpen:false});

				    
				}
				else if(method=="displayfiles")
			    {
			        //alert("1");   
				        lngth=response.getElementsByTagName('result').length;
                    
                        var i=0;
                        var str="";
                        var placeID
                        
                        placeID=response.getElementsByTagName('placeid')[i].firstChild.data;
                        content = getNodeText(response.getElementsByTagName('content')[i]);
					    str +="" + content;
					    
					    document.getElementById(placeID).innerHTML=str;   
					    dirtyform=false; 
				    
				}
				else if(method=="displayhelptext")
			    {
			        
				        lngth=response.getElementsByTagName('result').length;
                    
                        var i=0;
                        var str="";
                        var placeID
                        
                        placeID="helptext";
                        content = getNodeText(response.getElementsByTagName('content')[i]);
					    str +="" + content;
					    
					    document.getElementById(placeID).innerHTML=str;   
					    
				    
				}
				else if(method=="savedata")
			    {
			            var mydate=new Date();
				        //lngth=response.getElementsByTagName('result').length;
                    
                        var i=0;
                        var str="";
                        var fldID
                        var errorMsg;
                        
                        fldID=response.getElementsByTagName('fldid')[i].firstChild.data;
                        errorMsg = response.getElementsByTagName('msg')[i].firstChild.data;
					    //window.alert(errorMsg);
					    dirtyform=false; 
					    document.getElementById('msgfld').innerHTML="Saved..."+fldID+"..."+mydate;
				    
				}
				else if(method=="savedataend")
			    {
			            var mydate=new Date();
				        //lngth=response.getElementsByTagName('result').length;
                    
                        
					    dirtyform=false; 
					    //document.getElementById('msgfld').innerHTML="Saved..."+fldID+"..."+mydate;
			            //window.alert('SaveDataEnd:' + currentPAGEID)
				        sendcmdx('sidebar1','displaysections',currentFORMID,currentPAGEID,currentPROFILEID);
				        stopInProgress();
				        bSaveInProgress=false;
				        window.alert("Saved...");
				}
				else if(method=="submitapplication")
			    {
			            var mydate=new Date();
				        lngth=response.getElementsByTagName('result').length;
                    
                        var i=0;
                        var str="";
                        var placeID
                        
                        placeID=response.getElementsByTagName('placeid')[i].firstChild.data;
                        content = getNodeText(response.getElementsByTagName('content')[i]);
					    str +="" + content;
					    
					    document.getElementById(placeID).innerHTML=str;   
					    dirtyform=false; 
					    
				        stopInProgress();
				        //window.alert("Submitted...");
				}
				else if(method=="sendcoord")
			    {
			            
				    
				}
				else if(method=="initchat")
			    {
			            window.alert("chat start");
			            setTimeout("getchat()",10000);
			            
				    
				}
				else if(method=="getchat")
			    {
			        lngth=response.getElementsByTagName('dbfield').length;
                        //window.alert(lngth);
                        var i=0;
                        var str="";
                        var placeID
                        
                        placeID=response.getElementsByTagName('placeid')[i].firstChild.data;
                        content = response.getElementsByTagName('content')[i].firstChild.data;
                        
			            document.getElementById("sectionchatoutput").innerHTML="<font color='red'>"+content + "</font>";
			            chatOKtoGET=true;
				    
				}   
				else if(method=="displayform_tblOrganization")
			    {
			        
				        lngth=response.getElementsByTagName('dbfield').length;
                        //window.alert(lngth);
                        var i=0;
                        var str="";
                        var placeID
                        
                        placeID=response.getElementsByTagName('placeid')[i].firstChild.data;
                        content = getNodeText(response.getElementsByTagName('content')[i]);
                        
					    str +="<table>";
					    for(i=0;i<lngth;i++)
					    {
					    str +=response.getElementsByTagName('dbfield')[i].firstChild.data;
					    }
					    str +="</table>";
					    document.getElementById(placeID).innerHTML=str;   
					    dirtyform=false; 
					    //window.alert("status:" + tReq.statusText);
				    
				}
				else if(method=="savedata_tblOrganization")
			    {
			            var mydate=new Date();
				        //lngth=response.getElementsByTagName('result').length;
                    
                        var i=0;
                        var str="";
                        var fldID
                        var errorMsg;
                        
                        //fldID=response.getElementsByTagName('fldid')[i].firstChild.data;
                        errorMsg = response.getElementsByTagName('msg')[i].firstChild.data;
					    //window.alert(errorMsg);
					    dirtyform=false; 
					    document.getElementById('msgfld').innerHTML=errorMsg;
				    
				}
				else if(method=="displayform_tblProfile")
			    {
			        
				        lngth=response.getElementsByTagName('dbfield').length;
                        //window.alert(lngth);
                        var i=0;
                        var str="";
                        var placeID
                        
                        placeID=response.getElementsByTagName('placeid')[i].firstChild.data;
                        content = getNodeText(response.getElementsByTagName('content')[i]);
                        
					    str +="<table>";
					    for(i=0;i<lngth;i++)
					    {
					    str +=response.getElementsByTagName('dbfield')[i].firstChild.data;
					    }
					    str +="</table>";
					    document.getElementById(placeID).innerHTML=str;   
					    dirtyform=false; 
					    //window.alert("status:" + tReq.statusText);
				    
				}
				else if(method=="savedata_tblProfile")
			    {
			            var mydate=new Date();
				        //lngth=response.getElementsByTagName('result').length;
                    
                        var i=0;
                        var str="";
                        var fldID
                        var errorMsg;
                        
                        //fldID=response.getElementsByTagName('fldid')[i].firstChild.data;
                        errorMsg = response.getElementsByTagName('msg')[i].firstChild.data;
					    //window.alert(errorMsg);
					    dirtyform=false; 
					    document.getElementById('msgfld').innerHTML=errorMsg;
					    window.alert("Saved.");
                        sendcmdx('mainContent','displayform_tblProfile',currentFORMID,1,currentPROFILEID);
				    
				}    
				
			
	
			}	
			
			
        else
			{
				document.getElementById("msgfld").innerHTML="<!-- <b>No Results...</b> -->";	
			}
        }
        else
        {
            
            document.getElementById('msgfld').innerHTML="There was a problem retrieving the XML data:\n" + tReq.statusText;
            stopInProgress();
        }
    }
}

function startnewform(xfid,xpid)
{
//window.alert('new frm=' + val);
sendcmdx('sidebar1','displaysections',xfid,1,xpid);
sendcmdx('mainContent','displayqa',xfid,1,xpid);
}

function modifyproduct(xid,cmd,x,y,z)
{
var url
var reqx;
var dataurl;
var data="";
var data2="";
    url  = './ar.asp?cmd='+cmd+'&placeID='+xid+'&sid='+Math.random();
    if(cmd=="addproduct")
    {
     if( (document.getElementById("pt"+y+"_"+x).value=="") | (document.getElementById("pt"+y+"_"+x).value=="Enter name here...") ) 
     {
        window.alert("Please enter a name for your product");
        document.getElementById("pt"+y+"_"+x).focus();
        return(false);
     }
     if( (document.getElementById("ptd"+y+"_"+x).value=="") | (document.getElementById("ptd"+y+"_"+x).value=="Enter name here...") ) 
     {
        window.alert("Please enter a description for your product");
        document.getElementById("ptd"+y+"_"+x).focus();
        return(false);
     }
     data= encode(document.getElementById("pt"+y+"_"+x).value);
     data2= encode(document.getElementById("ptd"+y+"_"+x).value);
    }
    if(cmd=="editproduct")
    {
    //window.alert(y)
     if( (document.getElementById("pto_"+y).value=="") | (document.getElementById("pto_"+y).value=="Enter name here...") ) 
     {
        window.alert("Please enter a name for your product");
        document.getElementById("pto_"+y).focus();
        return(false);
     }
     if( (document.getElementById("ptd_"+y).value=="") | (document.getElementById("ptd_"+y).value=="Enter name here...") ) 
     {
        window.alert("Please enter a description for your product");
        document.getElementById("ptd_"+y).focus();
        return(false);
     }
     data= encode(document.getElementById("pto_"+y).value);
     data2= encode(document.getElementById("ptd_"+y).value);
    } 
     if(cmd=="delproduct")
     {
     if(!window.confirm("You are about to PERMANENTLY DELETE this product along with ALL data associated with it (all answers for this product).\n Are you sure you want to  do this?\nPress OK to delete or press CANCEL to keep the product."))
     {
        return(false);
     }
     }
	dataurl= 'txdata='+data+'&txdata2='+data2+'&fID='+x+'&pNum='+y+'&profID='+z;


    //document.getElementById(xid).innerHTML="Loading...";    
    
	//window.alert(dataurl);
	reqx=GetXmlHttpObject();
	//
	//reqx.onreadystatechange= new function("processReqChangeX("+reqx+")");
	reqx.onreadystatechange = function() {processReqChangeX(reqx);};

    reqx.open("POST",url,true);
    reqx.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    //reqx.setRequestHeader("Content-Length", url.length)
    if (window.ActiveXObject)
    {
    reqx.send(dataurl);
    }
    else if (window.XMLHttpRequest)
    {
    reqx.send(dataurl);
    }

currentPROFILEID=z;
currentFORMID=x;
currentPAGEID=y;

}

function savedata(x,y,z)
{
   var cstr;
   var i=0;
   startInProgress();
            cstr=document.getElementById('txdata').value;
            //window.alert(cstr);
            var carr=cstr.split(",");
            //window.alert(carr.length);
            for(i=0;i<carr.length-1;i++)
            {
                //window.alert('i=' + i);
                //if(DEBUG) {window.alert('tx_'+carr[i]+'_1=');}
                //window.alert(document.getElementById('tx_'+carr[i]+'_1').value);
                tx0=document.getElementById("tx_"+carr[i]+"_0").value;
                tx1=document.getElementById("tx_"+carr[i]+"_1").value;
                tx2=document.getElementById("tx_"+carr[i]+"_2").value;
                tx3=document.getElementById("tx_"+carr[i]+"_3").value;
                tx4=document.getElementById("tx_"+carr[i]+"_4").value;
                
                transferdata(tx0,tx1,tx2,tx3,tx4);
                
            }
            currentPROFILEID=z;
            currentFORMID=x;
            currentPAGEID=y;
            sendcmdx(0,'savedataend',x,y,z);
            //window.alert("Saved !");
            //dirtyform=false;
}

function sendcmdx(xid,cmd,x,y,z)
{
if(cmd=="deletefile")
{
     if(!window.confirm("Are you sure?"))
     {
        return(false);
     }
}
if(cmd=="displayqa")
{
    changetabs('images/'+TAB1NAME);
    startInProgress();
    currentPROFILEID=z;
    currentFORMID=x;
    currentPAGEID=y;    
}
if(cmd=="submitapplication")
{
    startInProgress();
    currentPROFILEID=z;
    currentFORMID=x;
    currentPAGEID=y;    
}
if(cmd=="displaysections")
{
    //window.alert(y);
    currentPROFILEID=z;
    currentFORMID=x;
    currentPAGEID=y;
    
}
var i=0;
document.getElementById('msgfld').innerHTML="";
    if((dirtyform) & (!bSaveInProgress))
    {
        if(window.confirm("Save first?"))
        {
            if(currentFORMID==-3)
            {
                savedata_tblProfile(z);
            }
            else
            {
                
                bSaveInProgress=true;
                //savedata();
                startInProgress();
                var cstr;
                cstr=document.getElementById('txdata').value;
                var carr=cstr.split(",");
                //window.alert(carr.length);
                for(i=0;i<carr.length-1;i++)
                {
                    //window.alert('tx_'+carr[i]+'_4=' + document.getElementById('tx_'+carr[i]+'_4').value);
                    tx0=document.getElementById("tx_"+carr[i]+"_0").value;
                    tx1=document.getElementById("tx_"+carr[i]+"_1").value;
                    tx2=document.getElementById("tx_"+carr[i]+"_2").value;
                    tx3=document.getElementById("tx_"+carr[i]+"_3").value;
                    tx4=document.getElementById("tx_"+carr[i]+"_4").value;
                    transferdata(tx0,tx1,tx2,tx3,tx4);
                    
                }
            }
            //window.alert('savedataend:' + currentPAGEID);
            sendcmdx(0,'savedataend',0,0,0);
            //window.alert("Saved !");
            //dirtyform=false;
            
        }
    }
    
var url
var reqx;
//document.getElementById(xid).innerHTML="Loading...";
//alert(z); 
    url  = './ar.asp?cmd='+cmd+'&placeID='+xid+'&fID='+x+'&pNum='+y+'&profID='+z+'&sid='+Math.random();
	//window.alert(url);
	if(DEBUG) {window.prompt('url',url);};
	cmdText=url;
	reqx=GetXmlHttpObject();
	
	//alert(url.length);
	//reqx.setRequestHeader("Content-Length", url.length)
	//reqx.onreadystatechange= new function("processReqChangeX("+reqx+")");
	reqx.onreadystatechange = function() {processReqChangeX(reqx);};

    reqx.open("GET",url,true);
    //reqx.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    //reqx.setRequestHeader("Content-Length", url.length)
    if (window.ActiveXObject)
    {
    reqx.send();
    }
    else if (window.XMLHttpRequest)
    {
    reqx.send(null);
    }


//window.alert('sendcmdx:' + currentPAGEID);
}


function special001(val)
{
//window.alert('xxxx' + val.value)
if(val.value=='N/A')
{
document.getElementById('next1').style.visibility='visible';
}
else
{
document.getElementById('next1').style.visibility='hidden';
}
}
        
        
function showother(objID,profID)
{
    if(document.getElementById('field_'+objID).value=='-1')
    {
        //window.alert("aaa");
        document.getElementById('fieldotherarea_'+objID).innerHTML="<textarea id='fieldother_"+objID+"' onchange='makedirty();'></textarea>";
        document.getElementById('fieldother_'+objID).value=decode(document.getElementById('fieldothertemp_'+objID).value);
        //getotherdata(objID,profID);
    }
    else
    {
        //window.alert("bbb");
        /*
        if(document.getElementById('fieldother_'+objID))
        {
        document.getElementById('fieldothertemp_'+objID).value=encode(document.getElementById('fieldother_'+objID).value);
        document.getElementById('fieldotherarea_'+objID).innerHTML="";
        }
        */
    }
}

function makedirty()
{
    dirtyform=true;
}
function makeclean()
{
    dirtyform=false;
}


function encode(str) {
	var result = "";
	var i=0;
	for (i = 0; i < str.length; i++) {
		if (str.charAt(i) == " ") result += "+";
		else result += str.charAt(i);
	}
	
	return escape(result);
}

function decode(str) {
//	var result = "";

 	var result = str.replace(/\+/g, " ");
	
/*	
	for (i = 0; i< str.length; i++) {
		if (str.charAt(i) == "+") result += " ";
		else result += str.charAt(i);
	}
*/
	return unescape(result);
}

function transferdata(objID,objType,x,y,z)
{
var url
var reqx;
url  = './ar.asp?cmd='+'savedata'+'&sid='+Math.random();
var dataurl="";
if(DEBUG) {window.prompt("url","objID="+objID + "\nobjType="+objType);}
if(objType==0)
{
    //Do nothing
}
if(objType==1)
{
    
    data=encode(document.getElementById('field_'+objID).value);
    dataurl=dataurl + 'txdatatype='+objType+'&txdata='+data+'&fldID='+objID+'&fID='+x+'&pNum='+y+'&profID='+z;
}

if(objType==4)
{
    data=encode(document.getElementById('field_'+objID).value);
    if(data=='-1')
    {
    other=encode(document.getElementById('fieldother_'+objID).value);
    }
    else
    {
        other='';//
    }
    dataurl=dataurl + 'txdatatype='+objType+'&txdata='+data+'&txdata2='+other+'&fldID='+objID+'&fID='+x+'&pNum='+y+'&profID='+z;
}
if(objType==5)
{
    
    data=document.getElementById('field_'+objID).value;
    dataurl=dataurl + 'txdatatype='+objType+'&txdata='+data+'&fldID='+objID+'&fID='+x+'&pNum='+y+'&profID='+z;
}
if(objType==6)
{
    data=document.getElementById('field_'+objID).value;
    if(data=='-1')
    {
    other=encode(document.getElementById('fieldother_'+objID).value);
    }
    else
    {
        other='';//
    }
    dataurl=dataurl + 'txdatatype='+objType+'&txdata='+data+'&txdata2='+other+'&fldID='+objID+'&fID='+x+'&pNum='+y+'&profID='+z;
}
if(objType==7)
{
    
    data=document.getElementById('field_'+objID).value;
    dataurl=dataurl + 'txdatatype='+objType+'&txdata='+data+'&fldID='+objID+'&fID='+x+'&pNum='+y+'&profID='+z;
}
if(objType==9)
{
    
    cnt=document.getElementById('field_'+objID+'_cnt').value;
    data="";
    for(i=0;i<cnt;i++)
    {
        if(DEBUG) {window.alert(i);}
        if(document.getElementById('field_'+objID+'_'+i).value!="")
        {
            data=data + document.getElementById('field_'+objID+'_'+i).value + ',';
        }
        else
        {
            data=data + '';
        }
    }
    dataurl=dataurl + 'txdatatype='+objType+'&txdata='+data+'&fldID='+objID+'&fID='+x+'&pNum='+y+'&profID='+z;
}

if(objType==12)
{
    //window.alert("hre");
    rowcnt=document.getElementById('tx_'+objID+'_5').value;
    colcnt=document.getElementById('tx_'+objID+'_6').value;
    data="";
    cnt=0;
    for(i=0;i<rowcnt;i++)
    {
        for(j=0;j<colcnt;j++)
        {
            if(false) {window.alert(document.getElementById('field_'+objID+'_'+cnt).value);}
            if(document.getElementById('field_'+objID+'_'+cnt).value!="")
            {
                data=data + document.getElementById('field_'+objID+'_'+cnt).value + '|';
            }
            else
            {
                data=data + '|';
            }
            cnt++;
        }
    }
    dataurl=dataurl + 'txdatatype='+objType+'&txdata='+data+'&fldID='+objID+'&fID='+x+'&pNum='+y+'&profID='+z;
}

if(objType==15)
{
    if(document.getElementById('field_'+objID).checked)
    {
        data=document.getElementById('field_'+objID).value;
    }
    else
    {
        data='';
    }
    
    if(data=='-1')
    {
    other=encode(document.getElementById('fieldother_'+objID).value);
    }
    else
    {
        other='';//
    }
    dataurl=dataurl + 'txdatatype='+objType+'&txdata='+data+'&txdata2='+other+'&fldID='+objID+'&fID='+x+'&pNum='+y+'&profID='+z;
}

    //document.getElementById(xid).innerHTML="Loading...";    
    
	reqx=GetXmlHttpObject();
	//
	//reqx.onreadystatechange= new function("processReqChangeX("+reqx+")");
	reqx.onreadystatechange = function() {processReqChangeX(reqx);};

    reqx.open("POST",url,true);
    reqx.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    //reqx.setRequestHeader("Content-Length", url.length)
    if(DEBUG) {window.alert(dataurl);}
	if(DEBUG) {document.getElementById("debugtext").innerText=dataurl;}
	
    if (window.ActiveXObject)
    {
    reqx.send(dataurl);
    }
    else if (window.XMLHttpRequest)
    {
    reqx.send(dataurl);
    }
}

var currentPROFILEID=-1;
var currentFORMID=-1;
var currentPAGEID=-1;
var chatACTIVE=false;
function initchat(x,y,z)
{
ddrivetip("&lt;--","#ff0000",100,20);
//currentPROFILEID=z;
//currentFORMID=x;
//currentPAGEID=y;
z=currentPROFILEID;
x=currentFORMID;
y=currentPAGEID;

var str="";

str="<table width='100%' border='1'>";
str=str + "<tr><td colspan'1'>Live Help</td><td><input type=button id='chatexitbutton' value='Close' onclick='exitchat("+x+","+y+","+z+")'></td></tr>";
str=str + "<tr><td colspan='2'><div id='sectionchatoutput'>Waiting for operator</div></td></tr>";
str=str + "<tr><td colspan='1'><div id='sectionchatinput'><input type=text name='chatinput' id='chatinput' value='' /></div></td>";
str=str + "<td><input type=button name='chatsendbutton' value='Send' onclick='sendchat("+x+","+y+","+z+");' /></td></tr>";
str=str + "<td><input type=button name='chatgetbutton' value='Get' onclick='getchat("+x+","+y+","+z+");' /></td></tr>";
str=str + "</table>";

document.getElementById('sectionchat').innerHTML=str;
this.name="ecomain";
    window.scroll(0,0);
    var cY = getScreenCenterY();   
    var cX = getScreenCenterX();   

    document.getElementById("sectionchat").style.top = cY + "px";
    document.getElementById("sectionchat").style.left = cX + "px";
    document.getElementById("sectionchat").style.visibility="visible";

var url
var reqx;
url  = './ar.asp?cmd='+'initchat'+'&sid='+Math.random();
var dataurl="";
var chatinput="";
//document.getElementById(xid).innerHTML="Loading...";    
 //chatinput=encode(document.getElementById('chatinput').value);   
 dataurl=dataurl + 'fID='+x+'&pNum='+y+'&profID='+z;
//window.alert(dataurl);
	reqx=GetXmlHttpObject();
	reqx.onreadystatechange = function() {processReqChangeX(reqx);};

    reqx.open("POST",url,true);
    reqx.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    //reqx.setRequestHeader("Content-Length", url.length)
    if (window.ActiveXObject)
    {
    reqx.send(dataurl);
    }
    else if (window.XMLHttpRequest)
    {
    reqx.send(dataurl);
    }
    chatACTIVE=true;
}

function exitchat(x,y,z)
{
hideddrivetip("&lt;--","#ff0000",100,20);

var str="<input type='button' id='initchatbutton' value='InitChat' onclick='initchat("+x+","+y+","+z+")'/>";

document.getElementById('sectionchat').innerHTML=str;

var url
var reqx;
url  = './ar.asp?cmd='+'exitchat'+'&sid='+Math.random();
var dataurl="";
var chatinput="";
//document.getElementById(xid).innerHTML="Loading...";    
 //chatinput=encode(document.getElementById('chatinput').value);   
 dataurl=dataurl + 'fID='+x+'&pNum='+y+'&profID='+z;
//window.alert(dataurl);
	reqx=GetXmlHttpObject();
	reqx.onreadystatechange = function() {processReqChangeX(reqx);};

    reqx.open("POST",url,true);
    reqx.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    //reqx.setRequestHeader("Content-Length", url.length)
    if (window.ActiveXObject)
    {
    reqx.send(dataurl);
    }
    else if (window.XMLHttpRequest)
    {
    reqx.send(dataurl);
    }
    chatACTIVE=false;
}
function sendchat(x,y,z)
{
 if(chatACTIVE)
 {
var url
var reqx;
url  = './ar.asp?cmd='+'sendchat'+'&sid='+Math.random();
var dataurl="";
var chatinput="";
//document.getElementById(xid).innerHTML="Loading...";    
 chatinput=encode(document.getElementById('chatinput').value);   
 dataurl=dataurl + 'chatinput='+chatinput+'&fID='+x+'&pNum='+y+'&profID='+z+'&cSF=FROM';
window.alert(dataurl);
	reqx=GetXmlHttpObject();
	reqx.onreadystatechange = function() {processReqChangeX(reqx);};

    reqx.open("POST",url,true);
    reqx.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    //reqx.setRequestHeader("Content-Length", url.length)
    if (window.ActiveXObject)
    {
    reqx.send(dataurl);
    }
    else if (window.XMLHttpRequest)
    {
    reqx.send(dataurl);
    }
 }
}

var chatOKtoGET=true;

function getchat()
{
 if((chatACTIVE)&(chatOKtoGET))
 {
var url
var reqx;
url  = './ar.asp?cmd='+'getchat'+'&sid='+Math.random();

var z=currentPROFILEID;
var x=currentFORMID;
var y=currentPAGEID;
var dataurl="";
var chatinput="";
//document.getElementById(xid).innerHTML="Loading...";    
 chatinput=encode(document.getElementById('chatinput').value);   
 dataurl=dataurl + 'chatinput='+chatinput+'&fID='+x+'&pNum='+y+'&profID='+z+'&cSF=TO';
//window.alert(dataurl);
chatOKtoGET=false;
	reqx=GetXmlHttpObject();
	reqx.onreadystatechange = function() {processReqChangeX(reqx);};

    reqx.open("POST",url,true);
    reqx.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    //reqx.setRequestHeader("Content-Length", url.length)
    if (window.ActiveXObject)
    {
    reqx.send(dataurl);
    }
    else if (window.XMLHttpRequest)
    {
    reqx.send(dataurl);
    }
 }
}

function sendcoord(x,y,z,px,py)
{
if(chatACTIVE)
 {
var url
var reqx;
url  = './ar.asp?cmd='+'sendcoord'+'&sid='+Math.random();
var dataurl="";
var chatinput="";
//document.getElementById(xid).innerHTML="Loading...";    
 //chatinput=encode(document.getElementById('chatinput').value);   
 dataurl=dataurl + 'px='+px+'&py='+py+'&fID='+x+'&pNum='+y+'&profID='+z;
//window.alert(dataurl);
	reqx=GetXmlHttpObject();
	reqx.onreadystatechange = function() {processReqChangeX(reqx);};

    reqx.open("POST",url,true);
    reqx.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    //reqx.setRequestHeader("Content-Length", url.length)
    if (window.ActiveXObject)
    {
    reqx.send(dataurl);
    }
    else if (window.XMLHttpRequest)
    {
    reqx.send(dataurl);
    }
 }
}

var offsetxpoint=-60 //Customize x offset of tooltip
var offsetypoint=20 //Customize y offset of tooltip
var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
if (ie||ns6)
var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function ddrivetip(thetext, thecolor, thewidth,theheight){
if (ns6||ie){
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
if (typeof theheight!="undefined") tipobj.style.height=theheight+"px"
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
tipobj.innerHTML=thetext
enabletip=true
return false
}
}

function positiontip(e){
if (enabletip){
var curX=(ns6)?e.pageX : event.x+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.y+ietruebody().scrollTop;
//Find out how close the mouse is to the corner of the window
var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20

var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth)
//move the horizontal position of the menu to the left by it's width
tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
else if (curX<leftedge)
tipobj.style.left="5px"
else
//position the horizontal position of the menu where the mouse is positioned
tipobj.style.left=curX+offsetxpoint+"px"

//same concept with the vertical position
if (bottomedge<tipobj.offsetHeight)
tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px"
else
tipobj.style.top=curY+offsetypoint+"px"
tipobj.style.visibility="visible"
}
//tipobj.innerHTML="&lt;-- " + curY+offsetypoint+"px";


sendcoord(currentFORMID,currentPAGEID,currentPROFILEID,curX,curY);
}

function hideddrivetip(){
if (ns6||ie){
enabletip=false
tipobj.style.visibility="hidden"
tipobj.style.left="-1000px"
tipobj.style.backgroundColor=''
tipobj.style.width=''
}
}


document.onmousemove=positiontip



function savedata_tblOrganization(val)
{
    var url
    var reqx;
    url  = './ar.asp?cmd='+'savedata_tblOrganization'+'&sid='+Math.random();
    var dataurl="srdummy=0";
    var i=0;
    var cstr;
    var tx0,tx1,tx2,tx3,tx4;
    cstr=document.getElementById('txdata').value;
    var carr=cstr.split(",");

    for(i=0;i<carr.length-1;i++)
    {
        tx1=document.getElementById("tx_"+carr[i]+"_1").value;
        data=encode(document.getElementById(carr[i]).value);
        dataurl=dataurl + '&' + carr[i]+'='+data;
    }
    
    dataurl=dataurl + '&fID='+val;
    
	reqx=GetXmlHttpObject();
	reqx.onreadystatechange = function() {processReqChangeX(reqx);};

    reqx.open("POST",url,true);
    reqx.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    //reqx.setRequestHeader("Content-Length", url.length)
    if (window.ActiveXObject)
    {
    reqx.send(dataurl);
    }
    else if (window.XMLHttpRequest)
    {
    reqx.send(dataurl);
    }
    dirtyform=false;
}

function savedata_tblProfile(val)
{
    var url
    var reqx;
    url  = './ar.asp?cmd='+'savedata_tblProfile'+'&sid='+Math.random();
    var dataurl="srdummy=0";
    var i=0;
    var cstr;
    var tx0,tx1,tx2,tx3,tx4;
    cstr=document.getElementById('txdata').value;
    var carr=cstr.split(",");

    for(i=0;i<carr.length-1;i++)
    {
        tx1=document.getElementById("tx_"+carr[i]+"_1").value;
        data=encode(document.getElementById(carr[i]).value);
        dataurl=dataurl + '&' + carr[i]+'='+data;
    }
    
    dataurl=dataurl + '&fID='+val;
    
	reqx=GetXmlHttpObject();
	reqx.onreadystatechange = function() {processReqChangeX(reqx);};

    reqx.open("POST",url,true);
    reqx.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    //reqx.setRequestHeader("Content-Length", url.length)
    if (window.ActiveXObject)
    {
    reqx.send(dataurl);
    }
    else if (window.XMLHttpRequest)
    {
    reqx.send(dataurl);
    }
    dirtyform=false;
}

function grayOut(vis, options)
{
  // Pass true to gray out screen, false to ungray
    // options are optional.  This is a JSON object with the following (optional) properties  
    // opacity:0-100         
    // Lower number = less grayout higher = more of a blackout   
    // zindex: #             
    // HTML elements with a higher zindex appear on top of the gray out  
    // bgcolor: (#xxxxxx)    
    // Standard RGB Hex color code  
    // grayOut(true, {'zindex':'50', 'bgcolor':'#0000FF', 'opacity':'70'});  
    // Because options is JSON opacity/zindex/bgcolor are all optional and can appear  
    // in any order.  Pass only the properties you need to set.  
    var options = options || {};   
    var zindex = options.zindex || 50;  
    var opacity = options.opacity || 70;  
    var opaque = (opacity / 100);  
    var bgcolor = options.bgcolor || '#000000';  
    var dark=document.getElementById('darkenScreenObject');  
    if (!dark) 
    {    
        // The dark layer doesn't exist, it's never been created.  So we'll    
        // create it here and apply some basic styles.    
        // If you are getting errors in IE see: http://support.microsoft.com/default.aspx/kb/927917    
        var tbody = document.getElementsByTagName("body")[0];    
        var tnode = document.createElement('div');           
        // Create the layer.        
        tnode.style.position='absolute';                 
        // Position absolutely        
        tnode.style.top='0px';                           
        // In the top        
        tnode.style.left='0px';                          
        // Left corner of the page        
        tnode.style.overflow='hidden';                   
        // Try to avoid making scroll bars                    
        tnode.style.display='none';                      
        // Start out Hidden        
        tnode.id='darkenScreenObject';                   
        // Name it so we can find it later    
        tbody.appendChild(tnode);                            
        // Add it to the web page    
        dark=document.getElementById('darkenScreenObject');  
        // Get the object.  
    }  
    if (vis) 
    {    
        // Calculate the page width and height     
        if( document.body && ( document.body.scrollWidth || document.body.scrollHeight ) ) 
        {        
            var pageWidth = document.body.scrollWidth+'px';        
            var pageHeight = document.body.scrollHeight+'px';    
        } 
        else if( document.body.offsetWidth ) 
        {      
            var pageWidth = document.body.offsetWidth+'px';      
            var pageHeight = document.body.offsetHeight+'px';    
        } 
        else 
        {       
            var pageWidth='100%';       
            var pageHeight='100%';    
        }       
        //set the shader to cover the entire page and make it visible.    
        dark.style.opacity=opaque;                          
        dark.style.MozOpacity=opaque;                       
        dark.style.filter='alpha(opacity='+opacity+')';     
        dark.style.zIndex=zindex;            
        dark.style.backgroundColor=bgcolor;      
        dark.style.width= pageWidth;    
        dark.style.height= pageHeight;    
        dark.style.display='block';                            
    } 
    else 
    {     
        dark.style.display='none';  
    }
}

function fileuploadclose()
{
    document.getElementById("fileuploaddialog").style.visibility="hidden";
    grayOut(false);
    
}

function showlivehelp()
{
document.getElementById("livehelp").style.top = document.getElementById("livehelpanchor").offsetTop-110 + "px";
document.getElementById("livehelp").style.left = document.getElementById("livehelpanchor").offsetLeft-10 + "px";
document.getElementById("livehelp").style.width = "550px";
document.getElementById("livehelp").style.height = "464px";
document.getElementById("livehelp").style.visibility="visible";
}

function closelivehelp()
{

document.getElementById("livehelp").style.visibility="hidden";
}

function fileupload(x_qaid)
{
    grayOut(true);
    this.name="ecomain";
    document.getElementById("fileuploadqa").value = x_qaid;
    //window.alert(document.getElementById("fileuploadqa").value);
    var x=document.getElementById('fileuploadframe').contentWindow;
    x.document.getElementById("ifrPhoto").contentWindow.document.getElementById('qid').value=x_qaid;
    document.getElementById("fileuploaddialog").style.top = document.getElementById("qaFileUpload_"+x_qaid).offsetTop-110 + "px";
    document.getElementById("fileuploaddialog").style.left = document.getElementById("qaFileUpload_"+x_qaid).offsetLeft-10 + "px";
    document.getElementById("fileuploaddialog").style.visibility="visible";
    
}

function helptextclose()
{
    document.getElementById("helptextdialog").style.visibility="hidden";
    grayOut(false);
    
}
function showhelptext(x_qaid)
{
    grayOut(true);
    //window.scroll(0,0);
    this.name="ecomain";
    //document.getElementById("helptextqa").value = x_qaid;
    
    //window.alert(document.getElementById("qaHelpText_"+x_qaid).offsetLeft)
    //window.alert(document.getElementById("qaHelpText_"+x_qaid).offsetTop)
    document.getElementById("helptextdialog").style.top = document.getElementById("qaHelpText_"+x_qaid).offsetTop-110 + "px";
    document.getElementById("helptextdialog").style.left = document.getElementById("qaHelpText_"+x_qaid).offsetLeft-10 + "px";
    document.getElementById("helptextdialog").style.width = "315px";
    document.getElementById("helptextdialog").style.height = "464px";
    document.getElementById("helptextdialog").style.visibility="visible";
    document.getElementById("helptext").innerHTML="Loading...";
    
    var url
var reqx;
    //document.getElementById(xid).innerHTML="Loading...";    
    url  = './ar.asp?cmd='+"displayhelptext"+'&qaID='+x_qaid+'&sid='+Math.random();
	//window.alert(url);
	cmdText=url;
	reqx=GetXmlHttpObject();
	
	//alert(url.length);
	//reqx.setRequestHeader("Content-Length", url.length)
	//reqx.onreadystatechange= new function("processReqChangeX("+reqx+")");
	reqx.onreadystatechange = function() {processReqChangeX(reqx);};

    reqx.open("GET",url,true);
    //reqx.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    //reqx.setRequestHeader("Content-Length", url.length)
    if (window.ActiveXObject)
    {
    reqx.send();
    }
    else if (window.XMLHttpRequest)
    {
    reqx.send(null);
    }
    
    //document.getElementById("editquestioniframe").getElementById("txtQuestion").innerText = document.getElementById("qaQuestion_"+x_qaid).innerText;
    //document.getElementById("editquestioniframe").src="./edit-question.asp?id="+x_qaid;
    
}


  
//dv = document.createElement('div');   
//dv.setAttribute('id',"css_dialog");   
//dv.style.cssText = "position:absolute;top:"+posY+"px;left:"+posX+"px;";   
  
function getScreenCenterY() {   
var y = 0;   
  
y = getScrollOffset()+(getInnerHeight()/2);   
  
return(y);   
}   
  
function getScreenCenterX() {   
return(document.body.clientWidth/2);   
}   
  
function getInnerHeight() {   
var y;   
if (self.innerHeight) // all except Explorer   
{   
y = self.innerHeight;   
}   
else if (document.documentElement && document.documentElement.clientHeight)   
// Explorer 6 Strict Mode   
{   
y = document.documentElement.clientHeight;   
}   
else if (document.body) // other Explorers   
{   
y = document.body.clientHeight;   
}   
return(y);   
}   
  
function getScrollOffset() {   
var y;   
if (self.pageYOffset) // all except Explorer   
{   
y = self.pageYOffset;   
}   
else if (document.documentElement && document.documentElement.scrollTop)   
// Explorer 6 Strict   
{   
y = document.documentElement.scrollTop;   
}   
else if (document.body) // all other Explorers   
{   
y = document.body.scrollTop;   
}   
return(y);   
}  

/**************************************************
 * dom-drag.js
 * 09.25.2001
 * www.youngpup.net
 * Script featured on Dynamic Drive (http://www.dynamicdrive.com) 12.08.2005
 **************************************************
 * 10.28.2001 - fixed minor bug where events
 * sometimes fired off the handle, not the root.
 **************************************************/

var Drag = {

	obj : null,

	init : function(o, oRoot, minX, maxX, minY, maxY, bSwapHorzRef, bSwapVertRef, fXMapper, fYMapper)
	{
		o.onmousedown	= Drag.start;

		o.hmode			= bSwapHorzRef ? false : true ;
		o.vmode			= bSwapVertRef ? false : true ;

		o.root = oRoot && oRoot != null ? oRoot : o ;

		if (o.hmode  && isNaN(parseInt(o.root.style.left  ))) o.root.style.left   = "0px";
		if (o.vmode  && isNaN(parseInt(o.root.style.top   ))) o.root.style.top    = "0px";
		if (!o.hmode && isNaN(parseInt(o.root.style.right ))) o.root.style.right  = "0px";
		if (!o.vmode && isNaN(parseInt(o.root.style.bottom))) o.root.style.bottom = "0px";

		o.minX	= typeof minX != 'undefined' ? minX : null;
		o.minY	= typeof minY != 'undefined' ? minY : null;
		o.maxX	= typeof maxX != 'undefined' ? maxX : null;
		o.maxY	= typeof maxY != 'undefined' ? maxY : null;

		o.xMapper = fXMapper ? fXMapper : null;
		o.yMapper = fYMapper ? fYMapper : null;

		o.root.onDragStart	= new Function();
		o.root.onDragEnd	= new Function();
		o.root.onDrag		= new Function();
	},

	start : function(e)
	{
		var o = Drag.obj = this;
		e = Drag.fixE(e);
		var y = parseInt(o.vmode ? o.root.style.top  : o.root.style.bottom);
		var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
		o.root.onDragStart(x, y);

		o.lastMouseX	= e.clientX;
		o.lastMouseY	= e.clientY;

		if (o.hmode) {
			if (o.minX != null)	o.minMouseX	= e.clientX - x + o.minX;
			if (o.maxX != null)	o.maxMouseX	= o.minMouseX + o.maxX - o.minX;
		} else {
			if (o.minX != null) o.maxMouseX = -o.minX + e.clientX + x;
			if (o.maxX != null) o.minMouseX = -o.maxX + e.clientX + x;
		}

		if (o.vmode) {
			if (o.minY != null)	o.minMouseY	= e.clientY - y + o.minY;
			if (o.maxY != null)	o.maxMouseY	= o.minMouseY + o.maxY - o.minY;
		} else {
			if (o.minY != null) o.maxMouseY = -o.minY + e.clientY + y;
			if (o.maxY != null) o.minMouseY = -o.maxY + e.clientY + y;
		}

		document.onmousemove	= Drag.drag;
		document.onmouseup		= Drag.end;

		return false;
	},

	drag : function(e)
	{
		e = Drag.fixE(e);
		var o = Drag.obj;

		var ey	= e.clientY;
		var ex	= e.clientX;
		var y = parseInt(o.vmode ? o.root.style.top  : o.root.style.bottom);
		var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
		var nx, ny;

		if (o.minX != null) ex = o.hmode ? Math.max(ex, o.minMouseX) : Math.min(ex, o.maxMouseX);
		if (o.maxX != null) ex = o.hmode ? Math.min(ex, o.maxMouseX) : Math.max(ex, o.minMouseX);
		if (o.minY != null) ey = o.vmode ? Math.max(ey, o.minMouseY) : Math.min(ey, o.maxMouseY);
		if (o.maxY != null) ey = o.vmode ? Math.min(ey, o.maxMouseY) : Math.max(ey, o.minMouseY);

		nx = x + ((ex - o.lastMouseX) * (o.hmode ? 1 : -1));
		ny = y + ((ey - o.lastMouseY) * (o.vmode ? 1 : -1));

		if (o.xMapper)		nx = o.xMapper(y)
		else if (o.yMapper)	ny = o.yMapper(x)

		Drag.obj.root.style[o.hmode ? "left" : "right"] = nx + "px";
		Drag.obj.root.style[o.vmode ? "top" : "bottom"] = ny + "px";
		Drag.obj.lastMouseX	= ex;
		Drag.obj.lastMouseY	= ey;

		Drag.obj.root.onDrag(nx, ny);
		return false;
	},

	end : function()
	{
		document.onmousemove = null;
		document.onmouseup   = null;
		Drag.obj.root.onDragEnd(	parseInt(Drag.obj.root.style[Drag.obj.hmode ? "left" : "right"]), 
									parseInt(Drag.obj.root.style[Drag.obj.vmode ? "top" : "bottom"]));
		Drag.obj = null;
	},

	fixE : function(e)
	{
		if (typeof e == 'undefined') e = window.event;
		if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
		if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
		return e;
	}
};

function addnewrow(x_qaid,x_qasels,x_coreadvstr)
{
var rowcnt=document.getElementById("tx_"+x_qaid+"_5").value;

rowcnt++;
document.getElementById("tx_"+x_qaid+"_5").value=rowcnt;

var tarr=x_qasels.split("|");
var str=document.getElementById(x_qaid+"_rows").innerHTML;
    str=str + "<hr>";
    //alert(x_qasels);
    //alert(tarr.length);
cnt=(rowcnt-1)*(tarr.length-1);    
    for(i=0;i<(tarr.length-1);i++)
    {
        str=str + "<br>" + tarr[i] +":<input class='qaType1Input"+x_coreadvstr+"' type='text' name='field_"+x_qaid+"_"+cnt+"' id='field_"+x_qaid+"_"+cnt+"' value='' onchange='makedirty();'>";
        cnt++;
    }
    
    
    document.getElementById(x_qaid+"_rows").innerHTML=str;
}
