/**
* @author:aliued-wd junbiao.zhujb
* @version 1.0
*/
/**
* @author:aliued-wd junbiao.zhujb
* @version 1.0
* 本JS主要负责请求接口的定义，初始化，及异步跨域请求管理，发起异步跨域请求，调用P4P实现
*/
var postIndx = 0;
/**
* 发送异步跨域的请求对象，支持2次不同域的请求。
* @param {String} url 异步请求
* @param {String} getName
* @param {String} secondUrl
* @param {String} secondGetName
* @param {function} success
* @param {function} failure
*/
var Post = function(url,getName,success,failure,isSecondPost){
this.url = url;
this.getName = getName;
this.secondUrl = "";
this.secondGetName = "searchOffers"+(postIndx++);
this.success = success;
this.failure = failure;
this.isSecondPost = isSecondPost||false;
this.data = null;//存放请求结果的数据
this.dataTemp = null;//暂时存放第一次请求的数据
this._init();//初始化拖动层
}
/**
* Post对象的扩展方法，初始化Post对象
*/
Post.prototype._init = function(){
PostManagement.go(this);
}
var holdPostList = new Array();//等待发送的请求列队
var postedList = new Array();//请求缓存
var running = false;//表示请求的运行状态，true：正在运行中，false：没有运行
/**
* 异步跨域请求管理器，如果请求时已经发送过的请求，且请求得到的结果不为空，
* 则直接返回请求结果，不再做异步跨域请求，并且触发成功或则失败的操作。
*
*/
(function(){
PostManagement = {
/**
* 执行当前请求
* @param {Object} post 当前请求
*/
go:function(post){
/**
* 缓存中是否已经有当前的请求了，如果没有则发起一次新的请求，
* 如果有直接取缓存中的数据
*/
if(!this.getPosted(post)){
if(!running){//如果当前没有在运行中的请求，则发起新的请求
running = true;
Sender.posting(post);
}else{//如果当前另一条请求正在运行中，则暂时hold该次请求，放到请求列队里
this.holding(post);
}
}else{
post = this.getPosted(post);
post.success(post.data);
}
},
/**
* 发送被hold的请求,发送该请求后，把该请求从hold列队中清除掉
*/
sendHoldPost:function(){
var firstHoldPost = holdPostList[holdPostList.length-1];
if(firstHoldPost){
this.go(firstHoldPost);
holdPostList.pop(firstHoldPost);
}
},
/**
* hold当前请求
* @param {Object} post 当前请求
*/
holding:function(post){
holdPostList.push(post);
},
/**
* 根据请求，从请求缓存池中获取请求连接一样的请求对象，请求对象已经包含请求结果的数据
* @param {Object} post 当前请求对象
* @return post or null 请求对象；
*/
getPosted:function(post){
for(var i=0;i<postedList.length;i++){
if(postedList[i].url==post.url||postedList[i].secondUrl==post.url){
return postedList[i];
}
}
return null;
}
}
})();
/**
* 发起异步请求和处理异步请求结果的类
*/
(function(){
var nowPost;
Sender = {
posting:function(post){
nowPost = post;
/**
* 根据链接发起异步请求
*/
AsyncScript.script(nowPost.url,this.Processing,window);
},
/**
* 处理异步跨域的请求结果，如果请求出错则执行请求对象中的错误方法
* 如果请求成功则执行请求对象中的成功方法，但是如果请求对象中还包含了
* 二次请求连接和二次请求参数名的话和存放请求结果的数据为空的话，则该条请求继续执行（发起二次请求，其他请求继续等待）
*/
Processing:function(){
try{
var firstData = eval(nowPost.getName);
}catch(e){
nowPost.failure();
running = false;
PostManagement.sendHoldPost();
return;
}
if(firstData){
if(nowPost.isSecondPost){
nowPost.secondUrl = nowPost.url;
nowPost.url = Sender.createSecondUrl(firstData,nowPost);
nowPost.getName = nowPost.secondGetName;
nowPost.dataTemp = firstData;
nowPost.isSecondPost = false;
Sender.posting(nowPost);
}else{
if(nowPost.dataTemp!=null&&firstData){
nowPost.data = Sender.merge(firstData,nowPost.dataTemp);
nowPost.data = Sender.sort(nowPost.dataTemp,nowPost.data);
nowPost.dataTemp = null;
}else{
nowPost.data = firstData;
}
nowPost.success(nowPost.data);
postedList[postedList.length] = nowPost;//把当前请求对象放到缓存里面
running = false;
PostManagement.sendHoldPost();
}
}
},
/**
* 根据第一次请求得到的数据对合并后的数据进行排序
* @param {Object} fistData
*/
sort:function(fistData,mergeData){
var newData = new Array();
for(var i=0;i<fistData.length;i++){
for(var j=0;j<mergeData.length;j++){
if(fistData[i].RESOURCEID==mergeData[j].RESOURCEID){
newData[newData.length] = mergeData[j];
continue;
}
}
}
if(newData.length>0){
return newData;
}
return mergeData;
},
/**
* 根据第一次请求的结果得出2次请求的URL
* @param {Object} firstPost
* @param {Object} post
* @return 返回2次请求需要的URL
*/
createSecondUrl:function(firstData,post){
var idList = firstData||[];
var secondUrl = "http://search.china.alibaba.com/search/ajax_search.htm?iframe_delete=true&clientType=p4p&variable="+post.secondGetName+"&offerIds=";
for(var i=0;i<idList.length;i++){
secondUrl = secondUrl + idList[i].RESOURCEID + ",";
}
if(idList.length>0){
secondUrl = secondUrl.substring(0,secondUrl.length-1);
}
return secondUrl;
},
/**
* 深度合并数组里的对象后生成一个新的数组
* @param {Object} firstArr 第一个数组
* @param {Object} secondArr 第二个数组
*/
merge:function(firstArr,secondArr){
var returnArr = new Array();
for(var i=0;i<firstArr.length;i++){
for(var j=0;j<secondArr.length;j++){
if(firstArr[i].id==secondArr[j].RESOURCEID){
returnArr[returnArr.length] = Lang.merge(firstArr[i],secondArr[j]);
}
}
}
return returnArr;
}
}
})();
/**
* @author:aliued-wd junbiao.zhujb
* @version 1.0
*/
var userAgent = navigator.userAgent.toLowerCase();
/**
* 判断浏览器
*/
Browser = {
version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
isSafari: /webkit/.test( userAgent ),
isOpera: /opera/.test( userAgent ),
isMsie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
isMozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
}
/**
* 异步跨域请求类的封装实现
*/
AsyncScript = function(){
var nidx = 0;//script对象的序列ID
/**
* 根据接点类型和节点拥有的属性及作用域来创建一个节点
* @param {String} nodeType 接点类型
* @param {Object} attributes 节点拥有的属性
* @param {Object} win 作用域
* @return 返回一个DOM节点
*/
var _node = function(nodeType,attributes,win){
var w = win || window, d=w.document, n=d.createElement(nodeType);
for (var i in attributes) {
if (attributes[i]) {
n.setAttribute(i, attributes[i]);
}
}
return n;
};
/**
* 根据URL，作用域和编码来创建一个javascript节点
* @param {String} url URL
* @param {Object} win 作用域
* @param {String} charset 编码
* @return 返回一个javascript节点
*/
var _scriptNode = function(url,win,charset){
var c = charset || "gbk";
return _node("script",{
"id":"alicn"+(nidx++),
"type":"text/javascript",
"charset": c,
"src":url
},win);
};
return {
/**
* 发起异步跨域请求的方法
* @param {Object} url 异步跨域请求的链接
* @param {Object} fn 请求成功后触发的方法
* @param {Object} scope 作用域
*/
script:function(url,fn,scope){
var w=scope||window, d=w.document, h=d.getElementsByTagName("head")[0], n;
n = _scriptNode(url,w,"gbk");
h.appendChild(n);
if(Browser.isMsie){
n.onreadystatechange = function(){
var rs = this.readyState;
if("loaded" === rs || "complete" === rs){
fn();
}
}
}else{
n.onload = function(){
fn();
}
}
}
}
}();
/**
* 常用方法
*/
Lang = {
/**
* 判断是否是方法
* @param {Object} o
*/
isFunction: function(o) {
return typeof o === 'function';
},
/**
* 好像是IE不支持什么的，用来解决的
* @param {Object} r
* @param {Object} s
*/
_IEEnumFix: function(r, s) {
if (Browser.isMsie) {
var add=["toString", "valueOf"], i;
for (i=0;i<add.length;i=i+1) {
var fname=add[i],f=s[fname];
if (Lang.isFunction(f) && f!=Object.prototype[fname]) {
r[fname]=f;
}
}
}
},
/**
* 合并对象的方法，把属性收集到一个对象里面
* @param {Object} r 合并后的对象
* @param {Object} s 需要合并到R中的对象
*/
augmentObject: function(r, s) {
if (!s||!r) {
throw new Error("Absorb failed, verify dependencies.");
}
var a=arguments, i, p, override=a[2];
if (override && override!==true) { // only absorb the specified properties
for (i=2; i<a.length; i=i+1) {
r[a[i]] = s[a[i]];
}
} else { // take everything, overwriting only if the third parameter is true
for (p in s) {
if (override || !r[p]) {
r[p] = s[p];
}
}
Lang._IEEnumFix(r, s);
}
},
/**
* 合并对象
*/
merge: function() {
var o={}, a=arguments;
for (var i=0, l=a.length; i<l; i=i+1) {
Lang.augmentObject(o, a[i], true);
}
return o;
}
}
/**
* @author chuangui.xiecg
* updated 2008-06-19
*/
var p4p_jjCount = 0;//竞价条数
var p4p_pageSize = 40;//每页显示个数
var p4p_keyword = "";//关键字
var p4p_ppp = 1;//不明白的参数，具体问搜索TEAM去
var p4p_hashCode = 1;//哈希码
var p4p_alitalkMethod = "a1875796";//动态的调用贸易通的方法名
var p4p_categoryid = ""; //类目ID
function initP4pParams(jjCount,pageSize,keyword,ppp,hashCode,alitalkMethod,categoryid){
p4p_jjCount = jjCount||0;
p4p_pageSize = pageSize||40;
p4p_keyword = keyword||'';
p4p_ppp = ppp||1;
p4p_hashCode = hashCode||1;
p4p_alitalkMethod = alitalkMethod||'';
p4p_categoryid = categoryid;
}
var p4pConfig = {
"api":"http://match.p4p.alibaba.com/b2bad",//P4P调用接口
"api2":"http://page.china.alibaba.com/html/p4p/p4pScript_test2.html",//测试接口
"api3":"http://10.0.29.13:7001/search/p4p_api.htm",//本地测试接口2
"entrance":"http://page.china.alibaba.com/html/p4p/pro.html?tracelog=p4plist",//我也要出现在这里的入口地址
"noimg":{
"x100":"http://img.china.alibaba.com/images/cn/p4p/nopic_100x100.gif",
"x150":"http://img.china.alibaba.com/images/cn/market/trade/list/070423/nopic150.gif"
},
"img":"http://img.china.alibaba.com/img/offer",
"company":"http://china.alibaba.com/company/detail/",
"icon":{
"p":"http://img.china.alibaba.com/images/common/icon_v01/4000812.gif",  //个人诚信通icon
"c":"http://img.china.alibaba.com/images/common/icon_v01/4000712.gif",  //企业诚信通icon
"u":"http://img.china.alibaba.com/images/buyer/list/trust.gif"          //统一诚信通icon
},
"trust":".cn.alibaba.com/athena/bizreflist/",
"bdMaxOfferNum":10,
"wangwangstate":'http://amos.im.alisoft.com/muliuserstatus.aw?uids='
}
/*
* 打点函数
* @param {string} url 检测打点的入口地址
* @param {int} type 打点的类型:如果要对旺旺进行打点，则需要传入一个不为零的参数如p4pClick(url,true),其他要进行打点的，直接p4pClick(url)|p4pClick(url,false)这样调用
* @returns {bool} true|false
*/
function p4pClick(url,type){
var d = new Date();
if(document.images&&(!arguments[1]||(arguments[1]&&Browser.isMsie))) {
(new Image()).src=url+"&j=1&time=" + d.getTime();
}
return true;
}
function createAlitalkStat(dataObj,ppp,hashCode){
var javascriptStr="",imgURL="",doc="",className="",tips="";
var memberId = dataObj.MEMBERID;
var memberIdLen = memberId.length;
var cutlen = memberIdLen % ppp;
var mixnum = parseInt(hashCode / 13);
var encodeMemberId = memberId.substring(cutlen,memberIdLen)+memberId.substring(0,cutlen)+mixnum;
if(dataObj.onlineStatus==0){
imgURL = 'http://img.china.alibaba.com/images/cn/buysell/070801/ww_online_22x22.gif';
doc = "跟我洽谈";
tips="点此可直接与对方在线咨询产品、交流洽谈。还支持语音视频和多方商务洽谈";
className = 'sysww_online';
}else if(dataObj.onlineStatus==4||dataObj.onlineStatus==5){
imgURL = 'http://img.china.alibaba.com/images/cn/buysell/070801/ww_phone_22x22.gif';
doc = "手机在线 ";
tips="该用户为手机在线，点此默认发送离线消息，也可选择给对方发送短信咨询产品，交流洽谈";
className = 'sysww_phone';
}else{
imgURL = 'http://img.china.alibaba.com/images/cn/buysell/070801/ww_offline_22x22.gif';
doc = "留个消息";
tips="";
className = 'sysww_off';
}
javascriptStr = "'"+dataObj.id+"','"+encodeMemberId+"','isOnline','SALE','"+dataObj.memberLevel+"','"+dataObj.categoryId+"',"+dataObj.onlineStatus;
return [javascriptStr,imgURL,doc,tips,className];
}
/*
* 关键字加红
* @param {Object} str 字符串
* @param {Object} key 需要加红关键字
* @returns {string} str
*/
function doRed(str,key){
var key = key.replace(/[,\s\+]+/g, '|');
if(key == ""){return str;}
try {
return str.replace(new RegExp('('+key+')', 'ig'), '<span style="color:red;">$1</span>');
} catch (e) {
return str;
}
};
/*
* @param {Object} str 需要进行截取的字符串
* @param {Object} maxLength 显示字符串的最大长度
* @param {Object} type:为2时，直接截取字符串，不加...,为1或者为空则采用默认的截取方式
*/
function doSubstring(str,maxLength,type){
var new_str = "";
var type = type || 1;
var s_length = maxLength-3;
if(str.length>maxLength){
if (type == 1) {
new_str = str.substring(0, s_length) + "...";
}else if(type==4){
new_str = str.substring(0, maxLength) + "...";
}else{
new_str = str.substring(0, maxLength);
}
}else{
new_str = str;
}
return new_str;
}
function doSubstringAo(str, len, hasDot){
var newLength = 0;
var newStr = '';
var chineseRegex = /[^\x00-\xff]/g;
var singleChar = '';
var strLength = str.replace(chineseRegex,'**').length;
for(var i = 0;i < strLength;i++){
singleChar = str.charAt(i).toString();
if(singleChar.match(chineseRegex) != null) {
newLength += 2;
}
else {
newLength++;
}
if(newLength > len) {
break;
}
newStr += singleChar;
}
if(hasDot && strLength > len) {
newStr += '...';
}
return newStr;
}
//过滤YAHOO传递过来的数据，当offer的标题，EURL，RESOURCEID只要有一个为空，则被过滤
function doFitlerData(d){
var new_data=[];
for(var w=0; w<d.length;w++){
if(d[w].TITLE&&d[w].TITLE!=''&&d[w].EURL&&d[w].EURL!=''&&d[w].RESOURCEID&&d[w].RESOURCEID!=''){
new_data[new_data.length] = d[w];
}
}
return new_data;
};
/*
* 十进制转二进制
* @param {number} d 整数
* returns {Array} bin 存放'0','1'的数组
*/
function dec2bin(d){
var _dec = d;
var bin = ["0","0","0","0","0","0","0","0","0","0"];
var i = 9;
while(_dec>0){
if(_dec%2 != 0){
bin[i] = "1";
}
i--;
_dec = parseInt(_dec/2);
}
return bin;
}
/*判断是不是为'1'
* @param {string} s
* return {bool} true|false
*/
function isTrue(s){
if(s == "1") return true;
return false;
}
/*
* 拼装p4pURL函数
* @param {string} keyword  需要搜索的关键词，gbk编码，必须urlencode传递
* @param {string} catid    类目id，采用英文逗号(,)分隔，具体格式如下:(父类目id,类目id,子类id)
* @param {string} cat      类目名称，与类目id对应的名称,采用英文逗号(,)分隔，与catid的顺序一样，gbk编码，必须urlencode传递
* @param {string} tag      本文标签，采用英文逗号(,)分隔，gbk编码，必须urlencode传递
* @param {string} count    需要取得的广告条数
* @param {string} beginPage 当前页数
* @param {string} needNextGroup 是否需要判断有下一页数据 需要为ture 否则为false
* @param {string} pid      合作伙伴id
* @param {string} p4p      返回的广告json数组名
* @param {string} mt       keyword查询的匹配级别，e(精确)，c(中心)、ec(先精确后中心)
* @param {string} forumid  论坛ID
* @param {string} source   bd
*
*/
function createP4PURL(keyword, catid, cat, tag, count, beginPage,needNextGroup, pid, p4p, mt, forumid, source,fixBeginPage,docid,info_catid,info_subjid){
if(arguments.length==1&&typeof arguments[0]=="object") return createP4PURLObject(arguments[0]);
var oriURL = p4pConfig.api; //从配置文件中获取参数
var _keyword = keyword || "";//encodeURI(keyword);
var _catid = catid || "";
var _cat = cat || "";
var _tag = tag || "";
var _count = count || 0;
var _beginPage = beginPage || 0;
var _offset  = 0;
var _fixBeginPage = fixBeginPage || 0;
var _docid = docid || "";
var _info_catid = info_catid || "";
var _info_subjid = info_subjid || "";
needNextGroup = needNextGroup||false;
if(needNextGroup){
_offset = parseInt(_count)*(parseInt(_beginPage)-1);
}else{
_offset = parseInt(_count)*(parseInt(_beginPage)-1)+_fixBeginPage;
}
if(_offset<0) _offset = 0;
var _pid = pid || "";
var _p4p = p4p || "p4pOffers";
var _mt = mt;
var _forumid = forumid || "";
var _source = source || "";
var t = new Date().getTime();
oriURL += "?keyword="+_keyword+"&catid="+_catid+"&cat="+_cat+"&tag="+_tag+"&count="+_count+"&offset="+_offset+"&pid="+_pid+"&p4p="+_p4p+"&mt="+_mt+"&forumid="+_forumid+"&source="+_source+"&docid="+_docid+"&category="+_info_catid+"&subject="+_info_subjid;
oriURL +="&cosite="+getCositeValue()+"&pageid="+getP4PPageId();;
//document.write(oriURL);
return oriURL;
}
/**
*
* 拼装p4pURL函数
*/
function createP4PURLObject(o){
var params=[];
var defaultParamObject={
keyword:"",
catid:"",
cat:"",
tag:"",
count:0,
beginPage:0,
fixBeginPage:0,
docid:"",
info_catid:"",
info_subjid:"",
needNextGroup:false,
pid:"",
p4p:"",
mt:"",
forumid:"",
source:"",
dcatid:"",
prob:""
}
Lang.augmentObject(defaultParamObject,o);
params[params.length] = "keyword="+defaultParamObject.keyword;
params[params.length] = "catid="+defaultParamObject.catid;
params[params.length] = "cat="+defaultParamObject.cat;
params[params.length] = "tag="+defaultParamObject.tag;
params[params.length] = "count="+defaultParamObject.count;
var _needNextGroup = defaultParamObject.needNextGroup;
var _beginPage = defaultParamObject.beginPage||1;
var _fixBeginPage = defaultParamObject.fixBeginPage
if(_needNextGroup){
_offset = parseInt(defaultParamObject.count)*(parseInt(_beginPage)-1);
}else{
_offset = parseInt(o.count)*(parseInt(_beginPage)-1)+_fixBeginPage;
}
params[params.length] = "offset="+_offset;
params[params.length] = "pid="+defaultParamObject.pid;
params[params.length] = "p4p="+defaultParamObject.p4p;
params[params.length] = "mt="+defaultParamObject.mt;
params[params.length] = "forumid="+defaultParamObject.forumid;
params[params.length] = "source="+defaultParamObject.source;
params[params.length] = "docid="+defaultParamObject.docid;
params[params.length] = "category="+defaultParamObject.info_catid;
params[params.length] = "subject="+defaultParamObject.info_subjid;
params[params.length] = "dcatid="+defaultParamObject.dcatid;
params[params.length] = "t="+new Date().getTime();
params[params.length] = "cosite="+getCositeValue();
params[params.length] = "prob="+defaultParamObject.prob;
params[params.length] = "pageid="+getP4PPageId();
var s = p4pConfig.api +"?"+params.join("&");
return s;
}
function getP4PPageId(){
return typeof window.dmtrack_pageid=='undefined' ? "" : dmtrack_pageid;
}
/*替换方法,过滤title的html标签,主要是"<>"
* stringObj为需要替换字符串
*/
function doReplace(stringObj){
/*var _stringObj ="";
_stringObj = stringObj.replace("<",escape("<"));
_stringObj = _stringObj.replace(">",escape(">"));
return _stringObj; */
stringObj=stringObj.replace(/<|>/g,"");
return stringObj;
}
function doMode(stringMode){
var arrayMode = stringMode.split('');
arrayMode=arrayMode.reverse();
return arrayMode;
}
function doReverse(arr){
var _arr= arr.reverse();
return _arr;
}
function doTrim(s){
try {
return s.replace(/^\s+|\s+$/g, "");
}catch(e){
return s;
}
}
function getWangWangStates(o,fn,scope,beginNum){
o = o||{};
var l = o.length;
var stateUrl = '',catchMemberIds = [];
for(var i=0;i<l;i++){
catchMemberIds.push(o[i].MEMBERID);
}
stateUrl = p4pConfig.wangwangstate+catchMemberIds.join(';');
if(arguments.length>3){
stateUrl +="&beginnum="+beginNum;
}
AsyncScript.script(stateUrl,fn,window);
}
function getWangWangStateImgUrl(state){
var s = '';
switch(state){
case 1:s= '<img src="http://img.china.alibaba.com/images/cn/market/trade/list/bd/common/ww_online.gif" align="absmiddle" border=0 width="17" height="17" alt="我正在网上，马上和我洽谈！">';break;
case 4:s = '<img src="http://img.china.alibaba.com/images/alitalk/club_myt_16_offline.gif" align="absmiddle" border=0 width="16" height="16" alt="我不在网上，给我留个消息！">';break;
case 5:s = '<img src="http://img.china.alibaba.com/images/alitalk/club_myt_16_offline.gif" align="absmiddle" border=0 width="16" height="16" alt="我不在网上，给我留个消息！">';break;
default:s = '<img src="http://img.china.alibaba.com/images/alitalk/club_myt_16_offline.gif" align="absmiddle" border=0 width="16" height="16" alt="我不在网上，给我留个消息！">';break;
}
return s;
}
function wangwangCallback(){
var wangwangState = eval('online');
var cacheImgs = [];
var s = '',s2='',tempObject={};
for(var i=0,l=wangwangState.length;i<l;i++){
s = 'p4p-alitalkId'+i;
s2 = s+'t';
try{
tempObject = getWangWangContentBySate(wangwangState[i]);
document.getElementById(s).src = tempObject.u;
document.getElementById(s2).innerHTML = tempObject.c;
}catch(e){
continue;
}
}
}
function getWangWangContentBySate(state){
var o = {};
switch(state){
case 1:o={u:'http://img.china.alibaba.com/images/cn/market/trade/list/bd/common/ww_online.gif',c:'旺旺在线',s:1};break;
case 4:o={u:'http://img.china.alibaba.com/images/common/icon_v01/4000416.gif',c:'手机在线',s:4};break;
case 5:o={u:'http://img.china.alibaba.com/images/common/icon_v01/4000616.gif',c:'留个消息',s:5};break;
case 2:o={u:'http://img.china.alibaba.com/images/common/icon_v01/4000616.gif',c:'留个消息',s:5};break;
default:o={u:'http://img.china.alibaba.com/images/cn/market/trade/list/bd/common/ww_online.gif',c:'旺旺在线',s:1};break;
}
return o;
}
function callbackForNews(){
var wangwangState = eval('online');
var cacheImgs = [];
var s = '',s2='',tempObject={};
for(var i=0,l=wangwangState.length;i<l;i++){
s = 'p4p-alitalkId-news'+(i+20);
s2 = s+'t';
try{
tempObject = getWangWangContentBySate(wangwangState[i]);
document.getElementById(s).src = tempObject.u;
document.getElementById(s2).innerHTML = tempObject.c;
}catch(e){
continue;
}
}
}
/**
* 获取当前url中的参数
* @Method getQueryParams
* @return {Object} params
* eg:
* s = http://www.alibaba.com.cn?a=1&b=2
* param={a:1,b:2}
*/
function getQueryParams(){
var s = document.location.href;
var u = s.split('?'),
p = [],
v=[],
params={};
if(u.length==2){
p = u[1].split('&');
for(var i=0,l = p.length;i<l;i++){
v = p[i].split('=');
if(v[1]){
params[v[0]]=v[1];
}
}
}
return params;
}
/**
* 控制p4p在BD页面是否需要投放p4p广告
* @Method controlCositePageP4P
* @return {Boolean} true表示可投放,false表示不可投放
*/
function getCositeValue(){
var params = getQueryParams();
var cosite = typeof params['cosite']=='undefined'?'':params['cosite'];
return cosite;
}
/**
* 过滤YAHOO传递过来的数据，当offer的图片OFFERIMGURL字段为空，则被过滤
* @Method controlNoPictureP4P
* @return {Array}返回图片不为空的一个数组
*/
function doFitlerNoPic(d){
var new_data=[];
for(var w=0; w<d.length;w++){
if(d[w].OFFERIMGURL&&d[w].OFFERIMGURL!=''){
new_data[new_data.length] = d[w];
}
}
return new_data;
}
String.format=function(str){
var A = Array.prototype.slice.call(arguments, 1);
return str.replace(/\{(\d+)\}/g, function (C, D) {return A[D];});
}
/**
* @author:aliued-wd junbiao.zhujb
* @version 1.0
* BDList 橱窗展示页面P4P显示逻辑的JS代码
* 依赖p4pconfig.js
*/
/**
* 根据className返回对应的alitalk状态图片
* @param {str} classNameStr
*/
function getAlitalkPic(classNameStr){
if(classNameStr == 'sysww_online')
{
return 'http://img.china.alibaba.com/images/cn/market/trade/list/bd/common/ww_online.gif';
}
if(classNameStr == 'sysww_phone')
{
return 'http://img.china.alibaba.com/images/common/icon_v01/4000416.gif';
}
else if(classNameStr == 'sysww_off')
{
return 'http://img.china.alibaba.com/images/common/icon_v01/4000616.gif';
}
}
/**
* 处理成功获得P4P数据的方法
* @param {Object} o
*/
function onP4pSuccess(o){
o = o||[];
o = doFitlerData(o);
p4p_coaseStr(o,2);
var root = document.getElementById("picCategoryLayout");
var nowTotallOffer = root.getElementsByTagName("li").length;
var p4pOfferLength = o.length;
if(p4pOfferLength>0){
p4pOfferLength = Math.min(p4pOfferLength,p4pConfig.bdMaxOfferNum);
for(var i=0;i<p4pOfferLength;i++){
insert(o[i],root,i);
/**
* 如果当前页面的总条数加上当前插入的第i+1条大于页面允许的总条数的话，
* 则删除最后一条，以保持页面的条数不超过页面允许的总条数
*/
if(nowTotallOffer+i+1>p4p_pageSize){
var last = getLastChild(root,"li");
last.parentNode.removeChild(last);
}
}
}
}
/**
* 根据数据源dataObj，根节点和序列，插入一个节点
* @param {Object} dataObj
* @param {Object} root
* @param {Object} indexNum
*/
function insert(dataObj,root,indexNum){
var brotherNode = getBrotherNode(root,p4p_jjCount+indexNum,"li");
var insertLi = document.createElement("li");
root.insertBefore(insertLi,brotherNode);
var innerStr = createInnerStr(dataObj,indexNum);
insertLi.innerHTML = innerStr;
var appenDiv = document.createElement("div");
appenDiv.style.height = "0px";
appenDiv.style.width = "0px";
root.insertBefore(appenDiv,insertLi);
var _province = dataObj.province || "";
appenDiv.innerHTML = "<div id=\"img3_offer_p4p_"+indexNum+"\" class=\"otherInfor\" style=\"word-break:break-all;text-align:left;\" onmouseover=\"showDiv(ell,thisObjj)\" onmouseout=\"hiddenDiv()\"><div class=\"paing-8\"><span class=\"bd_green\"><a href=\"http://china.alibaba.com/company/detail/"+dataObj.MEMBERID+".html\" target=\"_blank\" onclick=\"p4pClick('"+dataObj.EURL+"')\" class=\"undline\" onmousedown=\"p4ptag_Click('"+dataObj.RESOURCEID+"','"+dataObj.REDKEY+"','819001_1008');\">"+dataObj.COMPANY+"</a></span></div><div class=\"similar-window\"><a href=\"http://search.china.alibaba.com/search/offer_search.htm?keywords="+dataObj.REDKEY+"&category_id="+dataObj.categoryId+"&province="+_province+"\" target=\"_blank\"  onmousedown=\"return aliclick(this,'?searchtrace= cosite_list_xsss_"+dataObj.REDKEY+"')\">查看相似产品</a></div></div>";
}
/**
* 创建需要插入的HTML代码
* @param {Object} dataObj
* @param {Object} indexNum
*/
function createInnerStr(dataObj,indexNum){
var title = doSubstring(dataObj.TITLE,14);
var DESC = dataObj.DESC||'';
if(dataObj.REDKEY&&dataObj.REDKEY!=''){
title = doRed(doReplace(title),dataObj.REDKEY);
}
var quantityBegin = doSubstring(dataObj.quantityBegin,8);
var tpStr = "";
if(dataObj.memberLevel=='PM'){
tpStr = "<a href=\"http://" + dataObj.MEMBERID + p4pConfig.trust + dataObj.MEMBERID + ".html\" target=\"_blank\"  title=\"查看该公司诚信通档案\" class=\"numb\" onclick=\"aliclick(this,'?tracelog=tp')\" onmousedown=\"p4ptag_Click('"+dataObj.RESOURCEID+"','"+dataObj.REDKEY+"','819001_1008');\"><img src=\"http://img.china.alibaba.com/images/buyer/list/trust.gif\" width=22 height=14 border=0  align=\"middle\" ><span>"+dataObj.trustScore+"</span></a>";
}
//增加支付宝图标
if(dataObj.isOnlineTrade)
{
tpStr += "<span style=\"margin-left:5px;margin-right:5px;\"><a href=\"http://view.china.alibaba.com/cms/safe/xyzf/zwz/alipay/zfbyxy.html\" onmousedown=\"aliclick(this,'?searchtrace=list_alipay')\" title=\"本商品交易支持支付宝，买家收货确认后，卖家才能拿到钱，保障你的交易安全。\" target=\"_blank\"><img width=\"39\" height=\"14\" align=\"absmiddle\" src=\"http://img.china.alibaba.com/images/common/icon_v01/4000212.gif\"/></a></span>";
}
var imgURL = "";
if(dataObj.OFFERIMGURL&&dataObj.OFFERIMGURL!=''){
imgURL = dataObj.OFFERIMGURL;
}else{
imgURL = p4pConfig.noimg.x150;
}
//replace summ to search
imgURL = imgURL.split('.');
if('summ' == imgURL[imgURL.length-2]){
imgURL[imgURL.length-2] = 'search';
}
imgURL = imgURL.join('.');
var hsTips="";
if(dataObj.isOnlineTrade){
hsTips = "本商品支持在线交易，可以直接网上订购。";
}
var price= doSubstring(dataObj.OFFERPRICE,12);
price = price.split("/")[0];
price = doReplace(price).replace(/^(\d*(?:\.\d+)*)/,function(all,from){return from ? '<span class="bd_gray">￥</span><span class="bd_orange" title="'+hsTips+'">'+from+'</span>' : '';});
var alitalkStat = createAlitalkStat(dataObj,p4p_ppp,p4p_hashCode);
alitalkStat[1] = getAlitalkPic(alitalkStat[4]);
/*取消阿里旺旺状态的文案，本来是加在贸易通（旺旺）图标后的
if(alitalkStat[2] == "跟我洽谈")
{
alitalkStat[2] = "在线洽谈";
}
else if(alitalkStat[2] == "留个消息")
{
alitalkStat[2] = "旺旺留言";
}*/
var innerStr = "<div class=\"picBlock\" onmouseover=\"showDiv('img3_offer_p4p_"+indexNum+"',this);\" onmouseout=\"lazyHidden('img3_offer_p4p_"+indexNum+"',this)\">"+
"<div class=\"picBox\"><a href=\""+dataObj.EURL+"\" onmousedown=\"aliclick(this,'?tracelog=bdsearch2new_pic_jingjia');p4ptag_Click('"+dataObj.RESOURCEID+"','"+dataObj.REDKEY+"','819001_1008');\" onclick=\"postKeywords(this,'"+p4p_keyword+"');return returnBool();\" target=_blank title=\""+doReplace(DESC)+"\" ><img src=\""+imgURL+"\"></a></div>"+
"<div style='text-align:left;'>"+
"<div><a href=\""+dataObj.EURL+"\" title=\""+doReplace(dataObj.TITLE)+"\" onclick=\"postKeywords(this,'"+p4p_keyword+"');return returnBool();\" target=\"_blank\" class=\"undline\" onmousedown=\"p4ptag_Click('"+dataObj.RESOURCEID+"','"+dataObj.REDKEY+"','819001_1008');\">"+title+"</a></div>"+
tpStr+
"<a href=\"javascript:"+p4p_alitalkMethod+"("+alitalkStat[0]+")\" onclick=\"p4pClick('"+dataObj.EURL+"',1)\" onmousedown=\"p4ptag_Click('"+dataObj.RESOURCEID+"','"+dataObj.REDKEY+"','819001_1008');\"><span title=\""+hsTips+"\"><img src=\""+alitalkStat[1]+"\" alt=\"贸易通\" align=\"absmiddle\" border=0><span class=\"lh15 marginLeft3\"></span></span></a>"+
"</div>"+
"<div style=\"height:23px;overflow:hidden;text-align:left;\"><span class=\"pricewords\">"+price+"</span>";
//增加[小额]标志
if(dataObj.isAlipay == true && dataObj.isRetailWholeSale == true)
{
//innerStr +='<span class="bd_gray" style="margin-left:5px;" title="支持小额小量批发">[小额]</apsn>';
}
innerStr += "<span title=\""+dataObj.quantityBegin+"\" class=\"bd_gray\">"+quantityBegin+"</span></div>"+
"</div>";
return innerStr;
}
/**
* 根据序号，和根节点，及节点类型，获取兄弟节点
* @param {Object} root
* @param {Object} indx
* @param {Object} nodeType
*/
function getBrotherNode(root,indx,nodeType){
var list = root.getElementsByTagName(nodeType);
return list[indx];
}
/**
* 根据根节点和节点类型，获取最后一个节点
* @param {Object} root
* @param {Object} nodeType
*/
function getLastChild(root,nodeType){
var list = root.getElementsByTagName(nodeType);
if(list.length>0){
return list[list.length-1];
}else{
return null;
}
}
/**
* P4P请求失败后调用的方法
*/
function onP4pFailure(){
}
/**
* @author:aliued-wd junbiao.zhujb
*/
function p4p_coaseClick(s){
var d = new Date().getTime();
if(document.images){
(new Image()).src = s+"&time="+d;
}
}
function p4ptag_Click(offerId,keyWords,pid){
var d = new Date().getTime();
var offerid = offerId||"";
var keywords = keyWords||"";
var pageid = window.dmtrack_pageid||"";
var pid = pid||"";
if(document.images){
(new Image()).src = "http://stat.china.alibaba.com/p4ptag.html?offerid="+offerid+"&pageid="+pageid+"&keywords="+keywords+"&pos=3&pid="+pid+"&time="+d;
}
}
function p4p_coaseStr(o,ctr_type){
var type = 1;
if(ctr_type){type = ctr_type;}
if(o&&o.length>0){
var page_id = window.dmtrack_pageid || '';
var keyword = "";
var object_ids = "";
for(var i=0;i<o.length;i++){
if(keyword==""){
keyword = o[i].REDKEY;
}
object_ids = object_ids + o[i].RESOURCEID+",2;";
}
var coaseURL = "http://ctr.china.alibaba.com/ctr.html?ctr_type="+type+"&page_area=2&page_id="+page_id+"&category_id=&object_type=offer&object_ids="+object_ids+"&keyword="+keyword+"&page_size=&page_no=&refer="+escape(document.location.href);
p4p_coaseClick(coaseURL);
}
}
