function recordState() {
 var objHTTPReq = false;
 
 // branch for native XMLHttpRequest object
 if (window.XMLHttpRequest) {
   try {
		 objHTTPReq = new XMLHttpRequest();
     boolNativeObj = true;
   } catch (e) {
			objHTTPReq = false;
   }
 // branch for IE/Windows ActiveX version
 } else if (window.ActiveXObject) {
 	 try {
     objHTTPReq = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
  	 try {
  		 objHTTPReq = new ActiveXObject("Microsoft.XMLHTTP");
     } catch (e) {
   	   objHTTPReq = false;
     }
	 }
 }
 
 if (objHTTPReq) {
   var strModules = getModuleOrder();
   strModules = encodeURIComponent(strModules);
   var boolAsynchronous = true;

   objHTTPReq.open("POST", "/track/record.aspx", boolAsynchronous);
   objHTTPReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   objHTTPReq.send("modules=" + strModules);
 } 
}

function recordModIneraction(modid) {
 var objHTTPReq = false;
 
 // branch for native XMLHttpRequest object
 if (window.XMLHttpRequest) {
   try {
		 objHTTPReq = new XMLHttpRequest();
     boolNativeObj = true;
   } catch (e) {
			objHTTPReq = false;
   }
 // branch for IE/Windows ActiveX version
 } else if (window.ActiveXObject) {
 	 try {
     objHTTPReq = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
  	 try {
  		 objHTTPReq = new ActiveXObject("Microsoft.XMLHTTP");
     } catch (e) {
   	   objHTTPReq = false;
     }
	 }
 }
 
 if (objHTTPReq) {
  
   modid = encodeURIComponent(modid);
   var boolAsynchronous = true;

   objHTTPReq.open("POST", "/track/trackmod.aspx", boolAsynchronous);
   objHTTPReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   objHTTPReq.send("modid=" + modid);
 } 
}

function getModuleOrder()
{
	var seqList1 = "";
	var seqList2 = "";
	var strModuleOrder = "";
	var list1 = document.getElementById("firstlist");
	var list2 = document.getElementById("secondlist");
	
	seqList1 += Sortable.sequence(list1);
  seqList1 = seqList1.replace( /^\,+/g, "" );
  seqList1 = seqList1.replace( /\,+$/g, "" );
  seqList1 = seqList1.replace( ",,", "," );
	seqList2 += Sortable.sequence(list2);
  seqList2 = seqList2.replace( /^\,+/g, "" );
  seqList2 = seqList2.replace( /\,+$/g, "" );
  seqList2 = seqList2.replace( ",,", "," );
  
  strModuleOrder = seqList1 + "/" + seqList2;
  
  return strModuleOrder;
}

var xmlHttp;

function openChat()
{
	xmlHttp = false;
 
 // branch for native XMLHttpRequest object
 if (window.XMLHttpRequest) {
   try {
		 xmlHttp = new XMLHttpRequest();
     boolNativeObj = true;
   } catch (e) {
			xmlHttp = false;
   }
 // branch for IE/Windows ActiveX version
 } else if (window.ActiveXObject) {
 	 try {
     xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
  	 try {
  		 xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
     } catch (e) {
   	   xmlHttp = false;
     }
	 }
 }
 
 if (xmlHttp) {
   var boolAsynchronous = true;

   xmlHttp.open("GET", "/IMChat.aspx", boolAsynchronous);
   xmlHttp.onreadystatechange=openChatWindow;
   xmlHttp.send(null);
 } 
}

function openChatWindow()
{
    var newwin = null;
    var response = null;
	if (xmlHttp.readyState == '4' || xmlHttp.readyState=="complete")
    { 
  	    response = xmlHttp.responseText;
  	    if(response != "" && response != null && response != "error")
  	    {
  	      newwin = window.open(response,"custclient","width=500,height=350,scrollbars=0");
	      if(newwin != null)
	        newwin.focus();
  	      //alert(response);
  	    }
    } 
}