/**
*
*
*/
var ivyBBS_XHR = Class.create();
ivyBBS_XHR.prototype = {
initialize: function(id, options) {
this.panel = $(id);
this.prefix = '/Board/xml/';
this.rows = null;
this.sleep = null;
this.options = Object.extend({
subjectLength:30,
detailLength:80,
type:'list',
target:'_self',
start:0,
resize:null
}, options || {});
this.uiLoading();
},
uiLoading:function(){
this.panel.innerHTML = '
 L o a d i n g ... |
';
this.sleep = new PeriodicalExecuter(this.xmlLoading.bind(this),1);
},
xmlLoading:function(){
this.sleep.stop();
var xmlfile = this.prefix+this.options.board+'.xml';
new Ajax.Request(xmlfile, {method:'post',contentType:'application/xml',encoding:'euc-kr',onComplete:this.getNodes.bind(this)});
},
getNodes:function(request){
if(request.status==200 && request.readyState==4){
var xml = request.responseXML;
var infoNode = xml.getElementsByTagName("bbs")[0];
this.rows = infoNode.getAttribute("rows");
switch (this.options.type)
{
case 'album':
this.templateAlbum(xml.getElementsByTagName("item"));
break;
case 'webzin':
this.templateWebzin(xml.getElementsByTagName("item"));
break;
default:
this.templateList(xml.getElementsByTagName("item"));
break;
}
} else {
this.requestHtml(request);
}
},
templateList:function(nodes){
var html = ''
var entry = null;
var j=(this.rows > this.options.rows)?this.options.rows:this.rows;
j= Number(j)+Number(this.options.start);
for (var i=this.options.start; i';
html += '';
html += ''+entry.getElementsByTagName("date")[0].firstChild.nodeValue+'
';
html += '';
}
this.panel.innerHTML = html;
},
templateAlbum:function(nodes){
var html = ''
var entry = null;
var j=(this.rows > this.options.rows)?this.options.rows:this.rows;
j= Number(j)+Number(this.options.start);
for (var i=this.options.start; i';
html += '';
html += '';
html += ''+entry.getElementsByTagName("date")[0].firstChild.nodeValue+'
';
html += '';
}
this.panel.innerHTML = html;
},
templateWebzin:function(nodes){
var html = ''
var entry = null;
var j=(this.rows > this.options.rows)?this.options.rows:this.rows;
j= Number(j)+Number(this.options.start);
for (var i=this.options.start; i';
html += '';
if(entry.getElementsByTagName("thumbnail")[0]){
html += '

';
}
html += '
';
html += this.strOffset(entry.getElementsByTagName("description")[0].firstChild.nodeValue,this.options.detailLength);
html += '
'+entry.getElementsByTagName("date")[0].firstChild.nodeValue+' ';
html += '';
}
this.panel.innerHTML = html;
},
strOffset:function(str,len){
if(str.length > len){
str = str.substring(0,len);
str += '...';
}
return str;
},
reload:function(){
if(arguments.length > 0){
this.xmlLoading();
} else {
this.uiLoading();
}
},
errorPrint: function(req){
this.panel.innerHTML = 'Error No. X0HR'+req.status+' '+req.readyState+' |
';
},
requestHtml: function(req){
var subjectLength = Math.round(this.options.subjectLength * 1.3);
var detailLength = Math.round(this.options.detailLength * 1.3);
var param = 'board='+this.options.board+'&type='+this.options.type+'&rows='+this.options.rows+'&subjectLength='+subjectLength+'&detailLength='+detailLength+'&target='+this.options.target+'&start='+this.options.start+'&resize='+this.options.resize;
var url = '/htmls/ivy_bbs_xhr.php';
Ivy.getHtml.send(this.panel,url+'?'+param);
}
}