/**
* @author binghao.zhangbh
* modified by lei.jiangl
*
*/
var dmtrack = {}
dmtrack.SendMessage = function (url,param_base64,param_nobase64,method)
{
function base64encode(str){
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var out, i, len;
var c1, c2, c3;
len = str.length;0
i = 0;
out = "";
while(i < len) {
c1 = str.charCodeAt(i++) & 0xff;
if(i == len){
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt((c1 & 0x3) << 4);
out += "==";
break;
}
c2 = str.charCodeAt(i++);
if(i == len){
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt((c2 & 0xF) << 2);
out += "=";
break;
}
c3 = str.charCodeAt(i++);
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
out += base64EncodeChars.charAt(c3 & 0x3F);
}
return out;
}
var base_str = "";
var nobase_str = "";
var d = new Date();
var url_len = url.length;
try
{
if (param_base64)
{
for(k in param_base64)
{
base_str += k.toString()+"="+param_base64[k].toString()+"&";
}
base_str = base_str.substring(0,base_str.length-1);
}
base_str = base64encode(base_str);
if (param_nobase64)
{
for (k in param_nobase64)
{
nobase_str += k.toString()+"="+param_nobase64[k].toString()+"&";
}
nobase_str = nobase_str.substring(0,nobase_str.length-1);
}
if (url.indexOf("?")== -1)
{
if(!base_str && nobase_str) url += "?" + nobase_str + "&ver=30&time=" + d.getTime();
else if (!nobase_str && base_str) url += "?" + base_str + "&ver=30&time=" + d.getTime();
else if (nobase_str && base_str) url+= "?" + base_str + "&" + nobase_str + "&ver=30&time="+d.getTime();
}
else
{
var arr = url.split("?");
if(!base_str && nobase_str)
{
if (!arr[1])
url = ""+arr[0] +"?"+arr[1]+nobase_str+ "&ver=30&time="+d.getTime();
else
url = ""+arr[0] +"?"+arr[1]+"&"+nobase_str+ "&ver=30&time="+d.getTime();
}
else if (!nobase_str && base_str)
{
if (!arr[1])
url = ""+arr[0] +"?"+base_str+arr[1]+"&ver=30&time="+d.getTime();
else
url = ""+arr[0] +"?"+base_str+"&"+arr[1]+"&ver=30&time="+d.getTime();
}
else if (nobase_str && base_str)
{
if (!arr[1])
url = ""+arr[0] +"?"+base_str+arr[1]+"&"+nobase_str+ "&ver=30&time="+d.getTime();
else
url = ""+arr[0] +"?"+base_str+"&"+arr[1]+"&"+nobase_str+ "&ver=30&time="+d.getTime();
}
}
if (url.length==url_len)
{
if (url.indexOf("?")==-1)
url+= "?"	+ "ver=30&time="+d.getTime();
else
{
if (url.indexOf("?")==url.length-1)
{
url+= "ver=30&time="+d.getTime();
}
else
{
url += "&ver=30&time="+d.getTime();
}
}
}
if (method=="docwrite")
document.write("<img style='display:none' src = "+url+">");
else if (method == "newimg" || !method)
{
var MSG_Img = new Image();
MSG_Img.src = url ;
return MSG_Img;
}
}
catch(err)
{
var err_url = "http://stat.china.alibaba.com/dw/error.html?exception="+encodeURIComponent(err.toString())+"&url="+ encodeURIComponent(document.URL.toString());
if (method=="docwrite")
document.write("<img style='display:none' src = "+err_url+">");
else if (method == "newimg" || !method)
{
var MSG_Img = new Image();
MSG_Img.src = err_url ;
}
}
}
dmtrack.sk_getRand = function() {
var page_id;
try{
page_id = dmtrack_pageid;
}
catch(e)
{
page_id = "";
}
if (!page_id)
{
page_id="001" +Math.round(Math.random()*10000000000)+""+Math.round(Math.random()*10000000000);
}
else
{
page_id = page_id.substr(0,20);
}
var d = new Date();
var randend = [
page_id,
d.getTime()
].join('');
if(randend.length<42){
var _r=""+Math.round(Math.random()*10000000000)+Math.round(Math.random()*10000000000)+Math.round(Math.random()*10000000000);
var _c= 0;
_r = _r.split("");
for (var i = randend.length ;i<42;i++)
{
randend = randend + _r[_c];
_c++;
}
}
else
{
for (var i = randend.length ;i>42;i--)
{
randend = randend.substring(0,i-1);
}
}
return randend;
}
dmtrack.get_cookie = function (sName)
{
var sRE = "(?:; )?"+ sName + "=([^;]*);?";
var oRE = new RegExp (sRE);
if (oRE.test(document.cookie))
{
return decodeURIComponent(RegExp["$1"]);
}
else
{
return "-";
}
}
if(typeof isDmTracked =='undefined'){
var isDmTracked = false;
}
var dmtrack_send_message ;
var dmtrack_err_message;
function sk_dmtracking(){
if(isDmTracked)
return;
try{
dmtrack_pageid = dmtrack.sk_getRand();
var refer = document.referrer;
if (!refer && document.opener)refer = document.opener.location;
if (!refer) refer = "-";
var profile_site=2;
var method ="GET";
var url = document.URL.substr(6);
var cookie= dmtrack.get_cookie("ali_apache_track");
var send_url = "http://dmtracking.alibaba.com/b.jpg?";
try{if(!dmtrack_c) dmtrack_c="{-}"}catch(e){dmtrack_c="{-}"}
dmtrack_send_message = dmtrack.SendMessage(send_url,{p:"{"+profile_site+"}",u:"{"+url+"}",m:"{"+method+"}",s:"{200}",r:"{"+refer+"}",a:"{"+cookie+"}",b:"{-}",c:dmtrack_c},{pageid:dmtrack_pageid});
}
catch(err)
{
var err_url = "http://stat.china.alibaba.com/dw/error.html?exception="+encodeURIComponent(err.toString())+"&url="+ encodeURIComponent(document.URL.toString());
dmtrack_err_message = dmtrack.SendMessage(err_url);
}
isDmTracked = true;
}

