
getRecommendApplist_old = function(num){
    var divObj = document.getElementById("div_recommend_applist");
    var list = window.widget_list_recommend.list;
    num = num || list.length;

    if (num>list.length){num = list.length;}
    var buff = [];
    for(var i=0;i<num;i++){
        var indexStr = (i+1)<10 ? ("0"+(i+1)) : (i+1);
        var url = "http://app.91ophone.com/mywidget_view.jsp?widgetid=" + list[i].id;
        var imgUrl = "http://app.91ophone.com/mservices/widget/service.action?op=DLWGWEBICON&widgetID="+list[i].id+"&width=42&height=42";
        var name = list[i].name;
        var description = list[i].description.length >35 ? list[i].description.substr(0,35)+"..." : list[i].description;
        if(i==0){
            buff.push('<dl class="noborder">');
        }else{
            buff.push('<dl>');
        }
        buff.push('<dt><a target="_blank" href="'+url+'"><img src="'+imgUrl+'"/></a></dt>');
        buff.push('<dd> <b><a target="_blank" href="'+url+'">'+list[i].name+'</a></b><p>'+description+'</p></dd>');
        buff.push('</dl>');
    }
    divObj.innerHTML = buff.join("");
}

/**
* modified by lhy,2010-07-15
*/
getRecommendApplist = function(num){
    var divObj = document.getElementById("div_recommend_applist");
    var list = window.widget_list_recommend.list;
    num = num || list.length;

    if (num>list.length){num = list.length;}
    var buff = [];
    for(var i=0;i<num;i++){
        var indexStr = (i+1)<10 ? ("0"+(i+1)) : (i+1);
        var url = "http://app.91ophone.com/mywidget_view.jsp?widgetid=" + list[i].id;
        var imgUrl = "http://app.91ophone.com/mservices/widget/service.action?op=DLWGWEBICON&widgetID="+list[i].id+"&width=42&height=42";
        var appname = list[i].name;
        var appcategory = list[i].category;
        var apposversion = list[i].osversion;
        apposversion = apposversion.replace(/,/g,"/");
        var appsize=transKb(list[i].size);
        
        //var description = list[i].description.length >35 ? list[i].description.substr(0,35)+"..." : list[i].description;
        if(i==0){
            buff.push('<dl class="noborder">');
        }else{
            buff.push('<dl>');
        }
        
        
       	buff.push('<dt><a target="_blank" href="'+url+'"><img src="'+imgUrl+'" width="52" height="52"/></a></dt>');
        buff.push('<dd> <b><a target="_blank" href="'+url+'">'+appname+'</a></b><p>大小：'+appsize+'KB</p><p>'+appcategory+'</p><p>适配版本：'+apposversion+'</p></dd>');
        
        //buff.push('<dt><a target="_blank" href="'+url+'"><img src="'+imgUrl+'"/></a></dt>');
        //buff.push('<dd> <b><a target="_blank" href="'+url+'">'+list[i].name+'</a></b><p>'+description+'</p></dd>');
        buff.push('</dl>');
    }
    divObj.innerHTML = buff.join("");
}

getLatestApplist = function(num){
    var divObj = document.getElementById("div_latest_applist");
    var list = window.widget_list_latest.list;
    //alert("num0="+list.length);
    //alert("list.length="+list.length);
    num = num || list.length;
    //alert("num1="+num);
    if (num>list.length){num = list.length;}
    //alert("num2="+num);
    var buff = [];
    for(var i=0;i<num;i++){
        var indexStr = (i+1)<10 ? ("0"+(i+1)) : (i+1);
        var url = "http://app.91ophone.com/mywidget_view.jsp?widgetid=" + list[i].id;
        var imgUrl = "http://app.91ophone.com/mservices/widget/service.action?op=DLWGWEBICON&widgetID="+list[i].id;
        var appname = list[i].name;
        var appcategory = list[i].category;
        var appversion = list[i].version;
        var appsize=transKb(list[i].size);
        //var osversion = list[i].osversion;
        var osversion = list[i].osversion.length >13 ? list[i].osversion.substr(0,10)+"..." : list[i].osversion;
        osversion = osversion.replace(/,/g,"/");
        //var appauthor = list[i].author.length >15 ? list[i].author.substr(0,12)+"..." : list[i].author;
        var appauthor = list[i].author;
        if(getBytesLength(appauthor)>15){
          appauthor = subStringByBytes(list[i].author, 12)+"...";
        }
        
			  buff.push('<dl><dt><a target="_blank" href="'+url+'"><img src="'+imgUrl+'" width="52" height="52"/></a><strong>'+appcategory+'</strong></dt>');
        buff.push('<dd> <a target="_blank" href="'+url+'"><b>'+appname+'</b></a><p>版本：'+appversion+'</p><p>大小：'+appsize+'KB</p><p>适配版本：'+osversion+'</p><p>开发公司：'+appauthor+'</p>');
				buff.push('</dd>');
        buff.push('</dl>');        
        
        //buff.push("<li><p><a target='_blank' href='"+url+"'><img src='"+imgUrl+"'/></a></p><a target='_blank' href='"+url+"'>"+list[i].name+"</a></li>");
    }
    divObj.innerHTML = buff.join("");
    
}

function transKb(size)
{
	var result=(size/1024)+"";
	var resultarray=result.split(".");
	if(resultarray.length>1)
	{
		result=resultarray[0]+"."+resultarray[1].substring(0,2);
	}
	return result;
}

/* 得到字符串的字符长度（一个汉字占两个字符长）
	 */
	function getBytesLength(str) {
		// 在GBK编码里，除了ASCII字符，其它都占两个字符宽
		return str.replace(/[^\x00-\xff]/g, 'xx').length;
	}

	/**
	 * 根据字符长来截取字符串
	 */
	function subStringByBytes(val, maxBytesLen) {
		var len = maxBytesLen;
		var result = val.slice(0, len);
		while(getBytesLength(result) > maxBytesLen) {
			result = result.slice(0, --len);
		}
		return result;
	}

//end

getRecommendApplistForTechPage = function(num){
    var divObj = document.getElementById("div_recommend_applist");
    var list = window.widget_list_recommend.list;
    num = num || list.length;

    if (num>list.length){num = list.length;}
    var buff = [];
    for(var i=0;i<num;i++){
        var url = "http://app.91ophone.com/mywidget_view.jsp?widgetid=" + list[i].id;
        var imgUrl = "http://app.91ophone.com/mservices/widget/service.action?op=DLWGWEBICON&widgetID="+list[i].id;
        var name = list[i].name;
        buff.push('<li><a target="_blank" href="'+url+'"><img src="'+imgUrl+'"/></a><br/><a target="_blank" href="'+url+'">'+list[i].name+'</a></li>');
    }
    divObj.innerHTML = buff.join("");
}

getLatestApplist_old = function(num){
    var divObj = document.getElementById("div_latest_applist");
    var list = window.widget_list_latest.list;
    num = num || list.length;
    if (num>list.length){num = list.length;}
    var buff = [];
    for(var i=0;i<num;i++){
        var indexStr = (i+1)<10 ? ("0"+(i+1)) : (i+1);
        var url = "http://app.91ophone.com/mywidget_view.jsp?widgetid=" + list[i].id;
        var imgUrl = "http://app.91ophone.com/mservices/widget/service.action?op=DLWGWEBICON&widgetID="+list[i].id;
        var name = list[i].name;
        buff.push("<li><p><a target='_blank' href='"+url+"'><img src='"+imgUrl+"'/></a></p><a target='_blank' href='"+url+"'>"+list[i].name+"</a></li>");
    }
    divObj.innerHTML = buff.join("");
    
}

getDownloadApplist = function(num){
    var divObj = document.getElementById("div_downloadnum_applist");
    var list = window.widget_list_download.list;
    num = num || list.length;
    if (num>list.length){num = list.length;}
    var buff = [];
    for(var i=0;i<num;i++){
        var indexStr = (i+1)<10 ? ('0'+(i+1)) : (i+1);
        var url = 'http://app.91ophone.com/mywidget_view.jsp?widgetid=' + list[i].id;
        var name = list[i].name;
        if(i<=2){
            buff.push('<li class="num2">');
        }else{
            buff.push('<li>');
        }
        buff.push('<span>'+indexStr+'</span><a target="_blank" href="'+url+'">'+list[i].name+'</a></li>');
    }
    divObj.innerHTML = buff.join("");
}

getBBSTableContent = function(){
    var url = "/fastProxyServlet?url=";
    url= url + encodeURIComponent("http://bbs.91ophone.com/forum/rss/recentTopics.page");
    new Ajax.Request(url, {
        method: "get",
        onSuccess: getBBSTableContentHandler
    });
}
getBBSTableContentHandler = function(xhr){
    var NUM = 10;

    var rss = xhr.responseXML;
    var items = rss.getElementsByTagName("item");

    var itemsProperties = {title:null, description:null, link:null, pubDate:null};
    var itemsList = rssXMLReader(items,itemsProperties);

    var buff = [];
    var size = itemsList.length>NUM ? NUM : itemsList.length;
    buff.push('<table border="0" cellpadding="0" cellspacing="0">');
    for(var i=0;i<size;i++){
        var obj = itemsList[i];
        var link = obj.link;
        var title = obj.title;
        if(title.length>18){title = title.substr(0,18)+'...';}
        if(i%2==0){
            buff.push('<tr class="gray">');
        }else{
            buff.push('<tr>');
        }        
        //buff.push('<td><a target="_blank" href="http://bbs.91ophone.com/forum/forums/list.page">[OPhone论坛]</a></td>');
        buff.push('<td><a target="_blank" title="'+obj.title+'" href="'+link+'">'+title+'</a></td>');
        buff.push('</tr>');
    }
    buff.push('</table>');
    var tableObj = document.getElementById("bbs_table");
    tableObj.innerHTML = buff.join("");
}

getFAQTableContent= function(){
    var url = "/fastProxyServlet?url=";
    url= url + encodeURIComponent("http://bbs.91ophone.com/forum/rss/forumTopics/69.page");
    new Ajax.Request(url, {
        method: "get",
        onSuccess: getFAQTableContentHandler
    });
}

getFAQTableContentHandler= function(xhr){
    
    var NUM = 12;

    var rss = xhr.responseXML;
    var items = rss.getElementsByTagName("item");
    var itemsProperties = {title:null, description:null, link:null, pubDate:null};
    var itemsList = rssXMLReader(items,itemsProperties);
    var buff = [];
    var size = itemsList.length>NUM ? NUM : itemsList.length;
    //debugger;
    buff.push('<table cellpadding="0" cellspacing="0" border="0">');
    for(var i=0;i<size;i++){
        if(i%2==0){
            buff.push('<tr>');
        }
        var obj = itemsList[i];
        var link = obj.link;
        var title = obj.title;
        var date = stringToDate(obj.pubDate).format("MM-dd");
        if(title.length>18){title = title.substr(0,18)+'...';}
        
        buff.push('<td width="240"><a target="_blank" title="'+obj.title+'" href="'+link+'">'+title+'</a></td>');
        buff.push('<td width="80">['+date+']</td>');
        if(i%2==0){
            buff.push('<td width="60">&nbsp;</td>');
        }else{
            buff.push('</tr>');
        }
    }
    if(size%2!=0){
        buff.push('<td>&nbsp;</td><td>&nbsp;</td></tr>');
    }
    buff.push('</table>');
    var tableObj = document.getElementById("faq_table");
    tableObj.innerHTML = buff.join("");
}

function rssXMLReader(rssElement, properties){
    var temp;
    if(rssElement != null){
        var rssArr = new Array;
        for(var eleNum=0; eleNum<rssElement.length; eleNum++){
            for(key in properties){
                //var t = key;
                if(key == "enclosure" && rssElement[eleNum].getElementsByTagName(key).length>0){
                    var tempNode = rssElement[eleNum].getElementsByTagName(key)[0];
                    temp = tempNode.getAttribute("url");
                    properties[key] = temp; 
                    continue;
                }
                if(rssElement[eleNum].getElementsByTagName(key).length>0 && rssElement[eleNum].getElementsByTagName(key)[0].hasChildNodes()){
                    var tempNode = rssElement[eleNum].getElementsByTagName(key)[0].childNodes;
                    if(tempNode.length > 1){
                        for(var childNum=0;childNum<tempNode.length;childNum++){
                            if(tempNode[childNum].nodeType == Node.CDATA_SECTION_NODE){
                                temp = tempNode[childNum].nodeValue;
                            }
                        }
                    } else {
                        temp = tempNode[0].nodeValue;
                    }
                } else {
                    temp = "";
                }
                properties[key] = temp; 
            }
            //alert(Object.toJSON(properties));
            rssArr.push(eval("("+Object.toJSON(properties)+")"));
        }
    }
    return rssArr;
}

/**  
* Parse String to Date 
*
*/ 
function stringToDate(dateStr){
    var date = null;
    
    //尝试使用Date.parse()来解析
    var time = Date.parse(dateStr);
    date = new Date(time);
    if (!isNaN(date)){return date;}
    
    //尝试使用new Date()来解析
    date = new Date(dateStr);
    if (!isNaN(date)){return date;}
    
    //Date.parse()和new Date()均不能解析，则尝试替换字符串中的特殊字符
    dateStr = dateStr.replace(/星期\S\s*[,，]?\s*/,"");
    dateStr = dateStr.replace(/-/g,"/");
    if(/\d{4}年\/\d{1,2}月\/\d{1,2}日/.test(dateStr)){
        dateStr = dateStr.replace(/[年月日]/g,"");
    }
    if(/\S{1,3}月\s+/.test(dateStr)){
        dateStr = dateStr.replace(/一月/,"Jan");
        dateStr = dateStr.replace(/二月/,"Feb");
        dateStr = dateStr.replace(/三月/,"Mar");
        dateStr = dateStr.replace(/四月/,"Apr");
        dateStr = dateStr.replace(/五月/,"May");
        dateStr = dateStr.replace(/六月/,"Jun");
        dateStr = dateStr.replace(/七月/,"Jul");
        dateStr = dateStr.replace(/八月/,"Aug");
        dateStr = dateStr.replace(/九月/,"Sep");
        dateStr = dateStr.replace(/十月/,"Oct");
        dateStr = dateStr.replace(/十一月/,"Nov");
        dateStr = dateStr.replace(/十二月/,"Dec");
        dateStr = dateStr.replace(/月/,"");
    }
    
    //再次尝试使用new Date()来解析
    date = new Date(dateStr);
    if (!isNaN(date)){return date;}
    
    //仍然无法解析，返回当前时间作为默认值
    return new Date();   
}

/**  
* Parse Date to String 
* Year:YYYY/YY
* Month:MM/mm
* day:DD/dd
* hour:HH/hh
* minute:mm
* second:ss/s
* milliseconds:S
*/ 
Date.prototype.format = function(formatStr)    
{    
    var str = formatStr;    
    var Week = ['日','一','二','三','四','五','六'];   
   
    str=str.replace(/yyyy|YYYY/,this.getFullYear());    
    str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():'0' + (this.getYear() % 100));    
   
    str=str.replace(/MM/,this.getMonth()+1>9?(this.getMonth()+1).toString():'0' + (this.getMonth()+1));    
    str=str.replace(/M/g,this.getMonth()+1);    
   
    str=str.replace(/w|W/g,Week[this.getDay()]);    
   
    str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0' + this.getDate());    
    str=str.replace(/d|D/g,this.getDate());    
   
    str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0' + this.getHours());    
    str=str.replace(/h|H/g,this.getHours());    
    str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0' + this.getMinutes());    
    str=str.replace(/m/g,this.getMinutes());    
   
    str=str.replace(/ss/,this.getSeconds()>9?this.getSeconds().toString():'0' + this.getSeconds());    
    str=str.replace(/s/g,this.getSeconds());    

    str=str.replace(/S/g,this.getMilliseconds()); 
    return str;    
} 
