/*
        generate ping
        type is down,listen or pv
        value is to decorate type
*/ 
var consumePing = function(type,value,option){
	var inpara;
	var from = "-";
	var referer = document.referrer||"-";
	var refererTmp;
	var iploc = ckget_m("IPLOC")||"-";
	var suid = ckget_m("SUID")||"-";i

	if(type == "listen" || type == "listen2"){
	        refererTmp = window.location.href;
		var start = refererTmp.indexOf("&from");
		if(start == -1) 
		{
			from = "nowhere";
		}
		else
		{
			var end =refererTmp.indexOf("&",start+1);
			if(end == -1) end = refererTmp.length;
			from = refererTmp.substring(start+6,end);
		}
        }else if(type == "ldown"){
	   if(option == "ie"){	
	 	refererTmp = window.location.href;
                var start = refererTmp.indexOf("&from");
                if(start == -1) 
                {               
                        from = "nowhere";
                }                       
                else            
                {        
                        var end =refererTmp.indexOf("&",start+1);
                        if(end == -1) end = refererTmp.length;
                        from = refererTmp.substring(start+6,end);
                }               

	  }else if(option == "ff"){

		refererTmp = referer;
                var start = refererTmp.indexOf("&from");
                if(start == -1) 
                {               
                        from = "nowhere";
                }                       
                else            
                {        
                        var end =refererTmp.indexOf("&",start+1);
                        if(end == -1) end = refererTmp.length;
                        from = refererTmp.substring(start+6,end);
                }               	

	}

	}else if(type=="lbdown"){
		refererTmp = window.location.href;
                var start = refererTmp.indexOf("&from");
                if(start == -1) 
                {               
                        from = "nowhere";
                }                       
                else            
                {        
                        var end =refererTmp.indexOf("&",start+1);
                        if(end == -1) end = refererTmp.length;
                        from = refererTmp.substring(start+6,end);
                }
	}
	
	referer = encodeURIComponent(referer);
	var para = combinePing(referer,suid,iploc);
 	
	var imgID;
	var img;
		
        if(type=="down"){

		   if(value == "2"){
			if(option == "mbox"){
				var gids = getGidsMBox();
				var metas = getSelectedMetasMBox();
				if (gids == "" && metas == "") {
            				return false;
				}
			 }
			 else if(option == "phb"){
				var cheArr = document.getElementsByName('che');
        			var qryArr = document.getElementsByName('batch');
			        var str = "";
			        var downpos = "";
			        for(var i=0;i<cheArr.length;i++) {
		                if(cheArr[i].checked)
                		{
                        		downpos = downpos + cheArr[i].value + ",";
		                        if(str!="") {
                		            str = str+"```"+qryArr[i].value;
		                        } else {
                		            str = str+qryArr[i].value;
                       		        }
                		}

        			}
		       		 if(str=="")
        			{
		                	return;
        			}
			 }        
		   }
	        inpara = para+"&dl="+value;
        
        }else if(type=="listen"){
                inpara = para+"&lsn="+value;
        	if(from == "search" || from == "phb" || from == "mbox")
			inpara = inpara + "&from=" + from ;

        }else if(type=="listen2"){
                inpara = para+"&lsn2="+value;
        	if(from == "search" || from == "phb" || from == "mbox")
			inpara = inpara + "&from=" + from ;

        }else if(type=="pv"){
                inpara = para+"&pv="+value;
 
        }else if(type=="ldown"){
		inpara = para+"&dl="+value;        	
		if(from == "search" || from == "phb" || from == "mbox")
                        inpara = inpara + "&from=" + from ;
        }else if(type=="lbdown"){
		inpara = para+"&dl="+value;
		inpara = inpara+ option;
		 if(from == "search" || from == "phb" || from == "mbox")
                        inpara = inpara + "&from=" + from ;

	}else if(type=="phbbdown"){
		inpara = para+"&dl="+value;
		inpara = inpara+ option;
		inpara = inpara+ "&from=phb";
	}else{

		inpara ="";
	}
        
        inpara = addDatetime(inpara);

        if (type != null && typeof(type) != "undefined" && type != "") {
                imgID = escape(type);
        } else {
                imgID = imgID ||"-";
	}

        img = document.createElement("img");
        document.body.appendChild(img);
        img.setAttribute("id", imgID);
        img.setAttribute("src", inpara); 
	img.setAttribute("width", "0");
	img.setAttribute("height", "0");
}




/*
        generate http://www.sohu.com/t.gif?r=-&i=-&l=-
*/

var combinePing = function(referer,suid,ip2location){
        var site="http://pb.pbd.sogou.com:7080";    
        var para=site+"/t.gif?r="+referer+"&i="+suid+"&l="+ip2location;
        return para;
}

/*
        add &Math.random() after string;
*/

var addRandom = function(para){
        var random = para+"&"+Math.random();
        return random;
}

/*
	add Datetime stamp &t=parseInt(new Date().getTime()/1000)
*/

var addDatetime = function(para){
	var stamp = para + "&t=" + parseInt(new Date().getTime()/1000);
	return stamp;
}

/*
	get attribute value from cookie

*/
var ckget_m = function(name){
    name = name || "default";
    var start = document.cookie.indexOf(name + "=");
    if(start == -1) return null;
    var len = start + name.length + 1;
    if((!start) && (name != document.cookie.substring(0,name.length)))
        return null;
    var end = document.cookie.indexOf(";",len); 
    if(end==-1) end = document.cookie.length;
    return document.cookie.substring(len,end);
}

function getGidsMBox() {
    var cbs = document.getElementsByTagName("INPUT");
    var size = cbs.length;
    var str = "";
    for (var i = 0; i < size; i = i + 1) {
	var cb = cbs[i];
	if ((cb.catalog == "music"  || cb.getAttribute('catalog') == "music")
	    && cb.checked) {
	    if (str == "") {
		str += cb.value; 
	    } else {
		str += ",";
		str += cb.value; 
	    }
	}
    }

    return str;
}

function getSelectedMetasMBox() {
	var cbs = document.getElementsByTagName("INPUT");
	var size = cbs.length;
	var result = "";
	for (var i = 0; i < size; i = i + 1) {
		var cb = cbs[i];
		if ((cb.catalog == "music"  || cb.getAttribute('catalog') == "music") && cb.checked && cb.value=='') {
			var ts = cb.getAttribute("t")+" "+cb.getAttribute("s");
			if( result == "" ) {
				result += ts; 
			} else {
				result += "```"+ts; 
			}
		}
	}
	return result;
}
