function wmx_GetCookie(sName)
{
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++) {
    var aCrumb = aCookie[i].split("=");
    if (sName == unescape(aCrumb[0])) 
      return unescape(aCrumb[1]);
  }
  return null;
}

function wmx_GetHttpUrl(strUrl)
{
	var nPos = strUrl.indexOf("?");
	if (nPos != -1)
		return (strUrl.substring(0,nPos));
	else
		return (strUrl);
}

function wmx_GetHttpUrlParam(strUrl)
{
	var strResParam = "";
	var nPos = strUrl.indexOf("?");	

	if (nPos != -1)
	{
		var strSrcParam = strUrl.substring(nPos+1,strUrl.length).toLowerCase();
		var oParam = strSrcParam.split('&');
		oParam.sort();
		
		for (i=0; i<oParam.length; i++)
		{
		   if (strResParam != "")
		      strResParam += "&";
		      
			strResParam += oParam[i];      
		}
	}

	return (strResParam);	
}
/*
**webmax tracking code
**OO version
**last modify:2008-12-2
使用时，首先建立一个新的oWmxTracker物件，然后根据需求调用方法。
根据_csl_script_template.js改造，function名有修改。
counter/leads/ad可以分别调用。
也可以根据参数，调用leads时同时调用counter(1 img request)。
具体说明请参见对应说明文档。
*/
/*
oWmxTracker : webmax track class.
*/
var oWmxTracker =function(client,campiagn,baseUrl,wmx_cntracking,wmx_sltracking) 
{
	this.client=client; //Webmax clientID
	this.campaign=campiagn; //Webmax campaignID
	this.imgContainer=new Array(); // 发送的img request存放在这里
	this.baseUrl=baseUrl; //tracking站台domain.(例如:wm2cc.1to1crm.com.cn)
	this.protocol = location.protocol=="https:"?"https:":"http:";	//当前页面protocol.如为https,应有对应可以访问的https tracking site.
	this.trackUrl=this.protocol+'//'+this.baseUrl+'/web_service/counter/CSTrack.aspx';//CSTrack程式位置。
	this.wmx_cntracking=wmx_cntracking;//是否使用counter,1:yes 0:no
	this.wmx_sltracking=wmx_sltracking;//是否使用smart leads. 1:yes 0:no
	this.strUID = (navigator.cookieEnabled ? "W_S_UID" : "-1");//universalID.如cookie disable,则传入-1,否则交由后台系统设置。
	this.strAccount = encodeURIComponent(wmx_GetCookie("WMX_Account"));//本地cookie中的wmx_account.
	this.wmx_thisURL = document.URL;//页面地址。
	this.wmx_from = document.referrer;//来源页地址。
    this.wmx_title = document.title;//页面标题。
	this.navagator=new Object();//使用navagator信息存储在此object.
	this.navagator.userAgent=encodeURIComponent(navigator.userAgent.substring(0,128));
	this.navagator.screenWidth=screen.width;
	this.navagator.screenHeight=screen.height;
	this.aFieldList=new Array(); //客制信息存储于此。需根据客制化需要在调用track前添加.
	this.debug;
	}
/*
添加扩展字段
*/
oWmxTracker.prototype.addFields=function(iFieldID,sValue)
{
	this.aFieldList.push([iFieldID,sValue])
	}
/*
完全打开AD后,回送请求到站台
*/
oWmxTracker.prototype.ad=function()
{if(this.wmx_from==this.wmx_title) return;//页面刷新。退出
 var sAdUrl=this.protocol + "//"+this.baseUrl+"/web_service/counter/ad_total_open.aspx"+"?"+this.client;
 var _this=this;
 if(window.addEventListener) // Mozilla, Netscape, Firefox
            addEventListener('load', function(){										  
	_this.createImg(sAdUrl)},false);
        else
            attachEvent('onload',function(){
	_this.createImg(sAdUrl)});
	}
/*
调用leads.
*/
oWmxTracker.prototype.track=function()
{
		if (this.wmx_cntracking == "1") // counter parameter
	{
		if(this.wmx_title == "")
		{

			var nIndex = this.wmx_title.indexOf("?");
			if(nIndex != -1) 
			this.wmx_title = this.wmx_title.substring(0, nIndex);
			nIndex = this.wmx_title.indexOf("#");
			if(nIndex != -1) 
			this.wmx_title = this.wmx_title.substring(0, nIndex);
			nIndex = this.wmx_title.lastIndexOf("//");
			if(nIndex != -1)
			this.wmx_title =this.wmx_title.substring(nIndex+2,this.wmx_title.length);
			if(this.wmx_title.substring(this.wmx_title.length-1,this.wmx_title.length)=='/')
			this.wmx_title =this.wmx_title.substring(0,this.wmx_title.length-1);
		}
		this.aFieldList.push(["pname",escape(this.wmx_title)]);
	}
	
		
	
	
	this.aFieldList.push(["cli",this.client],["uid",this.strUID],[1,this.wmx_thisURL],[2,this.strUID],[3,'W_S_SC'],[4,this.strAccount],[5,'W_S'],[6,'W_S_DATE'],[7,'W_S'],[8,'W_S'],[9,this.wmx_from],[10,'W_S_IP'],[11,this.campaign],[22,this.navagator.userAgent],[23,this.navagator.screenWidth],[24,this.navagator.screenHeight]);
if (this.wmx_sltracking =="1")  // tracking parameter
	{
	this.aFieldList.push([20,wmx_GetHttpUrl(this.wmx_thisURL)],[21,wmx_GetHttpUrlParam(this.wmx_thisURL)]);
	}
    
	
  	 this.createImg(this.formTrackString());
	}
oWmxTracker.prototype.formTrackString=function(){
	var strSrc=this.trackUrl+'?';
	for(var i=0;i<this.aFieldList.length;i++)
	{
		if(i!=0)
		strSrc+='&';
		strSrc+=this.aFieldList[i][0]+'='+encodeURIComponent(this.aFieldList[i][1]);
		}
		strSrc+='&countertracking='+this.wmx_cntracking; //单独提出，因为flash tracking/JS tracking时有可能会根据需求修改此值。
		strSrc+='&sltracking='+this.wmx_sltracking;
		return strSrc;
	}
/*
提供给AS调用，响应事件。固定使用:12,13.必选参数:bCounter.以确认是否进行counter计算。
*/
oWmxTracker.prototype.flashTrack=function(bCounter,s12,s13)
{
	this.clearFieldArray(12);
	this.clearFieldArray(13);
	this.clearFieldArray(15);
	this.clearFieldArray(16);
	this.clearFieldArray(17);
	this.clearFieldArray(18);
	this.clearFieldArray(19);
	if(typeof(bCounter)!='boolean')
	return;
	if(bCounter)
	this.wmx_cntracking=1;
	else
	this.wmx_cntracking=0;
	if(typeof(s12)!='undefined')
	this.aFieldList.push([12,s12]);
	else return;
	if(typeof(s13)!='undefined')
	this.aFieldList.push([13,s13]);
	 this.createImg(this.formTrackString());
	}
/*
从fieldArray中，移出对应的对象。
*/
oWmxTracker.prototype.clearFieldArray=function(fieldId)
{
	for(var i=0;i<this.aFieldList.length;i++)
		{
			if(this.aFieldList[i][0]==fieldId)
				{this.aFieldList.splice(i,1)}
			}
	}
/*
提供给JS调用，响应事件。允许使用:15~19.
*/
//通用方式1:调用方式：oWmxTracker.eventTrack([15,'test'],[16,'test2']);
//客制化方式，需工程师自行确定。可与客户约定输入。经过处理后，应写入oWmxTracker.aFieldList,之后调用。注意需要在每次追踪前，清理上次追踪到的信息。oWmxTracker.createImg(oWmxTracker.formTrackString()).
oWmxTracker.prototype.eventTrack=function()
{	this.clearFieldArray(12);
	this.clearFieldArray(13);//清理可能由flash track之前收集来的信息
	for(var i=0;i<arguments.length;i++)
	{
		if(arguments[i][0]>=15 && arguments[i][0]<=19) //仅处理允许填写的字段，超出字段范围值不予处理
		{
		this.clearFieldArray(arguments[i][0]);
		this.aFieldList.push([arguments[i][0],arguments[i][1]]);
		}
	}
	this.createImg(this.formTrackString());
	}
/*
建立Img调用。向后台发送请求。
*/
oWmxTracker.prototype.createImg=function(sUrl)
{
	if(!this.debug)
	{
	var oImg=new Image(1,1);
	oImg.src=sUrl;
	this.imgContainer.push(oImg);
	}
	else
	alert(sUrl);
	}
