/**
* @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];});
}
var ali_id ='';
var ali_id2 = '';
var do_alitalk = '';
var do_alitalk2 = '';
var online = new Array();
var online2 = new Array();
function alitalk_stat(){//会员报价贸易通状态
for(var i=0;i<online.length;i++){
alitalkId = "alitalkId" + i;
noAlitalkId = "noAlitalkId" + i;
if( online[i] == 1 ){
document.getElementById(alitalkId).innerHTML ='<img src="http://img.china.alibaba.com/images/alitalk/club_myt_16_online.gif" align="absmiddle" border=0 width="16" height="16" alt="我正在网上，马上和我洽谈！">';
}else {
if(online[i] == 2 ){
document.getElementById(noAlitalkId).innerHTML ='';
}else{
document.getElementById(alitalkId).innerHTML ='<img src="http://img.china.alibaba.com/images/alitalk/club_myt_16_offline.gif" align="absmiddle" border=0 width="16" height="16" alt="我不在网上，给我留个消息！">';
}
}
}
}
function alitalk_stat2(){//漂蓝贸易通状态
for(var j=0;j<online.length;j++){
online2[j] = online[j];
}
for(var i=0;i<online2.length;i++){
alitalkId = "alitalkId_flt" + i;
noAlitalkId = "noAlitalkId_flt" + i;
if( online2[i] == 1 ){
document.getElementById(alitalkId).innerHTML ='<img src="http://img.china.alibaba.com/images/alitalk/club_myt_16_online.gif" align="absmiddle" border=0 width="16" height="16" alt="我正在网上，马上和我洽谈！">';
}else {
if(online2[i] == 2 ){
document.getElementById(noAlitalkId).innerHTML ='';
}else{
document.getElementById(alitalkId).innerHTML ='<img src="http://img.china.alibaba.com/images/alitalk/club_myt_16_offline.gif" align="absmiddle" border=0 width="16" height="16" alt="我不在网上，给我留个消息！">';
}
}
}
}
var Render7= function(id,num){
this.root = document.getElementById(id); //offer插入的位置标识
this.maxOfferCount = num || 5;   //p4p广告位最多显示为5条
//拼装p4p广告位的头部
this.doRenderHeader7=function(){
return '<div class="p4p_info_6"><div class="title"><div class="left">今日热门报价</div><div class="right"><a href="'+p4pConfig.entrance+'">我也要出现在这里</a></div></div><span class="w1"><strong>产品名称</strong></span><span class="w2"><strong>单价(不含运费)</strong></span><span class="w3"><strong>查看</strong></span><table cellpadding="0" cellspacing="0">';
};
//拼装p4p广告位底部渲染
this.doRenderFooter7=function(){
return '</table></div></div>';
};
//拼装标题元件
this.doRenderTitle7=function(title, url,key, item){
return '<td class="t1"><a href="' + url + '"  onmousedown=\"p4ptag_Click(\''+item.RESOURCEID+'\',\''+item.REDKEY+'\',\'819009_1008\')\" title="'+ doReplace(title) + '">' + doRed(doSubstring(doReplace(title),17,1),key) + '</a></td>';
};
//拼装价格元件
this.doRenderPrice7=function(price,item){
if(price==" "||price=="0"){return '<td class="t2">价格面议</td>';}
else{return '<td class="t2">'+ doSubstring(doReplace(price),12,2) +'&nbsp;</td>';}
}
//拼装查看更多元件
this.doRenderMore7=function(memberid,url,item,idx){
ali_id2 = ali_id2 +';'+ memberid;
return '<td class="t3"><a href="'+ url +'" target="_blank">查看更多</a><a id=\"alitalkId'+idx+'\" href=\"javascript:p4pClick(\''+url+'\',true);checkId(\''+ memberid +'\')\" target=\"_self\"></a><a id=\"noAlitalkId'+idx+'\" href=\"http://china.alibaba.com/alitalk/homepage\" target=\"_self\"></a></td>';
};
//拼装一条p4p广告信息
this.doRenderItem7=function(item, idx){
if(item.DESC){}else{item.DESC = '';}
if(item.OFFERPRICE){}else{item.OFFERPRICE = '';}
var output = '';
output += '<tr onmouseout=this.className="tbg2" onmouseover=this.className="tbg1">';
output += this.doRenderTitle7(item.TITLE,item.EURL,item.REDKEY,item);
//output += this.doRenderPlace7(item.address,item.EURL,item.REDKEY,item);
output += this.doRenderPrice7(item.OFFERPRICE,item);
output += this.doRenderMore7(item.MEMBERID,item.EURL,item,idx);
output += '</tr>';
this.renderCount++;
return output;
};
//拼装p4p广告的主体部分
this.doRenderBody7=function(rets){
var output=[];
output[0]='';
if (rets && rets.length > 0) {
for (var i = 0; i < rets.length&&i<this.maxOfferCount; ++i) {
var item = rets[i];
output[output.length]=this.doRenderItem7(item,i);
}
}
output[output.length]='';
return output.join('');
};
//拼装整个p4p广告
this.doRender7=function(rets){
//rets = doFitlerData(rets);
var html = [];
html[html.length] = this.doRenderHeader7();
html[html.length] = this.doRenderBody7(rets);
html[html.length] = this.doRenderFooter7();
this.root.innerHTML = html.join('');
};
};
var Render8= function(id,num){
this.root = document.getElementById(id); //offer插入的位置标识
this.maxOfferCount = num || 5;   //p4p广告位最多显示为5条
//拼装p4p广告位的头部
this.doRenderHeader8=function(){
return '<div class="p4p_info_7"><div class="title"><div class="left">供应信息</div><div class="right">价格</div></div><ul>';
};
//拼装p4p广告位底部渲染
this.doRenderFooter8=function(){
return '</ul></div>';
};
//拼装标题元件
this.doRenderTitle8=function(title, url,key, item){
return '<div class="lp"><a href="' + url + '"  onmousedown=\"p4ptag_Click(\''+item.RESOURCEID+'\',\''+item.REDKEY+'\',\'819009_1008\')\" title="'+ doReplace(title) + '" target="_blank">' + doRed(doSubstring(doReplace(title),15,1),key) + '</a></div>';
};
//拼装价格元件
this.doRenderPrice8=function(memberid,price,url,item,idx){
ali_id = ali_id +';'+ memberid;
return '<div class="rp">'+ doSubstring(doReplace(price),9,1) +'</div><div class="mp"><a id=\"alitalkId_flt'+idx+'\" href=\"javascript:p4pClick(\''+url+'\',true);checkId(\''+ memberid +'\')\" target=\"_self\"></a><a id=\"noAlitalkId_flt'+idx+'\" href=\"http://china.alibaba.com/alitalk/homepage\"></a></div>';
};
//拼装一条p4p广告信息
this.doRenderItem8=function(item, idx){
if(item.OFFERPRICE){}else{item.OFFERPRICE = '';}
var output = '';
output += '<li>';
output += this.doRenderTitle8(item.TITLE,item.EURL,item.REDKEY,item);
output += this.doRenderPrice8(item.MEMBERID,item.OFFERPRICE,item.EURL,item,idx);
output += '</li>';
this.renderCount++;
return output;
};
//拼装p4p广告的主体部分
this.doRenderBody8=function(rets){
var output=[];
output[0]='';
if (rets && rets.length > 0) {
for (var i = 0; i < rets.length&&i<this.maxOfferCount; ++i) {
var item = rets[i];
output[output.length]=this.doRenderItem8(item,i);
}
}
output[output.length]='';
return output.join('');
};
//拼装整个p4p广告
this.doRender8=function(rets){
//rets = doFitlerData(rets);
var html = [];
html[html.length] = this.doRenderHeader8();
html[html.length] = this.doRenderBody8(rets);
html[html.length] = this.doRenderFooter8();
this.root.innerHTML = html.join('');
};
};
function p4pFormatPrice(price){
var m = price.match(/\d+(\.\d+)?/);
if(m[0])
return '￥'+ m[0];
else
return '';
};
var Render6= function(id,num){
this.root = document.getElementById(id); //offer插入的位置标识
this.maxOfferCount = num || 6;   //p4p广告位最多显示为6条
//拼装p4p广告位的头部
this.doRenderHeader6=function(){
return '<div class="p4p_box_h_b tube"><div class="head1" ><a href="'+p4pConfig.entrance+'" class="btn_ishow">我也要出现在这里</a><span><b style="font-size:14px;color:#777;">最热商机</b></span></div><div class="cnt1"><ul class="clear" style="padding-bottom:8px;">';
};
//拼装p4p广告位底部渲染
this.doRenderFooter6=function(){
return '</ul></div></div>';
};
//拼装图片元件
this.doRenderImage6=function(imgurl,url,title,item){
var _imgurl="";
if(imgurl != ""){
_imgurl=imgurl;
}else {
_imgurl = p4pConfig.noimg.x100;
}
return '<p class="pic"><a href="'+ url +'"  onmousedown=\"p4ptag_Click(\''+item.RESOURCEID+'\',\''+item.REDKEY+'\',\'819016_1008\')\" title="'+ doReplace(title) +'" target="_blank"><img src="'+ _imgurl +'"/></a></p>';
};
//拼装标题元件
this.doRenderTitle6=function(title, url,key, item){
return '<p class="tit"><a href="' + url + '"  onmousedown=\"p4ptag_Click(\''+item.RESOURCEID+'\',\''+item.REDKEY+'\',\'819016_1008\')\" title="'+ doReplace(title) +'">' + doSubstring(doReplace(title),16,1) + '</a></p>';
};
//拼装一条p4p广告信息
this.doRenderItem6=function(item, idx){
if(item.DESC){}else{item.DESC = '';}
if(item.OFFERPRICE){}else{item.OFFERPRICE = '';}
var output = '';
output += '<li>';
output += this.doRenderImage6(item.OFFERIMGURL,item.EURL,item.TITLE,item);
output += this.doRenderTitle6(item.TITLE,item.EURL,item.REDKEY,item);
output += this.doRenderPrice6(item.OFFERPRICE,item);
output += '</li>';
this.renderCount++;
return output;
};
//拼装价格元件
this.doRenderPrice6=function(price,item){
if(price==" "){return '<p class="price">价格面议</p>';}
else{
return '<p class="price"><span class="sm">'+ doSubstring(p4pFormatPrice(price),8,1) +'</span></p>';}
};
//拼装p4p广告的主体部分
this.doRenderBody6=function(rets){
var output=[];
output[0]='';
if (rets && rets.length > 0) {
for (var i = 0; i < rets.length&&i<this.maxOfferCount; ++i) {
var item = rets[i];
output[output.length]=this.doRenderItem6(item,i);
}
}
output[output.length]='';
return output.join('');
};
//拼装整个p4p广告
this.doRender6=function(rets){
//rets = doFitlerData(rets);
var html = [];
html[html.length] = this.doRenderHeader6();
html[html.length] = this.doRenderBody6(rets);
html[html.length] = this.doRenderFooter6();
this.root.innerHTML = html.join('');
};
};
var Render9= function(id,num){//add at 090410
this.root = document.getElementById(id); //offer插入的位置标识
this.maxOfferCount = num || 5;   //p4p广告位最多显示为5条
//拼装p4p广告位的头部
this.doRenderHeader9=function(){
return '<div class="p4p_box_v_b tube"><div class="head1" ><a href="'+p4pConfig.entrance+'" class="btn_ishow">我也要出现在这里</a><span><b style="font-size:14px;color:#777;">最热商机</b></span></div><ul>';
};
//拼装p4p广告位底部渲染
this.doRenderFooter9=function(){
return '</ul></div>';
};
//拼装标题元件
this.doRenderTitle9=function(title, url,key, item){
return '<div class="cnt"><p class="tit"><a href="' + url + '" onmousedown=\"p4ptag_Click(\''+item.RESOURCEID+'\',\''+item.REDKEY+'\',\'819009_1008\')\" title="'+doReplace(title)+'">' + doRed(doSubstring(doReplace(title),18,1),key) + '</a></p><p class="com" title="'+item.COMPANY+'">'+doSubstring(item.COMPANY,18,1)+'</p>';
};
//拼装价格元件
this.doRenderPrice9=function(price,item){
if(price==" "){return '<p class="price">价格面议</p></div><div class="clear"></div>';}
else{
return '<p class="price"><span class="sm">'+ doSubstring(p4pFormatPrice(price),8,1) +'</span></p></div><div class="clear"></div>';}
};
this.doRenderImage9=function(imgurl,url,title,item){
var _imgurl="";
if(imgurl != ""){
_imgurl=imgurl;
}else {
_imgurl = p4pConfig.noimg.x100;
}
return '<div class="pic"><a href="'+ url +'"  onmousedown=\"p4ptag_Click(\''+item.RESOURCEID+'\',\''+item.REDKEY+'\',\'819016_1008\')\" title="'+ doReplace(title) +'" target="_blank"><img src="'+ _imgurl +'"/></a></div>';
};
//拼装一条p4p广告信息
this.doRenderItem9=function(item, idx){
if(item.DESC){}else{item.DESC = '';}
if(item.OFFERPRICE){}else{item.OFFERPRICE = '';}
var output = '';
output += (idx==this.maxOfferCount - 1)?'<li class="nobd">':' <li>';
output += this.doRenderImage9(item.OFFERIMGURL,item.EURL,item.TITLE,item);
output += this.doRenderTitle9(item.TITLE,item.EURL,item.REDKEY,item);
output += this.doRenderPrice9(item.OFFERPRICE,item);
output += '</li>';
this.renderCount++;
return output;
};
//拼装p4p广告的主体部分
this.doRenderBody9=function(rets){
var output=[];
output[0]='';
if (rets && rets.length > 0) {
var len = rets.length;
for (var i = 0; i < len&&i<this.maxOfferCount; ++i) {
var item = rets[i];
output[output.length]=this.doRenderItem9(item,i);
}
}
output[output.length]='';
return output.join('');
};
//拼装整个p4p广告
this.doRender9=function(rets){
//rets = doFitlerData(rets);
var html = [];
html[html.length] = this.doRenderHeader9();
html[html.length] = this.doRenderBody9(rets);
html[html.length] = this.doRenderFooter9();
this.root.innerHTML = html.join('');
};
};
function onP4pSuccess(o){
os = doFitlerData(o);
p4p_coaseStr(os);
try{
c_num = os.length;
if (c_num!=null && c_num > 0) {
var c_str1 = [],c_str2 = [],c_str3 = [],c_str4 = [];
if(c_num<=0){return}
if(c_num>=1){
var defaultRender7 = new Render7("p4p_adv_info_2",4);
var j = 0;
for(i=0;i<c_num;i++){
c_str1[j] = os[i];
j++;
}
defaultRender7.doRender7(c_str1);
}
//if(Browser.isMsie){
do_alitalk2 = 'http://amos1.sh1.china.alibaba.com/muliuserstatus.atc?beginnum=0'+ ali_id2;
AsyncScript.script(do_alitalk2,alitalk_stat,window);
//}
if(c_num>=5){
var defaultRender6 = new Render6("p4p_adv_info_6",4);
var j = 0;
for(i=4;i<c_num;i++){
c_str2[j] = os[i];
j++;
}
defaultRender6.doRender6(c_str2);
}
if(c_num>=10){
var defaultRender9 = new Render9("p4p_adv_info_7",5);
var j = 0;
for(i=9;i<c_num;i++){
c_str3[j] = os[i];
j++;
}
defaultRender9.doRender9(c_str3);
}
}}catch(e){}
}
function onP4pFailure(){}
function success1(o){
os = doFitlerData(o);
p4p_coaseStr(os);
try{
c_num = os.length;
if (c_num!=null && c_num > 0) {
var defaultRender8 = new Render8("Layer2_in",5);
defaultRender8.doRender8(os);
//if(Browser.isMsie){
do_alitalk = 'http://amos1.sh1.china.alibaba.com/muliuserstatus.atc?beginnum=0'+ ali_id;
AsyncScript.script(do_alitalk,alitalk_stat2,window);
//}
document.getElementById("Layer2").style.display = "block";
}}catch(e){}
}
function failure1(){document.getElementById("Layer2").style.display = "none";}
/**
* @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);
}
}
