(function(){
Function.prototype.bind=function(){
var __method=this,args=$A(arguments),object=args.shift();
return function(){
return __method.apply(object,args.concat($A(arguments)));
}
};
var extend=function(destination,source){
for(property in source){
destination[property]=source[property];
}
return destination;
};
extend(Number.prototype,{
toColorPart:function(){
var digits=this.toString(16);
if(this<16)return'0'+digits;
return digits;
},
succ:function(){
return this+1;
},
times:function(iterator){
$R(0,this,true).each(iterator);
return this;
}
});
Number.parse=function(value){
if(!value||(value.length==0)){
return 0;
}
return parseFloat(value);
};
Boolean.parse=function(value){
if(typeof(value)=='string'){
return(value.trim().toLowerCase()=='true');
}
return value?true:false;
}
$=function(){
var elements=new Array();
for(var i=0;i<arguments.length;i++){
var element=arguments[i];
if(typeof element=='string')
element=document.getElementById(element);
if(arguments.length==1)
return element;
elements.push(element);
}
return elements;
}
String.format=function(format){
var result="";
for(var i=0;i>-2;i=i){
var next=format.indexOf("{",i);
if(next<0){
result+=format.slice(i);
break;
}
result+=format.slice(i,next);
i=next+1;
if(format.charAt(i)=='{'){
result+='{';
i++;
continue;
}
var next=format.indexOf("}",i);
var brace=format.slice(i,next).split(':');
var argNumber=Number.parse(brace[0])+1;
var arg=arguments[argNumber];
if(arg==null){
arg='';
}
if(arg.toFormattedString)
result+=arg.toFormattedString(brace[1]?brace[1]:'');
else result+=arg.toString();
i=next+1;
}
return result;
}
String.scriptFragment='(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';
extend(String.prototype,{

endsWith:function(suffix){
return(this.substr(this.length-suffix.length)==suffix);
},
startsWith:function(prefix){
return(this.substr(0,prefix.length)==prefix)
},
trimLeft:function(){
return this.replace(/^\s*/,"");
},
trimRight:function(){
return this.replace(/\s*$/,"");
},
trim:function(){
return this.trimRight().trimLeft();
},
replaceAll:function(pattern,text,ignoreCase){
if(RegExp.prototype.isPrototypeOf(pattern))
throw new Error("Not supported. Use \"g\" flag with regExp patterns.");
return this.replace(new RegExp(pattern,(ignoreCase===true?"gi":"g")),text);
},
stripTags:function(){
var ret=this.replace(/<\/?[^>]+>/gi,'');
return ret=ret.replace(/[<>'"]/gi,"");

},
stripScripts:function(){
return this.replace(new RegExp(String.scriptFragment,'img'),'');
},
extractScripts:function(){
var matchAll=new RegExp(String.scriptFragment,'img');
var matchOne=new RegExp(String.scriptFragment,'im');
return(this.match(matchAll)||[]).map(function(scriptTag){
return(scriptTag.match(matchOne)||['',''])[1];
});
},
evalScripts:function(){
return this.extractScripts().map(eval);
},
escapeHTML:function(){
var div=document.createElement('div');
var text=document.createTextNode(this);
div.appendChild(text);
return div.innerHTML;
},
unescapeHTML:function(){
var div=document.createElement('div');
div.innerHTML=this.stripTags();
var text=div.childNodes[0]?div.childNodes[0].nodeValue:'';
text=text.replaceAll("&","&amp;");
text=text.replaceAll("<","&lt;");
text=text.replaceAll(">","&gt;");
text=text.replaceAll("\t","    ");
text=text.replaceAll("  ","&nbsp;");
return text;
},
toQueryParams:function(){
var pairs=this.match(/^\??(.*)$/)[1].split('&');
return pairs.inject({},function(params,pairString){
var pair=pairString.split('=');
params[pair[0]]=pair[1];
return params;
});
},
toArray:function(){
return this.split('');
},
camelize:function(){
var oStringList=this.split('-');
if(oStringList.length==1)return oStringList[0];
var camelizedString=this.indexOf('-')==0
?oStringList[0].charAt(0).toUpperCase()+oStringList[0].substring(1)
:oStringList[0];
for(var i=1,len=oStringList.length;i<len;i++){
var s=oStringList[i];
camelizedString+=s.charAt(0).toUpperCase()+s.substring(1);
}
return camelizedString;
},
inspect:function(){
return"'"+this.replace('\\','\\\\').replace("'",'\\\'')+"'";
},

toHtml:function(){
var text=this;
text=text.replaceAll("&","&amp;");
text=text.replaceAll("<","&lt;");
text=text.replaceAll(">","&gt;");
text=text.replaceAll("\t","    ");
text=text.replaceAll("  ","&nbsp;");
text=text.replaceAll("\n","<br/>\n");
return text;
}
});
String.prototype.parseQuery=String.prototype.toQueryParams;
var $break=new Object();
var $continue=new Object();
var $_K_=function(x){return x;};
Enumerable={
each:function(iterator){
var index=0;
try{
this._each(function(value){
try{
iterator(value,index++);
}catch(e){
if(e!=$continue)throw e;
}
});
}catch(e){
if(e!=$break)throw e;
}
},
all:function(iterator){
var result=true;
this.each(function(value,index){
result=result&&!!(iterator||$_K_)(value,index);
if(!result)throw $break;
});
return result;
},
any:function(iterator){
var result=true;
this.each(function(value,index){
if(result=!!(iterator||$_K_)(value,index))
throw $break;
});
return result;
},
collect:function(iterator){
var results=[];
this.each(function(value,index){
results.push(iterator(value,index));
});
return results;
},
detect:function(iterator){
var result;
this.each(function(value,index){
if(iterator(value,index)){
result=value;
throw $break;
}
});
return result;
},
findAll:function(iterator){
var results=[];
this.each(function(value,index){
if(iterator(value,index))
results.push(value);
});
return results;
},
grep:function(pattern,iterator){
var results=[];
this.each(function(value,index){
var stringValue=value.toString();
if(stringValue.match(pattern))
results.push((iterator||$_K_)(value,index));
})
return results;
},
include:function(object){
var found=false;
this.each(function(value){
if(value==object){
found=true;
throw $break;
}
});
return found;
},
inject:function(memo,iterator){
this.each(function(value,index){
memo=iterator(memo,value,index);
});
return memo;
},
invoke:function(method){
var args=$A(arguments).slice(1);
return this.collect(function(value){
return value[method].apply(value,args);
});
},
max:function(iterator){
var result;
this.each(function(value,index){
value=(iterator||$_K_)(value,index);
if(value>=(result||value))
result=value;
});
return result;
},
min:function(iterator){
var result;
this.each(function(value,index){
value=(iterator||$_K_)(value,index);
if(value<=(result||value))
result=value;
});
return result;
},
partition:function(iterator){
var trues=[],falses=[];
this.each(function(value,index){
((iterator||this._K)(value,index)?
trues:falses).push(value);
});
return[trues,falses];
},
pluck:function(property){
var results=[];
this.each(function(value,index){
results.push(value[property]);
});
return results;
},
reject:function(iterator){
var results=[];
this.each(function(value,index){
if(!iterator(value,index))
results.push(value);
});
return results;
},
sortBy:function(iterator){
return this.collect(function(value,index){
return{value:value,criteria:iterator(value,index)};
}).sort(function(left,right){
var a=left.criteria,b=right.criteria;
return a<b?-1:a>b?1:0;
}).pluck('value');
},
toArray:function(){
return this.collect($_K_);
},
zip:function(){
var iterator=$_K_,args=$A(arguments);
if(typeof args.last()=='function')
iterator=args.pop();
var collections=[this].concat(args).map($A);
return this.map(function(value,index){
iterator(value=collections.pluck(index));
return value;
});
}
}
extend(Enumerable,{
map:Enumerable.collect,
find:Enumerable.detect,
select:Enumerable.findAll,
member:Enumerable.include,
entries:Enumerable.toArray
});
$A=Array.from=function(iterable){
if(!iterable)return[];
if(iterable.toArray){
return iterable.toArray();
}else{
var results=[];
for(var i=0;i<iterable.length;i++)
results.push(iterable[i]);
return results;
}
}
extend(Array.prototype,Enumerable);
Array.prototype._reverse=Array.prototype.reverse;
extend(Array.prototype,{
_each:function(iterator){
for(var i=0;i<this.length;i++)
iterator(this[i]);
},
clear:function(){
this.length=0;
return this;
},
first:function(){
return this[0];
},
last:function(){
return this[this.length-1];
},
compact:function(){
return this.select(function(value){
return value!=undefined||value!=null;
});
},
flatten:function(){
return this.inject([],function(array,value){
return array.concat(value.constructor==Array?
value.flatten():[value]);
});
},
without:function(){
var values=$A(arguments);
if(values.length>0&&values[0].constructor==Array)values=values[0];
return this.select(function(value){
return!values.include(value);
});
},
insert:function(index,item){
this.splice(index,0,item);
},
addRange:function(items){
var length=items.length;
if(length!=0){
for(var index=0;index<length;index++){
this.push(items[index]);
}
}
},
indexOf:function(object){
for(var i=0;i<this.length;i++)
if(this[i]==object)return i;
return-1;
},
reverse:function(inline){
return(inline!==false?this:this.toArray())._reverse();
},
shift:function(){
var result=this[0];
for(var i=0;i<this.length-1;i++)
this[i]=this[i+1];
this.length--;
return result;
},
clone:function(){
var clonedArray=[];
var length=this.length;
for(var index=0;index<length;index++){
clonedArray[index]=this[index];
}
return clonedArray;
}
});
})();
var StringBuilder=function(initialText){
var _parts=new Array();
if((typeof(initialText)=='string')
&&(initialText.length!=0))
_parts.push(initialText);
this.append=function(text){
if((text==null)||(typeof(text)=='undefined')){
return;
}
if((typeof(text)=='string')&&(text.length==0)){
return;
}
_parts.push(text);
};
this.appendLine=function(text){
this.append(text);
_parts.push('\r\n');
};
this.appendHtmlLine=function(html){
this.append(text);
_parts.push('<br/>');
};
this.clear=function(){
_parts.clear();
};
this.isEmpty=function(){
return(_parts.length==0);
};
this.toString=function(delimiter){
return _parts.join(delimiter||'');
};
};

if(!window.joyeach){
window.joyeach=new Object();
}
if(!window.joyeach.util){
window.joyeach.util=new Object();
}
(function(){
var extend=function(destination,source){
for(property in source){
destination[property]=source[property];
}
return destination;
};
var createC=function(){
return function(){
this.initialize.apply(this,arguments);
}
};
var Try=function(){
var returnValue;
for(var i=0;i<arguments.length;i++){
var lambda=arguments[i];
try{
returnValue=lambda();
break;
}catch(e){}
}
return returnValue;
}
joyeach.util.Ajax={
getTransport:function(){
return Try(
function(){return new ActiveXObject('Msxml2.XMLHTTP')},
function(){return new ActiveXObject('Microsoft.XMLHTTP')},
function(){return new XMLHttpRequest()}
)||false;
},
emptyFunction:function(){},
activeRequestCount:0
}
joyeach.util.Ajax.Responders={
responders:[],
_each:function(iterator){
this.responders._each(iterator);
},
register:function(responderToAdd){
if(!this.include(responderToAdd))
this.responders.push(responderToAdd);
},
unregister:function(responderToRemove){
this.responders=this.responders.without(responderToRemove);
},
dispatch:function(callback,request,transport,json){
this.each(function(responder){
if(responder[callback]&&typeof responder[callback]=='function'){
try{
responder[callback].apply(responder,[request,transport,json]);
}catch(e){}
}
});
}
};
extend(joyeach.util.Ajax.Responders,Enumerable);
joyeach.util.Ajax.Responders.register({
onCreate:function(){
joyeach.util.Ajax.activeRequestCount++;
},
onComplete:function(){
joyeach.util.Ajax.activeRequestCount--;
}
});
joyeach.util.Ajax.Base=function(){};
joyeach.util.Ajax.Base.prototype={
setOptions:function(options){
this.options={
method:'post',
asynchronous:true,
parameters:''
};
extend(this.options,options||{});
},
responseIsSuccess:function(){
return this.transport.status==undefined
||this.transport.status==0
||(this.transport.status>=200&&this.transport.status<300);
},
responseIsFailure:function(){
return!this.responseIsSuccess();
}
}
joyeach.util.Ajax.Request=createC();
joyeach.util.Ajax.Request.Events=
['Uninitialized','Loading','Loaded','Interactive','Complete'];
joyeach.util.Ajax.Request.prototype=extend(new joyeach.util.Ajax.Base(),{
initialize:function(url,options){
this.transport=joyeach.util.Ajax.getTransport();
this.setOptions(options);
this.request(url);
},
request:function(url){
var parameters=this.options.parameters||'';
try{
this.url=url;
if(this.options.method=='get'&&parameters.length>0)
this.url+=(this.url.match(/\?/)?'&':'?')+parameters;
joyeach.util.Ajax.Responders.dispatch('onCreate',this,this.transport);
this.transport.open(this.options.method,this.url,
this.options.asynchronous);
if(this.options.asynchronous){
this.transport.onreadystatechange=this.onStateChange.bind(this);
setTimeout((function(){this.respondToReadyState(1)}).bind(this),10);
}
this.setRequestHeaders();
var body=this.options.postBody?this.options.postBody:parameters;
this.transport.send(this.options.method=='post'?body:null);
}catch(e){
this.dispatchException(e);
}
},
setRequestHeaders:function(){
var requestHeaders=
['X-Requested-With','XMLHttpRequest'];
if(this.options.method=='post'){
requestHeaders.push('Content-type',
'application/x-www-form-urlencoded');

if(this.transport.overrideMimeType)
requestHeaders.push('Connection','close');
}
if(this.options.requestHeaders)
requestHeaders.push.apply(requestHeaders,this.options.requestHeaders);
for(var i=0;i<requestHeaders.length;i+=2)
this.transport.setRequestHeader(requestHeaders[i],requestHeaders[i+1]);
},
onStateChange:function(){
var readyState=this.transport.readyState;
if(readyState!=1)
this.respondToReadyState(this.transport.readyState);
},
header:function(name){
try{
return this.transport.getResponseHeader(name);
}catch(e){}
},
evalJSON:function(){
try{
return eval(this.header('X-JSON'));
}catch(e){}
},
evalResponse:function(){
try{
return eval(this.transport.responseText);
}catch(e){
this.dispatchException(e);
}
},
respondToReadyState:function(readyState){
var event=joyeach.util.Ajax.Request.Events[readyState];
var transport=this.transport,json=this.evalJSON();
if(event=='Complete'){
try{
(this.options['on'+this.transport.status]
||this.options['on'+(this.responseIsSuccess()?'Success':'Failure')]
||joyeach.util.Ajax.emptyFunction)(transport,json);
}catch(e){
this.dispatchException(e);
}
if((this.header('Content-type')||'').match(/^text\/javascript/i))
this.evalResponse();
}
try{
(this.options['on'+event]||joyeach.util.Ajax.emptyFunction)(transport,json);
joyeach.util.Ajax.Responders.dispatch('on'+event,this,transport,json);
}catch(e){
this.dispatchException(e);
}

if(event=='Complete')
this.transport.onreadystatechange=joyeach.util.Ajax.emptyFunction;
},
dispatchException:function(exception){
(this.options.onException||joyeach.util.Ajax.emptyFunction)(this,exception);
joyeach.util.Ajax.Responders.dispatch('onException',this,exception);
}
});
joyeach.util.Ajax.Updater=createC();
extend(extend(joyeach.util.Ajax.Updater.prototype,joyeach.util.Ajax.Request.prototype),{
initialize:function(container,url,options){
this.containers={
success:container.success?$(container.success):$(container),
failure:container.failure?$(container.failure):
(container.success?null:$(container))
}
this.transport=joyeach.util.Ajax.getTransport();
this.setOptions(options);
var onComplete=this.options.onComplete||joyeach.util.Ajax.emptyFunction;
this.options.onComplete=(function(transport,object){
this.updateContent();
onComplete(transport,object);
}).bind(this);
this.request(url);
},
updateContent:function(){
var receiver=this.responseIsSuccess()?
this.containers.success:this.containers.failure;
var response=this.transport.responseText;
if(!this.options.evalScripts)
response=response.stripScripts();
if(receiver){
if(this.options.insertion){
new this.options.insertion(receiver,response);
}else{
Element.update(receiver,response);
}
}
if(this.responseIsSuccess()){
if(this.onComplete)
setTimeout(this.onComplete.bind(this),10);
}
}
});
joyeach.util.Ajax.PeriodicalUpdater=createC();
joyeach.util.Ajax.PeriodicalUpdater.prototype=extend(new joyeach.util.Ajax.Base(),{
initialize:function(container,url,options){
this.setOptions(options);
this.onComplete=this.options.onComplete;
this.frequency=(this.options.frequency||2);
this.decay=(this.options.decay||1);
this.updater={};
this.container=container;
this.url=url;
this.start();
},
start:function(){
this.options.onComplete=this.updateComplete.bind(this);
this.onTimerEvent();
},
stop:function(){
this.updater.onComplete=undefined;
clearTimeout(this.timer);
(this.onComplete||joyeach.util.Ajax.emptyFunction).apply(this,arguments);
},
updateComplete:function(request){
if(this.options.decay){
this.decay=(request.responseText==this.lastText?
this.decay*this.options.decay:1);
this.lastText=request.responseText;
}
this.timer=setTimeout(this.onTimerEvent.bind(this),
this.decay*this.frequency*1000);
},
onTimerEvent:function(){
this.updater=new joyeach.util.Ajax.Updater(this.container,this.url,this.options);
}
});
})();

if(!window.joyeach){
window.joyeach=new Object();
}
if(!window.joyeach.util){
window.joyeach.util=new Object();
}
(function(){
var nav4=window.Event?true:false;
var $breakEvent=new Object();

joyeach.util.Event={
KEY_BACKSPACE:8,
KEY_TAB:9,
KEY_RETURN:13,
KEY_ESC:27,
KEY_LEFT:37,
KEY_UP:38,
KEY_RIGHT:39,
KEY_DOWN:40,
KEY_DELETE:46,

element:function(e){
var e=e||window.event;
return e.target||e.srcElement||e.originalTarget;
},

isLeftClick:function(e){
var e=e||window.event;
return(((e.which)&&(e.which==1))||
((e.button)&&(e.button==1)));
},
isAlt:function(e){
if(nav4){
return e.modifiers&Event.ALT_MASK;
}else{
return window.event.altKey;
}
},
isCtrl:function(e){
if(nav4){
return e.modifiers&Event.CTRL_MASK;
}else{
return window.event.ctrlKey;
}
},
isShift:function(e){
if(nav4){
return e.modifiers&Event.SHIFT_MASK;
}else{
return window.event.shiftKey;
}
},

pointerX:function(e){
var e=e||window.event;
return e.pageX||(e.clientX+
(document.documentElement.scrollLeft||document.body.scrollLeft));
},

pointerY:function(e){
var e=e||window.event;
return e.pageY||(e.clientY+
(document.documentElement.scrollTop||document.body.scrollTop));
},

pointerXY:function(e){
var e=e||window.event;
return[this.pointerX(e),this.pointerY(e)];
},

stop:function(e){
if(!e)throw $breakEvent;
if(e.preventDefault){
e.preventDefault();
e.stopPropagation();
}else{
e.returnValue=false;
e.cancelBubble=true;
}
},

findElement:function(e,tagName){
var e=e||window.event;
var element=Event.element(e);
while(element.parentNode&&(!element.tagName||
(element.tagName.toUpperCase()!=tagName.toUpperCase())))
element=element.parentNode;
return element;
},
observers:[],
onHandlers:[],
_observe:function(object,name,observer){
if(name&&name.length>=2&&name.substring(0,2)=='on'){
var handlers=object['_$'+name+'$_'];
if(!handlers){
handlers=new Array();
object['_$'+name+'$_']=handlers;
}
handlers.push(observer);
this.onHandlers.push([object,name,observer]);
}else if(object.addEventListener){
object.addEventListener(name,observer,false);
}else if(object.attachEvent){
object.attachEvent('on'+name,observer);
this.observers.push([object,name,observer]);
}
},

unloadCache:function(){
var ev=joyeach.util.Event;
var oblen=ev.observers.length;
for(var i=0;i<oblen;i++){
ev.removeListener.apply(ev,ev.observers[i]);
ev.observers[i][0]=null;
}
ev.observers=[];
var onlen=ev.onHandlers.length;
for(var i=0;i<onlen;i++){
var handler=ev.onHandlers[i];
handler[0]['_$'+handler[1]+'$_']=null;
}
ev.onHandlers=[];
},

getEvent:function(e){
var ev=e||window.event;
if(!ev){
var c=this.getEvent.caller;
while(c){
ev=c.arguments[0];
if(ev&&Event==ev.constructor)
break;
c=c.caller;
}
}
return ev;
},

addListener:function(obj,name,observer){
if(!obj||!name||!observer)return;
if(obj.constructor==Array&&obj.length==0)return;
if(name=='keypress'&&
(navigator.appVersion.match(/Konqueror|Safari|KHTML/)
||obj.constructor==Array?obj[0].attachEvent:obj.attachEvent))
name='keydown';
if(obj.constructor==Array){
for(var i=0;i<obj.length;i++){
this._observe(obj[i],name,observer);
}
}else{
this._observe(obj,name,observer);
}
},

removeListener:function(element,name,observer){
if(!element||!name||!observer)return;
if(name=='keypress'&&
(navigator.appVersion.match(/Konqueror|Safari|KHTML/)
||element.detachEvent))
name='keydown';
if(element.constructor!=Array)element=[element];
for(var i=0;i<element.length;i++){
if(element[i].removeEventListener){
element[i].removeEventListener(name,observer,false);
}else if(element.detachEvent){
element[i].detachEvent('on'+name,observer);
}
var prefix=name.substring(0,2);
if(prefix=='on'){var handlers=element[i]['_$'+name+'$_'];
if(handlers){
var nh=[];
for(var i=0;i<handlers.length;i++)
if(handers[i]!=observer)nh.push(handers[i]);
element[i]['_$'+name+'$_']=nh;
}
}
}
},

fireEvent:function(object,eventName,e){
if(!object||!eventName)return false;
var e=e||{sender:object};
if(!e.sender)e.sender=object;
if(eventName.substr(0,2)!='on'){if(object['on'+eventName])return object['on'+eventName](e||window.event);
};
var handlers=object['_$'+eventName+'$_'];
var ret=true;
if(handlers&&handlers.length>0){
for(var i=0;i<handlers.length;i++){
try{
handlers[i](e);
}catch(ex){

if(ex==$breakEvent)return false;
else throw ex;
}
if(e&&e.returnValue==false&&e.cancelBubble==true)
return false;
if(e.cancel===true)ret=false;
}
}
return ret;
},

hasHandler:function(object,eventName){
if(!object||!eventName)return false;
if(eventName.substr(0,2)!='on'){return object['on'+eventName]?true:false;
};
var handlers=object['_$'+eventName+'$_'];
return handlers&&handlers.length>0;
}
};
})();
joyeach.util.Event.addListener(window,'unload',joyeach.util.Event.unloadCache);

if(!window.joyeach){
window.joyeach=new Object();
}
if(!window.joyeach.util){
window.joyeach.util=new Object();
}
(function(){
var $get=function(el){if(typeof el=='string')return document.getElementById(el);return el};
var ua=navigator.userAgent.toLowerCase(),
isOpera=(ua.indexOf('opera')>-1),
isSafari=(ua.indexOf('safari')>-1),
isIE=(!isOpera&&ua.indexOf('msie')>-1),
isNs=ua.indexOf('mozilla')>-1;
var toCamel=function(property){
var convert=function(prop){
var test=/(-[a-z])/i.exec(prop);
return prop.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());
};
while(property.indexOf('-')>-1){
property=convert(property);
}
return property;
};
var ieBody=(document.compatMode&&document.compatMode!="BackCompat")?
document.documentElement:document.body;
joyeach.util.Dom={

IsIE:isIE,
IsSafari:isSafari,
IsOpera:isOpera,
IsNs:isNs,
getXY:function(element){
var valueT=0,valueL=0;
do{
valueT+=element.offsetTop||0;
valueL+=element.offsetLeft||0;
element=element.offsetParent;
if(element){
p=Dom.getStyle(element,'position');
if(p=='relative'||p=='absolute')break;
}
}while(element);
return[valueL,valueT];
},

getScrolledXY:function(el){
if((el.parentNode===null||el.offsetParent===null||
this.getStyle(el,'display')=='none')&&el!=document.body){
return false;
}
var parentNode=null;
var pos=[];
var box;
var doc=el.ownerDocument;
if(el.getBoundingClientRect){
box=el.getBoundingClientRect();
var scrollTop=Math.max(doc.documentElement.scrollTop,doc.body.scrollTop);
var scrollLeft=Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft);
return[box.left+scrollLeft,box.top+scrollTop];
}
else{
pos=[el.offsetLeft,el.offsetTop];
parentNode=el.offsetParent;

var hasAbs=this.getStyle(el,'position')=='absolute';
if(parentNode!=el){
while(parentNode){
pos[0]+=parentNode.offsetLeft;
pos[1]+=parentNode.offsetTop;
if(this.IsSafari&&!hasAbs&&
this.getStyle(parentNode,'position')=='absolute'){
hasAbs=true;
}
parentNode=parentNode.offsetParent;
}
}
if(this.IsSafari&&hasAbs){
pos[0]-=el.ownerDocument.body.offsetLeft;
pos[1]-=el.ownerDocument.body.offsetTop;
}
}

parentNode=el.parentNode;
var rootTag=/^body|html$/i;

while(parentNode.tagName&&!rootTag.test(parentNode.tagName))
{

if(this.getStyle(parentNode,'display').search(/^inline|table-row.*$/i)){
pos[0]-=parentNode.scrollLeft;
pos[1]-=parentNode.scrollTop;
}

parentNode=parentNode.parentNode;
}
return pos;
},
xLeft:function(el)
{
return parseInt(_j_u_xs.getStyle(el,'left'));
},
xTop:function(el)
{
return parseInt(_j_u_xs.getStyle(el,'top'));
},
xRight:function(el)
{
return parseInt(_j_u_xs.getStyle(el,'right'));
},
xHeight:function(el)
{
return parseInt(_j_u_xs.getStyle(el,'height'));
},
xWidth:function(el)
{
return parseInt(_j_u_xs.getStyle(el,'width'));
},

getStyle:function(el,style)
{
el=$get(el);
var value=el.style[toCamel(style)];

if(!value)
{
if(el.currentStyle){
value=el.currentStyle[toCamel(style)];
}
else if(document.defaultView&&document.defaultView.getComputedStyle)
{
var css=document.defaultView.getComputedStyle(el,null);
value=css?css.getPropertyValue(style):null;
}
}
return(value=='auto'||value=='static')?null:value;
},
hasClass:function(el,className){
el=$get(el);

if(el.className){
var cs=el.className.split(' ');
return cs.indexOf(className)>-1;
}
return false;


},
addClass:function(el,className){
el=$get(el);
if(this.hasClass(el,className))return;
el['className']=[el['className'],className].join(' ');
},
removeClass:function(el,className){
var reg=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)','g');
el=$get(el);

if(!this.hasClass(el,className)){return;}
var c=el['className'];
el['className']=c.replace(reg,' ');

},

replaceClass:function(el,oldClassName,newClassName,isAttach){
el=$get(el);
if(oldClassName===newClassName)return false;
var reg=new RegExp('(?:^|\\s+)'+oldClassName+'(?:\\s+|$)','g');
if(!this.hasClass(el,oldClassName)){
if(isAttach)this.addClass(el,newClassName);
return;
}
el['className']=el['className'].replace(reg,' '+newClassName+' ');

},

getElementsByClassName:function(className,tagName,root){
root=$get(root)||document;
tagName=tagName||'*';
var aEls=(tagName=="*"&&root.all)?root.all:root.getElementsByTagName(tagName);
className=className.replace(/\-/g,"\\-");
var oEl,aReturns=new Array(),oReg=new RegExp("(^|\\s)"+className+"(\\s|$)");
for(var i=0,len=aEls.length;i<len;i++){
oEl=aEls[i];
if(oReg.test(oEl.className))aReturns.push(oEl);
}
return aReturns;
},

getElementsByAttribute:function(attrName,attrValue,tagName,root){
root=$get(root)||document;
var aEls=(tagName=="*"&&root.all)?root.all:root.getElementsByTagName(tagName);

var oReg=(typeof attrValue!="undefined")?new RegExp("(^|\\s)"+attrValue+"(\\s|$)"):null;
var oCurrent,currentValue,aReturns=new Array();
for(var i=0;i<aEls.length;i++){
oCurrent=aEls[i];
oAttr=oCurrent.getAttribute&&oCurrent.getAttribute(attrName);
if(typeof oAttr=="string"&&oAttr.length>0){
if(typeof attrValue=="undefined"||(oReg&&oReg.test(oAttr)))
aReturns.push(oCurrent);
}
}
return aReturns;
},

nextSibling:function(el,tagName){
el=$get(el);
var s=el?el.nextSibling:null;
while(s){
if(s.nodeType==1&&(!tagName||s.nodeName.toLowerCase()==tagName.toLowerCase())){break;}
s=s.nextSibling;
}
return s;
},

prevSibling:function(el,tagName){
el=$get(el);
var s=el?el.previousSibling:null;
while(s){
if(s.nodeType==1&&(!tagName||s.nodeName.toLowerCase()==tagName.toLowerCase())){break;}
s=s.previousSibling;
}
return s;
},

getClientWidth:function(){
return isIE?ieBody.clientWidth:window.innerWidth;
},

getClientHeight:function(){
return isIE?ieBody.clientHeight:window.innerHeight;
},

isAncestor:function(haystack,child){
if(!haystack||!child){return false;}
var p=child.parentNode;
while(p){
if(p==haystack)
return true;
else if(!p.tagName||p.tagName.toUpperCase()=='HTML')
return false;
p=p.parentNode;
}
return false;
},

withIn:function(element,x,y){
if(!element||!x||!y)return false;
var xy=this.getXY(element);
var width=element.offsetWidth;
var height=element.offsetHeight;
return x>=xy[0]&&
y>=xy[1]&&
x<=xy[0]+width&&
y<=xy[1]+height;
},

createTable:function(rows,cells){
var rows=rows||1;
var cells=cells||1;
var t=document.createElement('table');
for(var ri=0;ri<rows;ri++){
var row=t.insertRow(-1);
for(var ci=0;ci<cells;ci++){
row.appendChild(document.createElement('td'));
}
}
return t;
},

setBackground:function(el,setting){
if(!el||!setting)return;
el.style.backgroundImage='url('+(setting.img||'')+')';
el.style.backgroundRepeat=setting.repeat||'no-repeat';
el.style.backgroundPosition=setting.pos||'center';
el.style.backgroundColor=setting.color||'transparent';
},

enableForm:function(form,bool){
form=$get(form);
if(!form)return;
var btn=form.getAttribute('defaultButton')||form.getAttribute('submitButton');
form.disabled=bool?'':'disabled';
this.enableButton(btn);
},

enableButton:function(btn,bool){
var btn=$get(btn);
if(btn){
btn.disabled=bool?'':'disabled';
}
},
getAutoPos:function(el,xy){
var pos=xy||[NaN,NaN];
if(isNaN(pos[0])){
pos=[this.getClientWidth()/2,this.getClientHeight()/2];
}
var pw=this.getClientWidth();
var ph=this.getClientHeight();
var w=el.offsetWidth;
var h=el.offsetHeight;
var x=pos[0];
var y=pos[1];
if(pos[0]+w*1.1>pw){
x=pos[0]-w;
}
if(pos[1]+h*1.1>ph){
if(ph-pos[1]>h/2){
y=pos[1]-(h/2);
}else{
y=pos[1]-h;
}
}
if(x<0)x=0;
if(y<0)y=0;
return[x,y];
},
ready:function(ready,dom){
var dom=dom||document;
var ready=ready||function(){};
if(isNs||isOpera){

dom.addEventListener("DOMContentLoaded",ready,false);
}else if(isIE){



dom.write("<scr"+"ipt id=__ie_init defer=true "+
"src=//:><\/script>");

var script=dom.getElementById("__ie_init");

if(script)
script.onreadystatechange=function(){
if(this.readyState!="complete")return;
this.parentNode.removeChild(this);
ready();
};

script=null;
}else if(isSafari){


var safariTimer=setInterval(function(){

if(dom.readyState=="loaded"||dom.readyState=="complete"){

clearInterval(safariTimer);
safariTimer=null;

ready();
}
},10);
}
},

hover:function(el,hover,leave){
el=$get(el);
el.onmouseover=function(e){

if(hover&&!this.contains(e.fromElement))hover(e);
};
if(leave){
el.onmouseout=function(e){
var element=e.target||e.srcElement||e.originalTarget;

if(!this.contains(e.toElement)){
leave(e);
}
};
}
}
};
var _j_u_xs=joyeach.util.Dom;
document.getsC=_j_u_xs.getElementsByClassName;
document.getsA=_j_u_xs.getElementsByAttribute;

if(typeof(HTMLElement)!="undefined"&&!HTMLElement.prototype.contains)
{
HTMLElement.prototype.contains=function(obj){
return _j_u_xs.isAncestor(this,obj);
};
}

})();

if(!window.joyeach){
window.joyeach=new Object();
}
if(!window.joyeach.util){
window.joyeach.util=new Object();
}
(function(){
var jue=joyeach.util.Event;
var jud=joyeach.util.Dom;

var bind=function(func,obj){
var __method=func;
return function(){
var args=[];
for(var i=0;i<arguments.length;i++)args[i]=arguments[i];
return __method.apply(obj,args);
}
};
var getXY=function(el){
return jud.getScrolledXY(el);
};

var isInArea=function(x,y,areaXY,areaW,areaH){
return x>areaXY[0]&&
x<areaXY[0]+areaW&&
y>areaXY[1]&&
y<areaXY[1]+areaH;
};
var disable=function(e){
return false;
};
var ua=navigator.userAgent;
var isie=ua.toLowerCase().indexOf('msie')>-1&&
ua.toLowerCase().indexOf('opera')==-1,
isNs=ua.indexOf('mozilla')>-1;
var current=null;

joyeach.util.Dragable=function(target,options){
this._target=target;
var _options=options||{
onstart:null,
onmove:null,
onend:null,
onmovetarget:null,
left:false,
top:false,
right:false,
bottom:false,
isCoverMonitor:false
};
this._proxy=null;
this._proxyPos=null;
this._clearProxy=false;
var _xOffset=0;
var _yOffset=0;
var _readyToMove=false;
var _monitorArea=[];
var _isStarted=false;
var getE=bind(function(x,y,mouseX,mouseY,e){
return{
sender:this,
x:x,
y:y,
srcElement:this._proxy||this._target,
mouseX:mouseX,
mouseY:mouseY,
e:e
};
},this);
var _prepare=bind(function(e){
var el=jue.element(e);
if(el.tagName=='INPUT'||
el.tagName=='TEXTAREA'||
el.tagName=='SELECT'){
return;
}


var eX=jue.pointerX(e);
var eY=jue.pointerY(e);

if(el.offsetHeight<el.scrollHeight){
var xy=getXY(el);
if(xy[0]+el.offsetWidth-16<=eX){

return;
}
}


_readyToMove=true;

},this);
var getDragXY=function(x,y,el){
return joyeach.util.Dragable.getDragXY(x,y,el,[_options.left,_options.top,_options.right,_options.bottom]);
};
var _start=bind(function(e){

var eX=e.mouseX;
var eY=e.mouseY;

lastEnter=false;
var el=this._proxy||this._target;
if(this._proxy){
_xOffset=0;
_yOffset=0;
el.style.display='block';
var xy=_getDragerPos(e.x,e.y,e.mouseX,e.mouseY);
el.style.left=xy[0]+'px';
el.style.top=xy[1]+'px';
}else{

var xy=getXY(el);
_xOffset=eX-xy[0];
_yOffset=eY-xy[1];
}
if(isie){
el.setCapture();
}else{
window.captureEvents(Event.MOUSEMOVE||Event.MOUSEUP);
}
el.style.position='absolute';

},this);
var moveTimes=0;
var _move=bind(function(e){
if(!_readyToMove)return;
moveTimes++;

if(moveTimes<=1)return;

var eX=jue.pointerX(e);
var eY=jue.pointerY(e);
var x=eX-_xOffset;
var y=eY-_yOffset;
var el=this._proxy||this._target;

if(!_isStarted){
var ret=jue.fireEvent(this,'onstart',{
sender:this,
srcElement:this._target,
mouseX:eX,
mouseY:eY,
e:e
});
if(ret==false){

_end(e);
return;
}
_isStarted=true;
current=this;
_start(getE(x,y,eX,eY));
}else{
var ret=jue.fireEvent(this,'onmove',getE(x,y,eX,eY,e));
if(ret!=false){
var xy=_getDragerPos(x,y,eX,eY,e);
el.style.left=xy[0]+'px';
el.style.top=xy[1]+'px';
}

if(_monitorArea.length>0){
_fireMonitorEvent(x,y,eX,eY,e);
}
}
},this);
var _getDragerPos=bind(function(x,y,eX,eY,e){
if(!this._proxy){
var xy=getDragXY(x,y,this._target);
x=xy[0],y=xy[1];
}else{
x=(eX-this._proxy.offsetWidth/2);
y=(eY-this._proxy.offsetHeight/2);
switch(this._proxyPos){
case"left":
x=eX-Math.min(20,this._proxy.offsetWidth);
break;
case"top":
y=eY-Math.min(20,this._proxy.offsetHeight);
break;
case"right":
x=eX-this._proxy.offsetWidth+Math.min(20,this._proxy.offsetWidth);
break;
case"bottom":
y=eY-this._proxy.offsetHeight+Math.min(20,this._proxy.offsetHeight);
break;
default:break;
}
}
return[x,y];
},this);
var lastEnter=false;
var _isCover=function(xy,w,h,targetEl){
var area=targetEl;
var areaXY=getXY(area);
var areaW=area.offsetWidth;
var areaH=area.offsetHeight;
return(isInArea(xy[0],xy[1],areaXY,areaW,areaH)||
isInArea(xy[0]+w,xy[1],areaXY,areaW,areaH)||
isInArea(xy[0],xy[1]+h,areaXY,areaW,areaH)||
isInArea(xy[0]+w,xy[1]+h,areaXY,areaW,areaH)
);
}

var _fireMonitorEvent=bind(function(x,y,eX,eY,e){
var el=this._proxy||this._target;
var xy=getXY(el);
var w=el.offsetWidth;
var h=el.offsetHeight;
if(lastEnter){
if((_options.isCoverMonitor||_isCover)(xy,w,h,lastEnter,eX,eY))
return;
else{
lastEnter._isEntered=false;
var ev=getE(x,y,eX,eY,e);
ev.monitor=lastEnter;
jue.fireEvent(this,'onleave',ev);
lastEnter=false;
}
}

for(var i=0;i<_monitorArea.length;i++){
var area=_monitorArea[i];

if((_options.isCoverMonitor||_isCover)(xy,w,h,area,eX,eY)){

if(area._isEntered===true)continue;
area._isEntered=true;
lastEnter=area;
var ev=getE(x,y,eX,eY,e);
ev.monitor=lastEnter;
jue.fireEvent(this,'onenter',ev);
break;
}else{
if(area._isEntered===true){

area._isEntered=false;
var ev=getE(x,y,eX,eY,e);
ev.monitor=lastEnter;
jue.fireEvent(this,'onleave',ev);
if(lastEnter==area){
lastEnter=false;
}
break;
}
}
}
},this);
var _end=bind(function(e){
if(!_readyToMove)return;

_readyToMove=false;
moveTimes=0;
current=null;

if(!_isStarted)return;


var eX=e?jue.pointerX(e):NaN;
var eY=e?jue.pointerY(e):NaN;

var el=(this._proxy||this._target);

if(isie){
(this._proxy||this._target).releaseCapture();
}else{
window.releaseEvents(Event.MOUSEMOVE);
}

if(this._proxy){
this._proxy.style.display='none';
if(!(isNaN(eX)||isNaN(eY))){
var x=eX-_xOffset;
var y=eY-_yOffset;
if(jue.fireEvent(this,'onmovetarget',getE(x,y,eX,eY,e))!=false){
var xy=getDragXY(x,y,this._target);
this._target.style.position='absolute';
this._target.style.left=xy[0]+'px';
this._target.style.top=xy[1]+'px';
}
}
}


jue.fireEvent(this,'onend',{sender:this,srcElement:el});

_isStarted=false;
},this);

this.installProxy=function(el,pos){
if(!el){

var el=document.createElement('div');
for(var p in this._target.style){
try{
el.style[p]=this._target.style[p];
}catch(e){}
}
el.style.position='absolute';
el.style.width=this._target.offsetWidth-(2*(this._target.style.borderWidth||0))+'px';
el.style.height=this._target.offsetHeight-(2*(this._target.style.borderWidth||0))+'px';
el.className=this._target.className;
el.innerHTML=this._target.innerHTML;
el.style.display='none';
document.body.appendChild(el);
this._clearProxy=true;
}
this._proxy=el;
this._proxyPos=pos||'center';
};
this.prepare=function(e){
_prepare(e);
},
this.hasProxy=function(){
return this._proxy!=null;
};

this.setMonitorArea=function(area){
if(!area){
_monitorArea=[];
}else if(area.constructor!=Array){
_monitorArea=[area];
}else{
_monitorArea=area;
}
};
this.setDragArea=function(area){
var area=area||{};
if(area.left)_options.left=area.left;
if(area.top)_options.top=area.top;
if(area.right)_options.right=area.right;
if(area.bottom)_options.bottom=area.bottom;
};
this.end=function(e){
_end(e);
};
this.destroy=function(){
jue.removeListener(this._target,'mousedown',_prepare);
jue.removeListener(document,'mousemove',_move);
jue.removeListener(document,'mouseup',_end);
if(this._clearProxy&&this._proxy){
this._proxy.parentNode.removeChild(this._proxy);
}
};
jue.addListener(this._target,'mousedown',_prepare);
jue.addListener(document,'mousemove',_move);
jue.addListener(document,'mouseup',_end);

if(_options.onstart)
jue.addListener(this,'onstart',_options.onstart);
if(_options.onmove)
jue.addListener(this,'onmove',_options.onmove);

if(_options.onenter)
jue.addListener(this,'onenter',_options.onenter);

if(_options.onleave)
jue.addListener(this,'onleave',_options.onleave);

if(_options.onmovetarget)
jue.addListener(this,'onmovetarget',_options.onmovetarget);

if(_options.onend)
jue.addListener(this,'onend',_options.onend);

};

joyeach.util.Dragable.getDragXY=function(x,y,el,area){
if(!area||area.length!=4)return[x,y];

if(!(area[0]===false)&&x<area[0])x=area[0];

if(!(area[1]===false)&&y<area[1])y=area[1];

if(!(area[2]===false)&&x+el.offsetWidth>area[2])x=area[2]-el.offsetWidth;

if(!(area[3]===false)&&y+el.offsetHeight>area[3])y=area[3]-el.offsetHeight;
return[x,y];
};


joyeach.util.Dragable.end=function(){
if(current)current.end();
};
})();

if(!window.joyeach){
window.joyeach=new Object();
}
if(!window.joyeach.controls){
window.joyeach.controls=new Object();
}
(function(){
var jue=joyeach.util.Event;

var bind=function(func,obj){
var __method=func;
return function(){
var args=[];
for(var i=0;i<arguments.length;i++)args[i]=arguments[i];
return __method.apply(obj,args);
}
};
var Event=joyeach.util.Event;
var extend=function(dest,source){
dest=dest||{};
for(property in source){
if(!dest[property]){
dest[property]=source[property];
}
}
return dest;
};
var ua=navigator.userAgent.toLowerCase(),
opera=ua.indexOf('opera')>-1,
safari=ua.indexOf('safari')>-1,
ie=ua.indexOf('opera')==-1&&ua.indexOf('msie')>-1;
var ieBody=(document.compatMode&&document.compatMode!="BackCompat")?
document.documentElement:document.body;

var adjustPos=function(el,e){
var pos=[jue.pointerX(e),jue.pointerY(e)];
var pw=ie?ieBody.clientWidth:window.innerWidth;
var ph=ie?ieBody.clientHeight:window.innerHeight;
var w=el.offsetWidth;
var h=el.offsetHeight;
var x=pos[0];
var y=pos[1];

if(pos[0]+w*1.1>pw){
x=pos[0]-w;
}
if(pos[1]+h*1.1>ph){
if(ph-pos[1]>h/2){
y=pos[1]-(h/2);
}else{
y=pos[1]-h;
}
}
if(x<0)x=0;
if(y<0)y=0;
return[x,y];
};
var adjustIframe=function(ifr,el,show){
if(show){
ifr.style.left=el.style.left;
ifr.style.top=el.style.top;
ifr.style.width=el.offsetWidth+'px';
ifr.style.height=el.offsetHeight+'px';
ifr.style.display='block';
}else{
ifr.style.display='none';
}
};


var ICSSManager={
hasClass:function(className){
var reg=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)');
return reg.test(this._element['className']);
},
addClass:function(className){
if(this.hasClass(el,className))return;
this._element['className']=[this._element['className'],className].join(' ');
},
removeClass:function(className){
var reg=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)','g');
if(!this.hasClass(el,className)){return;}
this._element['className']=this._element['className'].replace(reg,' ');
},
setClass:function(className){
this._element.className=className;
},
relaceClass:function(oldClassName,newClassName){
if(oldClassName===newClassName)return false;
var reg=new RegExp('(?:^|\\s+)'+oldClassName+'(?:\\s+|$)','g');
if(!this.hasClass(oldClassName)){
this.addClass(newClassName);
return;
}
this._element['className']=this._element['className'].replace(reg,' '+newClassName+' ');
}
};

joyeach.controls.Menu=function(options){

this._element=null;

this._autoPos=false;

this._iframe=null;


this.setXY=function(x,y){
if(x)this._element.style.left=x+'px';
if(y)this._element.style.top=y+'px';
if(this._iframe){
adjustIframe(this._iframe,this._element,this._iframe.style.diaplay!='none');
}
};

this.getXY=function(){
return[parseInt(this._element.style.left),
parseInt(this._element.style.top)];
};

this.addItem=function(item){
if(typeof item=='string'){
item=new joyeach.controls.MenuItem(item,this._itemOption);
if(arguments[1]&&typeof arguments[1]=='function'){
jue.addListener(item,'onclick',arguments[1]);
}
}
this._element.appendChild(item._element);
item._menu=this;
jue.fireEvent(this,'onadditem',{sender:this,item:item});
return item;
};

this.removeItem=function(item){
item._element.parentNode.removeChild(item._element);
jue.fireEvent(this,'onremoveitem',{sender:this,item:item});
item._menu=null;
item._control=null;
};

this.clearItem=function(){
var len=this._element.childNodes.length;
for(var i=0;i<len;i++){
var item=this._element.childNodes[i];
jue.fireEvent(this,'onremoveitem',{sender:this,item:item._control});
item._menu=null;
item._control=null;
}
this._element.innerHTML='';
};

this.insertItemAt=function(index,item){
if(!index||this._element.childNodes.length<=index||index<0)return;
if(typeof item=='string'){
item=new joyeach.controls.MenuItem(item,this._itemOption);
if(arguments[2]&&typeof arguments[2]=='function'){
jue.addListener(item,'onclick',arguments[2]);
}
}
this._element.insertBefore(item._element,this._element.childNodes[index]);
jue.fireEvent(this,'onadditem',{sender:this,item:item});
item._menu=null;
return item;
};

this.getItemAt=function(index){
if(this._element.childNodes.length<=index||index<0)return;
return this._element.childNodes[index]._control;
};

this.removeItemAt=function(index){
if(this._element.childNodes.length<=index||index<0)return;
var element=this._element.childNodes[index];
this._element.removeChild(element);
jue.fireEvent(this,'onremoveitem',{sender:this,item:element._control});
element._control._menu=null;
element._control=null;
};

this.enableItems=function(items,bool){
if(!items||items.constructor!=Array)return;
for(var i=0;i<items.length;i++){
if(items[i]!=null){

if(items[i].constructor==joyeach.controls.MenuItem){
items[i].enable(bool);
}else{
var item=this.getItemAt(items[i]);
if(item)item.enable(bool);
}
}
}
};

this.getItems=function(){
var items=[];
for(var i=0;i<this._element.childNodes.length;i++)
items[i]=this._element.childNodes[i]._control;
return items;
};

this.show=function(x,y){
this._element.style.display='block';
if(!x&&!y&&this._autoPos){
var e=jue.getEvent();
if(e){
var xy=adjustPos(this._element,e);
x=xy[0];
y=xy[1];
}
}

this.setXY(x,y);
this._element.focus();
jue.fireEvent(this,'onpopup',{sender:this});
};


this.hide=function(){
this._element.style.display='none';
if(this._iframe)
adjustIframe(this._iframe,this._element,false);
jue.fireEvent(this,'onhide',{sender:this});
};

this.close=function(){
if(this._iframe)
this._iframe.parentNode.removeChild(this._iframe);
var len=this._element.childNodes.length;
for(var i=0;i<len;i++){
var node=this._element.childNodes[i];
node.onclick=null;
node.ondblclick=null;
node.onmouseover=null;
node.onmouseout=null;
node.onmousemove=null;
node.onmousedown=null;
node.onmouseup=null;
}
this._element.parentNode.removeChild(this._element);
jue.fireEvent(this,'onclose',{sender:this});
jue.removeListener(document,'mousedown',this._mousedown);
jue.removeListener(this._element,'blur',this._blur);
};

this.addGroupItem=function(style){
var item=new joyeach.controls.MenuItem('',{isGroup:true,style:style});
if(!style){
item._element.style.backgroundColor='gray';
}
this.addItem(item);
};


this._mousedown=bind(function(e){
if(!this._pointerIsIn(e||event)){
var el=jue.element(e||event);
while(el){
if(el==this._element){return;}
el=el.parentNode;
};
this.hide();
}

},this);
this._blur=bind(function(e){
var el=jue.element(e||event);
while(el){
if(el==this._element){return;}
el=el.parentNode;
};
this.hide();
},this);
this._pointerIsIn=function(e){
var eX=jue.pointerX(e);
var eY=jue.pointerY(e);
var width=this._element.offsetWidth;
var height=this._element.offsetHeight;
var thisX=parseInt(this._element.style.left);
var thisY=parseInt(this._element.style.top);

return!(eX<thisX||eX>thisX+width||
eY<thisY||eY>thisY+height)
},

this._init=function(options){
var options=options||{};
this._element=document.createElement('div');

if(!opera&&!safari){
this._element.style.zIndex=2147483647;
}
this._element.style.display='none';
this._element.style.position='absolute';
this._element._control=this;
document.body.appendChild(this._element);
if(ie){
this._iframe=document.createElement('iframe');
this._iframe.style.position='absolute';
this._iframe.style.display='none';
this._iframe.style.zIndex=this._element.style.zIndex-1;
document.body.appendChild(this._iframe);
}
this.setClass(options.style||'controls_menu');

if(!options.x)options.x=(this._element.parentNode.offsetWidth-this._element.offsetWidth)/2;
if(!options.y)options.y=(this._element.parentNode.offsetHeight-this._element.offsetHeight)/2;
this.setXY(options.x,options.y);
this._autoPos=options.autoPos?true:false;
this._itemOption=options.itemOption||{};
jue.addListener(document,'mousedown',this._mousedown);
jue.addListener(this._element,'blur',this._blur);
};


this._init(options);
};

joyeach.controls.MenuItem=function(text,options){
this._element=null;
this.selected=false;

this.setText=function(text){
this._element.innerHTML=text;
};

this.getText=function(){
return this._element.innerHTML;
};

this.setTitle=function(title){
this._element.title=title;
};

this.getTitle=function(){
return this._element.title;
};

this.menu=function(){
return this._menu;
};

this.enable=function(bool){
var el=this._element;
if(bool){
if(el._enabled==false){
el.style.color=el._preColor||'';
el.style.cursor=el._preCursor||'';
el._enabled=true;
}
}else{
el._preColor=el.style.color;
el._preCursor=el.style.cursor;
el.style.color="gray";
el.style.cursor="default";
el._enabled=false;
}
jue.fireEvent(this,'onenable',{sender:this,enable:bool?true:false});
};

this.show=function(){
this._element.style.display='block';
jue.fireEvent(this,'onshow',{sender:this});
};

this.hide=function(){
this._element.style.display='none';
jue.fireEvent(this,'onhide',{sender:this});
};

this.isEnabled=function(){
return this._element._enabled!=false;
};
this.select=function(){
this._element.className=options.selectedStyle||"";
this.selected=true;
if(this._menu.selectedItem&&this._menu.selectedItem!=this){
this._menu.selectedItem.unselect();
}
this._menu.selectedItem=this;
return this._element;
};
this.unselect=function(){
this._element.className=options.style||"";
this.selected=false;
return this._element;
};

this._init=function(text,options){
options=options||{};

if(options.isGroup){
this._element=document.createElement('div');
if(options.style){
this._element.className=options.style;
}else{
this._element.style.height='1px';
this._element.style.marginTop='2px';
this._element.style.marginBottom='2px';
this._element.style.backgroundColor='gray';
}
}else{
this._element=document.createElement('div');
this._element.innerHTML=text;


this._element.onclick=function(e){
if(this._enabled==false)return;

if(jue.fireEvent(this._control,'onclick',{sender:this,e:e||window.event})!=false){
this._control.menu().hide();
}
};
if(options.onclick&&typeof options.onclick=='function')
jue.addListener(this,'onclick',options.onclick);

this._element.onmouseover=function(e){

if(this._enabled==false)return;
if(options.enterStyle){
this._control.setClass(options.enterStyle);
}
jue.fireEvent(this._control,'onenter',{sender:this,e:e||window.event});
};
if(options.onenter&&typeof options.onenter=='function')
jue.addListener(this,'onenter',options.onenter);

this._element.onmouseout=function(e){

if(this._enabled==false)return;
if(options.enterStyle){
var classname=(this._control.selected==true&&options.selectedStyle)?options.selectedStyle:options.style;
this._control.setClass(classname||'');
}
jue.fireEvent(this._control,'onleave',{sender:this,e:e||window.event});
};
if(options.onleave&&typeof options.onleave=='function')
jue.addListener(this,'onleave',options.onleave);

this._element.onmousedown=function(e){
if(this._enabled==false)return;
if(options.pressStyle){
this._control.setClass(options.pressStyle||'');
}
jue.fireEvent(this._control,'onpress',{sender:this,e:e||window.event});
};
if(options.onpress&&typeof options.onpress=='function')
jue.addListener(this,'onpress',options.onpress);

this._element.onmouseup=function(e){

if(this._enabled==false)return;
if(options.pressStyle){
this._control.setClass(options.style||'');
}
jue.fireEvent(this._control,'onrelease',{sender:this,e:e||window.event});
};
if(options.onrelease&&typeof options.onrelease=='function')
jue.addListener(this,'onrelease',options.onrelease);
this.setClass(options.style||'controls_menuitem');
if(options.title){
this._element.title=options.title;
}else if(this._element.innerHTML){


if(window.navigator.userAgent.indexOf("Firefox")>=1)
{

this._element.title=this._element.textContent;
}
else
{

this._element.title=this._element.innerText;
}
}
}
this._element._control=this;
this._element.style.cursor='default';
};
this._init(text,options);
};


extend(joyeach.controls.Menu.prototype,ICSSManager);
extend(joyeach.controls.MenuItem.prototype,ICSSManager);
})();

var JEvent=joyeach.util.Event;
var Ajax=joyeach.util.Ajax;
var Dom=joyeach.util.Dom;
var Menu=joyeach.controls.Menu;
var MenuItem=joyeach.controls.MenuItem;
var interfaceUrl='/rssreader.php';
function initDebuger(){
if(window.__DEBUG__){
if(typeof console=='undefined'){
console={
log:function(o){
var elC=$('__console__');
if(!elC){
elC=htmlToElement("<div id='__console__'></div>");
document.body.appendChild(elC);
}
elC.innerHTML+=o+'<br/>';
elC.scrollTop=elC.scrollHeight;
},
clear:function(){
var elC=$('__console__');
if(elC){
elC.innerHTML='';
elC.scrollTop=0;
}
}
}
}
}
else{
if(!window.console){
window.console={log:function(){}}
}
}
}
String.prototype.replaceAll=function(AFindText,ARepText){
var raRegExp=new RegExp(AFindText,"g");
return this.replace(raRegExp,ARepText);
};
String.prototype.Trim=String.prototype.trim=function()
{
return this.replace(/(^\s*)|(\s*$)/g,"");
};
String.prototype.LTrim=String.prototype.lTrim=function()
{
return this.replace(/(^\s*)/g,"");
};
String.prototype.RTrim=String.prototype.rTrim=function()
{
return this.replace(/(\s*$)/g,"");
};
function checkMails(list){
if(typeof list=='string')
list=[list];

console.log(list);

var n_list=[];
for(var i=0,len=list.length;i<len;i++){
var b=/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$/i.test(list[i]);
if(b)n_list.push(list[i]);
}

console.log(n_list);

if(n_list.length<1){
return false;
}
return n_list;
}
function _processRequestParams(url,params){
if(params&&url){
var method=params;
var pos=params.indexOf('&');
if(pos>-1){
method=params.substr(0,pos);
params=params.substr(pos+1);
}else{
params=null;
}
if(url.indexOf('?')==-1){
url+='?'+method;
}else{
url+='&'+method;
}
return[url,params];
}
}
function AsyncCall(url,params,onSuccess,onFailure){
if(url.indexOf('rssreader.php')>-1){
var ret=_processRequestParams(url,params);
url=ret[0];
params=ret[1];
}

var $lastAjaxCallStatus=PageMgr.status;
return new Ajax.Request(url,{
parameters:params,
onSuccess:function(res){

if(PageMgr.status!=$lastAjaxCallStatus){
WaitControl.end();
return;
};
(onSuccess||function(){})(res);
},
onFailure:function(res){
if(PageMgr.status!=$lastAjaxCallStatus){
WaitControl.end();
return;
};
(onFailure||function(){})(res);
WaitControl.end();
WaitControl.SaveError('鲜果服务出现了暂时性问题，请稍候再尝试！');
},
onException:function(req,ex){throw ex;}
});
}
function SyncCall(url,params,onSuccess,onFailure){
if(url.indexOf('rssreader.php')>-1){
var ret=_processRequestParams(url,params);
url=ret[0];
params=ret[1];
}
return new Ajax.Request(url,{
parameters:params,
asynchronous:false
});
}
function AsyncBatchCall(url,params,onSuccess,onFailure){
if(!params||params.length==0)return;
return new Ajax.Request(url,{
parameters:'call='+encodeURIComponent(JSON.serialize(params)),
onSuccess:onSuccess,
onFailure:onFailure||function(){
WaitControl.end();
WaitControl.SaveError('鲜果服务出现了暂时性问题，请稍候再尝试！');
},
onException:function(e){throw e;}
});
}
function AsyncGet(url,params,onSuccess,onFailure){
return new Ajax.Request(url,{
method:'get',
parameters:params,
onSuccess:onSuccess,
onFailure:onFailure||function(){
WaitControl.end();

},
onException:function(e){throw e;}
});
}
function SyncGet(url,params,onSuccess,onFailure){
return new Ajax.Request(url,{
method:'get',
parameters:params,
asynchronous:false
});
}
window.onerror=function(){
WaitControl.end();
}
var loadWidget=function(url,widgetId,loadfunc){
if(!url)return;
if(url.indexOf('?')>-1){
url=url+'&'+new Date().getTime();
}else{
url=url+'?'+new Date().getTime();
}
var el=$('script_'+widgetId);
var head=document.getElementsByTagName('head')[0];
if(el)head.removeChild(el);
el=document.createElement('script');
el.type='text/javascript';
el.src=url;
el.language='javascript';
el.id="script_"+widgetId;
if(loadfunc){
el.onload=loadfunc;
}
head.appendChild(el);

}
function var_dump(obj)
{
var str='';
for(var p in obj){
if(typeof obj[p]!='function')
str+=p+'='+obj[p]+'\r\n';
}
return(str);
}
function doClick(linkId){
var fireOnThis=document.getElementById(linkId)
if(document.createEvent){
var evObj=document.createEvent('MouseEvents');
evObj.initEvent('click',true,false);
fireOnThis.dispatchEvent(evObj);
}
else if(document.createEventObject){
fireOnThis.fireEvent('onclick');
}
}
function fireEvent(el,name){
if(!el)return;
if(document.createEvent){
var evObj=document.createEvent('MouseEvents');
evObj.initEvent(name,true,false);
fireOnThis.dispatchEvent(evObj);
}else if(document.createEventObject){
fireOnThis.fireEvent('on'+name);
}
}
IsNull=IsNULL=ISNULL=isnull=isNULL=isNull=function(obj){
return obj==null||typeof obj=='undefined';
}
IsNumber=isNumber=isnumber=function(obj){
return typeof obj=='number';
}
isArray=IsArray=isarray=function(obj){
return(typeof obj=='object')&&(obj!=null)&&obj.constructor==Array;
}
hideObj=function(o){
var h=function(el){
el=typeof el=='string'?$(el):el;
if(el.style){
el.style.display="none";
}
}
o=$A(arguments);
if(o.join)
for(var i=0;i<o.length;i++)h(o[i]);
}
showObj=function(o){
var h=function(el){
el=typeof el=='string'?$(el):el;
if(el.style){
el.style.display="";
}
}
o=$A(arguments);
if(o.join)
for(var i=0;i<o.length;i++)h(o[i]);
}
insertBefore=function(newChild,refChild){
return refChild.parentNode.insertBefore(newChild,refChild);
}
insertAfter=function(newChild,refChild){
if(refChild.nextSibling)insertBefore(newChild,refChild.nextSibling);
else refChild.parentNode.appendChild(newChild);
return newChild;
}
var htmlToElement=unescapeHTML=function(html){
var div=document.createElement('div');
div.innerHTML=html;
if(div.childNodes.length==1)return div.childNodes[0];
var ret=[];
for(var i=0;i<div.childNodes.length;i++){
var node=div.childNodes[i];
if(node.nodeType==1)ret.push(node);
}
return ret;
}
var htmlToFragment=function(html){
var div=document.createElement('div');
div.innerHTML=html;
var ret=document.createDocumentFragment();
var tempArray=[];
for(var i=0;i<div.childNodes.length;i++){
var node=div.childNodes[i];
if(node.nodeType==1){
tempArray.push(node);
}
}
tempArray.each(function(node){
ret.appendChild(node);
});
return ret;
}
escapeHTML=function(text){
var div=document.createElement('div');
var text=document.createTextNode(text);
div.appendChild(text);
return div.innerHTML;
}
function getSelectedRadio(name){
var radios=document.getElementsByName(name);
for(var i=0;i<radios.length;i++){
if(radios[i].checked)return radios[i];
}
return null;
}
function getSelectedValue(el){
el=$(el);
return el.options[el.selectedIndex].value;
}
function getChekedValue(name){
var rs=document.getElementsByName(name);
var ret=[];
for(var i=0;i<rs.length;i++){
if(rs[i].checked)ret[ret.length]=rs[i].value;
}
return ret;
}
function setSelectedValue(el,value){
el=$(el);
for(var i=0,len=el.options.length;i<len;i++){
if(el.options[i].value==value){
el.options[i].selected=true;
return;
}
}
}
function setSelectedRadio(name,v){
var radios=document.getElementsByName(name);
for(var i=0;i<radios.length;i++){
if(radios[i].value==v)return radios[i].checked=true;
}
return null;
}

function CreateAsync1SyncCallParam(sFunctionName,vParam)
{

return"method="+sFunctionName+"&params="+(vParam?JSON.serialize(vParam):'');
}
function setPosition(target,left,top,right,bottom){
var target=$(target);
if(target){
if(left!=null)target.style.left=left+"px";else target.style.left=null;
if(top!=null)target.style.top=top+"px";else target.style.top=null;
if(right!=null)target.style.right=right+"px";else target.style.right=null;
if(bottom!=null)target.style.bottom=bottom+"px";else target.style.bottom=null;
}
}
function copyit(textit){
var $=document.getElementById;
if(window.clipboardData){
window.clipboardData.setData("Text",textit);
}else{
var flashcopier='flashcopier';
if(!$(flashcopier)){
var divholder=document.createElement('div');
divholder.id=flashcopier;
document.body.appendChild(divholder);
}
$(flashcopier).innerHTML='<embed src="http://xgimg.com/_clipboard.swf" FlashVars="clipboard='+escape(textit)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
}
}
function encodeURL(url){
if(!url||url=='')return url;
var qmMarkPos=url.indexOf('?');
if(url==-1)return url;
var array=url.substr(qmMarkPos+1).split('&');
var url=url.substr(0,qmMarkPos+1);
for(var i=0;i<array.length;i++){
var par=array[i];
var pos=par.indexOf('=');
if(pos==-1){
par=encodeURIComponent(par);
}else{
par=par.substr(0,pos+1)+encodeURIComponent(par.substr(pos+1));
}
array[i]=par;
}
return url+array.join('');
}
Array.prototype.has=function(el){
return(this.indexOf(el)>=0);
}
window.bind=function(html,obj){
if(!html||!obj)return"";
var lines=html.split(/{|}/);
var len=lines.length;
for(var i=0;i<len;i++){
var k=lines[i];
var v=obj[k];
v!=null?lines[i]=v:"";
}
return lines.join("");
};
var ste=function(){JEvent.stop(JEvent.getEvent());}

JSON=new function(){
function serializeWithBuilder(object,stringBuilder){
var i;

switch(typeof object){
case'object':
if(object){
if(object.join){
stringBuilder.append('[');
for(i=0;i<object.length;++i){
if(i>0){
stringBuilder.append(',');
}
stringBuilder.append(serializeWithBuilder(object[i],stringBuilder));
}
stringBuilder.append(']');
}
else{
if(typeof object.serialize=='function'){
stringBuilder.append(object.serialize());
break;
}
stringBuilder.append('{');
var needComma=false;
for(var name in object){
if(name.indexOf('$')==0){
continue;
}
var value=object[name];
if(typeof value!='undefined'&&typeof value!='function'){
if(needComma)
stringBuilder.append(',');
else needComma=true;

stringBuilder.append(serializeWithBuilder(name,stringBuilder));
stringBuilder.append(':');
stringBuilder.append(serializeWithBuilder(value,stringBuilder));
}
}
stringBuilder.append('}');
}
}
else{
stringBuilder.append('null');
}
break;

case'number':
if(isFinite(object)){
stringBuilder.append(String(object));
}
else{
stringBuilder.append('null');
}
break;

case'string':
stringBuilder.append('"');
var length=object.length;
for(i=0;i<length;++i){
var curChar=object.charAt(i);
if(curChar>=' '){
if(curChar=='\\'||curChar=='"'){
stringBuilder.append('\\');
}
stringBuilder.append(curChar);
}
else{
switch(curChar){
case'\b':
stringBuilder.append('\\b');
break;
case'\f':
stringBuilder.append('\\f');
break;
case'\n':
stringBuilder.append('\\n');
break;
case'\r':
stringBuilder.append('\\r');
break;
case'\t':
stringBuilder.append('\\t');
break;
default:
stringBuilder.append('\\u00');
stringBuilder.append(curChar.charCodeAt().toString(16));
}
}
}
stringBuilder.append('"');
break;

case'boolean':
stringBuilder.append(object.toString());
break;

default:
stringBuilder.append('null');
break;
}
};
this.serialize=function(object){
var stringBuilder=new StringBuilder();
serializeWithBuilder(object,stringBuilder);
return stringBuilder.toString();
};
this.deserialize=function(data){
return eval('('+data+')');
};

this.decode=this.deserialize;
}
JSON.stringify=JSON.serialize;
JSON.parse=JSON.deserialize;
StringBuilder=function(initialText)
{
var _parts=new Array();
if((typeof(initialText)=='string')
&&(initialText.length!=0))
_parts.push(initialText);

this.append=function(text){
if((text==null)||(typeof(text)=='undefined')){
return;
}
if((typeof(text)=='string')&&(text.length==0)){
return;
}
_parts.push(text);
}
this.appendLine=function(text){
this.append(text);
_parts.push('\r\n');
}
this.clear=function(){
_parts.clear();
}
this.isEmpty=function(){
return(_parts.length==0);
}
this.toString=function(delimiter){
return _parts.join(delimiter||'');
}
}

function FlipPage(page,size,total,num){
if(page<=0)return;
this.num=num;
this.page=page;
this.size=size;
this.total=total;
this.totalPage=Math.floor(total/size)+(total%size>0?1:0);
this.startItem=(page-1)*size+1;
this.endItem=page*size;
if(total==0){
this.startItem=0;
this.endItem=0;
}else{
if(this.endItem>total)this.endItem=total;
}
if(this.page<num+1){
this.startPage=1;
var l=(2*num+1)
this.endPage=(this.totalPage<l)?this.totalPage:l;
}else if((this.page+num)>this.totalPage){
this.endPage=this.totalPage;
this.startPage=this.endPage-2*num;
if(this.startPage<=0)this.startPage=1;
}else{
this.startPage=this.page-num;
this.endPage=this.page+num;
}
}
FlipPage.prototype.CreateHtml=function(link,currentLink){
if(this.total==0)return'';

var html=new Array();
if(1==this.page){
var temp=currentLink.replace(/\{page\}/g,1);
temp=temp.replace(/\{text\}/g,1);
html.push(temp);
}else{

var temp=link.replace(/\{page\}/g,this.page-1);
temp=temp.replace(/\{text\}/g,'上一页');
html.push(temp);

temp=link.replace(/\{page\}/g,1);
temp=temp.replace(/\{text\}/g,1);
html.push(temp);
}

var endHtml='';
if(this.totalPage==this.page){
if(this.totalPage>1){
var temp=currentLink.replace(/\{page\}/g,this.totalPage);
temp=temp.replace(/\{text\}/g,this.totalPage);
endHtml+=temp;
}
}else{

var temp=link.replace(/\{page\}/g,this.totalPage);
temp=temp.replace(/\{text\}/g,this.totalPage);
endHtml+=temp;

temp=link.replace(/\{page\}/g,this.page+1);
temp=temp.replace(/\{text\}/g,'下一页');
endHtml+=temp;
}
var Start=this.startPage;
var End=this.endPage;
if(this.startPage<2){
Start++;
}else if(this.startPage>2){
html.push('..');
}
if(this.endPage>this.totalPage-1){
End--;
}else if(this.endPage<this.totalPage-1){
endHtml='..'+endHtml;
}
for(var i=Start;i<=End;i++){
if(i==this.page){
var temp=currentLink.replace(/\{page\}/g,i);
temp=temp.replace(/\{text\}/g,i);
html.push(temp.replace(/\{page\}/g,i));
}else{
var temp=link.replace(/\{page\}/g,i);
temp=temp.replace(/\{text\}/g,i);
html.push(temp.replace(/\{page\}/g,i));
}
}
html.push(endHtml);
return html.join('');
}
var WaitControl={}
WaitControl.PannelWait=function(){
var pannel=$('contextWaitPannel');
if(!pannel)return;

pannel.style.top=(document.documentElement.offsetHeight-pannel.offsetHeight)*2/5+'px';
pannel.style.left=(document.documentElement.offsetWidth-pannel.offsetWidth)/2+'px';
pannel.style.display='';
WaitControl.AutoHideLoading=window.setTimeout(WaitControl.PannelEndWait,1000*25);
}
WaitControl.PannelEndWait=function(){
if(WaitControl.AutoHideLoading){
window.clearTimeout(WaitControl.AutoHideLoading);
delete WaitControl.AutoHideLoading;
}
var pannel=$('contextWaitPannel');
if(pannel)pannel.style.display='none';
}
WaitControl.SaveStartWait=function(msg){
var pannel=$('context_note');
if(!pannel)return;
pannel.style.display='';
pannel.innerHTML=msg||'正在保存..';
pannel.className='context_note_saving';
}
WaitControl.TimerHandler=null;
WaitControl.SaveEndWait=function(msg){
if(!$('context_note'))return;
var pannel=$('context_note');
pannel.style.display='';
pannel.innerHTML=msg||'保存完毕';
pannel.className='context_note_saved';
if(WaitControl.TimerHandler)
clearTimeout(WaitControl.TimerHandler);
WaitControl.TimerHandler=setTimeout(function(){pannel.style.display='none'},2500);
}
WaitControl.SaveEndMsg=function(Msg){
if(!$('context_note'))return;
var pannel=$('context_note');
pannel.style.display='';
pannel.innerHTML=Msg;
pannel.className='context_note_saved';
if(WaitControl.TimerHandler)
clearTimeout(WaitControl.TimerHandler);
setTimeout(function(){pannel.style.display='none'},2500);
}
WaitControl.SaveError=function(Msg){
if(!$('context_note'))return;
var pannel=$('context_note');
pannel.style.display='';
pannel.innerHTML=Msg;
pannel.className='context_note_error';
if(WaitControl.TimerHandler)
clearTimeout(WaitControl.TimerHandler);
setTimeout(function(){pannel.style.display='none'},2500);
}
WaitControl.SidePannelWait=function(){
if(!$('sidePannelWait'))return;
$('sidePannelWait').style.display='';
}
WaitControl.SidePannelEndWait=function(){
if(!$('sidePannelWait'))return;
$('sidePannelWait').style.display='none';

}
var ErrorControl={
msg:'对不起，我们的服务出现一点小问题。请尝试刷新一下页面，或通过留言与我们联系。',
width:200,
height:130,
offsetBottom:40,
offsetRight:40,
msgBox:null,
msgBoxOuter:null,
timer:null,
setup:5,
setups:0,
show:function(){
var win=document.createElement('div');
var winInter=document.createElement('div');
win.appendChild(winInter);
win.className='ErrorBoxOuter';
winInter.className='ErrorBox';
winInter.innerHTML='<p>'+this.msg+'</p>';
document.body.appendChild(win);
win.style.left=document.documentElement.offsetWidth-this.width-this.offsetRight+'px';
winInter.style.width=this.width+'px';
winInter.style.height='0px';
this.msgBox=winInter;
this.msgBoxOuter=win;
this.timer=setInterval(this.rise.bind(this),20);
},
rise:function(){
if(this.setups>100)this.setups=100;
var h=Math.floor(this.height/100*this.setups);
this.msgBox.style.height=h+'px';
this.msgBoxOuter.style.top=document.documentElement.offsetHeight-h-this.offsetBottom+'px';
if(this.setups>=100){
clearInterval(this.timer);
setTimeout(this.close.bind(this),5000);
return;
}
this.setups+=this.setup;
},
close:function(){
document.body.removeChild(this.msgBoxOuter);
}
}
WaitControl.end=function(){
this.SidePannelEndWait();
this.PannelEndWait();
var note=$('context_note');
if(note)note.style.display='none';
}

var PageMgr={
status:'',
lastPageTime:new Date(),
lastSrc:'',
resizing:false,
saveToHistory:function(method){
if(Dom.IsOpera)return true;
var c=PageMgr.saveToHistory.caller;
if(!c)return false;
var args=$A(c.arguments);

var ser=function(s){
if(typeof s=='string')return"'"+s+"'";
return''+s;
};
var method=method||c.name;
var call=method+'(';

for(var i=0;i<args.length;i++){
call+=ser(args[i])+',';
}
if(args.length>0)call=call.substr(0,call.length-1);
call+=')';
call=encodeURIComponent(call);
if(this.lastSrc==call){
return false;
}
var ifr=$('ifrHistory');
ifr.src="/ui/empty.htm?"+call;
this.lastSrc=call;
return true;
},
loadHistory:function(){
var ifr=$('ifrHistory');
if(!ifr||!ifr.contentWindow)return;
var url=ifr.contentWindow.location.href;
if(url=="about:blank")return;
var pos=url.lastIndexOf('?');
var script=decodeURIComponent(url.substr(pos+1));
try{
if(script!=this.lastSrc)eval(script);
}catch(ex){}
},

setTitle:function(title,tip){
var el=$('page_title');
if(el){
el.innerHTML=title;
el.title=tip||'';
}
},

getTitle:function(){
var el=$('page_title');
if(el)return el.innerHTML;
},

_goPage:function(status){
var time=new Date();

if(this.status==status&&time-this.lastPageTime<5000){
if(!this.params||this.params.length==0)return false;
var stop=true;
for(var i=1;i<arguments.length;i++){
if(this.params[i-1]!=arguments[i]){
stop=false;
break;
}
}

if(stop)
return false;
}

if(JEvent.fireEvent(this,'onleavepage',this.status,this.params)===false)return false;
this.status=status;
this.lastPageTime=time;
var ps=$A(arguments);
ps.shift();
this.params=ps;

if(JEvent.fireEvent(this,'onenterpage',this.status,this.params)===false)return false;
return true;
},

goIndexPage:function(){
if(Actor.isAnonymous()){
return this.goAnonymousIndexPage();
}
if(this.firstLoadDefaultPage)
{
loadWidget('http://bang.xianguo.com/widget/weeklyrecommend.php?n=10&e=fastUpFeeds','fastUpFeeds');
return;
}
if(this._goPage("index")){
this.setTitle('');


this.saveToHistory("PageMgr.goIndexPage");


ChannelList.setSelection(null);


AsyncCall("/ui/pageInterface.php",'pageName=getIndexPage',function(res){
$('mainContext').innerHTML=res.responseText;
loadWidget('http://bang.xianguo.com/widget/weeklyrecommend.php?n=10&e=fastUpFeeds','fastUpFeeds',function(){
PageMgr.adjustMainSize();
});
});
if(Dom.IsIE){
setTimeout("PageMgr.adjustMainSize()",1000);
}
}
},

goAnonymousIndexPage:function(feedId){
WaitControl.PannelWait();
this.setTitle('');
if(this._goPage('subscribe_page',feedId)){
this.loadPage('/ui/pageInterface.php?pageName=getSubscribePage&feedId='+feedId,null,function(res){
WaitControl.PannelEndWait();
});
}
if(Dom.IsIE){
setTimeout("PageMgr.adjustMainSize()",1000);
}
},
inIndex:function(){return this.status=='index'},

goDefault:function(){
var entry=Actor.UserConfig.default_entry;
if(entry.indexOf('feeds:')>-1){

if(entry.substr(6)=="unread"){
Actor.UserConfig.show_feed_unread=true;
}else{
Actor.UserConfig.show_feed_unread=false;
}
PageMgr.goAllFeed();
}else if(entry.indexOf('feed:')>-1){

var feedid=entry.substr(5);
if(!ChannelList.FindChannel(feedid)){
PageMgr.goIndexPage();
}
else PageMgr.goFeed(feedid);
}else if(entry.indexOf("folder:")>-1){

var folderid=entry.substr(7);
if(!ChannelList.FindFolder(folderid))
PageMgr.goIndexPage();
else PageMgr.goFolder(folderid);
}else{
PageMgr.goIndexPage();
}
},
goFeed:function(feedId){
if(Dom.IsSafari){
var e=JEvent.getEvent();
var el=JEvent.element(el);
if(el instanceof HTMLElement&&!JEvent.isLeftClick(e))return;
}
if(this._goPage('browse_feed_item',feedId)){
this.saveToHistory("PageMgr.goFeed");
ChannelList.browseFeed(feedId);
}
},
goFolder:function(folderId){
if(Dom.IsSafari){
var e=JEvent.getEvent();
var el=JEvent.element(el);
if(el instanceof HTMLElement&&!JEvent.isLeftClick(e))return;
}
if(this._goPage('browse_folder_item',folderId)){
this.saveToHistory("PageMgr.goFolder");
ChannelList.browseFolder(folderId);
}
},
goAllFeed:function(){
if(this._goPage('browse_all_item')){
this.saveToHistory("PageMgr.goAllFeed");
ChannelList.browseAllFeeds(Actor.UserConfig.show_feed_unread);
}
},

goMyTagItem:function(tagId,name){
if(Actor.demandLogin()){
return;
}
if(this._goPage('browse_my_tag_item',tagId,name)){
this.saveToHistory("PageMgr.goMyTagItem");
ActorTag.BrowseTagItem('listTag_'+tagId,tagId,name);
}
},
goMyReadingTrend:function(){
if(Actor.demandLogin()){
return;
}
if(this._goPage('read_trend')){
WaitControl.PannelWait();
this.saveToHistory("PageMgr.goMyReadingTrend");
this.loadPage('/ui/pageInterface.php?pageName=showMyReadingTrend',null,function(){
PageMgr.setTitle("阅读趋势");
ReadingTrend.init();
WaitControl.PannelEndWait();
});
}
},
goFeedTrend:function(num,type,desc){
if(Actor.demandLogin()){
return;
}
if(!$('feedTrendPanel'))return;
WaitControl.PannelWait();
if(this._goPage('feed_trend',num,type,desc)){
AsyncGet('/ui/pageInterface.php?pageName=showMyFeedTrend&num='+num+'&type='+type+'&desc='+desc,num,function(res){
$('feedTrendPanel').innerHTML=res.responseText;
WaitControl.PannelEndWait();
});
}
},
goAllFavItem:function(){
if(Actor.demandLogin()){
return;
}
if(this._goPage('browse_fav_tag_item')){
this.saveToHistory("PageMgr.goAllFavItem");
ActorTag.BrowseTagItem('listTag_all','all','我的收藏');
}
},
goUntagItem:function(){
if(Actor.demandLogin()){
return;
}
if(this._goPage('browse_untag_item')){
this.saveToHistory("PageMgr.goUntagItem");
ActorTag.BrowseTagItem('listTag_untag','untag','未标记项');
}
},
goDiggItem:function(actorId){
if(Actor.demandLogin()){
return;
}
if(!actorId)actorId=Actor.getID();
if(actorId==Actor.getID()){

if(this._goPage('browse_digg_item')){
this.saveToHistory("PageMgr.goDiggItem");
ActorTag.BrowseTagItem('listTag_digg','digg','我的推荐');
}
}else{
if(this._goPage('actor_digg_item',actorId)){
this.saveToHistory("PageMgr.goDiggItem("+actorId+")");
ItemList.loadShareItems(actorId,1,function(ret){
PageMgr.setTitle(ret.data.actor.nickname+"的推荐");
ItemList.cFeedsMap=ret.data.feeds;
ItemList.showOptionMark(false);
ItemList.showOptionUnread(false);
});
}
}
},
goGlobalTagItem:function(tagId,name){
if(this._goPage('browse_global_tag_item',tagId,name)){
this.saveToHistory("PageMgr.goGlobalTagItem");
ActorTag.browseGlobalTagItem(tagId,name);
}
},
goChannelItem:function(){
this.status='channel_item';
},
inChannelItem:function(){
return this.status=='channel_item';
},
inItemList:function(){
return this.status&&this.status.endsWith("_item");
},
goWatchItem:function(){
this.status='watch_item';
},
goTagManage:function(){
if(Actor.demandLogin()){
return;
}
if(this._goPage("tag_manage")){
PageMgr.setTitle('管理标签');
TagManage.Load(1);
}
},
goSearchFeed:function(key,params){
params=params||{page:1};
if(this._goPage("search_feed",key,params)){
Search.LoadFeed(key,params);
}
},
goSearchItem:function(key,params){
if(this._goPage("search_item",key,params)){
Search.LoadItem(key,params);
}
},

goRelateFeed:function(foundFeedId,friendFeedId){
if(this._goPage("relate_search")){
this.adjustMainContextSize();
PageMgr.setTitle('添加频道');
loadWidget('http://bang.xianguo.com/widget/customfeeds.php?i='+foundFeedId+'&fi='+friendFeedId+'&e=mainContext','relateFeed',function(){
PageMgr.adjustMainSize();
});
PageMgr.adjustMainSize();
}
},

goSetting:function(){
if(this._goPage("setting")){
this.saveToHistory("PageMgr.goSetting");
this.loadPage('/ui/setting_template.htm?2008-08-05-09-34-36',null,function(){
Setting.loadValue();
});
}
},
goWidgetPage:function(){
window.open("http://tools.xianguo.com/tools-share.html","tools");
},
goSubscriber:function(){
window.open("http://tools.xianguo.com/tools-subbutton.html","tools");
},
goShareSidebar:function(){
window.open("http://tools.xianguo.com/tools-share.html","tools");
},
goJsShareSidebar:function(){
window.open("http://tools.xianguo.com/web_widget.html","tools");
},
goFlashShareSidebar:function(){
window.open("http://tools.xianguo.com/flash_widget.html","tools");
},
goSubTools:function(){
window.open("http://tools.xianguo.com/tools-browse.html","tools");
},

goActorProfile:function(){
this.status='actor_profile';
},

goFeedProfile:function(feedId){
var feed=ChannelList.getFeedsByIds(feedId)[feedId];
if(feed==null)return;
this.setTitle(feed.title);
if(this._goPage("feed_profile",feedId)){
this.saveToHistory("PageMgr.goFeedProfile");
this.loadPage('/ui/feed_template.htm?2008-08-05-09-34-36',null,function(ret){

$('feed.title').feedId=feedId;
var fd=feed;
$('feed.title').value=fd.title;
$('feed.url').innerHTML=fd.url;
$('feed.url').href=fd.url;
if(feed.publicLevel==2){
$('feed.publicLevel_2').checked=true;
}else{
$('feed.publicLevel_0').checked=true;
}
$('feed.level_'+(feed.level||1)).checked=true;
$('feed.radarAlert').checked=(fd.radarAlert!=null&&fd.radarAlert==1)?true:false;
$('feed.wapRead').checked=fd.wapRead==1;

var folders=ChannelList.getFolders();
var slFolder=$('feed.folders');
folders.each(function(f){
slFolder.options[slFolder.length]=new Option(f.folderName,f.folderId);
});
var folder=ChannelList.getFeedFolder(fd.feedId);
if(folder)slFolder.value=folder.folderId;
$('feed.description').value=fd.description;
},function(){$('feed.title').feed=null;});
}
},

goWatchProfile:function(iwatchId){
},

goOPML:function(){
if(this._goPage("opml")){
PageMgr.setTitle('OPML服务');
this.saveToHistory("PageMgr.goOPML");
this.loadPage('/ui/opml_template.htm?2008-08-05-09-34-36');
}
},

goUserInfo:function(){
if(Actor.demandLogin()){
return;
}
if(!this._cityselector){
this._cityselector=true;
var ret=SyncGet('/js2/selectcity.js');
eval(ret.transport.responseText);
if(!CitySelector){
WaitControl.SaveError("加载失败");
return;
}
}
if(this._goPage("userinfo")){
PageMgr.setTitle('用户设置');
this.saveToHistory("PageMgr.goUserInfo");
WaitControl.PannelWait();
this.loadPage('/ui/pageInterface.php?pageName=userinfo','',function(){
WaitControl.PannelEndWait();
CitySelector.init($('province'),$('city'));
CitySelector.setDefault($('old_province').value,
$('old_city').value
);
});
}



},

goFindAndInvite:function(defaultFolder){
if(this._goPage("findAndInvite",defaultFolder)){
PageMgr.setTitle('查找用户');
this.saveToHistory("PageMgr.goFindAndInvite");
snsOp.defaultFolder=defaultFolder?defaultFolder:0;
this.loadPage('/ui/otherTemplates/findAndAddfriend.tpl',null,function(){$('inviteFriend_mail').focus();});
}
},
goActorSubscribe:function(pageId){
if(this._goPage("actorSubscribe",pageId)){
PageMgr.setTitle('订阅用户');
this.saveToHistory("PageMgr.goActorSubscribe");
WaitControl.PannelWait();
this.loadPage('/ui/pageInterface.php?pageName=showSubscribeActor&pageSize=30&pageId='+pageId+'&feedId='+ItemList.cFeedId,'',function(){WaitControl.PannelEndWait();});
}

},
writeMessageTitle:'<span class="link_button" style="font-size:14px; font-weight:bold;" onclick="PageMgr.goReciveMailBox(1);">收件箱</span>'
+'<span class="separator">|</span>'
+'<span class="link_button" style="font-size:14px; font-weight:bold;" onclick="PageMgr.goSendMailBox(1);">发件箱</span>'
+'<span class="separator">|</span>'
+'<span style="font-size:14px; font-weight:bold; color:black" onclick="PageMgr.goWriteMessage();">写新邮件</span>',
goWriteMessage:function(defaultEmail,defaultNickname,defaultTitle,defaultBody,preFriendNote){
if(this._goPage("writeMessage")){
PageMgr.setTitle(PageMgr.writeMessageTitle);
this.saveToHistory("PageMgr.goWriteMessage");
messageOp.preFriendNote=preFriendNote?preFriendNote:'';
messageOp.defaultMessageTitle=defaultTitle?defaultTitle:'';
messageOp.defaultMessageBody=defaultBody?defaultBody:'';
this.loadPage('/ui/otherTemplates/writeMessagePage.tpl','',
function()
{
friendListMg.Load(function(){
var select=$('slt_Friend_SendEmail');
if(defaultEmail)
{
select.options[select.length]=new Option(defaultNickname,defaultEmail);
}
for(var key in friendListMg.friendMap){

option=new Option(friendListMg.friendMap[key].nickname,friendListMg.friendMap[key].actorId);
if(defaultEmail!=friendListMg.friendMap[key].actorId)
{
select.options[select.length]=option;
}

}
var title=$('message_title_input');
title.value=messageOp.defaultMessageTitle;
messageOp.defaultMessageTitle='';
title.focus();
var body=$('message_body_input');
body.value=messageOp.defaultMessageBody;
messageOp.defaultMessageBody='';
});
});
}},
sendMessageBoxTitle:'<span class="link_button" style="font-size:14px; font-weight:bold;" onclick="PageMgr.goReciveMailBox(1);">收件箱</span>'
+'<span class="separator">|</span>'
+'<span style="font-size:14px; font-weight:bold; color:black" onclick="PageMgr.goSendMailBox(1);">发件箱</span>'
+'<span class="separator">|</span>'
+'<span class="link_button" style="font-size:14px; font-weight:bold;" onclick="PageMgr.goWriteMessage();">写新邮件</span>',
goSendMailBox:function(pageId){
if(this._goPage("sendMailBox",pageId)){
PageMgr.setTitle(PageMgr.sendMessageBoxTitle);
this.saveToHistory("PageMgr.goSendMailBox");
WaitControl.PannelWait();
this.loadPage('/ui/pageInterface.php?pageName=getSendEmailBoxPage&pageSize='+messageOp.messagePageSize+'&pageId='+(pageId?pageId:1),"",
function(){
WaitControl.PannelEndWait();
var responsetext=$('send_mail_response_text').innerHTML;
messageOp.inReciveBox=false;
messageOp.messageIdList=eval('('+responsetext+')');
if(messageOp.messageIdList.constructor==Array)
{
messageOp.messageIdList={};
}
}
);
}
},
reciveMessageBoxTitle:'<span style="font-size:14px; font-weight:bold; color:black" onclick="PageMgr.goReciveMailBox(1);">收件箱</span>'
+'<span class="separator">|</span>'
+'<span class="link_button" style="font-size:14px; font-weight:bold;" onclick="PageMgr.goSendMailBox(1);">发件箱</span>'
+'<span class="separator">|</span>'
+'<span class="link_button" style="font-size:14px; font-weight:bold;" onclick="PageMgr.goWriteMessage();">写新邮件</span>',
goReciveMailBox:function(pageId){
if(this._goPage("reciveMailBox",pageId)){
PageMgr.setTitle(PageMgr.reciveMessageBoxTitle);
this.saveToHistory("PageMgr.goReciveMailBox");
WaitControl.PannelWait();
this.loadPage('/ui/pageInterface.php?pageName=getReciveBoxPage&pageSize='+messageOp.messagePageSize+'&pageId='+(pageId?pageId:1),"",
function(){
WaitControl.PannelEndWait();
var responsetext=$('recive_mail_response_text').innerHTML;
messageOp.inReciveBox=true;
messageOp.messageIdList=eval('('+responsetext+')');
if(messageOp.messageIdList.constructor==Array)
{
messageOp.messageIdList={};
}
}
);
}
},
actorAllDigItemPage:function(actorIdShow,pageId){
if(this._goPage("actorAllDigItemPage",actorIdShow,pageId)){
PageMgr.setTitle('');
this.saveToHistory("PageMgr.actorAllDigItemPage");
WaitControl.PannelWait();
this.loadPage('/ui/pageInterface.php?pageName=getPersonnalDigItemPage',"pageSize=15&pageId="+(pageId?pageId:1)+"&actorIdShow="+actorIdShow,
function(){WaitControl.PannelEndWait();});
}
},
actorAllFavoriteItemPage:function(actorIdShow,pageId){
if(this._goPage("actorAllFavoriteItemPage",actorIdShow,pageId)){
PageMgr.setTitle('');
this.saveToHistory("PageMgr.actorAllFavoriteItemPage");
WaitControl.PannelWait();
this.loadPage('/ui/pageInterface.php?pageName=getPersonnalFavoritePage',"pageSize=15&pageId="+(pageId?pageId:1)+"&actorIdShow="+actorIdShow,
function(){WaitControl.PannelEndWait();});
}
},
actorAllShareItemPage:function(actorIdShow,pageId){

if(this._goPage("actorAllShareItemPage",actorIdShow,pageId)){
PageMgr.setTitle('');
this.saveToHistory("PageMgr.actorAllShareItemPage");
WaitControl.PannelWait();
this.loadPage('/ui/pageInterface.php?pageName=getPersonnalShareItemPage',"pageSize=20&pageId="+(pageId?pageId:1)+"&actorIdShow="+actorIdShow,
function(){WaitControl.PannelEndWait();});
}
},
actorAllFriendPage:function(actorIdShow,pageId){
if(this._goPage("actorAllFriendPage",actorIdShow,pageId)){
PageMgr.setTitle('');
this.saveToHistory("PageMgr.actorAllFriendPage");
WaitControl.PannelWait();
this.loadPage('/ui/pageInterface.php?pageName=getPersonnalAllFriendPage',"pageSize=40&pageId="+(pageId?pageId:1)+"&actorIdShow="+actorIdShow,
function(){WaitControl.PannelEndWait();});
}
},
actorFriendNewActivityPage:function(pageId){
if(this._goPage("actorFriendNewActivityPage",pageId)){
PageMgr.setTitle('');
this.saveToHistory("PageMgr.actorFriendNewActivityPage");
WaitControl.PannelWait();
this.loadPage('/ui/pageInterface.php?pageName=getFriendNewActivityPage',"pageSize=40&pageId="+(pageId?pageId:1),
function(){WaitControl.PannelEndWait();});
}
},


goFeedManage:function(){
if(Actor.demandLogin()){
return;
}
if(this._goPage("feedmanage")){
PageMgr.setTitle('管理频道列表');
this.saveToHistory("PageMgr.goFeedManage");
WaitControl.PannelWait();
this.loadPage('/ui/feedmanage_template.htm?2008-08-05-09-34-36',
null,
function(){
FeedManage.CreateManageList();

}
);
}
},
goKeyboard:function(){
if(Actor.demandLogin()){
return;
}
if(this._goPage("keyboard")){
PageMgr.setTitle('自定义快捷键');
this.saveToHistory("PageMgr.goKeyboard");
this.loadPage('/ui/keyboard_template.htm?2008-08-05-09-34-36',
null,
function(){
Keyboard.InitHtml();
}
);
}
},
goTagAccount:function(){
if(Actor.demandLogin()){
return;
}
if(this._goPage("tagaccount")){
PageMgr.setTitle('帐号绑定');
this.saveToHistory("PageMgr.goTagAccount");
this.loadPage('/ui/tagaccount_template.htm?2008-08-05-09-34-36',
null,
function(){
TagAccount.Init();
}
);
}
},
goShareAccountMgr:function(arg){
if(Actor.demandLogin()){
return;
}
if(this._goPage("shareaccount")){
PageMgr.setTitle('帐号绑定');
this.saveToHistory("PageMgr.goShareAccountMgr");
this.loadPage('/ui/shareto_template.htm?2008-08-05-09-34-36',null,function(){
ShareAccount.load.call(ShareAccount,arg);
TagAccount.Init();
});
}
},
goReaderMover:function(arg){
if(Actor.demandLogin()){
return;
}
if(this._goPage("readermover")){
WaitControl.PannelWait();
PageMgr.setTitle('一键搬家');
this.saveToHistory("PageMgr.goReaderMover");
this.loadPage('/ui/readermover_template.htm?2008-08-05-09-34-36',null,function(){
WaitControl.PannelEndWait();
ReaderMover.init();
});
}
},
goInvite:function(){
if(Actor.demandLogin()){
return;
}
if(this._goPage("invite")){
PageMgr.setTitle('邀请朋友');
this.saveToHistory("PageMgr.goInvite");
this.loadPage('/ui/invite_template.htm?2008-08-05-09-34-36',null,function(){$('invite.mail').select();});
}
},
goPwd:function(){
if(Actor.demandLogin()){
return;
}
if(this._goPage("pwd")){
PageMgr.setTitle('修改密码');
this.saveToHistory("PageMgr.goPwd");
this.loadPage('/ui/pwd_template.htm?2008-08-05-09-34-36');
}
},
fullScreen:function(full){
var el=$('PageHead');
if(el.style.display!='none'||full===false){

el.tabExpand=TabMgr.expand;
el.style.display='none';
TabMgr.expandSide(false);
}
else{
el.style.display='block';
TabMgr.expandSide(el.tabExpand);
}
},

goChannelMgr:function(){
this.status='channel_mgr';
},
fillPage:function(text){
$('mainContext').innerHTML=text;
},
loadPage:function(url,params,onSuccess){
AsyncGet(url,params,function(res){
$('mainContext').innerHTML=res.responseText;
WaitControl.PannelEndWait();


PageMgr.adjustMainSize();
if(onSuccess)onSuccess(res);
});
},

adjustSize:function(){

TabMgr.adjustSideSize();

PageMgr.adjustMainSize();
},
adjustMainSize:function(){

if(this.resizing)return;
this.resizing=true;
var w=Dom.getClientWidth();
var h=Dom.getClientHeight();
var dd=document.documentElement;
var elMP=$('MainPannel');
var elMainPanel=$('content_pannel');
var elMainContext=$('mainContext');

dd.style.width=w+'px';
elMP.style.height=dd.style.height=h+'px';

var rw=(w-$('SidePannel').offsetWidth-$('spliter').offsetWidth);
if(this.isIE('6')){rw-=6;}
elMP.style.width=rw+'px';




elMainPanel.style.overflow='hidden';
elMainPanel.style.height='auto';

elMainContext.style.overflow='hidden';
elMainContext.style.height='auto';
if(this.inItemList())this.adjustItemListSize();
else this.adjustMainContextSize();
PageMgr.resizing=false;
},

adjustItemListSize:function(){
var elList=$('context_itemList');
var cheight=Dom.getClientHeight();
var elMain=$('content_pannel');
if(!elList||!elMain)return;
if(Actor.UserConfig.full_scroll){
if(Dom.IsOpera){
elMain.style.overflow='auto';
}else{
elMain.style.overflowX='hidden';
elMain.style.overflowY='auto';
}
elList.style.overflow='hidden';
elList.style.height="auto";
elMain.style.height=cheight+'px';
}else{
elMain.style.overflow='hidden';
if(Dom.IsOpera){
elList.style.overflow='auto';
}else{
elList.style.overflowX='hidden';
elList.style.overflowY='auto';
}
var height=cheight
-$('header_pannel').offsetHeight
-$('itemList_header').offsetHeight
-$('itemList_footer').offsetHeight;
elList.style.height=height+'px';
}
},
adjustMainContextSize:function(){

var elC=Dom.getElementsByClassName('_content_','div',$('mainContext'));
if(!elC||elC.length==0)return;
elC=elC[0];
var elH=Dom.getElementsByClassName('_header_','div',$('mainContext'));
var elF=Dom.getElementsByClassName('_footer_','div',$('mainContext'));
var tHeight=0;
var hHeight=0;
if(elH&&elH.length>0){
hHeight=elH[0].offsetHeight;
}
var fHeight=0;
if(elF&&elF.length>0){
fHeight=elF[0].offsetHeight;
}
var domHeight=Dom.getClientHeight();
var height=domHeight-($('header_pannel').offsetHeight+hHeight+fHeight);

var pt=parseInt(Dom.getStyle(elC,"padding-top"));
var pb=parseInt(Dom.getStyle(elC,"padding-bottom"));
var mt=parseInt(Dom.getStyle(elC,"margin-bottom"));
var mb=parseInt(Dom.getStyle(elC,"margin-top"));
height-=((isNaN(pt)?0:pt)+(isNaN(pb)?0:pb)+(isNaN(mt)?0:mt)+(isNaN(mb)?0:mb));

elC.style.height=height+'px';
if(Dom.IsOpera){
elC.style.overflow="auto";
}else{
elC.style.overflowY='auto';
elC.style.overflowX='hidden';
}
}
}
PageMgr.isIE=function(version){
var us='MSIE '+(version||'');
if(navigator.userAgent.indexOf(us)>=0)
return true;
return false;
}
PageMgr.isFirefox=function(version){
var ua=navigator.userAgent;
var match=version?"Firefox/"+version:"Firefox";
if(ua.indexOf(match)>=0){
return true;
}
return false;
}
var ShareAccount={
TYPE:{
fanfou:'sa_ac_ff',
jiwai:'sa_ac_jw',
twt:'sa_ac_twt'

},
DATA:{
'sa_ac_ff':null,
'sa_ac_jw':null,
'sa_ac_twt':null
},

QUICK:[],
NAME:{
'sa_ac_ff':"饭否",
'sa_ac_jw':"叽歪de",
'sa_ac_twt':"Twitter"
},
getNameList:function(list){
names=[];
for(var i=0;i<list.length;i++){
if(list[i]in this.NAME){
names[names.length]=this.NAME[list[i]];
}
}
return names;
},
load:function(arg){
this._innerLoad();
arg=isnull(arg)?this.TYPE.jiwai:arg;
for(var i in this.DATA){
if(this.isSetted(i)){
var e=$(i);
e.className=e.className.replace(2,'');
}
}
this.select(arg);
},
_innerLoad:function(){
var o=JSON.deserialize(Actor.Account.sharetoAccountList);
var o1=JSON.deserialize(Actor.Account.quickShare);
if(!isNULL(o))this.DATA=o;
if(!isNull(o1))this.QUICK=o1;
},
select:function(name){
if($(name)){
Dom.addClass(name,'selected');
if(this.currentEdit!=null&&$(this.currentEdit)&&this.currentEdit!=name){
Dom.removeClass(this.currentEdit,'selected');
}
$('sa_link_to').innerHTML="<a target='_blank' class='link_button' href='"+$(name).getAttribute("link")+"'>还不是"+$(name).innerHTML+"用户?</a>";
$('cc_name').innerHTML=$(name).innerHTML;
$('sa_reset_link').href=$(name).getAttribute("reset");
}
this.currentEdit=name;
var config=this.loadConfig(this.currentEdit);
$('sa_user').value=config[0];
$('sa_pass').value=config[1];
$('sa_quicker').checked=this.isQuick(name);
},
isQuick:function(name){
return ShareAccount.QUICK.indexOf(name)>-1;
},
quickShare:function(item){
if(this.QUICK.length>0){
var acc=this.QUICK.join('|');
var txt=this._getDefaultTxt(item);
this.postShare(txt,acc);
}
},
currentEdit:null,
unset:function(){

delete this.DATA[this.currentEdit];
this.QUICK.remove(this.currentEdit);

this._save(null,null,null,function(){
$('sa_user').value='';
$('sa_pass').value='';
if($('sa_quicker')&&$('sa_quicker').checked){
$('sa_quicker').checked=false;
}
if($(ShareAccount.currentEdit)){
var e=$(ShareAccount.currentEdit);
e.className=e.className.replace(/(.*)(fanfou|jiwai|twitter)(.*)|$/,'$1$22$3');
}
WaitControl.SaveEndMsg('取消绑定成功！');}
);
},
bind:function(){
var u=$('sa_user').value.trim();
var p=$('sa_pass').value.trim();
if(u.length<1||p.length<1)return alert('请输入用户名和密码');

var p={"user":u,"pass":p,"account":ShareAccount.currentEdit};
var params='method=ShareTo.bind&params='+JSON.serialize(p);
WaitControl.PannelWait();
AsyncCall(interfaceUrl,params,
function(res){
WaitControl.PannelEndWait();
var ret=eval('('+res.responseText+')');
if(ret.status=='1'){
ShareAccount.save();

if($(ShareAccount.currentEdit)){
var e=$(ShareAccount.currentEdit);
e.className=e.className.replace("2","");
}
}
else{
WaitControl.SaveEndMsg('绑定失败,请检查你的帐号是否正确！');
}
},
function(res){
WaitControl.SaveEndMsg('服务器暂时出现了错误,请稍后重试！');
}
);
},
save:function(){
var u=$('sa_user').value;
var p=$('sa_pass').value;
if(u.length<1||p.length<1)return alert('请输入用户名和密码');
this._save(this.currentEdit,u,p);
},
_save:function(account,user,pass,onSuccess){
if(!isnull(account)&&!isnull(user)&&!isnull(pass)){
if(user.indexOf(":")>0||pass.indexOf(":")>0||user.indexOf('&')>0||pass.indexOf('&')>0){
return alert("用户名或者密码中有非法字符");
}
this.DATA[account]=user+":"+pass;
if($('sa_quicker').checked){
if(ShareAccount.QUICK.indexOf(account)<0)
ShareAccount.QUICK.push(account);
}
else{
ShareAccount.QUICK.remove(account);
}
}
Actor.Account.sharetoAccountList=JSON.serialize(this.DATA);
Actor.Account.quickShare=JSON.serialize(this.QUICK);
Actor.Account.save(onSuccess||function(){
WaitControl.SaveEndMsg('绑定成功！');
},function(){
WaitControl.SaveEndMsg('保存失败，请稍候再试！');
})
},
loadConfig:function(account){
if(this.DATA[account])
return this.DATA[account].split(":");
else return['',''];
},
isSetted:function(account){
var o=JSON.deserialize(Actor.Account.sharetoAccountList);
if(isNull(o))return false;
else return(account in o)&&o[account]!=null;
},
_getDefaultTxt:function(item){
url='http://XianGuo.com/go.php?fi='+item.feedItemId;
return"推荐了文章:"+item.title+"("+url+" )。";
},
showPanel:function(index){
if(Actor.demandLogin()){
return;
}
this._innerLoad();
var item=ItemList.cList[index];
var feedItemId=item.feedItemId;
var panel=$('shareToPanel');
PanelMgr.show(panel);
var o=ItemList.cList[index];
$('shareToText').value=this._getDefaultTxt(o);

var c=document.getElementsByName('sharetocheck');
for(var i=0;i<c.length;i++){
var v=c[i];

var sp=v.parentNode.getElementsByTagName('span')[0];

if(ShareAccount.isSetted(v.value)){
v.disabled=false;
v.nextSibling.src='/img/tie-up.gif'
v.parentNode.color='black';
sp.style.display="none";

}else{
v.disabled=true;
v.nextSibling.src='/img/not-tie-up.gif'
v.checked=false;
v.parentNode.color='gray';
sp.style.display="";
}
}
this.checkInput();
},
closePanel:function(){
PanelMgr.hide();
$('shareToPanel').style.display='none';
},
checkInput:function(){
var txt=$('shareToText').value;
var num=140-txt.length;
$('shareto_input_num').innerHTML=num;
if(num<1){
$('shareto_input_num').style.color="red";
ste();
return false;
}
else $('shareto_input_num').style.color="black";

},

commendFeedLink:function(){

var panel=$('shareFeedToPanel');
var spanMyTags=$('spanMyTags');

if(window.navigator.userAgent.indexOf("Firefox")>=1)
{
$('sftpTitle').textContent=$('page_title').textContent;
}
else
{
$('sftpTitle').innerText=$('page_title').innerText;
}


spanMyTags.innerHTML=ActorTag.TagList;

PanelMgr.show(panel);
},
closeCommendFeedLinkPanel:function(){

PanelMgr.hide();
$('shareFeedToPanel').style.display='none';
},


postShare:function(text,accounts){
var p={};
p.status=text||$('shareToText').value;
p.status=p.status.replace(/(\r\n|\n)/g," ");
p.status=p.status;
if(isnull(accounts)){
p.accounts="";
var c=document.getElementsByName('sharetocheck');
for(var i=0;i<c.length;i++){
var v=c[i];
if(v.checked==true&&v.disabled==false){
p.accounts+="|"+v.value;
};
}
}
else p.accounts=accounts;

if(p.accounts.length<1){
return WaitControl.SaveEndMsg('没有选择帐号！');
}
names=this.getNameList(p.accounts.split('|')).join(',');
WaitControl.PannelWait();
var params='method=ShareTo.post&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,
function(res){
var ret=eval('('+res.responseText+')');
WaitControl.PannelEndWait();
if(ret.status=='1'){

WaitControl.SaveEndMsg('已成功推荐到了'+names+'！');
ShareAccount.closePanel();
}
else{
WaitControl.SaveEndMsg(ret.error);
}
},
function(res){
});
}
}
var Setting={
save:function(){

Actor.UserConfig.default_entry=$("setting.defaultEntry").value;
Actor.UserConfig.page_size=$("setting.pageSize").value;
Actor.UserConfig.refresh_channel_interval=$("setting.refreshInterval").value;
Actor.UserConfig.mark_page_read=$("setting.enableMarkPageRead").checked;
Actor.UserConfig.enable_hot_key=$("setting.enableHotKey").checked;
Actor.UserConfig.enable_scroll_read=$("setting.enableScrollRead").checked;
Actor.UserConfig.full_scroll=$("setting.enableFullScroll").checked;
Actor.UserConfig.auto_expand=$('setting.enableAutoExpand').checked;
Actor.UserConfig.auto_charset=$('setting.charset_default').checked?"default":($('setting.charset_big5').checked?"big5":"gbk");

Actor.UserConfig.enable_item_title_link=$('setting.enable_title_link').checked;

$("setting.submit").disabled='disabled';
Actor.UserConfig.save(function(resp){
$("setting.submit").disabled='';
WaitControl.SaveEndMsg("保存设置成功！");
PageMgr.goIndexPage();
},function(msg){
$("setting.submit").disabled='';
WaitControl.SaveEndMsg("保存设置失败:"+msg);
});
},
loadValue:function(){
var cfg=Actor.UserConfig;
var elEntry=$("setting.defaultEntry");
PageMgr.setTitle('阅读设置');
if(cfg.default_entry.indexOf('feed:')>-1||cfg.default_entry.indexOf('folder:')>-1){

elEntry.options[elEntry.length]=new Option('保留上一次设置',cfg.default_entry);
}
elEntry.value=cfg.default_entry;
$("setting.pageSize").value=cfg.page_size;
$("setting.refreshInterval").value=Actor.UserConfig.refresh_channel_interval;
cfg.mark_page_read?$("setting.enableMarkPageRead").checked=true:$("setting.disableMarkPageRead").checked=true;
Actor.UserConfig.enable_hot_key?$("setting.enableHotKey").checked=true:$("setting.disableHotKey").checked=true;
Actor.UserConfig.enable_scroll_read?$("setting.enableScrollRead").checked=true:$("setting.disableScrollRead").checked=true;
Actor.UserConfig.full_scroll?$("setting.enableFullScroll").checked=true:$("setting.disableFullScroll").checked=true;

Actor.UserConfig.auto_expand?$('setting.enableAutoExpand').checked=true:$('setting.disableAutoExpand').checked=true;
if(Actor.UserConfig.auto_charset=="big5"){
$('setting.charset_big5').checked=true;
}else if(Actor.UserConfig.auto_charset=="gbk"){
$('setting.charset_gbk').checked=true;
}else{
$('setting.charset_default').checked=true;
}

Actor.UserConfig.enable_item_title_link?$('setting.enable_title_link').checked=true:$('setting.disable_title_link').checked=true;
},
showTagtoAccount:function(){
target=$("setting.enableTagToDelicious");
$("setting.div").style.display=target.checked?"block":"none";
if(target.checked){
$("setting.tagToUserName").focus();
$("setting.tagToPassword").onkeydown=function(event){
event=event||window.event;
var keycode=event.keyCode;
if(keycode=="13")
Setting.save();
}
}

}
};
var Invite={

success:function(txt){
WaitControl.SaveEndMsg(txt);
},
error:function(txt){
alert(txt);
},
send:function(sender,e,success,error){
WaitControl.PannelWait();
success=success||Invite.success;
error=error||Invite.error;

var msg=$("invite.msg").value;
msg=msg.replaceAll('http://www.xianguo.com','<a href="http://www.xianguo.com">http://www.xianguo.com</a>');
var list=$("invite.mail").value;
list=list.replaceAll('\n',',').replaceAll('，',',').split(',');

var n_list=[];
for(var i=0,len=list.length;i<len;i++){
var b=/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$/i.test(list[i]);
if(b)n_list.push(list[i]);
}



if(n_list.length<1){
WaitControl.PannelEndWait();
return error('没有找到合法的邮件地址!');

}

var p={"rcpt":n_list,"msg":msg};
var params='method=Invite.send&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,
function(res){
var ret=eval('('+res.responseText+')');

WaitControl.PannelEndWait();
if(ret.status=='1'){
return success('发送成功!');
}
else{
return error('发送邮件出现异常！');
}
},
function(res){

}
);
}
};
var UserInfo={
preSubmit:function(){
$('nickname').value=$('nickname').value.trim();
$('blogurl').value=$('blogurl').value.trim();
$('description').value=$('description').value.trim();


var willModifyPwd=$('willModifyPwd');
if(willModifyPwd.value=='true'){

var newPassword=$('newPassword');
var reNewPassword=$('reNewPassword');

if(newPassword.value==''||reNewPassword.value==''||newPassword.value!=reNewPassword.value||newPassword.value.length<4||reNewPassword.value.length<4)
{
alert('密码填写的不正确！');
newPassword.focus();
return false;
}
}
var usertitle=$('usertitle').value.Trim();
if(usertitle!=''&&/^[a-z][a-zA-Z0-9\-_]+$/i.test(usertitle)==false){
alert('用户名格式错误!');
$('usertitle').focus();
return false;
}
if($('nickname').value==''){
alert('昵称不能为空!');
$('nickname').focus();
return false;
}
if($('blogurl').value.length>200)
{
$('blogurl').value=$('blogurl').value.substring(0,200);
}
if($('description').value.length>140)
{
alert('自我介绍的字符数不能多于140个');
$('blogurl').focus();
return false;
}
WaitControl.SaveStartWait('设置修改中，请稍候....');
},
endSetting:function(frame){
if(frame.contentWindow.document.body.innerHTML=='')
{return;}


var res=eval("("+frame.contentWindow.document.body.innerHTML+")");
if(res.status==1)
{
WaitControl.SaveEndWait('设置修改成功');
PageMgr.goIndexPage();
}
else
{
WaitControl.SaveEndWait(res.error);
}

}
};
Array.prototype.remove=function(item){
var index=this.indexOf(item);
if(index>=0){
this.splice(index,1);
}
return(index>=0);
}
var snsOp={
friendInfo:[],
friendAndMap:[],
cActorInfoPage:0,
defaultFolder:0,
totalSearchItem:0,
personnalInfo:{},
deleteSEC:function(id)
{
sec=$("xianguo_SEC");
if(sec)
{
sec.style.display="none";
idArray=Actor.UserConfig.xianguo_not_alertId.split(',');
idArray.push(id);
Actor.UserConfig.xianguo_not_alertId=idArray.join(',');
Actor.UserConfig.set("xianguo_not_alertId",Actor.UserConfig.xianguo_not_alertId);
}
},
findFriend:function(pageId){
pageId=pageId?pageId:1;

$('inviteFriend_mail').value=$('inviteFriend_mail').value.trim();
if($('inviteFriend_mail').value==''){
alert('请输入要添加的email地址!');
$('inviteFriend_mail').focus();
return false;
}
WaitControl.SaveStartWait('查找中请稍等....');
params='pageName=getAllFindUser&pageId='+pageId+'&searchkey='+$('inviteFriend_mail').value;
AsyncCall('/ui/pageInterface.php',params,this._drowActorInfo);
},
_drowActorInfo:function(ret)
{

WaitControl.SaveEndWait('查找完成');
if(ret.responseText!='')
{

$('friend_info').innerHTML=ret.responseText;
}
else
{
$('friend_info').innerHTML='';
}
return;
},
_createFolderSelect:function()
{
var folderselectHtml=new Array();
folderselectHtml.push('<select {disableflag} id="friend_folder_{actorId}" style="width:100%"><option value="0">根目录</option>');
for(var key in friendListMg.folderMap)
{
if(key==snsOp.defaultFolder)
{
folderselectHtml.push('<option selected="true" value="'+key+'">'+friendListMg.folderMap[key]+'</option>');
}
else
{
folderselectHtml.push('<option value="'+key+'">'+friendListMg.folderMap[key]+'</option>');
}
}
folderselectHtml.push('</select>');
snsOp.defaultFolder=0;
return folderselectHtml.join('');
},
addFriend:function()
{
$('button_add_friend').disabled="disabled";
var addMap={};
var isAdd=false;
for(var i=0;i<this.friendInfo.length;i++)
{
if($('friend_info_check_'+this.friendInfo[i].actorId).checked)
{

if(typeof addMap[$('friend_folder_'+this.friendInfo[i].actorId).value]=="undefined")
{
addMap[$('friend_folder_'+this.friendInfo[i].actorId).value]=[];
}
addMap[$('friend_folder_'+this.friendInfo[i].actorId).value].push(this.friendInfo[i].actorId);
isAdd=true;
}
}
if(isAdd)
{
friendListMg.addFriend(addMap);
}
else
{
WaitControl.SaveEndWait('没有要添加选项');
}
}
}
var messageOp={
messageIdList:{},
messagePageSize:25,
messageType:1,
digItemId:-1,
totalunReadEmailNum:0,
refreshUnreadEmailInterval:5*60*1000,
inReciveBox:true,
lastSelectedId:false,
preFriendNote:'',
settingMenu:null,
ShowSettingMenu:function(target,evt)
{
if(this.settingMenu==null)this.initSettingMenu();
this.settingMenu.show();
if(Actor.UserConfig.email_filt!=1)
{
$('show_only_friend_flit').checked="checked";
}
else
{
$('message_show_all_flit').checked="checked";
}

var element=evt.target||evt.srcElement;
var pos=Dom.getXY(element);
pos[1]+=element.offsetHeight;
pos[0]=pos[0]+element.offsetWidth-this.settingMenu._element.offsetWidth;
this.settingMenu.setXY(pos[0],pos[1]);
JEvent.addListener(this.settingMenu,'onhide',this.onHideMenu);
return false;
},
onHideMenu:function()
{

if($('show_only_friend_flit').checked)
{
value=2;
}
else
{
value=1;
}
if(Actor.UserConfig.email_filt!=value)
{
Actor.UserConfig.email_filt=value;
Actor.UserConfig.set("email_filt",Actor.UserConfig.email_filt);
}
},
initSettingMenu:function()
{
if(this.settingMenu)this.settingMenu.close();
var m=new Menu({style:'menu',autoPos:false});
m.addItem(new MenuItem('<input type="radio" name="message_flit" id="message_show_all_flit" value = "1"/> 接收任何信息',{
style:'menuitem',
title:'请选择',
enterStyle:'hovermenuitem',
onclick:function(e){$('message_show_all_flit').checked="checked";e.cancel=true;}}
));
m.addItem(new MenuItem('<input type="radio" name="message_flit" id="show_only_friend_flit" value = "2"/> 仅接收好友信息',{
style:'menuitem',
title:'请选择',
enterStyle:'hovermenuitem',
onclick:function(e){$('show_only_friend_flit').checked="checked";e.cancel=true;}}
));
this.settingMenu=m;
},
sendMessage:function()
{
$('slt_Friend_SendEmail').value=$('slt_Friend_SendEmail').value.trim();
$('message_title_input').value=$('message_title_input').value.trim();
$('message_body_input').value=$('message_body_input').value.trim();
if($('slt_Friend_SendEmail').value==''){
alert('请选择要发送的email地址!');
$('slt_Friend_SendEmail').focus();
return false;
}
if($('message_title_input').value==''&&$('message_body_input').value==''){
alert('标题与信体至少一个不为空!');
return false;
}
if($('message_title_input').value.length>80){
alert('标题大于80个字符!');
$('message_title_input').focus();
return false;
}
if($('message_body_input').value.length>350){
alert('内容大于350个字符!');
$('message_body_input').focus();
return false;
}
WaitControl.SaveStartWait('发送信件....');

var p={"xianguoMails":$('slt_Friend_SendEmail').value,"friendNote":$('message_body_input').value,"title":$('message_title_input').value,"prefriendNote":messageOp.preFriendNote};
var params='method=Message.mailMessageItem&params='+encodeURIComponent(JSON.serialize(p));

AsyncCall(interfaceUrl,params,function(ret)
{
messageOp.preFriendNote='';
var res=eval("("+ret.responseText+")");
if(res.status)
{
WaitControl.SaveEndWait('发送信件成功');
PageMgr.goReciveMailBox(1);
}
else
{
WaitControl.SaveEndWait(res.error);
}
});
},
deleteMessage:function(pageId,messageIdList)
{
if(messageIdList==null)
{
messageIdList=[];
deleteUnreadedNum=0;
for(var key in messageOp.messageIdList)
{
if($('message_checkbox_'+key).checked)
{
messageIdList.push(key);
if(messageOp.inReciveBox&&(messageOp.messageIdList[key]==false))
{
deleteUnreadedNum=deleteUnreadedNum+1;
}
}
}
if(messageIdList.length==0)
{
return;
}

messageOp.totalunReadEmailNum=messageOp.totalunReadEmailNum-deleteUnreadedNum;
messageOp.modifyUnreadEmailNum();
messageIdList=messageIdList.join(',');
}
WaitControl.PannelWait();
PageMgr.loadPage('/ui/pageInterface.php','pageName=getMessagePageAfterDelete&pageSize='+messageOp.messagePageSize+'&pageId='+(pageId?pageId:1)+'&deleteIdList='+messageIdList+'&inReciveBox='+(messageOp.inReciveBox?"1":"0"),
function(){
WaitControl.PannelEndWait();
WaitControl.SaveEndWait('删除邮件成功');

if(messageOp.inReciveBox)
{
responsetext=$('recive_mail_response_text').innerHTML;
}
else
{
responsetext=$('send_mail_response_text').innerHTML;
}
messageOp.messageIdList=eval('('+responsetext+')');
if(messageOp.messageIdList.constructor==Array)
{
messageOp.messageIdList={};
}
}
);
},
selectAllMessageItem:function()
{
for(var i in messageOp.messageIdList)
{
$('message_checkbox_'+i).checked=true;
}
},
unSelectAllMessageItem:function()
{
for(var i in messageOp.messageIdList)
{
$('message_checkbox_'+i).checked=!$('message_checkbox_'+i).checked;
}
},
selectItem:function(itemId,type)
{
var el=$('message_div_'+itemId);
var data=$('messge_description_'+itemId).innerHTML.trim();
messageOp.messageType=type;
if(type==2){
id=parseInt(data);
if(!isNaN(id)&&id>0){
messageOp.digItemId=id;
WaitControl.PannelWait();
$('messge_description_'+itemId).innerHTML=(data.indexOf(' ')==-1)?'':data.substr(data.indexOf(' ')+1);
var params="method=FeedItem.getItem&params="+JSON.serialize({feedItemId:id});
AsyncCall(interfaceUrl,params,function(res){
var ret=JSON.decode(res.responseText);
if(ret.status!=0){
var description=ret.data.description;
$tempDiv='<br/><a href="'+ret.data.url+'" target="_blank">'+ret.data.title+'</a><br/>'
+description;
$('messge_description_'+itemId).innerHTML+=$tempDiv;
}
WaitControl.PannelEndWait();
},function(){
WaitControl.PannelEndWait();
});
}
else
{
messageOp.digItemId=-1;
}
}else if(type==3){
var ids=data.match(/channelBrowse_sub_\d+/g);
ids.each(function(id){
var feedId=id.substr("channelBrowse_sub_".length);

if(ChannelList.FindChannel(feedId)){
$(id).className='channelBrowseSubButton1';
$(id).setAttribute('subscribe','1');
}else{
$(id).className='channelBrowseSubButton';
$(id).setAttribute('subscribe','0');

}
})
}
if(Dom.hasClass(el,'msg')){
Dom.replaceClass(el,'msg','msg_title_mode');
}else{
Dom.replaceClass(el,'msg_title_mode','msg');
}

if(messageOp.inReciveBox)
{
if(!messageOp.messageIdList[itemId])
{
$('message_readFlag_'+itemId).src="/img/email_03.gif";

messageOp.messageIdList[itemId]=true;

if(messageOp.totalunReadEmailNum>0)
{
messageOp.totalunReadEmailNum--;
}
else
{
messageOp.totalunReadEmailNum=0;
}
messageOp.modifyUnreadEmailNum();
var p={"messageId":itemId};
var params='method=Message.MarkeMessageRead&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params);
Dom.removeClass($('message_div_'+itemId),"msg_unread","msg_readed");
}
}
if(this.lastSelectedId!==false){
var el=$('message_div_'+this.lastSelectedId);
if(el){Dom.removeClass(el,"msg_selected");}
}
this.lastSelectedId=itemId;
Dom.addClass($('message_div_'+itemId),"msg_selected");
},
modifyUnreadEmailNum:function()
{
$e=$("unread_email_number");
if($e)
{
if(messageOp.totalunReadEmailNum>0){
$('unread_email_picutre').src="/img/email_02.gif";
$e.style.display="";
$e.innerHTML='('+messageOp.totalunReadEmailNum+')';
}else{
$('unread_email_picutre').src="/img/email_01.gif";
$e.style.display="none";
}
}

},
getEmailNum:function()
{
var params='method=Message.UnreadItemNum';
AsyncCall(interfaceUrl,params,
function(ret)
{
result=eval("("+ret.responseText+")");

if(result.status)
{
messageOp.drowMessageFlag(result.data);
}
});
},
drowMessageFlag:function(number)
{
$e=$("unread_email_number");
messageOp.totalunReadEmailNum=number;
if($e)
{
if(messageOp.totalunReadEmailNum==0){
$e.style.display="none";
$('unread_email_picutre').src="/img/email_01.gif";
}else{
$e.style.display="";
$('unread_email_picutre').src="/img/email_02.gif";
$e.innerHTML='('+number+')';
}
}
},
shareMessagId:null,
shareFriend:function(messageId)
{
if(messageOp.shareMessagId!=null){
return;
}
friendListMg.Load(function(){

friendListMg.initSelect('sel_friendEach_mails');
$('itemSend.panel.sendButton').onclick=messageOp.sendItem;
var panel=$('itemSend.panel');
$('itemSend.panel.sendOutSide').style.display='none';
$('tr_itemSend_otherEmail').style.display='none';
panel.style.display='block';
PanelMgr.show(panel,{
autoPos:false,
x:($('mainContext').offsetWidth-panel.offsetWidth)/2+$('SidePannel').offsetWidth,
y:140,
hideCallback:function(){messageOp.shareMessagId=null;}
});
$('itemSend.content').focus();
messageOp.shareMessagId=messageId;
$('itemSend.title').value=$('message_span_title_'+messageId).innerHTML;
$('itemSend.content').value='';
Dom.addClass($('share_friend_'+messageId),'send_selected');
});
},
reply:function(messageId,replyId,replyName,replyTitle)
{
preFriendNote='';
preNodeEl=Dom.getElementsByClassName('friend_note','div',$('messge_body_'+messageId));
if(preNodeEl&&(preNodeEl.length>0))
{
preFriendNote=preNodeEl[0].innerHTML;
}
PageMgr.goWriteMessage(replyId,replyName,replyTitle,'',preFriendNote);
},
sendItem:function()
{
if($('itemSend.mails').value.Trim()==''&&($('sel_friendEach_mails').value<0)){
alert('请选择要转发的朋友昵称');
$('sel_friendEach_mails').focus();
return;
}
if($('itemSend.title').value==''&&$('itemSend.content').value==''){
alert('请输入邮件标题和正文!');
return false;
}
if($('itemSend.title').value.length>80){
alert('标题大于80个字符!');
$('itemSend.title').focus();
return false;
}
if($('itemSend.content').value.length>350){
alert('内容大于350个字符!');
$('itemSend.content').focus();
return false;
}
preNodeEl=Dom.getElementsByClassName('friend_note','div',$('messge_body_'+messageOp.shareMessagId));
if($('itemSend.mails').value.Trim()!=''||$('sel_friendEach_mails').value.Trim()!='')
{
var p={
mails:$('itemSend.mails').value.replace(/，/,','),
title:$('itemSend.title').value,

feedItemId:messageOp.messageType==2?messageOp.digItemId:'',
friendNote:$('itemSend.content').value,
xianguoMails:$('sel_friendEach_mails').value.Trim(),
prefriendNote:preNodeEl&&(preNodeEl.length>0)?preNodeEl[0].innerHTML:''
};
AsyncCall(interfaceUrl,'method=Message.mailMessageItem&params='+encodeURIComponent(JSON.serialize(p)),function(res){
var ret=JSON.decode(res.responseText);
if(ret.error){
WaitControl.SaveError(ret.error);
}else{
WaitControl.SaveEndMsg('转发邮件成功！');
}
},function(){
WaitControl.SaveEndMsg('转发邮件失败！');
});
}
PanelMgr.hide();
}
}
var OPML={

startImport:function(formName,isautoadd,opmltype){
$('opmladd').value=isautoadd;
$('opmltype').value=opmltype;

if(opmltype==1&&$('opml').value.trim()==''){
alert('请输入OPML文件地址！');
$('opml').focus();
return false;
}
if(opmltype==2&&$('opmlurl').value.trim()==''){
alert('请输入OPML网址！');
$('opmlurl').focus();
return false;
}

$('opmlFrame').imported=true;
$(formName).submit();

if(isautoadd)
WaitControl.SaveStartWait('开始导入OPML，请稍候....');
else WaitControl.SaveStartWait('正在读取OPML，请稍候....');
},
endImport:function(frame){
if(!frame.imported)return;
try{
var res=eval("("+frame.contentWindow.document.body.innerHTML+")");
if(res.status==1){
if($('opmladd').value=='true'){
$('opml').value='';
ChannelList.Load();
WaitControl.SaveEndWait('导入OPML完成。');
}else{
this._filter=1;
this.createList(res.data);
WaitControl.SaveEndWait('读取OPML完成。');
}
}else{
WaitControl.SaveError('导入OPML失败,'+decodeURIComponent(res.error));
}
frame.contentWindow.document.body.innerHTML='';
frame.imported=false;
}catch(e){
alert(e);
}
},
createList:function(data){
if(data&&data.folders){
this.folders=data.folders;
this.rootfeeds=data.feeds;
}
if(!this.rootfeeds)return;

var html=[];
this._feedTotalNum=this.rootfeeds.length;
this._feedsubscribedNum=0;

this._createRootFeedsHtml(this.rootfeeds,html);

if(this.folders&&this.folders.length>0)
this._createFolderHtml(this.folders,html);

$('opml_list').innerHTML=html.join('');
$('opml_select_1').innerHTML='所有('+(this._feedTotalNum)+')';
$('opml_select_2').innerHTML='未订阅('+(this._feedTotalNum-this._feedsubscribedNum)+')';
$('opml_select_3').innerHTML='已订阅('+(this._feedsubscribedNum)+')';
$('opml_userdefined').style.display="block";
},
_feedTotalNum:0,
_feedsubscribedNum:0,
_createRootFeedsHtml:function(rootfeeds,html){
var i=-1;
html.push("<table class='opml_folder'><tr><td class='td_1'><input checked='checked' onclick='OPML.selectByFolder(this,"+i+")' type='checkbox' id='opml_folder_cb_"+i+"' value='"+i+"' title='根目录' /></td><td class='td_1'><img id='opml_folder_img_"+i+"' src='/img/openFolder.gif' title='折叠' onclick='OPML.folderControl("+i+")' /></td><td class='td_3' onclick='OPML.folderControl("+i+")'>根目录</td></tr></table>");
if(rootfeeds.length==0)return;
html.push("<div class='opml_folderfeed' id='opml_folderfeed_"+i+"'>");
this._createFeedHtml(rootfeeds,i,html);
html.push("</div>");
},
_createFolderHtml:function(folders,html){
for(var i=0;i<folders.length;i++){
var folder=folders[i];
html.push("<table class='opml_folder'><tr><td class='td_1'><input checked='checked' onclick='OPML.selectByFolder(this,"+i+")' type='checkbox' id='opml_folder_cb_"+i+"' value='"+i+"' title='"+folder.folderName+"' name='opmlfolderinput' /></td><td class='td_1'><img id='opml_folder_img_"+i+"' src='/img/openFolder.gif' title='折叠' onclick='OPML.folderControl("+i+")' /></td><td class='td_3' onclick='OPML.folderControl("+i+")'>"+folder.folderName+"</td></tr></table>");
html.push("<div class='opml_folderfeed' id='opml_folderfeed_"+i+"'>");
this._createFeedHtml(folder.feeds,i,html);
html.push("</div>");
this._feedTotalNum+=folder.feeds.length;
}
},
_createFeedHtml:function(feeds,folderid,html){
for(var i=0;i<feeds.length;i++){
var feed=feeds[i];
var style=this._checkState(feed.feedId)?"":" style='display:none'"
html.push("<span"+style+" class='opml_feed_room' name='opmlfeed' id='opml_feed_"+feed.feedId+"'>");
var num=parseInt(feed.subscribeNum)+100000+'';
num=num.substr(1);
if(ChannelList.feedMap[feed.feedId]){
this._feedsubscribedNum++;
html.push("<table class='opml_feed'><tr><td class='td_1'><input type='checkbox' id='opml_feed_cb_"+feed.feedId+"' name='opml_feed_cb_"+folderid+"' disabled='disabled' title='"+feed.title+"' value='"+feed.feedId+"' /></td><td class='td_2' id='opml_feed_subnum_"+feed.feedId+"'>["+num+"]</td><td><div class='td_3_disable' id='opml_feed_title_"+feed.feedId+"'>"+feed.title+"</div></td><td class='td_4'><div class='channelBrowseSubButton1' subscribe='1' ftitle='"+feed.title+"' title='取消订阅' onclick='BrowseChannel.ChannelListChangeSub(this,event,"+feed.feedId+",\"opml_list\")' id='opml_feed_con_"+feed.feedId+"'></div></td></tr></table>");
}else html.push("<table class='opml_feed'><tr><td class='td_1'><input type='checkbox' id='opml_feed_cb_"+feed.feedId+"' name='opml_feed_cb_"+folderid+"' checked='checked' title='"+feed.title+"' value='"+feed.feedId+"' /></td><td class='td_2' id='opml_feed_subnum_"+feed.feedId+"'>["+num+"]</td><td><div class='td_3' id='opml_feed_title_"+feed.feedId+"'>"+feed.title+"</div></td><td class='td_4'><div class='channelBrowseSubButton' subscribe='0' ftitle='"+feed.title+"' title='订阅此频道' onclick='BrowseChannel.ChannelListChangeSub(this,event,"+feed.feedId+",\"opml_list\")' id='opml_feed_con_"+feed.feedId+"'></div></td></tr></table>");
html.push("</span>");
}
},
resetFeedNum:function(){
this._feedTotalNum=this.rootfeeds.length;
this._feedsubscribedNum=0;
for(var i=0;i<this.rootfeeds.length;i++){
if(ChannelList.feedMap[this.rootfeeds[i].feedId])
this._feedsubscribedNum++;
}

for(var i=0;i<this.folders.length;i++){
this._feedTotalNum+=this.folders[i].feeds.length;
for(var j=0;j<this.folders[i].feeds.length;j++){
if(ChannelList.feedMap[this.folders[i].feeds[j].feedId])
this._feedsubscribedNum++;
}
}
$('opml_select_1').innerHTML='所有('+(this._feedTotalNum)+')';
$('opml_select_2').innerHTML='未订阅('+(this._feedTotalNum-this._feedsubscribedNum)+')';
$('opml_select_3').innerHTML='已订阅('+(this._feedsubscribedNum)+')';
},
getFeedById:function(feedid){
for(var i=0;i<OPML.rootfeeds.length;i++){
if(OPML.rootfeeds[i].feedId==feedid)
return OPML.rootfeeds[i];
}
for(var i=0;i<OPML.folders.length;i++){
var folder=OPML.folders[i];
for(var j=0;j<folder.feeds.length;j++){
var feed=folder.feeds[j];
if(feed.feedId==feedid)
return feed;
}
}
return null;
},
resetFeesSubNum:function(feedid,n){
var t=$('opml_feed_subnum_'+feedid);
var feed=OPML.getFeedById(feedid);
feed.subscribeNum=parseInt(feed.subscribeNum)+n;
var num=feed.subscribeNum+100000+'';
t.innerHTML="["+num.substr(1)+"]";
},
_filter:1,
_checkState:function(feedid){
if(this._filter==1)return true;
if(this._filter==2)return ChannelList.feedMap[feedid]==null;
return ChannelList.feedMap[feedid]!=null;
},
showFeed:function(filter){
if(this._filter==filter)return;
this._filter=filter;
$('opml_select_1').className="td_3";
$('opml_select_2').className="td_3";
$('opml_select_3').className="td_3";
$('opml_select_'+filter).className="td_2";
var feeds=$('opml_list').getElementsByTagName("SPAN");
for(var i=0;i<feeds.length;i++){
if(feeds[i].className!='opml_feed_room')continue;
var feedid=feeds[i].id.replace('opml_feed_','');
feeds[i].style.display=this._checkState(feedid)?"block":"none";
}
},
selectByFolder:function(target,folderid){
var feeds=document.getElementsByName("opml_feed_cb_"+folderid);
for(var i=0;i<feeds.length;i++){
if(!feeds[i].disabled){
feeds[i].checked=target.checked;
}
}
},
selectAll:function(isall){
var feeds=document.getElementsByTagName('INPUT');
for(var i=0;i<feeds.length;i++){
if(feeds[i].name&&(feeds[i].name.indexOf('opml_feed_cb_')>-1||feeds[i].name=='opmlfolderinput')&&!feeds[i].disabled){
feeds[i].checked=isall;
}
}
$('opml_folder_cb_-1').checked=isall;
},
folderControl:function(folderid){
var img=$('opml_folder_img_'+folderid);
if(img.title=="折叠"){
$('opml_folder_img_'+folderid).src="/img/closeFolder.gif";
$('opml_folder_img_'+folderid).title="展开";
if($('opml_folderfeed_'+folderid))$('opml_folderfeed_'+folderid).style.display="none";
}else{
$('opml_folder_img_'+folderid).src="/img/openFolder.gif";
$('opml_folder_img_'+folderid).title="折叠";
if($('opml_folderfeed_'+folderid))$('opml_folderfeed_'+folderid).style.display="block";
}
},
importFeed:function(){
var batchParams=[];

var feeds=document.getElementsByName("opml_feed_cb_-1");
var feedlist=[];
for(var j=0;j<feeds.length;j++){
var feed=feeds[j];
if(!feed.disabled&&feed.checked)
feedlist.push(feed.value);
}
if(feedlist.length>0)
batchParams.push({method:'Feed.batchSubscribeFeed',
params:{
feedIdList:feedlist.join(","),
folderId:0,
feedLevel:Actor.UserConfig.show_feedLevel
}});

var folders=document.getElementsByName('opmlfolderinput');
for(var i=0;i<folders.length;i++){
var folder={folderName:folders[i].title};
var feeds=document.getElementsByName("opml_feed_cb_"+folders[i].value);
var feedlist=[];
for(var j=0;j<feeds.length;j++){
var feed=feeds[j];
if(!feed.disabled&&feed.checked)
feedlist.push(feed.value);
}
if(feedlist.length>0){
folder=ChannelList.FindFolderByName(folder.folderName)||folder;

batchParams.push({method:'Feed.batchSubscribeFeed',
params:{
feedIdList:feedlist.join(","),
folderName:folder.folderName,
folderId:folder.folderId,
feedLevel:Actor.UserConfig.show_feedLevel
}});
}
}
if(batchParams.length>0){
WaitControl.PannelWait();
WaitControl.SaveStartWait('开始导入,请稍候....');
$('opml_add').disabled='disabled';
$('opml_add').innerHTML="正在导入...";
AsyncBatchCall(interfaceUrl,batchParams,function(res){
WaitControl.PannelEndWait();
var ret=JSON.decode(res.responseText);
for(var i=0;i<ret.length;i++){
if(ret[i].status==1)
ChannelList._subFeedsSuccess(ret[i]);
else{
WaitControl.SaveError(ret[i].error);
return;
}
var fs=ret[i].data.feeds;
for(var j=0;j<fs.length;j++)
OPML.setFeedState(fs[j].feedId,true);
}
OPML.resetFeedNum();
$('opml_add').disabled='';
$('opml_add').innerHTML="导入";
WaitControl.SaveEndWait('导入完成。');
WaitControl.PannelEndWait();
});
}else{
alert("你没有选择可以导入的频道");
}
},


setFeedState:function(feedid,issubscribed){
if(issubscribed){
$('opml_feed_cb_'+feedid).disabled='disabled';
$('opml_feed_title_'+feedid).className="td_3_disable";
$('opml_feed_con_'+feedid).className='channelBrowseSubButton1';
$('opml_feed_con_'+feedid).title='取消订阅';
$('opml_feed_con_'+feedid).subscribe=1;
$('opml_feed_con_'+feedid).isSubscribe=1;
}else{
$('opml_feed_cb_'+feedid).disabled='';
$('opml_feed_title_'+feedid).className="td_3";
$('opml_feed_con_'+feedid).className='channelBrowseSubButton';
$('opml_feed_con_'+feedid).title='订阅此频道';
$('opml_feed_con_'+feedid).subscribe=0;
$('opml_feed_con_'+feedid).isSubscribe=0;
}
$('opml_feed_'+feedid).style.display=OPML._checkState(feedid)?"":"none";
}
};
var TabMgr={
moreMenu:null,
sublistMenu:null,
highOptionMenu:null,
status:'channel',
expand:true,
resizing:false,
goMoreMenu:function(){
if(this.moreMenu==null){
var m=new Menu({style:'menu',autoPos:true,itemOption:{style:'menuitem',enterStyle:'hovermenuitem'}});
m.addItem('全部标识为已读',function(){ChannelList.markAllFeedsReaded();});
m.addItem('新建目录...',function(){ChannelList.Folder.ToAdd();});
m.addItem('OPML服务',function(){PageMgr.goOPML();});
m.addItem('阅读设置',function(){PageMgr.goSetting();});
m.addItem('阅读趋势',function(){PageMgr.goMyReadingTrend();});
m.addItem('管理频道列表',function(){PageMgr.goFeedManage();});
m.addGroupItem("menuitem_line");
m.addItem('按首字母排序',function(){ChannelList.sortByFirstChar();});
m.addItem('按级别排序',function(){ChannelList.sortByLevel();});
m.addItem('频道拖拽排序',function(){ChannelList.beginEdit();});
this.moreMenu=m;
}
this.moreMenu.show();
},

goBangMenu:function(){
if(this.BangMenu==null){
var m=new Menu({style:'menu',autoPos:true,itemOption:{style:'menuitem',enterStyle:'hovermenuitem'}});
m.addItem('我的主题秀',function(){return open('http://bang.xianguo.com/mytopic/','_blank');});
m.addItem('我的博客',function(){return open('http://bang.xianguo.com/myblog/','_blank');});
this.BangMenu=m;
}
this.BangMenu.show();
},



goHighOptionMenu:function(){
if(this.highOptionMenu==null){
var m=new Menu({style:'menu',autoPos:true,itemOption:{style:'setting_menuitem',enterStyle:'setting_hovermenuitem'}});

m.addItem('<span><img src="/img/ico/accounts_manage.gif" align="absmiddle"/></span><span>帐户管理</span>',function(){PageMgr.goUserInfo();});
m.addItem('<span><img src="/img/ico/account_bind.gif" align="absmiddle"/></span><span>帐号绑定</span>',function(){PageMgr.goShareAccountMgr();});
m.addItem('<span><img src="/img/ico/reader_mover.gif" align="absmiddle"/></span><span>一键搬家</span>',function(){PageMgr.goReaderMover();});
m.addItem('<span><img src="/img/ico/opml.gif" align="absmiddle"/></span><span>OPML服务</span>',function(){PageMgr.goOPML();});
m.addItem('<span><img src="/img/ico/shortcut_key.gif" align="absmiddle"/></span><span>自定义快捷键</span>',function(){PageMgr.goKeyboard();});

m.addItem('<span><img src="/img/ico/invite.gif" align="absmiddle"/></span><span>邀请朋友</span>',function(){PageMgr.goInvite();});

this.highOptionMenu=m;
}
this.highOptionMenu.show();
},

goSublistMenu:function(){
var e=window.event||JEvent.getEvent();
var el=JEvent.element(e);

if(el.id!='Sublist')return;
if(this.sublistMenu==null){
var m=new Menu({style:'menu',autoPos:true,itemOption:{style:'menuitem',enterStyle:'hovermenuitem'}});
m.addItem('新建目录...',function(){ChannelList.Folder.ToAdd();});
m.addItem('添加频道...',function(){
ChannelList.QuickAppend.appendToFolderId=0;
ChannelList.QuickAppend.OpenPannel();
});
this.sublistMenu=m;
}

this.sublistMenu.show();
},
goChannel:function(){
if(this.status!='channel'){
TabMgr.tabReset();
$('myChannel').className='mychannel_selected';
this.status='channel';

if(ChannelList.folders==null){
ChannelList.Load();
}
$('channelPanel').style.display='';
this.adjustSideSize();
}
},
goFavorite:function(onSuccess){
if(Actor.demandLogin()){
return;
}
if(this.status!='favorite'){
TabMgr.tabReset();
$('myFavorite').className='myfavorite_selected';
this.status='favorite';

if(ActorTag.TagList==null||ActorTag.NeedLoadTag==true){
ActorTag.Load(onSuccess);
}else{
if(onSuccess)onSuccess();
}
$('favoriteTagPannel').style.display='';
this.adjustSideSize();
}
},

goFriend:function(){
if(Actor.demandLogin()){
return;
}
if(this.status!='friend'){
TabMgr.tabReset();
$('myFriend').className='myfriend_selected';
this.status='friend';

friendListMg.Load();
$('friendPanel').style.display='';
this.adjustFriendListSize();
}
},
showFeedFilter:function(bool){
$('listPannelBottom').style.display=bool?'block':'none';
TabMgr.adjustSubListSize();

if(bool){
$('feed_filter_input').focus();
}else{

}
},
switchExpandSide:function(){
var el=$('listPannel_box');
this.expandSide(el.style.display=='none');
},
expandSide:function(expand){
if(this.expand==expand)return;
var el=$('listPannel_box');
var elSide=$('SidePannel');
var elSideLogo=$('sideLogo');
var elNav=$('sideNavigator');
var elMain=$('MainPannel');
var elSpliter=$('spliter');
if(expand){
if(el.style.display!='none')return;
el.style.display='block';
elSide.style.width=elNav.offsetWidth+el.offsetWidth+'px';
elSideLogo.className='side_logo';
elSpliter.className='spliter_hide';
elMain.className='main_pannel';
if(Actor.isAnonymous()&&$('anonymous_tip'))
$('anonymous_tip').style.display='block';
}else{
if(el.style.display=='none')return;
elSide.style.width=elSide.offsetWidth-el.offsetWidth+'px';
elSideLogo.className='side_logo_hide';
el.style.display='none';
elSpliter.className='spliter_expand';
elMain.className='main_pannel_expand';
if(Actor.isAnonymous()&&$('anonymous_tip'))
$('anonymous_tip').style.display='none';
}
this.expand=!!expand;
PageMgr.adjustMainSize();
},
inFavorite:function(){return this.status=='favorite';},
inFriend:function(){return this.status=='friend';},

adjustSideSize:function(){
if(this.resizing)return;
this.resizing=true;
switch(this.status){
case'channel':
TabMgr.adjustSubListSize();
break;
case'favorite':
TabMgr.adjustTagListSize();
break;
case'watch':
this.adjustWatchListSize();
case'friend':
this.adjustFriendListSize();
break;
}
this.adjustSpliter();
this.resizing=false;
},
adjustSpliter:function(){
$('spliter').style.height=Dom.getClientHeight()-$('sideLogo').offsetHeight+'px';
},

adjustSubListSize:function(){
var height=Dom.getClientHeight();
var sideHeight=height-$('sideLogo').offsetHeight-2;
var h=sideHeight
-$('listPannelTop').offsetHeight
-$('listPannelBottom').offsetHeight;

var elPanel=$('Sublist');

elPanel.style.height=h+'px';

var elSide=$('sideNavigator');

elSide.style.height=sideHeight+1+'px';
},

adjustTagListSize:function(){
var height=Dom.getClientHeight();
var sideHeight=height-$('sideLogo').offsetHeight-2;
var h=sideHeight
-$('favoriteTop').offsetHeight-1;

var elPanel=$('TagList');

elPanel.style.height=h+'px';

var elSide=$('sideNavigator');

elSide.style.height=sideHeight+'px';
},

adjustWatchListSize:function(){

},

adjustFriendListSize:function(){
var height=Dom.getClientHeight();
var sideHeight=height-$('sideLogo').offsetHeight-2;
var h=sideHeight
-$('friendTop').offsetHeight-1;

var elPanel=$('friendList');

elPanel.style.height=h+'px';

var elSide=$('sideNavigator');

elSide.style.height=sideHeight+'px';
},

tabReset:function(){
$('myChannel').className='mychannel';
$('myFavorite').className='myfavorite';
$('myFriend').className='myfriend';
$('favoriteTagPannel').style.display='none';
$('channelPanel').style.display='none';
$('friendPanel').style.display='none';
}
}
var Template={
ItemRange:null,
FeedItem:null,
NullItem:null,
ItemHr:null,
Folder:null,
Feed:null,
TagManageFrame:null,
TagItem:null,
Index:null,
Hotkey:null,
init:function(){
this.ItemRange=$('RangeTemplate').value;
this.FeedItem=$('FeedItemTemplate').value;
this.NullItem=$('NullTemplate').value;
this.ItemHr='<div class="itemPannel_hr"></div>';
this.Folder=$('FolderTemplate').value;
this.Feed=$('FeedTemplate').value;
this.Index=$('mainContext').innerHTML;
this.TagManageFrame=$('TagManageTemplate').value;
this.TagItem=$('TagItemTemplate').value;
},
get:function(name){
if(name=='TagPanel'&&!this.TagPanel){
var ajax=SyncGet('/ui/tag_panel_template.htm?2008-08-05-09-34-36');
this.TagPanel=ajax.transport.responseText;
}
return this[name];
}
}
var PanelMgr={
panel:null,
option:null,

show:function(el,options){
var op={
lock:true,
autoPos:true,
x:0,
y:0,
focus:true
};
var options=options||{};
for(var p in options){
op[p]=options[p];
}
if(this.panel)this.hide();
this.panel=$(el);
if(!this.panel)return;
this.panel.style.visibility='hidden';
if(this.panel.style.display!='block'){
this.panel.style.display='block';
}
var pos=[op.x||0,op.y||0];
if(op.autoPos){
try{
if(!pos[0]&&!pos[1]){
pos=JEvent.pointerXY(JEvent.getEvent());
}
pos=Dom.getAutoPos(this.panel,pos);
}catch(e){
console.log(e);
}
}
this.panel.style.left=pos[0]+'px';
this.panel.style.top=pos[1]+'px';
if(!this.panel.__drager){
this.panel.__drager=new joyeach.util.Dragable(this.panel,{
onend:function(){
if(!Dom.isIE&&PanelMgr.panel){
PanelMgr.panel.style.position='fixed';
}
},onstart:function(){
if(!Dom.isIE&&PanelMgr.panel){
PanelMgr.panel.style.position='absolute';
}
}
});
}
this.option=op;
if(Dom.IsIE){
var ifr=$('ifrBack');
ifr.style.display='block';
ifr.style.left=pos[0]+'px';
ifr.style.top=pos[1]+'px';
ifr.style.width=this.panel.offsetWidth+'px';
ifr.style.height=this.panel.offsetHeight+'px';
ifr.style.zIndex=1;

this.panel.style.zIndex=ifr.style.zIndex+1;
}else{
this.panel.style.position='fixed';
}
this.panel.style.visibility='visible';
if(op.focus){
try{this.panel.focus();}catch(e){}
}
},

hide:function(){
if(Dom.IsSafari){
$('btn_IndexPage').focus();
}else if(Dom.IsIE){
window.focus();
document.body.focus();
}else{
try{
var as=document.getElementsByTagName('A');
if(as.length>0){
as[0].focus();
}
}catch(ex){}
}
if(this.panel){
if(this.panel.style.display=='block'){
this.panel.style.display='none';
}
this.panel.style.visibility='hidden';
this.panel.style.position='absolute';
if(this.option.hideCallback){
try{this.option.hideCallback();}catch(ex){}
}
if(Dom.IsIE)$('ifrBack').style.display='none';
this.option=null;
this.panel=null;
}
},
showHotKey:function(show){
var hotkey=$('float_hotkey');
if(!hotkey){
hotkey=document.createElement('div');
hotkey.className='keyboard_pannel';
hotkey.id='float_hotkey';
hotkey.style.display="none";
document.body.appendChild(hotkey);
}
if(hotkey.style.display!="none"){
this.hide();
}else{
Keyboard.InitView();
hotkey.innerHTML=Template.Hotkey;
this.show(hotkey);
}
},
showItemDiggers:function(item,page){
var pageSize=999;
var page=page||0;
if(item.diggNum==0){
return;
}
var panel=$('itemDiggPanel');
if(!panel){
panel=htmlToElement('<div id="itemDiggPanel" class="item_digger_panel" style="visibility:hidden" />');
document.body.appendChild(panel);
}
var params="f="+item.feedId+"&i="+item.feedItemId+"&ri="+item.refId+"&page="+page+"&pageSize="+pageSize;
AsyncGet("/ui/pageInterface.php?pageName=getItemDiggers",params,function(res){
panel.innerHTML=res.responseText;
PanelMgr.show(panel,{
x:($('mainContext').offsetWidth-panel.offsetWidth)/2+$('SidePannel').offsetWidth,
y:140,
autoPos:false,
focus:false
});
},function(res){});
},

focusCheck:function(e){
if(!PanelMgr.option||!PanelMgr.panel)return true;
var e=e||window.event;
var xy=JEvent.pointerXY(e);
if(PanelMgr.option.lock&&!Dom.isAncestor(PanelMgr.panel,JEvent.element(e))&&!Dom.withIn(PanelMgr.panel,xy[0],xy[1])){
PanelMgr.hide();
}
},
escapeCheck:function(e){
if(!PanelMgr.option||!PanelMgr.panel)return true;
var e=e||window.event;

if(e.keyCode==27)PanelMgr.hide();
}
}
function subsc_generateHTML(){
var radio=getSelectedRadio('subsselect');
if(!radio){
return alert("还没有选择样式");
}
var img=Dom.nextSibling(radio,'label').childNodes[0];

var url=$("sub_input_url").value;
if(url.length<2){
return alert('请输入您的Blog地址');
}
var ret="<a target=\"_blank\" title=\"订阅到鲜果 RSS阅读器\" href=\"http://www.xianguo.com/subscribe.php?url={URL}\">"
+"<img src=\"{IMG}\" border=\"0\" alt=\"鲜果阅读器订阅图标\" />"
+"</a>";
$('sub_generate_input').value=ret.replaceAll('{URL}',encodeURIComponent(url)).replaceAll('{IMG}',img.src);

$('generate_html_render').style.display="block";
}
function manageModifyPwdPanel()
{

var modifyPwdPanel=$('modifyPwd');
var pwdPanel=$('pwdPanel');
var willModifyPwd=$('willModifyPwd');


if(modifyPwdPanel.style.display=='none')
{
modifyPwdPanel.style.display='';
pwdPanel.style.display='none';
willModifyPwd.value='true';
}
else
{
modifyPwdPanel.style.display='none';
pwdPanel.style.display='';
willModifyPwd.value='false';

$('newPassword').value='';
$('reNewPassword').value='';

$('modifyPwdTip').innerHTML='';
}
}
function checkNewPassword()
{
var newPassword=$('newPassword');
var reNewPassword=$('reNewPassword');
var tip=$('modifyPwdTip');

if(reNewPassword.value!=''&&reNewPassword.value>4&&reNewPassword.value==newPassword.value)
{

tip.innerHTML="<img src='/img/ico/effective-code.gif' border='0'/>&nbsp;";
}
else
{
tip.innerHTML="<img src='/img/ico/null-code.gif' border='0'/>&nbsp;";
}
}
function clearInputContent(obj,str)
{
if(obj.value==str)
{
obj.value='';
}
}

var ItemRemark={}
ItemRemark.favoriteItem=function(item,favorite){

ActorTag.NeedLoadTag=true;
var p={
feedId:item.feedId,
feedItemId:item.feedItemId,
refId:item.refId,
favorited:favorite,
bookmark_sync_quick:Actor.Account.bookmark_sync_quick
};
var params='method=FeedItem.favoriteItem&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(){
if(Actor.Account.bookmark_sync_quick&&favorite)
WaitControl.SaveEndMsg("已同时收藏到Del.icio.us！");
});
}
ItemRemark.tagItem=function(item,tags,title,notes,public,onSuccess,onError,disableBookmark){

ActorTag.NeedLoadTag=true;

var p={
feedId:item.feedId,
feedItemId:item.feedItemId,
refId:item.refId,
tags:tags,
title:title,
notes:notes,
public:public,
disableBookmark:disableBookmark==false?false:true
};
if(!p.disableBookmark!=Actor.Account.bookmark_sync_abled){
Actor.Account.bookmark_sync_abled=!p.disableBookmark;
Actor.Account.save();
}
var params='method=FeedItem.addItemTag&params='+encodeURIComponent(JSON.serialize(p));
AsyncCall(interfaceUrl,params,onSuccess,onError);
}
ItemRemark.diggItem=function(item,digg,onSuccess,onFailure){
var p={};
p.feedId=item.feedId;
p.feedItemId=item.feedItemId;
p.refId=item.refId;
p.digg=digg==true;
var params='method=FeedItem.diggItem&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,onSuccess,onFailure);
}
ItemRemark.unreadItem=function(item,onComplete,onError){
var p={
feedId:item.feedId,
refId:item.refId,
feedItemId:item.feedItemId
};
var params='method=FeedItem.unreadItem&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
var ret=eval('('+res.responseText+')');
if(ret.status=='0'){
if(onError)onError(ret);
}else if(onComplete)onComplete(ret);
},onError);
}
var $markQueueItemReadedTimer=0;
var $markQueue={};
ItemRemark.queueItemForMarkRead=function(item){
var feedId=item.feedId;
var feedItemId=item.feedItemId;
var feed=$markQueue[feedId];
if(!feed){
feed=[];
$markQueue[feedId]=feed;
}
feed.push(feedItemId);
if($markQueueItemReadedTimer==0){
$markQueueItemReadedTimer=setTimeout(ItemRemark.markQueueItemReaded,500);
}
}
ItemRemark.markQueueItemReaded=function(){
$markQueueItemReadedTimer=0;
var bool=false;
for(var p in $markQueue){
bool=true;
break;
}

if(!bool)return;
var p={
feeds:$markQueue
};
AsyncCall(interfaceUrl,"method=FeedItem.batchRead&params="+JSON.serialize(p));
$markQueue={};
}

var ChannelList={
currentSelectedId:null,
folders:null,
feeds:null,
showCount:0,
folderMap:{},
feedMap:{},
status:'',
unread:true,
expandAll:false,
loading:false
}
ChannelList.Load=function(feedId,onComplete){
ChannelList.folders=null;
ChannelList.feeds=null;

WaitControl.SidePannelWait();
var p={listFeeds:true};
var params='method=Actor.listFolder&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
WaitControl.SidePannelEndWait();
var ret=JSON.decode(res.responseText);
ChannelList._loadMyChannel(ret.data);
if(onComplete)onComplete();
});
}
ChannelList._loadMyChannel=function(data){
ChannelList.folders=data.list||[];
ChannelList.feeds=data.feeds||[];
ChannelList.showCount=0;
ChannelList.processLoad();
ChannelList.ShowList();
};

var $keywordFilterTimer=0;
var $lastInputTime=0;
var $filterElement=false;
var $filterTip=false;
ChannelList.initKeywordFilter=function(){
var lastWord='';
var el=false;
var executing=false;
$filterTip='查找频道（'+Keyboard.getKeyDById(22).text+'键唤出面板）';
$('feed_filter_input').value=$filterTip;
$keywordFilterTimer=setInterval(function(){
var now=new Date();
if(now-$lastInputTime>500){
if(!$filterElement){
$filterElement=$('feed_filter_input');
}
var v=$filterElement.value;
if(v==$filterTip){
v='';
}
if(!executing&&v!=lastWord){
executing=true;
lastWord=v;
ChannelList.reShowList();
ChannelList.expandAll=false;
ChannelList.switchExpandAll();
executing=false;
$lastInputTime=now;
}
}
},500);
};
ChannelList.filterInputEvent=function(){
$lastInputTime=new Date();
};
ChannelList.filterBlur=function(){
$filterElement.value=$filterTip;
Dom.replaceClass($filterElement,'feed_filter_input','feed_filter_default');
};
ChannelList.filterFocus=function(){
$filterElement.value='';
Dom.replaceClass($filterElement,'feed_filter_default','feed_filter_input');
};

ChannelList.filterFeed=function(feed,skipRead){

if(!skipRead&&Actor.UserConfig.show_folder_unread&&feed.unreadNum==0){
return false;
}

if(feed.level>=Actor.UserConfig.show_feedLevel){
if($filterElement){
var v=$filterElement.value;
if(v==$filterTip){
v='';
}
if(v!=''){
var t1=feed.title.toLowerCase();
var t2=v.toLowerCase();
return t1.indexOf(t2)>-1;
}
}
return true;
}
return false;
}
ChannelList.filterFolder=function(folder){
for(var i=0;i<folder.feeds.length;i++){
if(this.filterFeed(folder.feeds[i]))
return true;
}
if(!Actor.UserConfig.show_folder_unread&&folder.feeds.length==0&&Actor.UserConfig.show_feedLevel==1){
return true;
}
return false;
}
ChannelList.processLoad=function(){
this.folderMap={};
this.feedMap={};
var folders=ChannelList.folders;
for(var i=0;i<folders.length;i++){
var folder=folders[i];
var feeds=folder.feeds;
folder.unreadNum=0;
for(var j=0;j<feeds.length;j++){

var feed=feeds[j];
feed.level?"":feed.level=1;
feed.publicLevel==null?feed.publicLevel=2:"";
feed.unreadNum?"":feed.unreadNum=0;
this.feedMap[feed.feedId]=feed;
folder.unreadNum+=feed.unreadNum;
}
this.folderMap[parseInt(folder.folderId)]=folder;
}
var feeds=ChannelList.feeds;
for(var j=0;j<feeds.length;j++){
var feed=feeds[j];
feed.level?"":feed.level=1;
feed.publicLevel==null?feed.publicLevel=2:"";
feed.unreadNum?"":feed.unreadNum=0;
this.feedMap[feed.feedId]=feed;
}


}
var refreshTimer=null;
var interval=null;
ChannelList.setRefreshInterval=function(minutes){
if(minutes<=0)return;
if(isNaN(minutes))minutes=10;
if(minutes<5){
minutes=5;
}
if(refreshTimer){
clearTimeout(refreshTimer);
refreshTimer=0;
}
interval=minutes;
Actor.UserConfig.refresh_channel_interval=interval;
refreshTimer=setTimeout(function(){ChannelList.refresh();},interval*60*1000);
}
ChannelList.refresh=function(){

WaitControl.SidePannelWait();
var params='method=Actor.listUnreadFeeds';
AsyncCall(interfaceUrl,params,function(res){
WaitControl.SidePannelEndWait();
eval('var ret = '+res.responseText);
if(ret.status==1){
var feeds=ret.data;
for(var p in ChannelList.feedMap){
var f1=ChannelList.feedMap[p];
var newUnreadNum=feeds[p];
if(newUnreadNum>0){
if(f1.unreadNum!=newUnreadNum&&ChannelList.filterFeed(f1,true)){
ChannelList.setFeedUnreadNum(p,newUnreadNum);
var folder=ChannelList.getFeedFolder(p);

if(folder&&!ChannelList.isFolderExpanded(folder.folderId)){
ChannelList.highlight($('folder_ul_'+folder.folderId),'update_highlight');
}else{
ChannelList.highlight($('li_'+p),'update_highlight');
}
}
}else if(f1.unreadNum>0){
ChannelList.setFeedUnreadNum(p,0);
}
}
}
},function(){WaitControl.SidePannelEndWait();});

ChannelList.setRefreshInterval(Actor.UserConfig.refresh_channel_interval);
};
(function(){
$highlights=[];
$clearTimer=0;
ChannelList.highlight=function(el,css){
Dom.addClass(el,css);
$highlights.push([el,css]);
if($clearTimer==0){
setTimeout(function(){
$highlights.each(function(node){
Dom.removeClass(node[0],node[1]);
});
$highlights=[];
$clearTimer=0;
},3000);
}
};

})();
(function(){
var $isEditing=false;
var $canDrop=false;
var $isFolder=false;
var $dragerId=false;
var $locator=false;
var $containerArea=false;
var $lastEnter=false;
var $modifyed=false;
var $proxy=false;
var $container=false;
var $channelAll=false;
var onEnter=function(el,id,isFolder,ev){

if(isFolder){

$canDrop=1;
if(!$isFolder){
ChannelList.expandFolder(id,true);

$canDrop=2;
}
if(id!=$lastEnter){
onLeave();
}
}else{


if($isFolder){
onLeave();
return;
}
$canDrop=1;
}

$lastEnter=id;
el.parentNode.insertBefore($locator,el);

$proxy.className='dragAllow_item';
}
var onLeave=function(){
if(!$lastEnter)return;
if($locator.parentNode)
$locator.parentNode.removeChild($locator);
$canDrop=false;
$lastEnter=false;
$proxy.className='drag_item';
}
var isCover=function(xy,w,h,pos){
if(xy[0]>pos[0]&&xy[0]<pos[0]+w&&
xy[1]>pos[1]&&xy[1]<pos[1]+h){
return true;
}
return false;
}
var isEnterFeedList=function(elList,pos,xy,ev){


if(isCover(xy,elList.offsetWidth,elList.offsetHeight,pos)){


var top=pos[1];
for(var index=0;index<elList.childNodes.length;index++){
var elFeed=elList.childNodes[index];

if(top<xy[1]&&xy[1]<top+elFeed.offsetHeight){
if(elFeed.id.startWith('li_')){
onEnter(elFeed,elFeed.id.substr('li_'.length),false,ev);
return true;
}
return false;
}
top+=elFeed.offsetHeight;
}
}
return false;
}
var _prepareDrag=function(el){
if(el.__drager){
return;
}
el.__drager=new joyeach.util.Dragable(el,{

isCoverMonitor:function(xy,w,h,monitor,eX,eY){
if(eX<$containerArea[0]||eX>$containerArea[0]+$containerArea[2]||
eY<$containerArea[1]||eY>$containerArea[1]+$containerArea[3])
return false;
var pos=Dom.getXY(monitor);
pos[1]-=$container.scrollTop;
if(xy[0]>pos[0]&&xy[0]<pos[0]+monitor.offsetWidth&&
xy[1]>pos[1]&&xy[1]<pos[1]+monitor.offsetHeight){
return true;
}
return false;
},
onmovetarget:function(ev){ev.cancel=true;},
onstart:function(ev){
if(!$isEditing){
ev.cancel=true;
return;
}

var currentDrager=ev.srcElement;
$isFolder=currentDrager.id.indexOf('folder_ul_')==0;
if($isFolder){
$dragerId=currentDrager.id.substr('folder_ul_'.length);
$locator=htmlToElement('<ul class="feed_drager_locator" id="feed_drager_locator"><li></li></ul>');
$proxy.innerHTML=ChannelList.folderMap[$dragerId].folderName;
}else{
$dragerId=currentDrager.id.substr('li_'.length);
$locator=htmlToElement('<li class="feed_drager_locator" id="feed_drager_locator"><ul></ul></li>');
$proxy.innerHTML=ChannelList.feedMap[$dragerId].title;
}
if(Dom.IsNs){
Dom.addClass(document.body,'moz_disable_select');
}
$containerArea=Dom.getXY($('Sublist'));
$containerArea[2]=$('Sublist').offsetWidth;
$containerArea[3]=$('Sublist').offsetHeight;

$channelAll=$('Channel_ul_all');
$proxy.style.display='block';

if(!$container){
$container=$('Sublist');
}
},
onend:function(ev){
if(Dom.IsNs){
Dom.removeClass(document.body,'moz_disable_select');
}

if($canDrop&&$dragerId&&$lastEnter){
try{

if($canDrop==2){

ChannelList.moveFeed($dragerId,0,$lastEnter);
}else if($isFolder){
ChannelList.moveFolder($dragerId,$lastEnter);
}else{
ChannelList.moveFeed($dragerId,$lastEnter);
}
$modifyed=true;
}catch(ex){

}

}
$canDrop=false;
$dragerId=false;
$lastEnter=false;
if($locator.parentNode)
$locator.parentNode.removeChild($locator);
$proxy.style.display='none';
},
onmove:function(ev){
if(!$dragerId)return;
var xy=[ev.mouseX,ev.mouseY];
if(!isCover(xy,$containerArea[2],$containerArea[3],[$containerArea[0],$containerArea[1]])){
onLeave();
return;
}else{
if(ev.mouseY>$containerArea[1]+$containerArea[3]-20){

$container.scrollTop+=50;
}else if(ev.mouseY<$containerArea[1]+20){

$container.scrollTop-=50;
}
}
ev.cancel=true;
$proxy.style.top=xy[1]-10+'px';
$proxy.style.left=xy[0]-20+'px';

var pos=Dom.getScrolledXY($channelAll);
pos[1]+=$channelAll.offsetHeight;
for(var i=0;i<ChannelList.folders.length;i++){
var folder=ChannelList.folders[i];
var elFolder=$('folder_ul_'+folder.folderId);

if(elFolder.offsetHeight>0){

if(isCover(xy,elFolder.offsetWidth,elFolder.offsetHeight,pos)){
onEnter(elFolder,folder.folderId,true,ev);
return;
}else{
pos[1]+=elFolder.offsetHeight;
var elFolderFeeds=$('ul_'+folder.folderId);

if(elFolderFeeds.offsetHeight>0){
if(isEnterFeedList(elFolderFeeds,pos,xy,ev)){
return;
}
pos[1]+=elFolderFeeds.offsetHeight;
}
}
}
}
if(isEnterFeedList($('ul_0'),pos,xy,ev)){
return;
}
onLeave();
}
});
el.__drager.installProxy($proxy,'left');
el.__drager.prepare(JEvent.getEvent());
}
ChannelList.beginEdit=function(){
if($isEditing)return;
$proxy=$('tmp_drag_item');

if(!$proxy){
$proxy=htmlToElement('<div style="display:none" id="tmp_drag_item" class="drag_item"></div>');
document.body.appendChild($proxy);
}
$isEditing=true;
var elTip=htmlToElement("<div id='feed_drag_tip' class='feed_drag_tip'><div class='tip'>现在可以拖动频道进行排序</div><div onclick='ChannelList.endEdit()' class='end'>完成</div></div>");
document.body.appendChild(elTip);
JEvent.addListener($('Sublist'),'mousedown',ChannelList._mouseDownHandler);
}
ChannelList._mouseDownHandler=function(e){
var el=JEvent.element(e);
var step=0;
while(step<3&&el&&!(el.id&&(el.id.startWith('li_')||el.id.startWith('folder_ul_')))){
el=el.parentNode;
}
if(el&&el.id&&(el.id.startWith('li_')||el.id.startWith('folder_ul_'))){
_prepareDrag(el);
}
}
ChannelList.endEdit=function(){
if(!$isEditing)return;
$isEditing=false;
JEvent.removeListener($('Sublist'),'mousedown',ChannelList._mouseDownHandler);
document.body.removeChild($('feed_drag_tip'));
document.body.removeChild($proxy);
if($modifyed){
ChannelList.modifyAllFolder();
}
}
})();
ChannelList.sortByFirstChar=function(){
var sortFeeds=function(feeds){
feeds.sort(function(a,b){
return a.title.localeCompare(b.title);});
}
var sortFolders=function(folders){
folders.sort(function(a,b){
return a.folderName.localeCompare(b.folderName);});
}
sortFolders(ChannelList.folders);
sortFeeds(ChannelList.feeds);
var folders=ChannelList.folders;
for(var i=0;i<folders.length;i++){
var fs=ChannelList.folders[i].feeds;
sortFeeds(fs);
}
ChannelList.modifyAllFolder();
ChannelList.ShowList();
window.setTimeout("WaitControl.PannelEndWait()",1);
}
ChannelList.sortByLevel=function(){
var sortFeeds=function(feeds){
feeds.sort(function(a,b){return parseInt(b.level||1)-parseInt(a.level||1)});
}
sortFeeds(ChannelList.feeds);
var folders=ChannelList.folders;
for(var i=0;i<folders.length;i++){
var fs=ChannelList.folders[i].feeds;
sortFeeds(fs);
}
ChannelList.modifyAllFolder();
ChannelList.ShowList();
window.setTimeout("WaitControl.PannelEndWait()",1);
}
ChannelList.modifyAllFolder=function(onSuccess,onFailure,feedIdList){
var folders=[];
var feeds=[];
for(var i=0;i<this.folders.length;i++){
var folder=this.folders[i];

if(isNaN(parseInt(folder.folderId)))continue;
var newFolder={
i:folder.folderId,
n:encodeURIComponent(folder.folderName),
fs:[]
};
for(var j=0;j<folder.feeds.length;j++){
var feed=folder.feeds[j];
newFolder.fs.push(feed.feedId);
}
folders.push(newFolder);
}
for(var j=0;j<this.feeds.length;j++){
var feed=this.feeds[j];
feeds.push(feed.feedId);
}
feedIdList=feedIdList||[];
if(typeof feedIdList=="string"){
if(feedIdList=='')feedIdList=[];
else feedIdList=feedIdList.split(',');
}
var p={
folders:folders,
feeds:feeds,
removefeedIdList:feedIdList
};
AsyncCall(interfaceUrl,"method=Actor.modifyAllFolder&params="+JSON.serialize(p),onSuccess||function(res){
var ret=JSON.decode(res.responseText);
if(ret.error){
WaitControl.SaveError(ret.error);
}
},onFailure||function(){
WaitControl.SaveError('保存频道列表出错');
})
}
ChannelList.modifyFeedsShowLevel=function(feedIdList,level,onSuccess,onFailure){
if(!feedIdList||!level)return;
if(typeof feedIdList=="string"){
feedIdList=feedIdList.split(",");
}
for(var i=0;i<feedIdList.length;i++){
var feed=this.feedMap[feedIdList[i]];
if(feed){
feed.level=level;
}
}
var p={
feedIdList:feedIdList,
level:level
};
AsyncCall(interfaceUrl,"method=Actor.modifyFeedsShowLevel&params="+JSON.serialize(p),onSuccess,onFailure);
}
ChannelList.modifyFeedsPublicLevel=function(feedIdList,level,onSuccess,onFailure){
if(!feedIdList)return;
if(typeof feedIdList=="string"){
feedIdList=feedIdList.split(",");
}
if(typeof level=="undefined"){
level=2;
}
for(var i=0;i<feedIdList.length;i++){
var feed=this.feedMap[feedIdList[i]];
if(feed){
feed.publicLevel=level;
}
}
var p={
feedIdList:feedIdList,
level:level
};
AsyncCall(interfaceUrl,"method=Actor.modifyFeedsPublicLevel&params="+JSON.serialize(p),onSuccess,onFailure);
}
ChannelList.modifyFeedsRadarAlert=function(feedIdList,radaralert,onSuccess,onFailure){
if(!feedIdList)return;
if(typeof feedIdList=="string"){
feedIdList=feedIdList.split(",");
}
for(var i=0;i<feedIdList.length;i++){
var feed=this.feedMap[feedIdList[i]];
if(feed){
feed.radarAlert=radaralert;
}
}
var p={
feedIdList:feedIdList,
radarAlert:radaralert
};
AsyncCall(interfaceUrl,"method=Actor.modifyFeedsRadarAlert&params="+JSON.serialize(p),onSuccess,onFailure);
}
ChannelList.modifyFeedsWapRead=function(feedIdList,wapread,onSuccess,onFailure){
if(!feedIdList)return;
if(typeof feedIdList=="string"){
feedIdList=feedIdList.split(",");
}
for(var i=0;i<feedIdList.length;i++){
var feed=this.feedMap[feedIdList[i]];
if(feed){
feed.wapRead=wapread;
}
}
var p={
feedIdList:feedIdList,
wapRead:wapread
};
AsyncCall(interfaceUrl,"method=Actor.modifyFeedsWapRead&params="+JSON.serialize(p),onSuccess,onFailure);
}
ChannelList.moveFeed=function(feedId,targetId,targetFolderId){
var feed=ChannelList.feedMap[feedId];
var targetFeed=ChannelList.feedMap[targetId];
if(!feed||(!targetId&&targetFolderId==null)){
return;
}

var folderId=$('li_'+feedId).parentNode.id.substr("ul_".length);

var targetFolderId=targetFolderId==null?$('li_'+targetId).parentNode.id.substr("ul_".length):targetFolderId;

if(folderId=="0"){
ChannelList.feeds=ChannelList.feeds.without(feed);
}else{
var folder=ChannelList.folderMap[folderId];
folder.feeds=folder.feeds.without(feed);
}
if(targetFolderId=="0"){

}

var targetFolder=targetFolderId=="0"?{feeds:ChannelList.feeds}:ChannelList.folderMap[targetFolderId];


var targetFeedPos=targetId?targetFolder.feeds.indexOf(targetFeed):targetFolder.feeds.length-1;
if(targetFeedPos<0)targetFeedPos=0;


targetFolder.feeds.insert(targetFeedPos,feed);
if(targetFeed)
targetFeed._el.parentNode.insertBefore(feed._el,targetFeed._el);
else $("ul_"+targetFolderId).appendChild(feed._el);

if(feed.unreadNum>0){

ChannelList.addFolderUnreadNum(folderId!="0"?folderId:'all',-feed.unreadNum);

ChannelList.addFolderUnreadNum(targetFolderId!="0"?targetFolderId:'all',feed.unreadNum);
}


}
ChannelList.moveFolder=function(folderId,targetId){
var folder=ChannelList.folderMap[folderId];
var targetFolder=ChannelList.folderMap[targetId];
if(!folder||!targetFolder){
return;
}


var targetFolderPos=ChannelList.folders.indexOf(targetFolder);


ChannelList.folders=ChannelList.folders.without(folder);
ChannelList.folders.insert(targetFolderPos,folder);


$('Sublist').insertBefore($('ul_'+folderId),$('folder_ul_'+targetId));
$('Sublist').insertBefore($('folder_ul_'+folderId),$('ul_'+folderId));
};
var $recommendfeedIdList=[];
var $recommendonSuccess;
var $recommendonFailure;
ChannelList.showSendFeedPanel=function(feedIdList,onSuccess,onFailure){
if(!feedIdList)return;
if(typeof feedIdList=="string"){
feedIdList=feedIdList.split(",");
}
var feedId=feedIdList[0];
if(feedId!=''){
var feed=this.FindChannel(feedId);
if(feed){
$('feedSend.title').value=feed.title;
}
}
if(feedIdList.length>1){
$('feedSend.title').value+='等频道';
}
$recommendfeedIdList=feedIdList;
$recommendonSuccess=onSuccess;
$recommendonFailure=onFailure;
friendListMg.Load(function(){
friendListMg.initSelect('recommend_feed_friends');
var panel=$('feedSend.panel');
panel.style.display='block';
PanelMgr.show(panel,{
x:($('mainContext').offsetWidth-panel.offsetWidth)/2+$('SidePannel').offsetWidth,
y:140,
autoPos:false
});
$('feedSend.title').focus();
});
}
ChannelList.sendFeeds=function(){
if($recommendfeedIdList.length==0)return;
if($('recommend_feed_friends').value<0){
alert('请选择朋友！');
$('recommend_feed_friends').focus();
return;
}

if($('feedSend.title').value==''){
alert('请输入邮件标题!');
return false;
}
if($('feedSend.title').value.length>80){
alert('标题大于80个字符!');
$('itemSend.title').focus();
return false;
}
if($('feedSend.content').value.length>150){
alert('内容大于150个字符!');
$('feedSend.content').focus();
return false;
}
var p={
title:$('feedSend.title').value,
content:$('feedSend.content').value,
feedIdList:$recommendfeedIdList.join(','),
friendIdList:$('recommend_feed_friends').value
};
AsyncCall(interfaceUrl,'method=Message.recommendFeed&params='+encodeURIComponent(JSON.serialize(p)),$recommendonSuccess||function(res){
var ret=JSON.decode(res.responseText);
if(ret.error){
WaitControl.SaveError(ret.error);
}else{
WaitControl.SaveEndMsg('推荐频道成功！');
}
},$recommendonFailure||function(){
WaitControl.SaveEndMsg('推荐频道失败！');
});
PanelMgr.hide();
}
ChannelList.getFeedPosition=function(feedId){
var folder=this.getFeedFolder(feedId);
var feed=this.FindChannel(feedId);
if(folder){
return[folder,folder.feeds.indexOf(feed)];
}else{
return[null,this.feeds.indexOf(feed)];
}
}
ChannelList.modifyFeed=function(p,onSuccess,onFailure){
if(!p||!p.feedId)return;
var postP={};
for(var name in p){
postP[name]=p[name];
}
var json=encodeURIComponent(JSON.serialize(postP));
var params='method=Feed.modifySubscribeFeed&params='+json;
AsyncCall(interfaceUrl,params,onSuccess);
}
ChannelList.setSelection=function(id){
if(this.currentSelectedId!=null&&this.currentSelectedId!==id){
if(this.currentSelectedId===0){
for(var i=0;i<this.feeds.length;i++){
var el=$('li_'+this.feeds[i].feedId);
if(el)Dom.removeClass(el,'channel_item_selected');
}
}else{
var el=$('li_'+this.currentSelectedId);
if(el)Dom.removeClass(el,'channel_item_selected');
el=$('folder_ul_'+this.currentSelectedId);
if(el)Dom.removeClass(el,'channel_item_selected');
}
}
ChannelList.currentSelectedId=id;
if(id===0){
for(var i=0;i<this.feeds.length;i++){
var el=$('li_'+this.feeds[i].feedId);
if(el)Dom.addClass(el,'channel_item_selected');
}
}else if(id){
if(this.status=='feed'||this.status=='all'){
var el=$('li_'+id);
if(el)Dom.addClass(el,'channel_item_selected');
}else if(this.status=='folder'){
el=$('folder_ul_'+id);
if(el)Dom.addClass(el,'channel_item_selected');
}
}
}
ChannelList.hintNewbie=function(id){
if(id>0){
var el=$('Channel_'+id);
var ep=$('newbieHintPanel');
if(el&&ep){
console.log('newbie');
var lXY=Dom.getXY(el);
ep.style.display='block';
ep.style.left=lXY[0]+'px';
ep.style.top=(lXY[1]+20)+'px';
var feed=ChannelList.feedMap[id];
ep.innerHTML='已将“'+feed.title+'”订阅到鲜果，以后就可以点击此处来查看它的更新文章了。';
setTimeout(function(){ep.style.display='none';},10000);
}
}
};
ChannelList.scrollTo=function(Id,isFolder){
var el=isFolder?$('folder_ul_'+Id):$('li_'+Id);
if(!el)return;
var elPanel=$('Sublist');
var pXY=Dom.getXY(elPanel);
var fXY=Dom.getXY(el);

{
fXY[1]-=elPanel.scrollTop;
}

if(fXY[1]>pXY[1]+elPanel.offsetHeight*2/3){
var scroll=fXY[1]-pXY[1]-30;
elPanel.scrollTop+=scroll;
}else if(fXY[1]<pXY[1]){
elPanel.scrollTop-=pXY[1]-fXY[1];
}
}
ChannelList.FindChannel=function(feedId){
return ChannelList.feedMap[feedId];
}
ChannelList.FindFolder=function(folderId){
return ChannelList.folderMap[folderId];
}
ChannelList.FindFolderByName=function(folderName){
if(ChannelList.folders==null||!folderName)return null;

for(var i=0;i<ChannelList.folders.length;i++){
if(ChannelList.folders[i].folderName==folderName)
return ChannelList.folders[i];
}
return null;
}
ChannelList.FindFolderByNameStrict=function(folderName){
if(this.folders==null||!folderName)return null;

for(var i=0;i<this.folders.length;i++){
if(this.folders[i].folderName.toLowerCase()==folderName.toLowerCase())
return this.folders[i];
}
return null;
}
ChannelList.removeFeed=function(feedId){
var feed=ChannelList.FindChannel(feedId);
if(!feed)return;
if(JEvent.fireEvent(ChannelList,'onfeedremove',feed)===false)return;
var p={feedId:feedId};
var folder=this.getFeedFolder(p.feedId);

$('li_'+p.feedId).parentNode.removeChild($('li_'+p.feedId));

delete ChannelList.feedMap[feedId];
if(folder){
folder.feeds=folder.feeds.without(feed);
}else{
ChannelList.feeds=ChannelList.feeds.without(feed);
}

ChannelList.addFolderUnreadNum(folder?folder.folderId:'all',-feed.unreadNum);

if(Actor.UserConfig.default_entry=="feed:"+p.feedId){
Actor.UserConfig.default_entry='default';
}
var params='method=Feed.unsubscribeFeed&params='+JSON.serialize(p);

AsyncCall(interfaceUrl,params);
}
ChannelList.addFeed=function(feed,folderId){
var folder=this.FindFolder(folderId);
var el=folder?$('ul_'+folderId):$('ul_0');
if(!folder){
this.feeds.push(feed);
var html=ChannelList.createFeedHtml(0,feed,Actor.UserConfig.show_folder_unread);
el.appendChild(htmlToFragment(html));
}else{
if(!folder.feeds)folder.feeds=[];
folder.feeds.push(feed);
var html=ChannelList.createFeedHtml(folder.folderId,feed,Actor.UserConfig.show_folder_unread);
el.appendChild(htmlToFragment(html));
}
feed._el=$('li_'+feed.feedId);
ChannelList.feedMap[feed.feedId]=feed;
if(feed.unreadNum>0){
this.addFolderUnreadNum(folderId,feed.unreadNum);
}
}
ChannelList.directSubFeed=function(feedId){
ChannelList.subFeeds(feedId,{folderId:0},function(){
ChannelList.highlight($('li_'+feedId),'update_highlight');
});
}
ChannelList.subFeeds=function(feedIdList,folder,onSuccess,onFailure){
if(!feedIdList||feedIdList.length==0)return;
if(typeof feedIdList!='string')feedIdList=feedIdList.join(',');
var folder=folder||{folderId:0};
var p={
feedIdList:feedIdList,
folderId:folder.folderId,
folderName:folder.folderName,
feedLevel:Actor.UserConfig.show_feedLevel
};
AsyncCall(interfaceUrl,'method=Feed.batchSubscribeFeed&params='+JSON.serialize(p),function(res){
var ret=eval('('+res.responseText+')');
if(ret.status==1){
ChannelList._subFeedsSuccess(ret,onSuccess);
}else{
WaitControl.SaveError(ret.error);
}
},onFailure);
}
ChannelList._subFeedsSuccess=function(ret,onSuccess){
var folder=ChannelList.FindFolder(ret.data.folderId);
if(!folder&&ret.data.folderId>0){
folder={
folderId:ret.data.folderId,
folderName:ret.data.folderName,
unreadNum:0,
feeds:[]
};
ChannelList.folderMap[folder.folderId]=folder;
ChannelList.folders.push(folder);
var html=[];
ChannelList.createFolderHtml(folder,false,html);
var uls=htmlToElement(html.join(''));
var panel=$('Sublist');
var end=$('ul_0');

panel.insertBefore(uls[0],end);
panel.insertBefore(uls[1],end);
}
if(folder)$('folder_ul_'+folder.folderId).style.display='block';

var newFolder=ret.data;
if(!newFolder.feeds)newFolder.feeds=[];
for(var i=0;i<newFolder.feeds.length;i++){
var feed=newFolder.feeds[i];
feed.level=Actor.UserConfig.show_feedLevel;
if(!ChannelList.feedMap[feed.feedId]){
ChannelList.addFeed(feed,ret.data.folderId);
}
}
if(onSuccess)onSuccess(newFolder.folderId);
}
ChannelList.removeFolder=function(folderId){
if(!folderId||folderId=='0')return;
var folder=this.FindFolder(folderId);
if(JEvent.fireEvent(ChannelList,'onfolderremove',folder)===false)return;

folder.feeds.each(function(feed){
delete ChannelList.feedMap[feed.feedId];
JEvent.fireEvent(ChannelList,'onfeedremove',feed);
});
if(folder){
this.folders=this.folders.without(folder);
delete ChannelList.folderMap[folderId];
var unreadNum=folder.unreadNum;
ChannelList.addFolderUnreadNum('all',-folder.unreadNum);
$('Sublist').removeChild($('folder_ul_'+folderId));
$('Sublist').removeChild($('ul_'+folderId));
var p={folderId:folderId};
var params='method=Actor.deleteFolder&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
eval('var ret = '+res.responseText);
if(ret.status==1){

if(Actor.UserConfig.default_entry=="folder:"+p.folderId){
Actor.UserConfig.default_entry='default';
}
}
});
}
}
ChannelList.addFolder=function(name,onSuccess){
var p={folderName:encodeURIComponent(name),sortMethod:3};
var params='method=Actor.addFolder&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
eval('var ret = '+res.responseText);
if(ret.status=='1'){
var folder=ret.data;
folder.feeds=[];
ChannelList.folderMap[folder.folderId]=folder;
ChannelList.folders.push(folder);
var html=[];
ChannelList.createFolderHtml(folder,false,html);
var uls=htmlToElement(html.join(''));
var panel=$('Sublist');
var end=$('ul_0');

panel.insertBefore(uls[0],end);
panel.insertBefore(uls[1],end);
folder.feeds.each(function(f){
f._el=$('li_'+f.feedId);
});
if(onSuccess)onSuccess(folder);
}
});
}
ChannelList.setFeedUnreadNum=function(feedId,num){
var feed=ChannelList.FindChannel(feedId);
if(feed&&!isNaN(num)){
var numSpan=num-feed.unreadNum;
feed.unreadNum=num||0;
if(feed.unreadNum<0)feed.unreadNum=0;
ChannelList.refreshFeedUI(feedId);

if(Actor.UserConfig.show_folder_unread){
if(feed.unreadNum>0){
$('li_'+feedId).style.display='block';
}else{
$('li_'+feedId).style.display='none';
}
}

var folder=ChannelList.getFeedFolder(feedId);
ChannelList.addFolderUnreadNum(folder?folder.folderId:'all',numSpan);
}
}
ChannelList.addFolderUnreadNum=function(folderId,num){
if(folderId==0)folderId='all';
if(folderId!='all'){
if(num==0||isNaN(num)){
return;
}
}
var folder=ChannelList.FindFolder(folderId);
if(!folder&&folderId!='all')return;
var elFolder=$('folder_unreadNum_'+folderId);
var oldNum=0;
if(folderId!='all'){
oldNum=folder.unreadNum;
oldNum+=num;
}else{

if(num==null){
for(var p in this.feedMap){
var f=this.feedMap[p];
if(ChannelList.filterFeed(f)){
oldNum+=f.unreadNum;
}
}
}else{
if($('folder_unreadNum_all').innerHTML!=''){
oldNum=parseInt($('folder_unreadNum_all').innerHTML.substr(1));
}
oldNum+=num;
}
}
if(oldNum<0)oldNum=0;
if(oldNum==0){
elFolder.innerHTML=elFolder.title='';
Dom.removeClass('folder_'+folderId,'notRead_Folder');
}else{
Dom.addClass('folder_'+folderId,'notRead_Folder');
elFolder.innerHTML=elFolder.title="("+oldNum+")";
}

if(folderId!='all'){
folder.unreadNum=oldNum;

if(Actor.UserConfig.show_folder_unread){

if(oldNum<=0){
$('folder_ul_'+folderId).style.display='none';
this.expandFolder(folderId,false);
}else{

$('folder_ul_'+folderId).style.display='block';
}
}
this.addFolderUnreadNum('all',num);
}else{
document.title='鲜果RSS阅读器 - ('+oldNum+')';
}
}
ChannelList.refreshFeedUI=function(feedId){
var feed=this.getFeedsByIds(feedId)[feedId];
if(!feed)return false;
var elFeedTitle=$('Channel_'+feedId);
if(!elFeedTitle)return false;
if(feed.unreadNum==0){
$('feed_unreadNum_'+feedId).innerHTML='';
Dom.replaceClass(elFeedTitle,'feedList_notReaded','feedList_readed');
}else{
$('feed_unreadNum_'+feedId).innerHTML="("+feed.unreadNum+")";
Dom.replaceClass(elFeedTitle,'feedList_readed','feedList_notReaded');
}
elFeedTitle.innerHTML=feed.title.replaceAll("'","\'").replaceAll('"','&quot;');
}
ChannelList.ShowByLevel=function(level){
$('feedmanage_menu_0').style.display="none";
Actor.UserConfig.set("show_feedLevel",level);

$('fm_span_selectbylevel').style.backgroundImage="url(/img/xiala_level_"+Actor.UserConfig.show_feedLevel+".gif)";
ChannelList.ShowList();
}
ChannelList.setFilterLevel=function(){
for(var i=1;i<=3;i++)
$('fm_level_filter_'+i).className="feedManage_menu_item";
$('fm_level_filter_'+Actor.UserConfig.show_feedLevel).className="feedManage_menu_item_selected";
}
ChannelList.showRightMenu=function(menuid,target){
var menu=$(menuid);

var pos=joyeach.util.Dom.getXY(target);
menu.style.left=pos[0]+"px";
menu.style.display="block";
var h=target.offsetHeight;
menu.style.top=pos[1]+h+"px";



ChannelList.setFilterLevel();


document.onmousedown=function(event){
if(FeedManage.IsMouseOut(event,menu))
menu.style.display="none";
}
}
ChannelList.switchShow=function(){
Actor.UserConfig.set("show_folder_unread",!Actor.UserConfig.show_folder_unread);
ChannelList.reShowList();
ChannelList.switchUnreadHtml();
}
ChannelList.switchExpandAll=function(){
var elExpand=$('expandChannel');
this.expandAll=!this.expandAll;
ChannelList.switchExpandAllHtml(this.expandAll);
for(var id in ChannelList.folderMap){
ChannelList.expandFolder(id,this.expandAll,true);
}
}
ChannelList.switchExpandAllHtml=function(expand_all){
var expand=$('expandChannel');
expand.innerHTML=expand_all?'折叠':'展开';
}
ChannelList.switchUnreadHtml=function(){
var showChannel=$('showChannel');
showChannel.innerHTML=Actor.UserConfig.show_folder_unread?'全部':'未读';
}
ChannelList.reShowList=function(){
var totalUnread=0;
var nowUnread=0;
for(var i=0;i<this.folders.length;i++){
var folder=this.folders[i];
var showFolder=false;
var unreadNum=0;
for(var j=0;j<folder.feeds.length;j++){
var feed=folder.feeds[j];
var elFeed=feed._el;
if(!elFeed){
elFeed=$('li_'+feed.feedId);
}
if(ChannelList.filterFeed(feed)){
showFolder=true;
unreadNum+=feed.unreadNum;
if(elFeed.style.display=='none'){
elFeed.style.display='block';
}
}else{
elFeed.style.display='none';
}
}
if(showFolder||(!Actor.UserConfig.show_folder_unread&&folder.feeds.length==0&&Actor.UserConfig.show_feedLevel==1)){
$('folder_ul_'+folder.folderId).style.display='block';
if(this.isFolderExpanded(folder.folderId)){
$('ul_'+folder.folderId).style.display='block';
}
}else{
$('folder_ul_'+folder.folderId).style.display='none';
if(this.isFolderExpanded(folder.folderId)){
$('ul_'+folder.folderId).style.display='none';
}
}
ChannelList.addFolderUnreadNum(folder.folderId,unreadNum-folder.unreadNum);
}
for(var j=0;j<this.feeds.length;j++){
var feed=this.feeds[j];
var elFeed=feed._el;
if(ChannelList.filterFeed(feed)){
nowUnread+=feed.unreadNum;
if(elFeed.style.display=='none'){
elFeed.style.display='block';
}
}else{
elFeed.style.display='none';
}
totalUnread+=feed.unreadNum;
}
ChannelList.addFolderUnreadNum('all',nowUnread-totalUnread);
ChannelList.checkFeedShowStatus();
}
ChannelList.ShowList=function(){
if(JEvent.fireEvent(ChannelList,"onbeforeshowlist",{sender:this})===false)return false;

ChannelList.switchUnreadHtml();
this.switchExpandAllHtml(this.expandAll);

$('Sublist').innerHTML='<ul class="ul_root_feedList" id="Channel_ul_all"><li title="所有文章" id="li_all"><ul onclick="PageMgr.goAllFeed()" class="feed_ul"><li class="feed_ico_li" style="background: transparent url(/img/allfeed.gif) no-repeat">　</li><li class="feed_title_li feedList_notReaded" id="folder_all"><a >所有文章</a></li><li id="folder_unreadNum_all" class="feed_unread_li">0</li></ul></li></ul>';
ChannelList.showCount=0;
ChannelList._innerShowList();
}
ChannelList.checkFeedShowStatus=function(){
var tip=$('emptyTip');
if(tip){

tip.parentNode.removeChild(tip);
}
if(Actor.UserConfig.show_feedLevel==1)return;
var hasFeed=false;
var el=$('Channel_ul_all');
var sl=el;
while((sl=Dom.nextSibling(sl,'ul'))){
if(sl.style.display!='none'){
if(sl.id=='ul_0'){
var _l=sl.childNodes.length;
for(var i=0;i<_l;i++){
if(sl.childNodes[i].style.display!='none'){
hasFeed=true;
break;
}
}
}else{
hasFeed=true;
break;
}
}
}

if(!hasFeed){
var div='<div id="emptyTip" style="padding:4px;"><p>本筛选条件下没有文章，'
+'请切换上方操作栏的“全部”/“未读”及下拉选项进行其他筛选。</p>'
+'<span onclick="ChannelList.ShowByLevel(1)" class="link_button">直接查看所有级别频道的全部文章</span></div>';
$('Sublist').appendChild(htmlToElement(div));
}
}
ChannelList._innerShowList=function(){
var html=[];
ChannelList.loading=true;
var folders=ChannelList.folders;

if(ChannelList.showCount<folders.length){
var feedCount=0;
var html=[];
for(var i=ChannelList.showCount;i<folders.length&&feedCount<500;i++){
var folder=folders[i];
ChannelList.createFolderHtml(folder,Actor.UserConfig.show_folder_unread,html);
feedCount+=folder.feeds.length;
ChannelList.showCount++;
}
var el=htmlToFragment(html.join(''));
$('Sublist').appendChild(el);
setTimeout("ChannelList._innerShowList()",500);
}else{
var html=[];
html.push('<ul id="ul_0" class="ul_root_feedList">');

ChannelList.createFolderFeedsHtml({
feeds:ChannelList.feeds
},Actor.UserConfig.show_folder_unread,html);
html.push("</ul>");
$('Sublist').appendChild(htmlToFragment(html.join('')));
ChannelList.addFolderUnreadNum('all');

if(ChannelList.folders.length==1&&Actor.UserConfig.expand_folders!=''+ChannelList.folders[0].folderId){
ChannelList.switchExpandAll();
}
ChannelList.loading=false;
JEvent.fireEvent(ChannelList,"onaftershowlist",{sender:this});
ChannelList._cacheFeedElement();
ChannelList.checkFeedShowStatus();
}
}
ChannelList._cacheFeedElement=function(){
setTimeout(function(){
for(var p in ChannelList.feedMap){
ChannelList.feedMap[p]._el=$('li_'+p);
}
},1);
}

ChannelList.createFolderHtml=function(folder,showUnread,html){

var folderTemplate=Template.get('Folder');
var feedhtml=[];
var res=ChannelList.createFolderFeedsHtml(folder,showUnread,feedhtml);
var fd={
folderId:folder.folderId,
style:((showUnread&&res.unreadNum==0)||!ChannelList.filterFolder(folder))?'style="display:none;"':''
};
folder.unreadNum=res.unreadNum;
fd.name=folder.folderName;
if(folder.unreadNum>0){
fd.cssName='notRead_Folder';
fd.unreadNum="("+folder.unreadNum+")";
}else{
fd.cssName='';
fd.unreadNum='';
}
if(this.isFolderExpanded(fd.folderId)){

fd.preImgCssName='folder_preImg_expand';
}else{
fd.preImgCssName='folder_preImg_collapse';
}
html.push(bind(folderTemplate,fd));
html.push('<ul ');

if(!this.isFolderExpanded(fd.folderId))
html.push(' style="display:none;"');
else if(fd.style!='')html.push(fd.style);
html.push(' id="ul_'+folder.folderId+'" class="ul_feedList">');
html.push(feedhtml.join(''));
html.push("</ul>");
}

ChannelList.createFolderFeedsHtml=function(folder,showUnread,html){
var feeds=folder.feeds;
if(!feeds||feeds.length==0){
return{count:0,unreadNum:0};
}
var unreadNum=0;
var template=Template.get('Feed');
for(var j=0;j<feeds.length;j++){
var feed=feeds[j];
if(ChannelList.filterFeed(feed)){
unreadNum+=feed.unreadNum;
}
try{
html.push(this.createFeedHtml(folder.folderId,feed,showUnread));
}catch(ex){
console.log(ex);
}
}
return{unreadNum:unreadNum};
}
ChannelList.createFeedHtml=function(folderId,feed,showUnread){
var template=Template.get('Feed');
var feedFavicon='feed_favicon';
var icoImg='　';
if(feed.faviconUrl&&feed.faviconUrl.length>1){
feedFavicon=　'';
icoImg='<img onerror="this.parentNode.className += \' feed_favicon\';this.parentNode.removeChild(this);" src="http://xgimg.com'+feed.faviconUrl+'" width="16px" height="16px" alt="" />';
}

var fd={
feedId:feed.feedId,
feedFavicon:feedFavicon,
icoImg:icoImg,
cssName:'',
folderId:folderId,
description:(feed.description||feed.title||"").stripTags(),
name:feed.title,
level:feed.level||1,
style:((showUnread&&feed.unreadNum==0)||!ChannelList.filterFeed(feed))?'style="display:none;"':''
};

fd.unreadNum='';
if(feed.state==2){
fd.cssName+=' feedList_bad';
fd.description='此频道长期未更新';
}
if(feed.unreadNum>0){
fd.cssName+=' feedList_notReaded';
fd.unreadNum='('+feed.unreadNum+')';
}else{
fd.cssName+=' feedList_readed';
}
return bind(template,fd);
}
ChannelList.getFolders=function(){
if(!ChannelList.folders)return[];
return ChannelList.folders;
}
ChannelList.getFeedFolder=function(feedId){
var li=$('li_'+feedId);
if(li){
var folderId=li.parentNode.id.replace('ul_','');
return ChannelList.FindFolder(folderId);
}
return null;
}
ChannelList.getFeedLevel=function(feedId){
var ChannelUL=$('Channel_ul_'+feedId);
if(window.navigator.userAgent.indexOf("MSIE")>=1)
{

var FeedLevelLi=ChannelUL.childNodes[0].className;
}
else
{

var FeedLevelLi=ChannelUL.childNodes[1].className;
}

var FeedLevelArray=FeedLevelLi.split('_');
return FeedLevelArray[2];
}
ChannelList.getUnreadFeeds=function(){
if(!ChannelList.folders)return{};
var retfeeds={};
var folders=ChannelList.folders;
for(var i=0;i<folders.length;i++){
if(!folders[i].feeds)continue;
var feeds=folders[i].feeds;
for(var j=0;j<feeds.length;j++){
if(feeds[j].unreadNum>0)retfeeds[feeds[j].feedId]=feeds[j];
}
}
var feeds=ChannelList.feeds;
for(var j=0;j<feeds.length;j++){
if(feeds[j].unreadNum>0)retfeeds[feeds[j].feedId]=feeds[j];
}
return retfeeds;
}
ChannelList.getReadedFeeds=function(){
if(!ChannelList.folders)return{};
var retfeeds={};
var folders=ChannelList.folders;
for(var i=0;i<folders.length;i++){
if(!folders[i]||!folders[i].feeds)continue;
var feeds=folders[i].feeds;
for(var j=0;j<feeds.length;j++){
if(feeds[j].unreadNum==0)retfeeds[feeds[j].feedId]=feeds[j];
}
}
var feeds=ChannelList.feeds;
for(var j=0;j<feeds.length;j++){
if(feeds[j].unreadNum==0)retfeeds[feeds[j].feedId]=feeds[j];
}
return retfeeds;
}
ChannelList.getAllFeeds=function(){
if(!ChannelList.folders)return{};
return ChannelList.feedMap;
}
ChannelList.getFeedsByIds=function(feedids){
if(!feedids)return{};
var retfeeds={};
var ids=(''+feedids||'').split(',');
ids.each(function(id){
retfeeds[id]=ChannelList.feedMap[id];
});
return retfeeds;
}
ChannelList.browseAllFeeds=function(unread){

ChannelList.status='all';
ChannelList.setSelection('all');
var feedlist=[];
for(var i in this.feedMap){
var feed=this.feedMap[i];
if(ChannelList.filterFeed(feed,true)){
feedlist.push(i);
}
}

if(unread){
ItemList.loadFeedUnreadItems(feedlist.join(','),function(){
ItemList.setTitle('所有文章');
$('unreadSelection').innerHTML='所有文章';
$('unreadSelection').onclick=function(){ChannelList.browseAllFeeds(false);}
});
}else{
ItemList.loadFeedItems(feedlist.join(','),function(){
ItemList.setTitle('所有文章');
$('unreadSelection').innerHTML='仅未读';
$('unreadSelection').onclick=function(){ChannelList.browseAllFeeds(true);}
});
}
}
ChannelList.browseFolder=function(folderId){
var folder=ChannelList.FindFolder(folderId);
if(folderId===0){
folder={feeds:this.feeds};
}
if(folder==null)return;
ChannelList.status='folder';
var feedIds=[];
folder.feeds.each(function(value){
if(ChannelList.filterFeed(value,true)){
feedIds.push(value.feedId);
}
});

ChannelList.setSelection(folderId);
ChannelList.internalBrowseFeed(feedIds.join(','),folderId);
if(folderId!==0&&Actor.UserConfig.auto_expand){
ChannelList.expandFolder(folderId,true);
}
}
ChannelList._getFolderNextFeedId=function(folder,currentPos){
var folder=folder||{feeds:this.feeds};
for(var i=currentPos+1;i<folder.feeds.length;i++){
var feed=folder.feeds[i];
if(ChannelList.filterFeed(feed))

if(!Actor.UserConfig.show_folder_unread||feed.unreadNum>0)
return feed.feedId;
}
return false;
}
ChannelList._getFolderPrevFeedId=function(folder,currentPos){
var folder=folder||{feeds:this.feeds};
for(var i=currentPos-1;i>=0;i--){
var feed=folder.feeds[i];
if(ChannelList.filterFeed(feed))

if(!Actor.UserConfig.show_folder_unread||feed.unreadNum>0)return feed.feedId;
}
return false;
}
ChannelList._getNextFeed=function(currentId){
var pos=this.getFeedPosition(currentId);
if(pos[1]==-1)return false;
do{
var nextId=this._getFolderNextFeedId(pos[0],pos[1]);
if(nextId)return nextId;
if(!pos[0])return false;
var fPos=this.folders.indexOf(pos[0]);


pos[0]=this.folders[fPos+1];
pos[1]=-1;
}while(!nextId);
}
ChannelList._getPrevFeed=function(currentId){
var pos=this.getFeedPosition(currentId);
if(pos[1]==-1)return false;
do{
var prevId=this._getFolderPrevFeedId(pos[0],pos[1]);
if(prevId)return prevId;

if(!pos[0]){
if(this.folders.length==0)return false;
pos[0]=this.folders[this.folders.length-1];
pos[1]=pos[0].feeds.length;
}else{
var fPos=this.folders.indexOf(pos[0]);

if(fPos==0)return false;
pos[0]=this.folders[fPos-1];
pos[1]=pos[0].feeds.length;
}
}while(!prevId);
}
ChannelList._getNextFolder=function(folderId){
var fPos=this.folders.indexOf(this.FindFolder(folderId));
if(fPos==-1)return false;

if(fPos==this.folders.length-1){

for(var i=0;i<this.feeds.length;i++){
var feed=this.feeds[i];
if(this.filterFeed(feed)&&(!Actor.UserConfig.show_folder_unread||feed.unreadNum>0)){
return 0;
}
}
return false;
}else{
for(var i=fPos+1;i<this.folders.length;i++){
var folder=this.folders[i];

if(this.filterFolder(folder)&&(!Actor.UserConfig.show_folder_unread||folder.unreadNum>0)){
return folder.folderId;
}
}
return false;
}
}
ChannelList._getPrevFolder=function(folderId){
if(folderId===0){
if(this.folders.length==0)return false;
}
var fPos=this.folders.length;
if(folderId===0){
if(this.folders.length==0)return false;
}else{
fPos=this.folders.indexOf(this.FindFolder(folderId));
}

if(fPos<=0)return false;
for(var i=fPos-1;i>=0;i--){
var folder=this.folders[i];

if(this.filterFolder(folder)&&(!Actor.UserConfig.show_folder_unread||folder.unreadNum>0)){
return folder.folderId;
}
}
return false;
}
ChannelList.getNextTitle=function(){
if(this.status=='feed'){
var feedId=this._getNextFeed(this.currentSelectedId);
if(feedId){
return"<span class='separator'>|</span><span class='link_button_other' onclick='ItemList.nextFeed();'>下一频道 </span>";
}else{
return"<span class='separator'>|</span><span class='link_button_other_disabled'>下一频道 </span>"
}
}else if(this.status=='folder'){
var folderId=ChannelList._getNextFolder(this.currentSelectedId);
if(folderId===0||folderId){
return"<span class='separator'>|</span><span class='link_button_other' onclick='ItemList.nextFeed();'>下一目录 </span>";
}else{
return"<span class='separator'>|</span><span class='link_button_other_disabled'>下一目录 </span>"
}
}
}
ChannelList.getPrevTitle=function(){
if(this.status=='feed'){
var feedId=this._getPrevFeed(this.currentSelectedId);
if(feedId){
return"<span class='link_button_other' onclick='ItemList.prevFeed();'> 上一频道</span><span class='separator'>|</span>";
}else{
return"<span class='link_button_other_disabled'> 上一频道</span><span class='separator'>|</span>"
}
}else if(this.status=='folder'){
var folderId=ChannelList._getPrevFolder(this.currentSelectedId);
if(folderId){
return"<span class='link_button_other' onclick='ItemList.prevFeed();'> 上一目录</span><span class='separator'>|</span>";
}else{
return"<span class='link_button_other_disabled'> 上一目录</span><span class='separator'>|</span>"
}
}
}
ChannelList.setGoItemsView=function(){
var html=[];
html.push(ChannelList.getPrevTitle());
html.push("<span class='footer_prev_item' title='上一篇' onclick='ItemList.goPrevItem()'>　</span><span class='link_button_other' onclick='ItemList.goPrevItem()'>上一篇</span><span class='separator'>|</span><span class='link_button_other' onclick='ItemList.goNextItem()'>下一篇</span><span class='footer_next_item' title='下一篇' onclick='ItemList.goNextItem()'>　</span>&nbsp;");
html.push(ChannelList.getNextTitle());

$('itemList_footer_feed').innerHTML=html.join('');
}
ChannelList.browseNext=function(){
if(this.status=='feed'){
var feedId=this._getNextFeed(this.currentSelectedId);
if(feedId){
PageMgr.goFeed(feedId);
}
}else if(this.status=='folder'){
var folderId=this._getNextFolder(this.currentSelectedId);
if(folderId!==false){
PageMgr.goFolder(folderId);
}
}
}
ChannelList.browsePrev=function(){
if(this.status=='feed'){
var feedId=this._getPrevFeed(this.currentSelectedId);
if(feedId){
PageMgr.goFeed(feedId);
}
}else if(this.status=='folder'){
var folderId=this._getPrevFolder(this.currentSelectedId);
if(folderId!==false){
PageMgr.goFolder(folderId);
}
}
}
ChannelList.browseFeed=function(feedId){
ChannelList.status='feed';
var folder=this.getFeedFolder(feedId);
if(folder&&!this.isFolderExpanded(folder.folderId)){
this.expandFolder(folder.folderId,true);
}
ChannelList.setSelection(feedId);
ChannelList.internalBrowseFeed(feedId,null);

}
ChannelList.internalBrowseFeed=function(feedId,folderId){
var isFolder=(folderId!=null);
var func=Actor.UserConfig.show_feed_unread?ItemList.loadFeedUnreadItems:ItemList.loadFeedItems;
func(feedId,function(){
if(isFolder){
if(folderId===0)
ItemList.setTitle("根目录");
else{
ItemList.setTitle(ChannelList.FindFolder(folderId).folderName);
}
}else{
var feed=ChannelList.FindChannel(feedId);
ItemList.setTitle('<a target="_blank" class="link_button" href="'+(feed.siteLink||feed.url)+'">'+feed.title+'</a>');
}
if(ChannelList.QuickAppend.freeAdding){
ItemList.onShowList=function(){
$('context_itemList').innerHTML='<div id="modifyFolderTip" class="modifyFolderTip">成功订阅了"<span class="bold">'+PageMgr.getTitle()+'"</span> ，可将之转移到<select id="slt_ModifyFolder" class="slt_ModifyFolder"></select><a class="closeFolderTip" href="#" onclick="$(\'modifyFolderTip\').parentNode.removeChild($(\'modifyFolderTip\'));ItemList.onShowList=null;">关闭提示</a></div>';
ChannelList.Feed.initSelectTip(ItemList.cFeedId);
}
ChannelList.QuickAppend.freeAdding=null;
}
});
}
ChannelList.switchExpandFolder=function(folderId){
var list=$('ul_'+folderId);
if(list.style.display=='none'){
ChannelList.expandFolder(folderId,true);
}else{
ChannelList.expandFolder(folderId,false);
}
}
var $expandedFolders={};
ChannelList.initFolderStatus=function(folders){
if(folders&&typeof folders=="string"){
var id=folders.split(',');
id.each(function(i){$expandedFolders[i]=true;})
}
}
ChannelList.saveFolderStatus=function(folderId,expand){
var folder=this.FindFolder(folderId);
if(!folder)return;
if(expand){
if(this.isFolderExpanded(folderId))return;
$expandedFolders[folderId]=true;
}else{
if(!this.isFolderExpanded(folderId))return;
delete $expandedFolders[folderId];
}
var id=[];
for(var p in $expandedFolders){
id.push(p);
}
Actor.UserConfig.set("expand_folders",id.join(','),true,500);
}
ChannelList.isFolderExpanded=function(folderId){
return!!$expandedFolders[folderId];
}
ChannelList.expandFolder=function(folderId,expand,skipAutoCollapse){
var folder=ChannelList.FindFolder(folderId);
if(!folder)return;
if(this.isFolderExpanded(folderId)==!!expand)return;
var elFolder=$('ul_'+folderId);
if(expand){
elFolder.style.display='';
$('folder_preImg_'+folderId).className='folder_preImg_expand';
this.saveFolderStatus(folderId,true);
}else{
elFolder.style.display='none';
$('folder_preImg_'+folderId).className='folder_preImg_collapse';
this.saveFolderStatus(folderId,false);
}
}
ChannelList.QuickAppend={
appendToFolderId:null,
freeAdding:null
}
ChannelList.QuickAppend.OpenPannel=function(){
var input=$('quickFeedInput');
input.value='请输入频道地址';
input.style.color='gray';
PanelMgr.show('quickAppendFeedPannel');
input.focus();
}
ChannelList.QuickAppend.InputFocus=function(element){

if(element.value=='请输入频道地址')
element.value='';
element.style.color='';
}
ChannelList.QuickAppend.InputBlur=function(element){

if(element.value==''){
element.value='请输入频道地址';
element.style.color='gray';
}
}
ChannelList.QuickAppend.InputKeyDown=function(evt){
evt=evt||window.event;
if(evt.keyCode==13){
ChannelList.QuickAppend.FindFeed();
}else if(evt.keyCode==27){
PanelMgr.hide();
}
}
ChannelList.NormalIndexPageInputKeyDown=function(evt){
evt=evt||window.event;
if(evt.keyCode==13){
ChannelList.NormalIndexPageFindFeed();
}
}
ChannelList.NormalIndexPageFindFeed=function(){
var url=$('NormalIndexFeedInput').value;
var msg=$('NormalIndexFeedMsg');
if(url==''||url=='输入好友博客、焦点新闻、股票动态等网址，万千资讯随取所需')
{
msg.style.display='';
msg.innerHTML='<font color="red">请输入好友博客、焦点新闻、股票动态等网址。</font>';
return;
}
msg.style.display='none';

var isQQ=/^\d+$/i.test(url);
if(isQQ){
url='http://user.qzone.qq.com/'+url;
}
ChannelList.AddUrl(url.Trim());
}
ChannelList.NormalIndexPageMustReadFeed=function(){



ChannelList.ShowByLevel(3);

PageMgr.goAllFeed();



}
ChannelList.NormalIndexPageAllReadFeed=function(){
ChannelList.ShowByLevel(1);
PageMgr.goAllFeed();

}
ChannelList.QuickAppend.FindFeed=function(){
var url=$('quickFeedInput').value;
PanelMgr.hide();
if(url==''||url=='请输入频道地址'){
return;
}

var isQQ=/^\d+$/i.test(url);
if(isQQ){
url='http://user.qzone.qq.com/'+url;
}
ChannelList.AddUrl(url.Trim());
}
ChannelList.AddUrl=function(url){
if(url&&url.startsWith("Error_")){
WaitControl.SaveError("此Feed已近被合并");
return;
}

var isurl=/^(http\:\/\/|https\:\/\/)?[\w\-]+(\.[\w\-]+)+/i.test(url);
if(isurl){
if(!url.toLowerCase().startsWith("http://")&&!url.toLowerCase().startsWith("https://"))
url="http://"+url;
ChannelList.FindFeed(url);
}
else{
PageMgr.goSearchFeed(url);
}

}
ChannelList.FindFeed=function(url){
WaitControl.PannelWait();
var p={
url:url,
feedLevel:Actor.UserConfig.show_feedLevel,
folderId:ChannelList.QuickAppend.appendToFolderId||0,
feedLevel:Actor.UserConfig.show_feedLevel
};
var params='method=Feed.discoverFeed&params='+encodeURIComponent(JSON.serialize(p));
AsyncCall(interfaceUrl,params,function(res){
WaitControl.PannelEndWait();
var foundFeeds=eval('('+res.responseText+')');

if(foundFeeds.status==0||foundFeeds.data.list.length==0){

WaitControl.SaveError('未找到Feed');
return;
}


var showFolder=true;

if(foundFeeds.data.list.length>1){
PageMgr.goRelateFeed(foundFeeds.data.list);
return;
}
var feed=foundFeeds.data.list[0];
feed.unreadNum=feed.unreadNum;

if(feed.unreadNum>100)feed.unreadNum=100;
if(ChannelList.FindChannel(feed.feedId)!=null){

WaitControl.PannelEndWait();
WaitControl.SaveError('你已订阅此Feed');
showFolder=false;
}else{
if(!ChannelList.QuickAppend.appendToFolderId)ChannelList.QuickAppend.freeAdding=true;
ChannelList.addFeed(feed,ChannelList.QuickAppend.appendToFolderId||0);
}
ChannelList.QuickAppend.appendToFolderId=null;
PageMgr.goFeed(feed.feedId);

ChannelList.scrollTo(feed.feedId);

if(feed.unreadNum<=0&&Actor.UserConfig.show_folder_unread){
setTimeout("ChannelList.setFeedUnreadNum('"+feed.feedId+"',0)",2000);
}
});
}
ChannelList.markAllFeedsReaded=function(){
this.markFeedsReaded('*');
}
ChannelList.markFolderReaded=function(folderid){
var folder=ChannelList.FindFolder(folderid);
var feeds=folder.feeds;
var feedsid=[];
feeds.each(function(v){
feedsid.push(v.feedId);
});
ChannelList.markFeedsReaded(feedsid);
}
ChannelList.markFeedsReaded=function(feedIdArray){
if(feedIdArray=='*'){
var feedEntities=this.feedMap;

var isUnread=false;
for(var p in feedEntities){
if(feedEntities[p].unreadNum>0){
this.setFeedUnreadNum(feedEntities[p].feedId,0);
isUnread=true;
}
}
if(!isUnread)return;
ItemList.markShowingFeedReaded('*');
var params='method=FeedItem.markAllFeedRead';
AsyncCall(interfaceUrl,params);
}else{
var feedIdArray=feedIdArray||[ChannelList.currentSelectedId];
var feedEntities=ChannelList.getFeedsByIds(feedIdArray.join(','));
var feeds=[];

for(var p in feedEntities){
if(feedEntities[p].unreadNum>0){
feeds.push(p);
}
ChannelList.setFeedUnreadNum(feedEntities[p].feedId,0);
}
if(feeds.length==0)return;
ItemList.markShowingFeedReaded(feeds);
var p={feedId:feeds.join(',')};
var params='method=FeedItem.readAll&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params);
}


}
if(Dom.IsOpera){
JEvent.addListener(document,'mousedown',function(e){
var evt=e||window.event;
if(!JEvent.isLeftClick(evt)){
var el=JEvent.element(evt);
if(!el||!el.id)return;
if(el.id.indexOf('li_')==0){
setTimeout(function(){
ChannelList.Feed.ShowContextMenu(el,el.id.substr(3));
},50);
return true;
}
if(el.id.indexOf('folder_ul_')==0){
setTimeout(function(){
ChannelList.Folder.ShowContextMenu(el,el.id.substr(10));
},50);
return true;
}
}
});
}
ChannelList.Folder={
menu:null,
FolderID:null,
FolderName:null,
ShowContextMenu:function(target,folderid){
this.FolderID=folderid;
this.FolderName=null;
if(this.menu==null)this.initMenu();
this.menu.show();
},
initMenu:function(){
var m=new Menu({style:'menu',autoPos:true,itemOption:{style:'menuitem',enterStyle:'hovermenuitem'}});
m.addItem('新建目录...',function(){ChannelList.Folder.ToAdd();});
m.addItem('修改目录名称...',function(){ChannelList.Folder.ToModify();});
m.addItem('删除目录',function(){ChannelList.Folder.Remove();});
m.addGroupItem("menuitem_line");
m.addItem('标记全部为已读',function(){ChannelList.Folder.ModifyAllRead();});
m.addItem('设为起始页',function(){ChannelList.Folder.setDefaultEntry();});
m.addGroupItem('menuitem_line');
m.addItem('添加频道...',function(){
ChannelList.QuickAppend.appendToFolderId=ChannelList.Folder.FolderID;
ChannelList.QuickAppend.OpenPannel();
});
this.menu=m;
},

setDefaultEntry:function(){
Actor.UserConfig.set("default_entry","folder:"+this.FolderID);
},
ToModify:function(){
PanelMgr.show('AddFeedFolder',{
hideCallback:function(){$('ipt_FolderName').value="";}
});
var ipt=$('ipt_FolderName');
ipt.value=$('folder_'+this.FolderID).innerHTML.stripTags();
ipt.focus();
ipt.select();
},
Modify:function(){
var FolderName=$('ipt_FolderName').value;
if(FolderName==''){alert('请输入目录名称');$('ipt_FolderName').focus();return;}

var f=ChannelList.FindFolderByNameStrict(FolderName);
if(f&&f.folderId!=this.FolderID){alert('目录已存在');$('ipt_FolderName').focus();return;}
this.FolderName=FolderName;
PanelMgr.hide();
var d=$('folder_'+this.FolderID);
if(d){
var folder=ChannelList.FindFolder(this.FolderID);
d.title=FolderName;
d.innerHTML='<a>'+FolderName+'</a>';
}
var p={folderId:this.FolderID,folderName:encodeURIComponent(FolderName),sortMethod:3};
var params='method=Actor.modifyFolder&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
var folders=ChannelList.folders;
for(i=0;i<folders.length;i++){
if(folders[i].folderId==ChannelList.Folder.FolderID){
folders[i].folderName=ChannelList.Folder.FolderName;
break;
}
}
this.FolderID=null;
});
},

ModifyAllRead:function(){
ChannelList.markFolderReaded(this.FolderID);
},
ToAdd:function(feedid,subOption){
this.FolderID=null;
PanelMgr.show('AddFeedFolder',{
hideCallback:function(){$('ipt_FolderName').value="";}
});
$('ipt_FolderName').focus();
this.FeedIDForAdd=feedid;
this.SubscribeOption=subOption;
},
SubscribeOption:null,
FeedIDForAdd:null,
Add:function(){
var FolderName=$('ipt_FolderName').value;
if(FolderName==''){alert('请输入目录名称');$('ipt_FolderName').focus();return;}


if(ChannelList.FindFolderByNameStrict(FolderName)!=null){alert('目录已存在');$('ipt_FolderName').focus();return;}

PanelMgr.hide();
ChannelList.addFolder(FolderName,function(folder){
folder.unreadNum=0;
ChannelList.scrollTo(folder.folderId,true);
var f=ChannelList.Folder;
var fId=f.FeedIDForAdd;
if(fId){

if(!f.SubscribeOption){
ChannelList.Feed.FeedID=fId;
ChannelList.Feed.MoveToFolder(folder.folderId,fId);
}else{
ChannelList.subFeeds(fId,folder,f.SubscribeOption.onSuccess,f.SubscribeOption.onFailure);
}
f.FeedIDForAdd=null;
f.SubscribeOption=null;
}
});
},
Remove:function(){
this.menu.hide();
var folder=ChannelList.FindFolder(this.FolderID);
var tip="目录“"+folder.folderName+"”有"+folder.feeds.length+"个频道，你确定要删除吗?";
if(window.confirm(tip)){

ChannelList.removeFolder(this.FolderID);
WaitControl.SaveEndMsg('取消订阅完成');

for(var i=0;i<folder.feeds.length;i++){
if(ItemList.feedIsShowing(folder.feeds[i].feedId)){
PageMgr.goIndexPage();
break;
}
}
this.FolderID=null;
}
},
Save:function(){
if(this.FolderID||this.FolderID>0){
var folder=ChannelList.FindFolder(this.FolderID);
var ipt=$('ipt_FolderName');
if(ipt.value==folder.title){
PanelMgr.hide();
return;
}
this.Modify();
}else{
this.Add();
}
},
Keydown:function(evt){
evt=evt||window.event;
var kc=evt.keyCode;
if(kc==27)PanelMgr.hide();
else if(kc==13)this.Save();
}
};
ChannelList.Feed={
FeedID:null,
menu:null,
menutype:null,
ShowContextMenu:function(target,feedid){
this.FeedID=feedid;
if(this.menu==null)this.initMenu();
this.menu.show();
this.LoadFeedFolder('slt_FolderMoveTo');
this.SetCurrentFolder('slt_FolderMoveTo');


this.LoadFeedLevel('slt_FeedLevel');
this.SetCurrentFeedLevel('slt_FeedLevel');
},
ShowDropMenu:function(target,feedid,evt){
this.FeedID=feedid;
if(this.menu==null)this.initMenu();
this.menu.show();
evt=evt||window.event;
var element=evt.target||evt.srcElement;
var pos=Dom.getXY(element);
var droplist=this.menu._element;
pos[1]+=element.offsetHeight;
pos[0]=pos[0]+element.offsetWidth-droplist.offsetWidth;
this.menu.setXY(pos[0],pos[1]);
this.LoadFeedFolder('slt_FolderMoveTo');
this.SetCurrentFolder('slt_FolderMoveTo');


this.LoadFeedLevel('slt_FeedLevel');
this.SetCurrentFeedLevel('slt_FeedLevel');

return false;
},
initMenu:function(){
if(this.menu)this.menu.close();
var m=new Menu({style:'menu',autoPos:true,itemOption:{style:'menuitem',enterStyle:'hovermenuitem'}});
m.addItem(new MenuItem('<select id="slt_FolderMoveTo" style="width:100%"></select>',{
style:'',
title:'选择目录',
onclick:function(e){e.cancel=true;}
}));

m.addItem(new MenuItem('<select id="slt_FeedLevel" style="width:100%"></select>',{
style:'',
title:'选择阅读级别',
onclick:function(e){e.cancel=true;}
}));

m.addItem('标记全部为已读',function(){ChannelList.Feed.ModifyAllRead();});
m.addItem('设为起始页',function(){ChannelList.Feed.setDefaultEntry();});

m.addItem('修改频道设置...',function(){PageMgr.goFeedProfile(ChannelList.Feed.FeedID);});
m.addItem('删除频道',function(){ChannelList.Feed.Remove();});
m.addGroupItem("menuitem_line");
m.addItem('发送反馈意见...',function(){error_report_show(null,null,ChannelList.Feed.FeedID);});
m.addItem('推荐给好友...',function(){ChannelList.showSendFeedPanel([ChannelList.Feed.FeedID]);});
m.addItem('<a id="menu_about_feed" class="menuitem" href="#" target="_blank">关于此频道</a>');
JEvent.addListener(m,"onhide",function(){
$('slt_FolderMoveTo').onchange=null;

$('slt_FeedLevel').onchange=null;
});


JEvent.addListener(m,"onpopup",function(){
$('menu_about_feed').href="http://bang.xianguo.com/feed/"+ChannelList.Feed.FeedID+"/";
});

this.menu=m;
this.menutype='context';
},
initDropMenu:function(){
this.initMenu();

},

setDefaultEntry:function(){
Actor.UserConfig.set("default_entry","feed:"+this.FeedID);
},
ToModify:function(){
if(Actor.demandLogin()){
return;
}
PanelMgr.show('ModifyFeedName',{
hideCallback:function(){$('ipt_FeedName').value="";}
});
var ipt=$('ipt_FeedName');
var el=$('Channel_'+this.FeedID);

if(el.textContent!=null){
ipt.value=el.textContent.Trim();
}else{
ipt.value=el.innerText.Trim();
}
ipt.focus();
ipt.select();
},
ModifyName:function(){
var FeedName=$('ipt_FeedName').value;
if(FeedName==''){alert('请输入频道名称');$('ipt_FeedName').focus();return;}
PanelMgr.hide();
var d=$('Channel_'+this.FeedID);
if(d){
var feed=ChannelList.FindChannel(this.FeedID);
feed.title=FeedName;
ChannelList.refreshFeedUI(this.FeedID);
if(ItemList.feedIsShowing(this.FeedID)){
ItemList.setTitle('<a class="link_button" href="'+(feed.siteLink||feed.url)+'" target="_blank">'+feed.title+'</a>');
}
}
var p={feedId:this.FeedID,title:FeedName};
ChannelList.modifyFeed(p);
this.FeedID=null;
},

modifyFeedProperty:function(){
if(Actor.demandLogin()){
return;
}
var t=$('feed.title');
if(!t)return null;
if(t.value==''){
alert('必须输入频道名称！');
t.focus();
return;
}
var fd=ChannelList.FindChannel(t.feedId);
var feed={
feedId:fd.feedId,
title:t.value,
description:$('feed.description').value,
publicLevel:$('feed.publicLevel_0').checked?0:2,
level:$('feed.level_1').checked?1:($('feed.level_2').checked?2:3)
};

feed.radarAlert=$('feed.radarAlert').checked?1:0;
feed.wapRead=$('feed.wapRead').checked?1:0;

Dom.enableButton('feed.submit',false);
ChannelList.modifyFeed(feed,function(){
Dom.enableButton('feed.submit',true);
fd.title=feed.title;
fd.description=feed.description;
ChannelList.refreshFeedUI(fd.feedId);
WaitControl.SaveEndMsg('修改成功！');
PageMgr.goFeed(feed.feedId);
ChannelList.feedMap[feed.feedId].publicLevel=feed.publicLevel;
ChannelList.feedMap[feed.feedId].level=feed.level;

ChannelList.feedMap[feed.feedId].radarAlert=feed.radarAlert;
ChannelList.feedMap[feed.feedId].wapRead=feed.wapRead;

ChannelList.ShowList();
});
var folder=ChannelList.getFeedFolder(t.feedId);
var folderId=$('feed.folders').value;
if((!folder&&folderId>0)||(folder&&folder.folderId!=folderId)){

ChannelList.moveFeed(fd.feedId,0,folderId);

ChannelList.modifyFeed({feedId:fd.feedId,folderId:folderId});
}
},
ModifyAllRead:function(){

ChannelList.markFeedsReaded([this.FeedID]);
},
publicFeed:function(ispublic){
var feed=ChannelList.FindChannel(this.FeedID);
feed.publicLevel=ispublic==true?2:0;
var p={feedId:this.FeedID,publicLevel:feed.publicLevel};
ChannelList.modifyFeed(p);
},
Remove:function(hideConfirm){
if(this.menu!=null)this.menu.hide();
var feed=ChannelList.feedMap[this.FeedID];
if(hideConfirm||window.confirm('你确定要删除频道“'+feed.title+'”吗？')){
var el=$('showSubFolder');
if(el!=null){
el.style.display='none';
PageMgr.adjustMainSize();
}
ChannelList.removeFeed(this.FeedID);
WaitControl.SaveEndMsg('取消订阅完成');

if(ItemList.feedIsShowing(this.FeedID)){
PageMgr.goIndexPage();
}

this.FeedID=null;
}
},

commendFeed:function(feedId)
{

var tagsObj=$('txtSftpTags');
var tags=tagsObj.value;

var spanMyTags=$('spanMyTags');


if(tags=='')
{
alert("没有输入任何标签");
tagsObj.focus();
return;
}


if(!feedId||feedId==0)
{
alert("频道ID是无效的");
return;
}

var p={"feedId":feedId,"tags":tags};
var params='method=Feed.commendFeed&params='+JSON.serialize(p);


AsyncGet(interfaceUrl,params,
function(data){
alert(data);
},
function(error){
alert(error);
});

},


SetCurrentFeedLevel:function(ID){

var select=$(ID);
var level=ChannelList.getFeedLevel(this.FeedID);

select.value=level;
},
LoadFeedLevel:function(ID){


var folders=ChannelList.folders;
var select=$(ID);


select.length=0;
if(!select.onchange)
{
select.onchange=function(ex){


if(ChannelList.Feed.menu)ChannelList.Feed.menu.hide();

var p={feedId:ChannelList.Feed.FeedID,level:select.value};


ChannelList.modifyFeedsShowLevel([ChannelList.Feed.FeedID],select.value);

var ChannelUL=$('Channel_ul_'+ChannelList.Feed.FeedID);
if(window.navigator.userAgent.indexOf("MSIE")>=1)
{

ChannelUL.childNodes[0].className="feed_level_"+select.value;
}
else
{

ChannelUL.childNodes[1].className="feed_level_"+select.value;
}
ChannelList.reShowList();


ChannelList.Feed.FeedID=null;
}
}

this.AddFeedLevel({levelName:'一般级别',levelId:1},ID);
this.AddFeedLevel({levelName:'关注级别',levelId:2},ID);
this.AddFeedLevel({levelName:'必读级别',levelId:3},ID);
},
AddFeedLevel:function(level,ID){

if(level==null||level.levelName==null||level.levelName=='')return;
var select=$(ID);

if(select.options.length==3)return;
select.options[select.length]=new Option(level.levelName,level.levelId);
},
SetCurrentFolder:function(ID){
var select=$(ID);
var folder=ChannelList.getFeedFolder(this.FeedID);
if(folder)select.value=folder.folderId;
},
LoadFeedFolder:function(ID,fID){
var folders=ChannelList.folders;

var select=$(ID);
select.length=0;
if(!select.onchange)
select.onchange=function(ex){
if(this.value=='-1'){
if(ChannelList.Feed.menu)ChannelList.Feed.menu.hide();
ChannelList.Folder.ToAdd(ChannelList.Feed.FeedID||fID);
ChannelList.Feed.FeedID=null;
}else{ChannelList.Feed.MoveToFolder(this.value,fID);}

if(this.id=='slt_ModifyFolder'){
$('modifyFolderTip').parentNode.removeChild($('modifyFolderTip'));
ItemList.onShowList=null;
}
};

this.AddFeedFolder({folderName:'根目录',folderId:0},ID);
for(var i=0;i<folders.length;i++)
this.AddFeedFolder(folders[i],ID);
this.AddFeedFolder({folderName:'-新建目录-',folderId:-1},ID);
},
AddFeedFolder:function(folder,ID){
if(folder==null||folder.folderName==null||folder.folderName=='')return;
var select=$(ID);

select.options[select.length]=new Option(folder.folderName,folder.folderId);
},
MoveToFolder:function(folderid,fId){
ChannelList.moveFeed(this.FeedID||fId,0,folderid);

ChannelList.modifyFeed({feedId:this.FeedID||fId,folderId:folderid});
if(this.menu)this.menu.hide();
},
Keydown:function(evt){
evt=evt||window.event;
var kc=evt.keyCode;
if(kc==27)PanelMgr.hide();
else if(kc==13)this.ModifyName();
},
initSelectTip:function(feedid){
this.FeedID=feedid;
this.LoadFeedFolder('slt_ModifyFolder',feedid);
}
};

ChannelList.previewFeed=function(feedId,title,url){

if(this.FindChannel(feedId)){
this.browseFeed(feedId);
this.scrollTo(feedId,false);
return;
}
open("http://bang.xianguo.com/feed/"+feedId+"/","bang");
}
ChannelList.loadFeed=function(feedId,title,url){
if(this.FindChannel(feedId)){
this.browseFeed(feedId);
this.scrollTo(feedId,false);
}else{
ChannelList.previewFeed(feedId,title,url);
}
}
var ChinesePY={
__pyCache:{},
strChineseFirstPY:"YDYQSXMWZSSXJBYMGCCZQPSSQBYCDSCDQLDYLYBSSJGYZZJJFKCCLZDHWDWZJLJPFYYNWJJTMYHZWZHFLZPPQHGSCYYYNJQYXXGJHHSDSJNKKTMOMLCRXYPSNQSECCQZGGLLYJLMYZZSECYKYYHQWJSSGGYXYZYJWWKDJHYCHMYXJTLXJYQBYXZLDWRDJRWYSRLDZJPCBZJJBRCFTLECZSTZFXXZHTRQHYBDLYCZSSYMMRFMYQZPWWJJYFCRWFDFZQPYDDWYXKYJAWJFFXYPSFTZYHHYZYSWCJYXSCLCXXWZZXNBGNNXBXLZSZSBSGPYSYZDHMDZBQBZCWDZZYYTZHBTSYYBZGNTNXQYWQSKBPHHLXGYBFMJEBJHHGQTJCYSXSTKZHLYCKGLYSMZXYALMELDCCXGZYRJXSDLTYZCQKCNNJWHJTZZCQLJSTSTBNXBTYXCEQXGKWJYFLZQLYHYXSPSFXLMPBYSXXXYDJCZYLLLSJXFHJXPJBTFFYABYXBHZZBJYZLWLCZGGBTSSMDTJZXPTHYQTGLJSCQFZKJZJQNLZWLSLHDZBWJNCJZYZSQQYCQYRZCJJWYBRTWPYFTWEXCSKDZCTBZHYZZYYJXZCFFZZMJYXXSDZZOTTBZLQWFCKSZSXFYRLNYJMBDTHJXSQQCCSBXYYTSYFBXDZTGBCNSLCYZZPSAZYZZSCJCSHZQYDXLBPJLLMQXTYDZXSQJTZPXLCGLQTZWJBHCTSYJSFXYEJJTLBGXSXJMYJQQPFZASYJNTYDJXKJCDJSZCBARTDCLYJQMWNQNCLLLKBYBZZSYHQQLTWLCCXTXLLZNTYLNEWYZYXCZXXGRKRMTCNDNJTSYYSSDQDGHSDBJGHRWRQLYBGLXHLGTGXBQJDZPYJSJYJCTMRNYMGRZJCZGJMZMGXMPRYXKJNYMSGMZJYMKMFXMLDTGFBHCJHKYLPFMDXLQJJSMTQGZSJLQDLDGJYCALCMZCSDJLLNXDJFFFFJCZFMZFFPFKHKGDPSXKTACJDHHZDDCRRCFQYJKQCCWJDXHWJLYLLZGCFCQDSMLZPBJJPLSBCJGGDCKKDEZSQCCKJGCGKDJTJDLZYCXKLQSCGJCLTFPCQCZGWPJDQYZJJBYJHSJDZWGFSJGZKQCCZLLPSPKJGQJHZZLJPLGJGJJTHJJYJZCZMLZLYQBGJWMLJKXZDZNJQSYZMLJLLJKYWXMKJLHSKJGBMCLYYMKXJQLBMLLKMDXXKWYXYSLMLPSJQQJQXYXFJTJDXMXXLLCXQBSYJBGWYMBGGBCYXPJYGPEPFGDJGBHBNSQJYZJKJKHXQFGQZKFHYGKHDKLLSDJQXPQYKYBNQSXQNSZSWHBSXWHXWBZZXDMNSJBSBKBBZKLYLXGWXDRWYQZMYWSJQLCJXXJXKJEQXSCYETLZHLYYYSDZPAQYZCMTLSHTZCFYZYXYLJSDCJQAGYSLCQLYYYSHMRQQKLDXZSCSSSYDYCJYSFSJBFRSSZQSBXXPXJYSDRCKGJLGDKZJZBDKTCSYQPYHSTCLDJDHMXMCGXYZHJDDTMHLTXZXYLYMOHYJCLTYFBQQXPFBDFHHTKSQHZYYWCNXXCRWHOWGYJLEGWDQCWGFJYCSNTMYTOLBYGWQWESJPWNMLRYDZSZTXYQPZGCWXHNGPYXSHMYQJXZTDPPBFYHZHTJYFDZWKGKZBLDNTSXHQEEGZZYLZMMZYJZGXZXKHKSTXNXXWYLYAPSTHXDWHZYMPXAGKYDXBHNHXKDPJNMYHYLPMGOCSLNZHKXXLPZZLBMLSFBHHGYGYYGGBHSCYAQTYWLXTZQCEZYDQDQMMHTKLLSZHLSJZWFYHQSWSCWLQAZYNYTLSXTHAZNKZZSZZLAXXZWWCTGQQTDDYZTCCHYQZFLXPSLZYGPZSZNGLNDQTBDLXGTCTAJDKYWNSYZLJHHZZCWNYYZYWMHYCHHYXHJKZWSXHZYXLYSKQYSPSLYZWMYPPKBYGLKZHTYXAXQSYSHXASMCHKDSCRSWJPWXSGZJLWWSCHSJHSQNHCSEGNDAQTBAALZZMSSTDQJCJKTSCJAXPLGGXHHGXXZCXPDMMHLDGTYBYSJMXHMRCPXXJZCKZXSHMLQXXTTHXWZFKHCCZDYTCJYXQHLXDHYPJQXYLSYYDZOZJNYXQEZYSQYAYXWYPDGXDDXSPPYZNDLTWRHXYDXZZJHTCXMCZLHPYYYYMHZLLHNXMYLLLMDCPPXHMXDKYCYRDLTXJCHHZZXZLCCLYLNZSHZJZZLNNRLWHYQSNJHXYNTTTKYJPYCHHYEGKCTTWLGQRLGGTGTYGYHPYHYLQYQGCWYQKPYYYTTTTLHYHLLTYTTSPLKYZXGZWGPYDSSZZDQXSKCQNMJJZZBXYQMJRTFFBTKHZKBXLJJKDXJTLBWFZPPTKQTZTGPDGNTPJYFALQMKGXBDCLZFHZCLLLLADPMXDJHLCCLGYHDZFGYDDGCYYFGYDXKSSEBDHYKDKDKHNAXXYBPBYYHXZQGAFFQYJXDMLJCSQZLLPCHBSXGJYNDYBYQSPZWJLZKSDDTACTBXZDYZYPJZQSJNKKTKNJDJGYYPGTLFYQKASDNTCYHBLWDZHBBYDWJRYGKZYHEYYFJMSDTYFZJJHGCXPLXHLDWXXJKYTCYKSSSMTWCTTQZLPBSZDZWZXGZAGYKTYWXLHLSPBCLLOQMMZSSLCMBJCSZZKYDCZJGQQDSMCYTZQQLWZQZXSSFPTTFQMDDZDSHDTDWFHTDYZJYQJQKYPBDJYYXTLJHDRQXXXHAYDHRJLKLYTWHLLRLLRCXYLBWSRSZZSYMKZZHHKYHXKSMDSYDYCJPBZBSQLFCXXXNXKXWYWSDZYQOGGQMMYHCDZTTFJYYBGSTTTYBYKJDHKYXBELHTYPJQNFXFDYKZHQKZBYJTZBXHFDXKDASWTAWAJLDYJSFHBLDNNTNQJTJNCHXFJSRFWHZFMDRYJYJWZPDJKZYJYMPCYZNYNXFBYTFYFWYGDBNZZZDNYTXZEMMQBSQEHXFZMBMFLZZSRXYMJGSXWZJSPRYDJSJGXHJJGLJJYNZZJXHGXKYMLPYYYCXYTWQZSWHWLYRJLPXSLSXMFSWWKLCTNXNYNPSJSZHDZEPTXMYYWXYYSYWLXJQZQXZDCLEEELMCPJPCLWBXSQHFWWTFFJTNQJHJQDXHWLBYZNFJLALKYYJLDXHHYCSTYYWNRJYXYWTRMDRQHWQCMFJDYZMHMYYXJWMYZQZXTLMRSPWWCHAQBXYGZYPXYYRRCLMPYMGKSJSZYSRMYJSNXTPLNBAPPYPYLXYYZKYNLDZYJZCZNNLMZHHARQMPGWQTZMXXMLLHGDZXYHXKYXYCJMFFYYHJFSBSSQLXXNDYCANNMTCJCYPRRNYTYQNYYMBMSXNDLYLYSLJRLXYSXQMLLYZLZJJJKYZZCSFBZXXMSTBJGNXYZHLXNMCWSCYZYFZLXBRNNNYLBNRTGZQYSATSWRYHYJZMZDHZGZDWYBSSCSKXSYHYTXXGCQGXZZSHYXJSCRHMKKBXCZJYJYMKQHZJFNBHMQHYSNJNZYBKNQMCLGQHWLZNZSWXKHLJHYYBQLBFCDSXDLDSPFZPSKJYZWZXZDDXJSMMEGJSCSSMGCLXXKYYYLNYPWWWGYDKZJGGGZGGSYCKNJWNJPCXBJJTQTJWDSSPJXZXNZXUMELPXFSXTLLXCLJXJJLJZXCTPSWXLYDHLYQRWHSYCSQYYBYAYWJJJQFWQCQQCJQGXALDBZZYJGKGXPLTZYFXJLTPADKYQHPMATLCPDCKBMTXYBHKLENXDLEEGQDYMSAWHZMLJTWYGXLYQZLJEEYYBQQFFNLYXRDSCTGJGXYYNKLLYQKCCTLHJLQMKKZGCYYGLLLJDZGYDHZWXPYSJBZKDZGYZZHYWYFQYTYZSZYEZZLYMHJJHTSMQWYZLKYYWZCSRKQYTLTDXWCTYJKLWSQZWBDCQYNCJSRSZJLKCDCDTLZZZACQQZZDDXYPLXZBQJYLZLLLQDDZQJYJYJZYXNYYYNYJXKXDAZWYRDLJYYYRJLXLLDYXJCYWYWNQCCLDDNYYYNYCKCZHXXCCLGZQJGKWPPCQQJYSBZZXYJSQPXJPZBSBDSFNSFPZXHDWZTDWPPTFLZZBZDMYYPQJRSDZSQZSQXBDGCPZSWDWCSQZGMDHZXMWWFYBPDGPHTMJTHZSMMBGZMBZJCFZWFZBBZMQCFMBDMCJXLGPNJBBXGYHYYJGPTZGZMQBQTCGYXJXLWZKYDPDYMGCFTPFXYZTZXDZXTGKMTYBBCLBJASKYTSSQYYMSZXFJEWLXLLSZBQJJJAKLYLXLYCCTSXMCWFKKKBSXLLLLJYXTYLTJYYTDPJHNHNNKBYQNFQYYZBYYESSESSGDYHFHWTCJBSDZZTFDMXHCNJZYMQWSRYJDZJQPDQBBSTJGGFBKJBXTGQHNGWJXJGDLLTHZHHYYYYYYSXWTYYYCCBDBPYPZYCCZYJPZYWCBDLFWZCWJDXXHYHLHWZZXJTCZLCDPXUJCZZZLYXJJTXPHFXWPYWXZPTDZZBDZCYHJHMLXBQXSBYLRDTGJRRCTTTHYTCZWMXFYTWWZCWJWXJYWCSKYBZSCCTZQNHXNWXXKHKFHTSWOCCJYBCMPZZYKBNNZPBZHHZDLSYDDYTYFJPXYNGFXBYQXCBHXCPSXTYZDMKYSNXSXLHKMZXLYHDHKWHXXSSKQYHHCJYXGLHZXCSNHEKDTGZXQYPKDHEXTYKCNYMYYYPKQYYYKXZLTHJQTBYQHXBMYHSQCKWWYLLHCYYLNNEQXQWMCFBDCCMLJGGXDQKTLXKGNQCDGZJWYJJLYHHQTTTNWCHMXCXWHWSZJYDJCCDBQCDGDNYXZTHCQRXCBHZTQCBXWGQWYYBXHMBYMYQTYEXMQKYAQYRGYZSLFYKKQHYSSQYSHJGJCNXKZYCXSBXYXHYYLSTYCXQTHYSMGSCPMMGCCCCCMTZTASMGQZJHKLOSQYLSWTMXSYQKDZLJQQYPLSYCZTCQQPBBQJZCLPKHQZYYXXDTDDTSJCXFFLLCHQXMJLWCJCXTSPYCXNDTJSHJWXDQQJSKXYAMYLSJHMLALYKXCYYDMNMDQMXMCZNNCYBZKKYFLMCHCMLHXRCJJHSYLNMTJZGZGYWJXSRXCWJGJQHQZDQJDCJJZKJKGDZQGJJYJYLXZXXCDQHHHEYTMHLFSBDJSYYSHFYSTCZQLPBDRFRZTZYKYWHSZYQKWDQZRKMSYNBCRXQBJYFAZPZZEDZCJYWBCJWHYJBQSZYWRYSZPTDKZPFPBNZTKLQYHBBZPNPPTYZZYBQNYDCPJMMCYCQMCYFZZDCMNLFPBPLNGQJTBTTNJZPZBBZNJKLJQYLNBZQHKSJZNGGQSZZKYXSHPZSNBCGZKDDZQANZHJKDRTLZLSWJLJZLYWTJNDJZJHXYAYNCBGTZCSSQMNJPJYTYSWXZFKWJQTKHTZPLBHSNJZSYZBWZZZZLSYLSBJHDWWQPSLMMFBJDWAQYZTCJTBNNWZXQXCDSLQGDSDPDZHJTQQPSWLYYJZLGYXYZLCTCBJTKTYCZJTQKBSJLGMGZDMCSGPYNJZYQYYKNXRPWSZXMTNCSZZYXYBYHYZAXYWQCJTLLCKJJTJHGDXDXYQYZZBYWDLWQCGLZGJGQRQZCZSSBCRPCSKYDZNXJSQGXSSJMYDNSTZTPBDLTKZWXQWQTZEXNQCZGWEZKSSBYBRTSSSLCCGBPSZQSZLCCGLLLZXHZQTHCZMQGYZQZNMCOCSZJMMZSQPJYGQLJYJPPLDXRGZYXCCSXHSHGTZNLZWZKJCXTCFCJXLBMQBCZZWPQDNHXLJCTHYZLGYLNLSZZPCXDSCQQHJQKSXZPBAJYEMSMJTZDXLCJYRYYNWJBNGZZTMJXLTBSLYRZPYLSSCNXPHLLHYLLQQZQLXYMRSYCXZLMMCZLTZSDWTJJLLNZGGQXPFSKYGYGHBFZPDKMWGHCXMSGDXJMCJZDYCABXJDLNBCDQYGSKYDQTXDJJYXMSZQAZDZFSLQXYJSJZYLBTXXWXQQZBJZUFBBLYLWDSLJHXJYZJWTDJCZFQZQZZDZSXZZQLZCDZFJHYSPYMPQZMLPPLFFXJJNZZYLSJEYQZFPFZKSYWJJJHRDJZZXTXXGLGHYDXCSKYSWMMZCWYBAZBJKSHFHJCXMHFQHYXXYZFTSJYZFXYXPZLCHMZMBXHZZSXYFYMNCWDABAZLXKTCSHHXKXJJZJSTHYGXSXYYHHHJWXKZXSSBZZWHHHCWTZZZPJXSNXQQJGZYZYWLLCWXZFXXYXYHXMKYYSWSQMNLNAYCYSPMJKHWCQHYLAJJMZXHMMCNZHBHXCLXTJPLTXYJHDYYLTTXFSZHYXXSJBJYAYRSMXYPLCKDUYHLXRLNLLSTYZYYQYGYHHSCCSMZCTZQXKYQFPYYRPFFLKQUNTSZLLZMWWTCQQYZWTLLMLMPWMBZSSTZRBPDDTLQJJBXZCSRZQQYGWCSXFWZLXCCRSZDZMCYGGDZQSGTJSWLJMYMMZYHFBJDGYXCCPSHXNZCSBSJYJGJMPPWAFFYFNXHYZXZYLREMZGZCYZSSZDLLJCSQFNXZKPTXZGXJJGFMYYYSNBTYLBNLHPFZDCYFBMGQRRSSSZXYSGTZRNYDZZCDGPJAFJFZKNZBLCZSZPSGCYCJSZLMLRSZBZZLDLSLLYSXSQZQLYXZLSKKBRXBRBZCYCXZZZEEYFGKLZLYYHGZSGZLFJHGTGWKRAAJYZKZQTSSHJJXDCYZUYJLZYRZDQQHGJZXSSZBYKJPBFRTJXLLFQWJHYLQTYMBLPZDXTZYGBDHZZRBGXHWNJTJXLKSCFSMWLSDQYSJTXKZSCFWJLBXFTZLLJZLLQBLSQMQQCGCZFPBPHZCZJLPYYGGDTGWDCFCZQYYYQYSSCLXZSKLZZZGFFCQNWGLHQYZJJCZLQZZYJPJZZBPDCCMHJGXDQDGDLZQMFGPSYTSDYFWWDJZJYSXYYCZCYHZWPBYKXRYLYBHKJKSFXTZJMMCKHLLTNYYMSYXYZPYJQYCSYCWMTJJKQYRHLLQXPSGTLYYCLJSCPXJYZFNMLRGJJTYZBXYZMSJYJHHFZQMSYXRSZCWTLRTQZSSTKXGQKGSPTGCZNJSJCQCXHMXGGZTQYDJKZDLBZSXJLHYQGGGTHQSZPYHJHHGYYGKGGCWJZZYLCZLXQSFTGZSLLLMLJSKCTBLLZZSZMMNYTPZSXQHJCJYQXYZXZQZCPSHKZZYSXCDFGMWQRLLQXRFZTLYSTCTMJCXJJXHJNXTNRZTZFQYHQGLLGCXSZSJDJLJCYDSJTLNYXHSZXCGJZYQPYLFHDJSBPCCZHJJJQZJQDYBSSLLCMYTTMQTBHJQNNYGKYRQYQMZGCJKPDCGMYZHQLLSLLCLMHOLZGDYYFZSLJCQZLYLZQJESHNYLLJXGJXLYSYYYXNBZLJSSZCQQCJYLLZLTJYLLZLLBNYLGQCHXYYXOXCXQKYJXXXYKLXSXXYQXCYKQXQCSGYXXYQXYGYTQOHXHXPYXXXULCYEYCHZZCBWQBBWJQZSCSZSSLZYLKDESJZWMYMCYTSDSXXSCJPQQSQYLYYZYCMDJDZYWCBTJSYDJKCYDDJLBDJJSODZYSYXQQYXDHHGQQYQHDYXWGMMMAJDYBBBPPBCMUUPLJZSMTXERXJMHQNUTPJDCBSSMSSSTKJTSSMMTRCPLZSZMLQDSDMJMQPNQDXCFYNBFSDQXYXHYAYKQYDDLQYYYSSZBYDSLNTFQTZQPZMCHDHCZCWFDXTMYQSPHQYYXSRGJCWTJTZZQMGWJJTJHTQJBBHWZPXXHYQFXXQYWYYHYSCDYDHHQMNMTMWCPBSZPPZZGLMZFOLLCFWHMMSJZTTDHZZYFFYTZZGZYSKYJXQYJZQBHMBZZLYGHGFMSHPZFZSNCLPBQSNJXZSLXXFPMTYJYGBXLLDLXPZJYZJYHHZCYWHJYLSJEXFSZZYWXKZJLUYDTMLYMQJPWXYHXSKTQJEZRPXXZHHMHWQPWQLYJJQJJZSZCPHJLCHHNXJLQWZJHBMZYXBDHHYPZLHLHLGFWLCHYYTLHJXCJMSCPXSTKPNHQXSRTYXXTESYJCTLSSLSTDLLLWWYHDHRJZSFGXTSYCZYNYHTDHWJSLHTZDQDJZXXQHGYLTZPHCSQFCLNJTCLZPFSTPDYNYLGMJLLYCQHYSSHCHYLHQYQTMZYPBYWRFQYKQSYSLZDQJMPXYYSSRHZJNYWTQDFZBWWTWWRXCWHGYHXMKMYYYQMSMZHNGCEPMLQQMTCWCTMMPXJPJJHFXYYZSXZHTYBMSTSYJTTQQQYYLHYNPYQZLCYZHZWSMYLKFJXLWGXYPJYTYSYXYMZCKTTWLKSMZSYLMPWLZWXWQZSSAQSYXYRHSSNTSRAPXCPWCMGDXHXZDZYFJHGZTTSBJHGYZSZYSMYCLLLXBTYXHBBZJKSSDMALXHYCFYGMQYPJYCQXJLLLJGSLZGQLYCJCCZOTYXMTMTTLLWTGPXYMZMKLPSZZZXHKQYSXCTYJZYHXSHYXZKXLZWPSQPYHJWPJPWXQQYLXSDHMRSLZZYZWTTCYXYSZZSHBSCCSTPLWSSCJCHNLCGCHSSPHYLHFHHXJSXYLLNYLSZDHZXYLSXLWZYKCLDYAXZCMDDYSPJTQJZLNWQPSSSWCTSTSZLBLNXSMNYYMJQBQHRZWTYYDCHQLXKPZWBGQYBKFCMZWPZLLYYLSZYDWHXPSBCMLJBSCGBHXLQHYRLJXYSWXWXZSLDFHLSLYNJLZYFLYJYCDRJLFSYZFSLLCQYQFGJYHYXZLYLMSTDJCYHBZLLNWLXXYGYYHSMGDHXXHHLZZJZXCZZZCYQZFNGWPYLCPKPYYPMCLQKDGXZGGWQBDXZZKZFBXXLZXJTPJPTTBYTSZZDWSLCHZHSLTYXHQLHYXXXYYZYSWTXZKHLXZXZPYHGCHKCFSYHUTJRLXFJXPTZTWHPLYXFCRHXSHXKYXXYHZQDXQWULHYHMJTBFLKHTXCWHJFWJCFPQRYQXCYYYQYGRPYWSGSUNGWCHKZDXYFLXXHJJBYZWTSXXNCYJJYMSWZJQRMHXZWFQSYLZJZGBHYNSLBGTTCSYBYXXWXYHXYYXNSQYXMQYWRGYQLXBBZLJSYLPSYTJZYHYZAWLRORJMKSCZJXXXYXCHDYXRYXXJDTSQFXLYLTSFFYXLMTYJMJUYYYXLTZCSXQZQHZXLYYXZHDNBRXXXJCTYHLBRLMBRLLAXKYLLLJLYXXLYCRYLCJTGJCMTLZLLCYZZPZPCYAWHJJFYBDYYZSMPCKZDQYQPBPCJPDCYZMDPBCYYDYCNNPLMTMLRMFMMGWYZBSJGYGSMZQQQZTXMKQWGXLLPJGZBQCDJJJFPKJKCXBLJMSWMDTQJXLDLPPBXCWRCQFBFQJCZAHZGMYKPHYYHZYKNDKZMBPJYXPXYHLFPNYYGXJDBKXNXHJMZJXSTRSTLDXSKZYSYBZXJLXYSLBZYSLHXJPFXPQNBYLLJQKYGZMCYZZYMCCSLCLHZFWFWYXZMWSXTYNXJHPYYMCYSPMHYSMYDYSHQYZCHMJJMZCAAGCFJBBHPLYZYLXXSDJGXDHKXXTXXNBHRMLYJSLTXMRHNLXQJXYZLLYSWQGDLBJHDCGJYQYCMHWFMJYBMBYJYJWYMDPWHXQLDYGPDFXXBCGJSPCKRSSYZJMSLBZZJFLJJJLGXZGYXYXLSZQYXBEXYXHGCXBPLDYHWETTWWCJMBTXCHXYQXLLXFLYXLLJLSSFWDPZSMYJCLMWYTCZPCHQEKCQBWLCQYDPLQPPQZQFJQDJHYMMCXTXDRMJWRHXCJZYLQXDYYNHYYHRSLSRSYWWZJYMTLTLLGTQCJZYABTCKZCJYCCQLJZQXALMZYHYWLWDXZXQDLLQSHGPJFJLJHJABCQZDJGTKHSSTCYJLPSWZLXZXRWGLDLZRLZXTGSLLLLZLYXXWGDZYGBDPHZPBRLWSXQBPFDWOFMWHLYPCBJCCLDMBZPBZZLCYQXLDOMZBLZWPDWYYGDSTTHCSQSCCRSSSYSLFYBFNTYJSZDFNDPDHDZZMBBLSLCMYFFGTJJQWFTMTPJWFNLBZCMMJTGBDZLQLPYFHYYMJYLSDCHDZJWJCCTLJCLDTLJJCPDDSQDSSZYBNDBJLGGJZXSXNLYCYBJXQYCBYLZCFZPPGKCXZDZFZTJJFJSJXZBNZYJQTTYJYHTYCZHYMDJXTTMPXSPLZCDWSLSHXYPZGTFMLCJTYCBPMGDKWYCYZCDSZZYHFLYCTYGWHKJYYLSJCXGYWJCBLLCSNDDBTZBSCLYZCZZSSQDLLMQYYHFSLQLLXFTYHABXGWNYWYYPLLSDLDLLBJCYXJZMLHLJDXYYQYTDLLLBUGBFDFBBQJZZMDPJHGCLGMJJPGAEHHBWCQXAXHHHZCHXYPHJAXHLPHJPGPZJQCQZGJJZZUZDMQYYBZZPHYHYBWHAZYJHYKFGDPFQSDLZMLJXKXGALXZDAGLMDGXMWZQYXXDXXPFDMMSSYMPFMDMMKXKSYZYSHDZKXSYSMMZZZMSYDNZZCZXFPLSTMZDNMXCKJMZTYYMZMZZMSXHHDCZJEMXXKLJSTLWLSQLYJZLLZJSSDPPMHNLZJCZYHMXXHGZCJMDHXTKGRMXFWMCGMWKDTKSXQMMMFZZYDKMSCLCMPCGMHSPXQPZDSSLCXKYXTWLWJYAHZJGZQMCSNXYYMMPMLKJXMHLMLQMXCTKZMJQYSZJSYSZHSYJZJCDAJZYBSDQJZGWZQQXFKDMSDJLFWEHKZQKJPEYPZYSZCDWYJFFMZZYLTTDZZEFMZLBNPPLPLPEPSZALLTYLKCKQZKGENQLWAGYXYDPXLHSXQQWQCQXQCLHYXXMLYCCWLYMQYSKGCHLCJNSZKPYZKCQZQLJPDMDZHLASXLBYDWQLWDNBQCRYDDZTJYBKBWSZDXDTNPJDTCTQDFXQQMGNXECLTTBKPWSLCTYQLPWYZZKLPYGZCQQPLLKCCYLPQMZCZQCLJSLQZDJXLDDHPZQDLJJXZQDXYZQKZLJCYQDYJPPYPQYKJYRMPCBYMCXKLLZLLFQPYLLLMBSGLCYSSLRSYSQTMXYXZQZFDZUYSYZTFFMZZSMZQHZSSCCMLYXWTPZGXZJGZGSJSGKDDHTQGGZLLBJDZLCBCHYXYZHZFYWXYZYMSDBZZYJGTSMTFXQYXQSTDGSLNXDLRYZZLRYYLXQHTXSRTZNGZXBNQQZFMYKMZJBZYMKBPNLYZPBLMCNQYZZZSJZHJCTZKHYZZJRDYZHNPXGLFZTLKGJTCTSSYLLGZRZBBQZZKLPKLCZYSSUYXBJFPNJZZXCDWXZYJXZZDJJKGGRSRJKMSMZJLSJYWQSKYHQJSXPJZZZLSNSHRNYPZTWCHKLPSRZLZXYJQXQKYSJYCZTLQZYBBYBWZPQDWWYZCYTJCJXCKCWDKKZXSGKDZXWWYYJQYYTCYTDLLXWKCZKKLCCLZCQQDZLQLCSFQCHQHSFSMQZZLNBJJZBSJHTSZDYSJQJPDLZCDCWJKJZZLPYCGMZWDJJBSJQZSYZYHHXJPBJYDSSXDZNCGLQMBTSFSBPDZDLZNFGFJGFSMPXJQLMBLGQCYYXBQKDJJQYRFKZTJDHCZKLBSDZCFJTPLLJGXHYXZCSSZZXSTJYGKGCKGYOQXJPLZPBPGTGYJZGHZQZZLBJLSQFZGKQQJZGYCZBZQTLDXRJXBSXXPZXHYZYCLWDXJJHXMFDZPFZHQHQMQGKSLYHTYCGFRZGNQXCLPDLBZCSCZQLLJBLHBZCYPZZPPDYMZZSGYHCKCPZJGSLJLNSCDSLDLXBMSTLDDFJMKDJDHZLZXLSZQPQPGJLLYBDSZGQLBZLSLKYYHZTTNTJYQTZZPSZQZTLLJTYYLLQLLQYZQLBDZLSLYYZYMDFSZSNHLXZNCZQZPBWSKRFBSYZMTHBLGJPMCZZLSTLXSHTCSYZLZBLFEQHLXFLCJLYLJQCBZLZJHHSSTBRMHXZHJZCLXFNBGXGTQJCZTMSFZKJMSSNXLJKBHSJXNTNLZDNTLMSJXGZJYJCZXYJYJWRWWQNZTNFJSZPZSHZJFYRDJSFSZJZBJFZQZZHZLXFYSBZQLZSGYFTZDCSZXZJBQMSZKJRHYJZCKMJKHCHGTXKXQGLXPXFXTRTYLXJXHDTSJXHJZJXZWZLCQSBTXWXGXTXXHXFTSDKFJHZYJFJXRZSDLLLTQSQQZQWZXSYQTWGWBZCGZLLYZBCLMQQTZHZXZXLJFRMYZFLXYSQXXJKXRMQDZDMMYYBSQBHGZMWFWXGMXLZPYYTGZYCCDXYZXYWGSYJYZNBHPZJSQSYXSXRTFYZGRHZTXSZZTHCBFCLSYXZLZQMZLMPLMXZJXSFLBYZMYQHXJSXRXSQZZZSSLYFRCZJRCRXHHZXQYDYHXSJJHZCXZBTYNSYSXJBQLPXZQPYMLXZKYXLXCJLCYSXXZZLXDLLLJJYHZXGYJWKJRWYHCPSGNRZLFZWFZZNSXGXFLZSXZZZBFCSYJDBRJKRDHHGXJLJJTGXJXXSTJTJXLYXQFCSGSWMSBCTLQZZWLZZKXJMLTMJYHSDDBXGZHDLBMYJFRZFSGCLYJBPMLYSMSXLSZJQQHJZFXGFQFQBPXZGYYQXGZTCQWYLTLGWSGWHRLFSFGZJMGMGBGTJFSYZZGZYZAFLSSPMLPFLCWBJZCLJJMZLPJJLYMQDMYYYFBGYGYZMLYZDXQYXRQQQHSYYYQXYLJTYXFSFSLLGNQCYHYCWFHCCCFXPYLYPLLZYXXXXXKQHHXSHJZCFZSCZJXCPZWHHHHHAPYLQALPQAFYHXDYLUKMZQGGGDDESRNNZLTZGCHYPPYSQJJHCLLJTOLNJPZLJLHYMHEYDYDSQYCDDHGZUNDZCLZYZLLZNTNYZGSLHSLPJJBDGWXPCDUTJCKLKCLWKLLCASSTKZZDNQNTTLYYZSSYSSZZRYLJQKCQDHHCRXRZYDGRGCWCGZQFFFPPJFZYNAKRGYWYQPQXXFKJTSZZXSWZDDFBBXTBGTZKZNPZZPZXZPJSZBMQHKCYXYLDKLJNYPKYGHGDZJXXEAHPNZKZTZCMXCXMMJXNKSZQNMNLWBWWXJKYHCPSTMCSQTZJYXTPCTPDTNNPGLLLZSJLSPBLPLQHDTNJNLYYRSZFFJFQWDPHZDWMRZCCLODAXNSSNYZRESTYJWJYJDBCFXNMWTTBYLWSTSZGYBLJPXGLBOCLHPCBJLTMXZLJYLZXCLTPNCLCKXTPZJSWCYXSFYSZDKNTLBYJCYJLLSTGQCBXRYZXBXKLYLHZLQZLNZCXWJZLJZJNCJHXMNZZGJZZXTZJXYCYYCXXJYYXJJXSSSJSTSSTTPPGQTCSXWZDCSYFPTFBFHFBBLZJCLZZDBXGCXLQPXKFZFLSYLTUWBMQJHSZBMDDBCYSCCLDXYCDDQLYJJWMQLLCSGLJJSYFPYYCCYLTJANTJJPWYCMMGQYYSXDXQMZHSZXPFTWWZQSWQRFKJLZJQQYFBRXJHHFWJJZYQAZMYFRHCYYBYQWLPEXCCZSTYRLTTDMQLYKMBBGMYYJPRKZNPBSXYXBHYZDJDNGHPMFSGMWFZMFQMMBCMZZCJJLCNUXYQLMLRYGQZCYXZLWJGCJCGGMCJNFYZZJHYCPRRCMTZQZXHFQGTJXCCJEAQCRJYHPLQLSZDJRBCQHQDYRHYLYXJSYMHZYDWLDFRYHBPYDTSSCNWBXGLPZMLZZTQSSCPJMXXYCSJYTYCGHYCJWYRXXLFEMWJNMKLLSWTXHYYYNCMMCWJDQDJZGLLJWJRKHPZGGFLCCSCZMCBLTBHBQJXQDSPDJZZGKGLFQYWBZYZJLTSTDHQHCTCBCHFLQMPWDSHYYTQWCNZZJTLBYMBPDYYYXSQKXWYYFLXXNCWCXYPMAELYKKJMZZZBRXYYQJFLJPFHHHYTZZXSGQQMHSPGDZQWBWPJHZJDYSCQWZKTXXSQLZYYMYSDZGRXCKKUJLWPYSYSCSYZLRMLQSYLJXBCXTLWDQZPCYCYKPPPNSXFYZJJRCEMHSZMSXLXGLRWGCSTLRSXBZGBZGZTCPLUJLSLYLYMTXMTZPALZXPXJTJWTCYYZLBLXBZLQMYLXPGHDSLSSDMXMBDZZSXWHAMLCZCPJMCNHJYSNSYGCHSKQMZZQDLLKABLWJXSFMOCDXJRRLYQZKJMYBYQLYHETFJZFRFKSRYXFJTWDSXXSYSQJYSLYXWJHSNLXYYXHBHAWHHJZXWMYLJCSSLKYDZTXBZSYFDXGXZJKHSXXYBSSXDPYNZWRPTQZCZENYGCXQFJYKJBZMLJCMQQXUOXSLYXXLYLLJDZBTYMHPFSTTQQWLHOKYBLZZALZXQLHZWRRQHLSTMYPYXJJXMQSJFNBXYXYJXXYQYLTHYLQYFMLKLJTMLLHSZWKZHLJMLHLJKLJSTLQXYLMBHHLNLZXQJHXCFXXLHYHJJGBYZZKBXSCQDJQDSUJZYYHZHHMGSXCSYMXFEBCQWWRBPYYJQTYZCYQYQQZYHMWFFHGZFRJFCDPXNTQYZPDYKHJLFRZXPPXZDBBGZQSTLGDGYLCQMLCHHMFYWLZYXKJLYPQHSYWMQQGQZMLZJNSQXJQSYJYCBEHSXFSZPXZWFLLBCYYJDYTDTHWZSFJMQQYJLMQXXLLDTTKHHYBFPWTYYSQQWNQWLGWDEBZWCMYGCULKJXTMXMYJSXHYBRWFYMWFRXYQMXYSZTZZTFYKMLDHQDXWYYNLCRYJBLPSXCXYWLSPRRJWXHQYPHTYDNXHHMMYWYTZCSQMTSSCCDALWZTCPQPYJLLQZYJSWXMZZMMYLMXCLMXCZMXMZSQTZPPQQBLPGXQZHFLJJHYTJSRXWZXSCCDLXTYJDCQJXSLQYCLZXLZZXMXQRJMHRHZJBHMFLJLMLCLQNLDXZLLLPYPSYJYSXCQQDCMQJZZXHNPNXZMEKMXHYKYQLXSXTXJYYHWDCWDZHQYYBGYBCYSCFGPSJNZDYZZJZXRZRQJJYMCANYRJTLDPPYZBSTJKXXZYPFDWFGZZRPYMTNGXZQBYXNBUFNQKRJQZMJEGRZGYCLKXZDSKKNSXKCLJSPJYYZLQQJYBZSSQLLLKJXTBKTYLCCDDBLSPPFYLGYDTZJYQGGKQTTFZXBDKTYYHYBBFYTYYBCLPDYTGDHRYRNJSPTCSNYJQHKLLLZSLYDXXWBCJQSPXBPJZJCJDZFFXXBRMLAZHCSNDLBJDSZBLPRZTSWSBXBCLLXXLZDJZSJPYLYXXYFTFFFBHJJXGBYXJPMMMPSSJZJMTLYZJXSWXTYLEDQPJMYGQZJGDJLQJWJQLLSJGJGYGMSCLJJXDTYGJQJQJCJZCJGDZZSXQGSJGGCXHQXSNQLZZBXHSGZXCXYLJXYXYYDFQQJHJFXDHCTXJYRXYSQTJXYEFYYSSYYJXNCYZXFXMSYSZXYYSCHSHXZZZGZZZGFJDLTYLNPZGYJYZYYQZPBXQBDZTZCZYXXYHHSQXSHDHGQHJHGYWSZTMZMLHYXGEBTYLZKQWYTJZRCLEKYSTDBCYKQQSAYXCJXWWGSBHJYZYDHCSJKQCXSWXFLTYNYZPZCCZJQTZWJQDZZZQZLJJXLSBHPYXXPSXSHHEZTXFPTLQYZZXHYTXNCFZYYHXGNXMYWXTZSJPTHHGYMXMXQZXTSBCZYJYXXTYYZYPCQLMMSZMJZZLLZXGXZAAJZYXJMZXWDXZSXZDZXLEYJJZQBHZWZZZQTZPSXZTDSXJJJZNYAZPHXYYSRNQDTHZHYYKYJHDZXZLSWCLYBZYECWCYCRYLCXNHZYDZYDYJDFRJJHTRSQTXYXJRJHOJYNXELXSFSFJZGHPZSXZSZDZCQZBYYKLSGSJHCZSHDGQGXYZGXCHXZJWYQWGYHKSSEQZZNDZFKWYSSTCLZSTSYMCDHJXXYWEYXCZAYDMPXMDSXYBSQMJMZJMTZQLPJYQZCGQHXJHHLXXHLHDLDJQCLDWBSXFZZYYSCHTYTYYBHECXHYKGJPXHHYZJFXHWHBDZFYZBCAPNPGNYDMSXHMMMMAMYNBYJTMPXYYMCTHJBZYFCGTYHWPHFTWZZEZSBZEGPFMTSKFTYCMHFLLHGPZJXZJGZJYXZSBBQSCZZLZCCSTPGXMJSFTCCZJZDJXCYBZLFCJSYZFGSZLYBCWZZBYZDZYPSWYJZXZBDSYUXLZZBZFYGCZXBZHZFTPBGZGEJBSTGKDMFHYZZJHZLLZZGJQZLSFDJSSCBZGPDLFZFZSZYZYZSYGCXSNXXCHCZXTZZLJFZGQSQYXZJQDCCZTQCDXZJYQJQCHXZTDLGSCXZSYQJQTZWLQDQZTQCHQQJZYEZZZPBWKDJFCJPZTYPQYQTTYNLMBDKTJZPQZQZZFPZSBNJLGYJDXJDZZKZGQKXDLPZJTCJDQBXDJQJSTCKNXBXZMSLYJCQMTJQWWCJQNJNLLLHJCWQTBZQYDZCZPZZDZYDDCYZZZCCJTTJFZDPRRTZTJDCQTQZDTJNPLZBCLLCTZSXKJZQZPZLBZRBTJDCXFCZDBCCJJLTQQPLDCGZDBBZJCQDCJWYNLLZYZCCDWLLXWZLXRXNTQQCZXKQLSGDFQTDDGLRLAJJTKUYMKQLLTZYTDYYCZGJWYXDXFRSKSTQTENQMRKQZHHQKDLDAZFKYPBGGPZREBZZYKZZSPEGJXGYKQZZZSLYSYYYZWFQZYLZZLZHWCHKYPQGNPGBLPLRRJYXCCSYYHSFZFYBZYYTGZXYLXCZWXXZJZBLFFLGSKHYJZEYJHLPLLLLCZGXDRZELRHGKLZZYHZLYQSZZJZQLJZFLNBHGWLCZCFJYSPYXZLZLXGCCPZBLLCYBBBBUBBCBPCRNNZCZYRBFSRLDCGQYYQXYGMQZWTZYTYJXYFWTEHZZJYWLCCNTZYJJZDEDPZDZTSYQJHDYMBJNYJZLXTSSTPHNDJXXBYXQTZQDDTJTDYYTGWSCSZQFLSHLGLBCZPHDLYZJYCKWTYTYLBNYTSDSYCCTYSZYYEBHEXHQDTWNYGYCLXTSZYSTQMYGZAZCCSZZDSLZCLZRQXYYELJSBYMXSXZTEMBBLLYYLLYTDQYSHYMRQWKFKBFXNXSBYCHXBWJYHTQBPBSBWDZYLKGZSKYHXQZJXHXJXGNLJKZLYYCDXLFYFGHLJGJYBXQLYBXQPQGZTZPLNCYPXDJYQYDYMRBESJYYHKXXSTMXRCZZYWXYQYBMCLLYZHQYZWQXDBXBZWZMSLPDMYSKFMZKLZCYQYCZLQXFZZYDQZPZYGYJYZMZXDZFYFYTTQTZHGSPCZMLCCYTZXJCYTJMKSLPZHYSNZLLYTPZCTZZCKTXDHXXTQCYFKSMQCCYYAZHTJPCYLZLYJBJXTPNYLJYYNRXSYLMMNXJSMYBCSYSYLZYLXJJQYLDZLPQBFZZBLFNDXQKCZFYWHGQMRDSXYCYTXNQQJZYYPFZXDYZFPRXEJDGYQBXRCNFYYQPGHYJDYZXGRHTKYLNWDZNTSMPKLBTHBPYSZBZTJZSZZJTYYXZPHSSZZBZCZPTQFZMYFLYPYBBJQXZMXXDJMTSYSKKBJZXHJCKLPSMKYJZCXTMLJYXRZZQSLXXQPYZXMKYXXXJCLJPRMYYGADYSKQLSNDHYZKQXZYZTCGHZTLMLWZYBWSYCTBHJHJFCWZTXWYTKZLXQSHLYJZJXTMPLPYCGLTBZZTLZJCYJGDTCLKLPLLQPJMZPAPXYZLKKTKDZCZZBNZDYDYQZJYJGMCTXLTGXSZLMLHBGLKFWNWZHDXUHLFMKYSLGXDTWWFRJEJZTZHYDXYKSHWFZCQSHKTMQQHTZHYMJDJSKHXZJZBZZXYMPAGQMSTPXLSKLZYNWRTSQLSZBPSPSGZWYHTLKSSSWHZZLYYTNXJGMJSZSUFWNLSOZTXGXLSAMMLBWLDSZYLAKQCQCTMYCFJBSLXCLZZCLXXKSBZQCLHJPSQPLSXXCKSLNHPSFQQYTXYJZLQLDXZQJZDYYDJNZPTUZDSKJFSLJHYLZSQZLBTXYDGTQFDBYAZXDZHZJNHHQBYKNXJJQCZMLLJZKSPLDYCLBBLXKLELXJLBQYCXJXGCNLCQPLZLZYJTZLJGYZDZPLTQCSXFDMNYCXGBTJDCZNBGBQYQJWGKFHTNPYQZQGBKPBBYZMTJDYTBLSQMPSXTBNPDXKLEMYYCJYNZCTLDYKZZXDDXHQSHDGMZSJYCCTAYRZLPYLTLKXSLZCGGEXCLFXLKJRTLQJAQZNCMBYDKKCXGLCZJZXJHPTDJJMZQYKQSECQZDSHHADMLZFMMZBGNTJNNLGBYJBRBTMLBYJDZXLCJLPLDLPCQDHLXZLYCBLCXZZJADJLNZMMSSSMYBHBSQKBHRSXXJMXSDZNZPXLGBRHWGGFCXGMSKLLTSJYYCQLTSKYWYYHYWXBXQYWPYWYKQLSQPTNTKHQCWDQKTWPXXHCPTHTWUMSSYHBWCRWXHJMKMZNGWTMLKFGHKJYLSYYCXWHYECLQHKQHTTQKHFZLDXQWYZYYDESBPKYRZPJFYYZJCEQDZZDLATZBBFJLLCXDLMJSSXEGYGSJQXCWBXSSZPDYZCXDNYXPPZYDLYJCZPLTXLSXYZYRXCYYYDYLWWNZSAHJSYQYHGYWWAXTJZDAXYSRLTDPSSYYFNEJDXYZHLXLLLZQZSJNYQYQQXYJGHZGZCYJCHZLYCDSHWSHJZYJXCLLNXZJJYYXNFXMWFPYLCYLLABWDDHWDXJMCXZTZPMLQZHSFHZYNZTLLDYWLSLXHYMMYLMBWWKYXYADTXYLLDJPYBPWUXJMWMLLSAFDLLYFLBHHHBQQLTZJCQJLDJTFFKMMMBYTHYGDCQRDDWRQJXNBYSNWZDBYYTBJHPYBYTTJXAAHGQDQTMYSTQXKBTZPKJLZRBEQQSSMJJBDJOTGTBXPGBKTLHQXJJJCTHXQDWJLWRFWQGWSHCKRYSWGFTGYGBXSDWDWRFHWYTJJXXXJYZYSLPYYYPAYXHYDQKXSHXYXGSKQHYWFDDDPPLCJLQQEEWXKSYYKDYPLTJTHKJLTCYYHHJTTPLTZZCDLTHQKZXQYSTEEYWYYZYXXYYSTTJKLLPZMCYHQGXYHSRMBXPLLNQYDQHXSXXWGDQBSHYLLPJJJTHYJKYPPTHYYKTYEZYENMDSHLCRPQFDGFXZPSFTLJXXJBSWYYSKSFLXLPPLBBBLBSFXFYZBSJSSYLPBBFFFFSSCJDSTZSXZRYYSYFFSYZYZBJTBCTSBSDHRTJJBYTCXYJEYLXCBNEBJDSYXYKGSJZBXBYTFZWGENYHHTHZHHXFWGCSTBGXKLSXYWMTMBYXJSTZSCDYQRCYTWXZFHMYMCXLZNSDJTTTXRYCFYJSBSDYERXJLJXBBDEYNJGHXGCKGSCYMBLXJMSZNSKGXFBNBPTHFJAAFXYXFPXMYPQDTZCXZZPXRSYWZDLYBBKTYQPQJPZYPZJZNJPZJLZZFYSBTTSLMPTZRTDXQSJEHBZYLZDHLJSQMLHTXTJECXSLZZSPKTLZKQQYFSYGYWPCPQFHQHYTQXZKRSGTTSQCZLPTXCDYYZXSQZSLXLZMYCPCQBZYXHBSXLZDLTCDXTYLZJYYZPZYZLTXJSJXHLPMYTXCQRBLZSSFJZZTNJYTXMYJHLHPPLCYXQJQQKZZSCPZKSWALQSBLCCZJSXGWWWYGYKTJBBZTDKHXHKGTGPBKQYSLPXPJCKBMLLXDZSTBKLGGQKQLSBKKTFXRMDKBFTPZFRTBBRFERQGXYJPZSSTLBZTPSZQZSJDHLJQLZBPMSMMSXLQQNHKNBLRDDNXXDHDDJCYYGYLXGZLXSYGMQQGKHBPMXYXLYTQWLWGCPBMQXCYZYDRJBHTDJYHQSHTMJSBYPLWHLZFFNYPMHXXHPLTBQPFBJWQDBYGPNZTPFZJGSDDTQSHZEAWZZYLLTYYBWJKXXGHLFKXDJTMSZSQYNZGGSWQSPHTLSSKMCLZXYSZQZXNCJDQGZDLFNYKLJCJLLZLMZZNHYDSSHTHZZLZZBBHQZWWYCRZHLYQQJBEYFXXXWHSRXWQHWPSLMSSKZTTYGYQQWRSLALHMJTQJSMXQBJJZJXZYZKXBYQXBJXSHZTSFJLXMXZXFGHKZSZGGYLCLSARJYHSLLLMZXELGLXYDJYTLFBHBPNLYZFBBHPTGJKWETZHKJJXZXXGLLJLSTGSHJJYQLQZFKCGNNDJSSZFDBCTWWSEQFHQJBSAQTGYPQLBXBMMYWXGSLZHGLZGQYFLZBYFZJFRYSFMBYZHQGFWZSYFYJJPHZBYYZFFWODGRLMFTWLBZGYCQXCDJYGZYYYYTYTYDWEGAZYHXJLZYYHLRMGRXXZCLHNELJJTJTPWJYBJJBXJJTJTEEKHWSLJPLPSFYZPQQBDLQJJTYYQLYZKDKSQJYYQZLDQTGJQYZJSUCMRYQTHTEJMFCTYHYPKMHYZWJDQFHYYXWSHCTXRLJHQXHCCYYYJLTKTTYTMXGTCJTZAYYOCZLYLBSZYWJYTSJYHBYSHFJLYGJXXTMZYYLTXXYPZLXYJZYZYYPNHMYMDYYLBLHLSYYQQLLNJJYMSOYQBZGDLYXYLCQYXTSZEGXHZGLHWBLJHEYXTWQMAKBPQCGYSHHEGQCMWYYWLJYJHYYZLLJJYLHZYHMGSLJLJXCJJYCLYCJPCPZJZJMMYLCQLNQLJQJSXYJMLSZLJQLYCMMHCFMMFPQQMFYLQMCFFQMMMMHMZNFHHJGTTHHKHSLNCHHYQDXTMMQDCYZYXYQMYQYLTDCYYYZAZZCYMZYDLZFFFMMYCQZWZZMABTBYZTDMNZZGGDFTYPCGQYTTSSFFWFDTZQSSYSTWXJHXYTSXXYLBYQHWWKXHZXWZNNZZJZJJQJCCCHYYXBZXZCYZTLLCQXYNJYCYYCYNZZQYYYEWYCZDCJYCCHYJLBTZYYCQWMPWPYMLGKDLDLGKQQBGYCHJXY",
oMultiDiff:{"19969":"DZ","19975":"WM","19988":"QJ","20048":"YL","20056":"SC","20060":"NM","20094":"QG","20127":"QJ","20167":"QC","20193":"YG","20250":"KH","20256":"ZC","20282":"SC","20285":"QJG","20291":"TD","20314":"YD","20340":"NE","20375":"TD","20389":"YJ","20391":"CZ","20415":"PB","20446":"YS","20447":"SQ","20504":"TC","20608":"KG","20854":"QJ","20857":"ZC","20911":"PF","20504":"TC","20608":"KG","20854":"QJ","20857":"ZC","20911":"PF","20985":"AW","21032":"PB","21048":"XQ","21049":"SC","21089":"YS","21119":"JC","21242":"SB","21273":"SC","21305":"YP","21306":"QO","21330":"ZC","21333":"SDC","21345":"QK","21378":"CA","21397":"SC","21414":"XS","21442":"SC","21477":"JG","21480":"TD","21484":"ZS","21494":"YX","21505":"YX","21512":"HG","21523":"XH","21537":"PB","21542":"PF","21549":"KH","21571":"E","21574":"DA","21588":"TD","21589":"O","21618":"ZC","21621":"KHA","21632":"ZJ","21654":"KG","21679":"LKG","21683":"KH","21710":"A","21719":"YH","21734":"WOE","21769":"A","21780":"WN","21804":"XH","21834":"A","21899":"ZD","21903":"RN","21908":"WO","21939":"ZC","21956":"SA","21964":"YA","21970":"TD","22003":"A","22031":"JG","22040":"XS","22060":"ZC","22066":"ZC","22079":"MH","22129":"XJ","22179":"XA","22237":"NJ","22244":"TD","22280":"JQ","22300":"YH","22313":"XW","22331":"YQ","22343":"YJ","22351":"PH","22395":"DC","22412":"TD","22484":"PB","22500":"PB","22534":"ZD","22549":"DH","22561":"PB","22612":"TD","22771":"KQ","22831":"HB","22841":"JG","22855":"QJ","22865":"XQ","23013":"ML","23081":"WM","23487":"SX","23558":"QJ","23561":"YW","23586":"YW","23614":"YW","23615":"SN","23631":"PB","23646":"ZS","23663":"ZT","23673":"YG","23762":"TD","23769":"ZS","23780":"QJ","23884":"QK","24055":"XH","24113":"DC","24162":"ZC","24191":"GA","24273":"QJ","24324":"NL","24377":"TD","24378":"QJ","24439":"PF","24554":"ZS","24683":"TD","24694":"WE","24733":"LK","24925":"TN","25094":"ZG","25100":"XQ","25103":"XH","25153":"PB","25170":"PB","25179":"KG","25203":"PB","25240":"ZS","25282":"FB","25303":"NA","25324":"KG","25341":"ZY","25373":"WZ","25375":"XJ","25384":"A","25457":"A","25528":"SD","25530":"SC","25552":"TD","25774":"ZC","25874":"ZC","26044":"YW","26080":"WM","26292":"PB","26333":"PB","26355":"ZY","26366":"CZ","26397":"ZC","26399":"QJ","26415":"ZS","26451":"SB","26526":"ZC","26552":"JG","26561":"TD","26588":"JG","26597":"CZ","26629":"ZS","26638":"YL","26646":"XQ","26653":"KG","26657":"XJ","26727":"HG","26894":"ZC","26937":"ZS","26946":"ZC","26999":"KJ","27099":"KJ","27449":"YQ","27481":"XS","27542":"ZS","27663":"ZS","27748":"TS","27784":"SC","27788":"ZD","27795":"TD","27812":"O","27850":"PB","27852":"MB","27895":"SL","27898":"PL","27973":"QJ","27981":"KH","27986":"HX","27994":"XJ","28044":"YC","28065":"WG","28177":"SM","28267":"QJ","28291":"KH","28337":"ZQ","28463":"TL","28548":"DC","28601":"TD","28689":"PB","28805":"JG","28820":"QG","28846":"PB","28952":"TD","28975":"ZC","29100":"A","29325":"QJ","29575":"SL","29602":"FB","30010":"TD","30044":"CX","30058":"PF","30091":"YSP","30111":"YN","30229":"XJ","30427":"SC","30465":"SX","30631":"YQ","30655":"QJ","30684":"QJG","30707":"SD","30729":"XH","30796":"LG","30917":"PB","31074":"NM","31085":"JZ","31109":"SC","31181":"ZC","31192":"MLB","31293":"JQ","31400":"YX","31584":"YJ","31896":"ZN","31909":"ZY","31995":"XJ","32321":"PF","32327":"ZY","32418":"HG","32420":"XQ","32421":"HG","32438":"LG","32473":"GJ","32488":"TD","32521":"QJ","32527":"PB","32562":"ZSQ","32564":"JZ","32735":"ZD","32793":"PB","33071":"PF","33098":"XL","33100":"YA","33152":"PB","33261":"CX","33324":"BP","33333":"TD","33406":"YA","33426":"WM","33432":"PB","33445":"JG","33486":"ZN","33493":"TS","33507":"QJ","33540":"QJ","33544":"ZC","33564":"XQ","33617":"YT","33632":"QJ","33636":"XH","33637":"YX","33694":"WG","33705":"PF","33728":"YW","33882":"SR","34067":"WM","34074":"YW","34121":"QJ","34255":"ZC","34259":"XL","34425":"JH","34430":"XH","34485":"KH","34503":"YS","34532":"HG","34552":"XS","34558":"YE","34593":"ZL","34660":"YQ","34892":"XH","34928":"SC","34999":"QJ","35048":"PB","35059":"SC","35098":"ZC","35203":"TQ","35265":"JX","35299":"JX","35782":"SZ","35828":"YS","35830":"E","35843":"TD","35895":"YG","35977":"MH","36158":"JG","36228":"QJ","36426":"XQ","36466":"DC","36710":"JC","36711":"ZYG","36767":"PB","36866":"SK","36951":"YW","37034":"YX","37063":"XH","37218":"ZC","37325":"ZC","38063":"PB","38079":"TD","38085":"QY","38107":"DC","38116":"TD","38123":"YD","38224":"HG","38241":"XTC","38271":"ZC","38415":"YE","38426":"KH","38461":"YD","38463":"AE","38466":"PB","38477":"XJ","38518":"YT","38551":"WK","38585":"ZC","38704":"XS","38739":"LJ","38761":"GJ","38808":"SQ","39048":"JG","39049":"XJ","39052":"HG","39076":"CZ","39271":"XT","39534":"TD","39552":"TD","39584":"PB","39647":"SB","39730":"LG","39748":"TPB","40109":"ZQ","40479":"ND","40516":"HG","40536":"HG","40583":"QJ","40765":"YQ","40784":"QJ","40840":"YK","40863":"QJG"},
makePY:function(str){
if(typeof str!="string"){
throw new Error(-1,"参数str必须为字符串");
}
var arrResult=[];
for(var i=0;i<str.length;i++){
var ch=str.charAt(i);
arrResult.push(this.checkCh(ch));
}
return this.makeResult(arrResult);
},
checkCh:function(ch){
var uni=ch.charCodeAt(0);
if(uni>40869||uni<19968){
return ch;
}
if(!this.__pyCache[ch]){
this.__pyCache[ch]=(this.oMultiDiff[uni]?this.oMultiDiff[uni]:(this.strChineseFirstPY.charAt(uni-19968)));
}
return this.__pyCache[ch];
},
makeResult:function(arr){
var arrRslt=[""];
for(var i=0,len=arr.length;i<len;i++){
var str=arr[i];
var strlen=str.length;
if(strlen==1){
for(var k=0;k<arrRslt.length;k++){
arrRslt[k]+=str;
}
}else{
var tmpArr=arrRslt.slice(0);
arrRslt=[];
for(k=0;k<strlen;k++){

var tmp=tmpArr.slice(0);

for(var j=0;j<tmp.length;j++){
tmp[j]+=str.charAt(k);
}

arrRslt=arrRslt.concat(tmp);
}
}
}
return arrRslt;
}
};
var ItemList={};
ItemList.Init=function(){
ItemList.loading=false;
ItemList.cPage=1;
ItemList.cTotalPage=0;
ItemList.cList=null;
ItemList.cListTotal=null;
ItemList.cFeedId=null;
ItemList.method='FeedItem.getFeedItemList';
ItemList.params=null;
ItemList.cFeedsMap=null;
ItemList.cShowCount=0;
ItemList.cSelectedItemId=null;
ItemList.cSelectedItemIndex=null;
ItemList.item_list=null;
ItemList.onShowList=null;
}
ItemList.status='';
(function(){


var currentItemId=false;

var feedId=false;
var refId=false;


var startTime=false;


var checkTimer=false;


var submitTimer=false;

var interval=1000;


var range=[];

ItemList.setAnalyzerRange=function(items){
range=[];
for(var i=0;i<items.length;i++){
if(!items[i].remark||!items[i].remark.read){
range.push(items[i].feedItemId);
}
}
};


ItemList.initAnalyzer=function(){
if(!checkTimer){
checkTimer=setInterval(function(){
var now=new Date();

if(!PageMgr.inItemList()){

if(currentItemId){
reportReadEvent(now);
}
return;
}

if(currentItemId){
if(currentItemId!=ItemList.cSelectedItemId){
reportReadEvent(now);
}else if(ItemList.isItemCollapse(ItemList.cSelectedItemIndex)||
now-startTime>30000){

reportReadEvent(now);
currentItemId=ItemList.cSelectedItemId;
}
}

if(ItemList.cSelectedItemId&&(currentItemId!=ItemList.cSelectedItemId)){
startStat(now);
}

},interval);
}

if(currentItemId){
reportReadEvent(new Date());
}
}

var readStat={};
var reportReadEvent=function(now){
if(currentItemId&&startTime&&range.indexOf(currentItemId)>-1){
var span=Math.floor((now-startTime)/1000);

if(span>=3){

if(span>300){
span=300;
}

if(readStat[currentItemId])return;


readStat[currentItemId]=[refId,feedId,0,span,Actor.UserConfig.item_list_mode?1:0];
}
}
currentItemId=false;
startTime=false;
};
var startStat=function(now){

if(ItemList.cSelectedItemId){

var item=ItemList.cList[ItemList.cSelectedItemIndex];

if(ItemList.isItemCollapse(ItemList.cSelectedItemIndex)){
return;
}
startTime=now;
currentItemId=item.feedItemId;
refId=item.refId;
feedId=item.feedId;
}
};
var submitData=function(){
var readLog=[];
for(var p in readStat){
var stat=readStat[p];
stat.insert(0,p);
readLog.push(stat.join(','));
}
var match=document.cookie.match(/__xgitem__\=([^;\s]+)/);
if(match&&match.length==2){

if(match[1].indexOf('deleted')==-1){
readLog.push(match[1]);
}
}

if(readLog.length){
var v='__xgitem__='+readLog.join('|')+"; path=/";
if(document.domain.indexOf("xianguo.com")>-1){
v+="; domain=xianguo.com";
}
document.cookie=v;
var el=$('__xgitem__');
if(el){
el.src='/rssreader.php?method=Analyzer.item&'+(new Date().getTime());
}else{
el=htmlToElement('<img id="__xgitem__" src="/rssreader.php?method=Analyzer.item" width="1px" height="1px" />');
document.body.appendChild(el);
}
readStat={};
}
};


var submitTimer=setInterval(submitData,60000);

JEvent.addListener(window,'beforeunload',function(){
if(currentItemId){
reportReadEvent(new Date());
}
submitData();
})
})();
ItemList.load=function(page,onComplete,onError){
if(page){
ItemList.params.page=page-1;
ItemList.cPage=page;
}
var params='method='+ItemList.method+'&params='+JSON.serialize(ItemList.params);

WaitControl.PannelWait();
AsyncCall(interfaceUrl,params,function(res){
var ret=eval('('+res.responseText+')');
if(ret.status==0){
if(onError)onError(ret);
return;
}
try{
var title=ItemList.getTitle()||'';
ItemList.GoPageHead();
if(ItemList.isRefreshing||ItemList.cPage>1){

$('context_itemList').innerHTML='';

}else{

ItemList.LoadRange();

ItemList.SwitchUnreadModeHtml();
ItemList.SwitchListModeHtml();
ItemList.showOptionLabel(true);
ItemList.showChannelSetting(ItemList.isSingleFeed()&&ItemList.status!='preview');
ItemList.setTitle(title);
}
$('context_itemList').focus();
ItemList.isRefreshing=false;

ItemList.cShowCount=0;
ItemList.cSelectedItemId=null;
ItemList.cSelectedItemIndex=null;
if(ret.data.feeds)
ItemList.cFeedsMap=ret.data.feeds;
if(onComplete&&onComplete(ret)===false)return;
ItemList.cList=ret.data.list;
ItemList.cListTotal=ret.data.total;
ItemList.cTotalPage=ret.data.totalPage;
ItemList.showOptionNextPage(ItemList.cPage<ItemList.cTotalPage);
ItemList.showPager();
ItemList.ShowList();

}catch(ex){
console.log(ex);
}
},onError);
if(!Actor.isAnonymous()){
ItemList.initAnalyzer();
}
}
ItemList.showPager=function(functioName){

var functioName=functioName||'ItemList.load';
var flipObj=new FlipPage(ItemList.cPage,Actor.UserConfig.page_size,ItemList.cListTotal,2);
var flipHtml='';
if(ItemList.cListTotal>0){
flipHtml+='<span>'+flipObj.startItem+'-'+flipObj.endItem+' 共'+ItemList.cListTotal+'篇</span> ';
flipHtml+=flipObj.CreateHtml('<a onclick="ItemList.goPage({page});" class="page_link">{text}</a>','<span class="current_page_link">{text}</span>');
}
$('itemList_footer_filp').innerHTML=flipHtml;

$('itemList_footer_filp').loader=functioName;
if(this.status=="feed"){
ChannelList.setGoItemsView();
}
}
ItemList.goPage=function(page){
if(!page||isNaN(page))return;
if(page<0||page>this.cTotalPage)return;
if(!$('itemList_footer_filp'))return;
ItemList.isRefreshing=true;
ItemList.cShowCount=0;
ItemList.cSelectedItemIndex=null;
ItemList.cSelectedItemId=null;
var loader=$('itemList_footer_filp').loader;
if(loader){
eval(loader+'('+page+')');
}
}
ItemList.nextPage=function(){
ItemList.goPage(ItemList.cPage+1);
}
ItemList.prevPage=function(){
ItemList.goPage(ItemList.cPage-1);
}
ItemList.goNextItem=function(onlyFocus){
if(!ItemList.cList)return;

if(ItemList.cSelectedItemIndex!=null&&
ItemList.cShowCount<=ItemList.cSelectedItemIndex)
return;

var index;

if(ItemList.cSelectedItemIndex==null){
ItemList.cSelectedItemIndex=0;
index=0;
}else{
index=ItemList.cSelectedItemIndex+1;
}

if(index>=ItemList.cShowCount){
if(index>=ItemList.cList.length){

ItemList.nextPage();
}
return;
}

ItemList.enableItemScroll(true);
if(!onlyFocus){
ItemList.expandItem(index);
}
ItemList.selectItem(index);
}
ItemList.goPrevItem=function(onlyFocus){
if(!ItemList.cList)return;

if(ItemList.cSelectedItemIndex==null){
ItemList.cSelectedItemIndex=ItemList.cShowCount;
}
var index=ItemList.cSelectedItemIndex-1;

if(index<0){ItemList.prevPage();return;}

ItemList.enableItemScroll(true);
if(!onlyFocus){
ItemList.expandItem(index);
}
ItemList.selectItem(index,onlyFocus);
}
ItemList.nextFocus=function(){
ItemList.goNextItem(true);
}
ItemList.prevFocus=function(){
ItemList.goPrevItem(true);
}
ItemList.nextFeed=function(){
if(this.status!='feed')return;
ChannelList.browseNext();
}
ItemList.prevFeed=function(){
if(this.status!='feed')return;
ChannelList.browsePrev();
}
ItemList.loadFeedItems=function(feed_list,onComplete,onError){
ItemList.Init();
ItemList.status='feed';
if(Actor.UserConfig.show_feed_unread){
Actor.UserConfig.set('show_feed_unread',false);
}
var p={
feedIdList:feed_list||"",
page:0,
pageSize:Actor.UserConfig.page_size
};
ItemList.cFeedId=feed_list;
ItemList.method='FeedItem.getFeedItemList';
ItemList.cFeedsMap=feed_list=="*"?ChannelList.getAllFeeds():ChannelList.getFeedsByIds(feed_list);
ItemList.params=p;
ItemList.load(1,function(ret){
if(onComplete)onComplete(ret);
},onError);
}
ItemList.loadFeedUnreadItems=function(feed_list,onComplete,onError){
ItemList.Init();
ItemList.status='feed';
if(!Actor.UserConfig.show_feed_unread){
Actor.UserConfig.set('show_feed_unread',true);
}
var p={
feedIdList:feed_list||"",
page:0,
pageSize:Actor.UserConfig.page_size
};
ItemList.cFeedId=feed_list;
ItemList.method='FeedItem.getUnreadItemList';
ItemList.cFeedsMap=feed_list=="*"?ChannelList.getAllFeeds():ChannelList.getFeedsByIds(feed_list);
ItemList.params=p;
ItemList.load(1,function(ret){
if(onComplete)onComplete(ret);
if(ItemList.cPage==1){
ItemList.item_list=ret.data.feedItemIdList;
ItemList.cListTotal=ret.data.total;
}
return ItemList.unreadLoad(ret);
},onError);
}
ItemList.unreadLoad=function(ret){

ItemList.cTotalPage=parseInt(ItemList.cListTotal/Actor.UserConfig.page_size)+(ItemList.cListTotal%Actor.UserConfig.page_size>0?1:0);
ItemList.cList=ret.data.firstPage||ret.data.list;
ItemList.showOptionNextPage(ItemList.cPage<ItemList.cTotalPage);

if(ItemList.item_list.length>=ItemList.cPage){
ItemList.item_list[ItemList.cPage-1][2]=ItemList.cList;
}
ItemList.cShowCount=0;

ItemList.showPager('ItemList.loadUnreadItemsPager');
ItemList.ShowList();
return false;
}
ItemList.loadUnreadItemsPager=function(page){

var pageData=ItemList.item_list[page-1];
ItemList.method='FeedItem.getUnreadRangeItemList';
ItemList.cPage=page;
ItemList.params={
feedIdList:ItemList.cFeedId,
maxId:pageData[0],
minId:pageData[1]
};

if(pageData.length==3){
var ret={
data:{
list:pageData[2]
}
};
return ItemList.unreadLoad(ret);
}
ItemList.load(null,function(ret){
if(ret.status=="1"){
return ItemList.unreadLoad(ret);
}
});
}
ItemList.loadPreviewFeed=function(feedId,title,url,onSuccess,onError){
ItemList.Init();
ItemList.status='preview';
var p={
feedIdList:feedId,
page:0,
pageSize:Actor.UserConfig.page_size
};

ItemList.cFeedId=feedId;
ItemList.method='FeedItem.getFeedItemList';
ItemList.cFeedsMap={};
ItemList.cFeedsMap[feedId]={
feedId:feedId,
title:title,
url:url
};
ItemList.params=p;
ItemList.status="preview";
ItemList.load(1,onSuccess,onError);
}
ItemList.LoadRange=function(){
$('mainContext').innerHTML=Template.get('ItemRange');

}
ItemList.LoadMyWatchItem=function(watchID,page,size,onComplete,onError){
ItemList.Init();
ItemList.status='watch';
ItemList.params=oWatchFeedManager.CreateGetWatchItemShowDataParam(page,size,watchID);
ItemList.method='WATCH.getWatchItemShowData';
ItemList.load(page,onComplete,onError);
}
ItemList.LoadMyTagItem=function(tagId,page,size,onComplete,onError){
ItemList.Init();
ItemList.status='tag';
var p=new Object();
p.page=page-1;
p.pageSize=size;
p.tagId=tagId;
ItemList.params=p;
ItemList.method='Tag.getMyItemListByTag';
ItemList.load(page,onComplete,onError);
}
ItemList.LoadMyFavoriteItem=function(page,size,onComplete,onError){
ItemList.Init();
ItemList.status='tag';
var p=new Object();
p.page=page-1;
p.pageSize=size;
ItemList.params=p;
ItemList.method='FeedItem.getFavoritedItemList';
ItemList.load(page,onComplete,onError);
}
ItemList.LoadMyUntagItem=function(page,size,onComplete,onError){
ItemList.Init();
ItemList.status='tag';
var p=new Object();
p.page=page-1;
p.pageSize=size;
ItemList.params=p;
ItemList.method='FeedItem.getUntagedFavoritedItemList';
ItemList.load(page,onComplete,onError);
}
ItemList.LoadSearchItem=function(keywords,params,onComplete,onError){
ItemList.Init();
params=params||{};
ItemList.status="search";
var p=new Object();
p.query=keywords;
p.sort=params.sort;
p.pageSize=params.size||Actor.UserConfig.page_size;
p.filter=params.filter;
ItemList.params=p;
ItemList.method='Search.searchFeedItem';
ItemList.load(params.page,onComplete,onError);
}
ItemList.LoadAllItemByTag=function(tagId,page,size,onComplete,onError){
ItemList.Init();
ItemList.status='globaltag';
var p=new Object();
p.tagId=tagId;
p.page=page-1;
p.pageSize=size;
ItemList.params=p;
ItemList.method='Tag.getAllItemListByTag';
ItemList.load(page,onComplete,onError);
}
ItemList.loadShareItems=function(actorId,page,onComplete,onError){
ItemList.Init();
ItemList.status='share';
var p={
page:page||1,
actorId:actorId,
pageSize:Actor.UserConfig.page_size
};
ItemList.method='FeedItem.getActorDiggItemList';
ItemList.params=p;
ItemList.load(1,onComplete,onError);
}
ItemList.loadAllShare=function(onComplete,onError){
ItemList.loadShareItems(Actor.getID(),1,onComplete,onError);

}
ItemList.isRefreshing=false;
ItemList.refresh=function(){
if(ItemList.isRefreshing)return;
ItemList.isRefreshing=true;
ItemList.goPage(this.cPage);
}
ItemList.SwitchUnreadMode=function(){
if(!PageMgr.inItemList()&&ItemList.status=='feed')return;
Actor.UserConfig.set("show_feed_unread",!Actor.UserConfig.show_feed_unread);
if(Actor.UserConfig.show_feed_unread){
ItemList.loadFeedUnreadItems(ItemList.cFeedId);
}else{
ItemList.loadFeedItems(ItemList.cFeedId);
}
ItemList.SwitchUnreadModeHtml();
}
ItemList.SwitchUnreadModeHtml=function(){
var readel=$('unreadSelection');
if(!readel)return;
if(Actor.UserConfig.show_feed_unread){
readel.innerHTML='所有文章';
}else{
readel.innerHTML='仅未读';
}
}
ItemList.showChannelSetting=function(show){
if($('context_manageButton'))$('context_manageButton').style.display=show?"block":'none';
if($('context_subscriptionNum')){
$('context_subscriptionNum').style.display=show?"block":'none';
if(show&&ItemList.isSingleFeed())
var feed=ItemList.cFeedsMap[ItemList.cFeedId];
if(feed)
ItemList.setSubscriberNum(feed.subscribeNum);
}
};
ItemList.setSubscriberNum=function(num){
if(num)$('context_subscriptionNum').innerHTML='<span onclick="PageMgr.goActorSubscribe(1)">'+num+'个订户</span>';
else $('context_subscriptionNum').innerHTML='';
}
ItemList.setSearchResultNum=function(num,keywords){
if(num){
$('context_searchResultNum').style.display='inline';
$('context_searchResultNum').innerHTML='约有'+num+'项符合\"'+keywords+'\"的搜索结果';
}
else $('context_searchResultNum').innerHTML='';
}
ItemList.setTitle=PageMgr.setTitle;
ItemList.getTitle=PageMgr.getTitle;
ItemList.showOptionLabel=function(bool){
var el=$('itemList_header_function');
if(!el)return;
el.style.display=bool?'block':'none';
}
ItemList.addOption=function(option){
var el=$('itemList_header_function');
var last=$('nextPageSeparator');
if(!el||!last)return;
if(typeof option=="string")
option=htmlToElement(option);
if((option.id&&$(option.id))||(option.length>1&&option[0].id&&$(option[0].id)))return;
var separator=htmlToElement('<span class="separator">|</span>');
el.insertBefore(separator,last);
el.insertBefore(option,last);
}
ItemList.showOptionUnread=function(bool){
ItemList.showOption('unreadSelection',bool);
}
ItemList.showOptionMark=function(bool){
ItemList.showOption('markPageReaded',bool);
}
ItemList.showOptionNextPage=function(bool){
ItemList.showOption('nextPage',bool);
}
ItemList.showOption=function(id,show){
var el=$(id);
var display=!!show;
if(!el)return;
el.style.display=display?'':'none';
var els=Dom.prevSibling(el,'span');
if(!els||!Dom.hasClass(els,'separator')){
els=Dom.nextSibling(el,'span');
}
if(els&&Dom.hasClass(els,'separator'))
els.style.display=display?'':'none';
}
ItemList.SwitchListMode=function(){
Actor.UserConfig.set("item_list_mode",!Actor.UserConfig.item_list_mode);
for(var i=0;i<ItemList.cList.length;i++){
if(Actor.UserConfig.item_list_mode)
ItemList.collapseItem(i);
else ItemList.expandItem(i);
}
ItemList.SwitchListModeHtml();
}
ItemList.SwitchListModeHtml=function(){
var el=$('listmodeSelection');
if(!el)return;
if(Actor.UserConfig.item_list_mode){
el.innerHTML='全文浏览';
}else{
el.innerHTML='标题浏览';
}
}
ItemList.ShowList=function(showSubFolder){
if(!$('context_itemList'))return;
$('context_itemList').innerHTML='';
if(this.onShowList&&this.onShowList()===false)return;
ItemList.loading=true;
WaitControl.PannelEndWait();

if(ItemList.cList==null){
$('context_itemList').innerHTML+=ItemList.CreateNullItem();
return;
}
if(window.UBB){

for(var i=0;i<ItemList.cList.length;i++){
ItemList.cList[i].description=UBB.toHtml(ItemList.cList[i].description);
}
}

ItemList.enableScrollRead(true);



if(ItemList.cList.length==0){
$('context_itemList').innerHTML+=ItemList.CreateNullItem();
}else{

ItemList.fixUnread();
ItemList.setAnalyzerRange(ItemList.cList);
ItemList.CreateShowListItem();
}
var channelInfo=ChannelList.FindChannel(ItemList.cFeedID);
if(channelInfo!=null)
ItemList.setSubscriberNum(channelInfo.subscribeNum);
setTimeout("PageMgr.adjustMainSize()",100);
if(!Actor.UserConfig.item_list_mode&&ItemList.cList&&ItemList.cList.length>0){
ItemList.selectItem(0);
}
}
ItemList.fixUnread=function(){
if(!PageMgr.inItemList())return;

if(ItemList.status=='feed'){
var feedUnread={};
for(var i=0;i<ItemList.cList.length;i++){
var item=ItemList.cList[i];
var feed=ItemList.cFeedsMap[item.feedId];
if(!item.remark||!item.remark.read){
if(feedUnread[item.feedId]){
feedUnread[item.feedId]=feedUnread[item.feedId]+1;
}else{
feedUnread[item.feedId]=1;
}
}
}
for(var p in feedUnread){
var feed=ItemList.cFeedsMap[p];
if(feedUnread[p]>feed.unreadNum){
ChannelList.refresh();
return;
}
}
}
}
var isRunning=false;
ItemList.CreateShowListItem=function(){
if(ItemList.loading==false)return;

var count=ItemList.cShowCount||0;
var itemList=ItemList.cList;
if(itemList.length<=count){
var div=document.createElement('div');
div.className='item_place_holder';
if($('context_itemList'))$('context_itemList').appendChild(div);
ItemList.loading=false;
ItemList.cShowCount=itemList.length;
return;
}
try{


if(Actor.UserConfig.item_list_mode){
var html=[];



for(var i=count;i<itemList.length;i++){
if(!itemList[i])continue;
itemList[i]._expandDescr=false;
html.push(ItemList.createItemHtml(i));
html.push('<div class="itemPannel_hr"></div>');
}
ItemList.cShowCount=itemList.length;
ItemList.loading=false;
var panel=$('context_itemList');
if(panel){

if(panel.innerHTML=='')
panel.innerHTML=html.join('');
else panel.appendChild(htmlToFragment(html.join('')));
}
}else{
var html=[];


for(var i=count;i<itemList.length&&ItemList.cShowCount-count<5;i++){
if(itemList[i]){
var item=itemList[i];
item._expandDescr=true;
html.push(ItemList.createItemHtml(i));
html.push('<div class="itemPannel_hr"></div>');
}
ItemList.cShowCount++;
}
var panel=$('context_itemList');
if(!panel)return;
panel.appendChild(htmlToFragment(html.join('')));


setTimeout(ItemList.CreateShowListItem,10);
}
}catch(ex){
console.log(ex);
}
if(ItemList.cShowCount>=itemList.length){

if(Actor.UserConfig.mark_page_read&&ItemList.status=='feed'){
for(var i=0;i<itemList.length;i++){
var item=ItemList.cList[i];
if(!ItemList.isItemReaded(item)){
ItemList.markItemReaded(i,true);
}
}
}
}
}
ItemList.CreateNullItem=function(){
var errorinfo=new Array();
errorinfo.push(PageMgr.getTitle());
errorinfo.push('里没有');
var otherInfo=new Array();
if(Actor.UserConfig.show_feed_unread&&PageMgr.inItemList()&&this.status=="feed"){
errorinfo.push('未读');
otherInfo.push('<span class="link_button" onclick="ItemList.loadFeedItems(ItemList.cFeedId)">查看该频道的所有文章</span>');
}
errorinfo.push('文章');
return Template.get('NullItem').replace('{errorInfo}',errorinfo.join('')).replace('{otherInfo}',otherInfo.join(''));
}
ItemList.createItem=function(index){
var itemObject=ItemList.cList[index];

var el=$('item_'+itemObject.feedItemId);
if(el)return elDetail;
var content=$('context_itemList');
if(!content)return;
var html=ItemList.createItemHtml(index);
var tempdiv=document.createElement('div');
tempdiv.innerHTML=html;
el=tempdiv.childNodes[0];
var hr=document.createElement("div");
hr.className='itemPannel_hr';
content.appendChild(el);
content.appendChild(hr);
return el;
}
var tidyHTML='<div class="hiddenElement"></div><span class="hiddenElement"></span><table class="hiddenElement"><tr><td></td></tr></table><p class="hiddenElement"></p><ul class="hiddenElement"><li></li></ul>';
var tidyReg=/<a.*?(\/>|>)/ig;
ItemList.createItemHtml=function(index){
var itemObject=ItemList.cList[index];
var item=new Object();
item.feedItemId=itemObject.feedItemId;
item.index=index;
item.title=itemObject.title.unescapeHTML();

item.itemLink=itemObject.url||'';
item.xgLink='/go.php?fi='+itemObject.feedItemId;
item.time=itemObject.time;
item.diggNum=itemObject.diggNum;
item.tagNotes=itemObject.tagNotes;
if(!item.tagNotes){
item.tagNotes='';
}else{
item.tagNotes='<div class="tagNotes">'+item.tagNotes.replace(/\r\n/g,"<br/>")+'</div>';
}

if(itemObject.tagTitle){
item.title=itemObject.tagTitle.unescapeHTML();
}

if(item.diggNum>0){
item.diggNumCss='digg_num_highlight';
}else{
item.diggNumCss='digg_num';
}
if(Actor.UserConfig.item_list_mode){
item.itemCss='item_title_mode';
}else{
item.itemCss='item';
}
if(itemObject.remark.read){
item.itemCss+=' item_readed';
}else{
item.itemCss+=' item_unreaded';
}
itemObject.description=(itemObject.description||"");
if(Actor.UserConfig.item_list_mode){
item.description="";
}else{
item.description=itemObject.description+tidyHTML;
}
var feed=ItemList.cFeedsMap[itemObject.feedId]||{};

item.descriptionText=itemObject.description.stripTags().substring(0,50);

item.feedId=itemObject.feedId;
if(itemObject.remark.favorited==true){
item.favBottomTitle='取消收藏';
item.favBottomCss='favorited';
item.favTitle='取消收藏';
item.favCss='favorited';
}else{
item.favBottomTitle='收藏';
item.favBottomCss='favorite';
item.favTitle='收藏';
item.favCss='favorite';
}

if(itemObject.remark.digg==true){
item.shareCss='digged';
item.shareTitle='取消推荐';
item.shareBottomCss='digged';
item.shareBottomTitle='取消推荐';
}else{
item.shareCss='digg';
item.shareTitle='推荐';
item.shareBottomCss='digg';
item.shareBottomTitle='推荐';
}
item.feedSource='<div class="feed">';
item.channel='';
item.titlePannelCss="title_pannel_wide";
if(!this.isSingleFeed()){
if(this.status=='feed'){
item.feedSource+='<span>来自:</span><span title="文章所属频道,点击进入" onclick="ChannelList.loadFeed(\''+item.feedId+'\',this.innerHTML.stripTags(),\''+feed.url+'\');JEvent.stop(JEvent.getEvent(event))" ><a class="channel_link">'+(feed.title||'未知')+'</a></span>';
}else{
item.feedSource+='<span>来自:</span><a target="bang" title="点击进入博客榜查看" href="http://bang.xianguo.com/feed/'+item.feedId+'/" class="channel_link">'+(feed.title||'未知')+'</a>';
}
var feed=ItemList.cFeedsMap[itemObject.feedId]||{};
var title=(feed.title||"未知").replaceAll("'","\'").replaceAll('"','&quot;');
item.channel='<li class="feed_title" title="'+title+'">'+title+'</li>';
item.titlePannelCss="title_pannel";
}
if(itemObject.author&&itemObject.author!=''){
item.feedSource+='<span>发表:</span><span class="author" title="文章作者">'+itemObject.author+'</span>';
}

if(!Actor.UserConfig.enable_item_title_link){
item.link='<span class="right"><a class="item_src" onclick="this.href=\''+item.xgLink+'\';" title="点击查看原文(v)" href="'+item.itemLink+'" target="_blank">&nbsp;&nbsp;&nbsp;&nbsp;</a></span>';
item.feedSource+='<span><a class="item_src" onclick="this.href=\''+item.xgLink+'\';" title="点击查看原文(v)" href="'+item.itemLink+'" target="_blank">查看原文</a></span>';
item.titleLink=item.title||'';
}else{
item.titleLink='<a title="点击查看原文(v)" onclick="this.href=\''+item.xgLink+'\';" href="'+item.itemLink+'" target="_blank">'+item.title+'</a>';
item.link='';
}
item.feedSource+='</div>';

return bind(Template.get('FeedItem'),item);
}
ItemList.getShowedTwoItem=function(panelY,panelB){
if(!ItemList.cSelectedItemIndex)ItemList.cSelectedItemIndex=0;
var first=null;
var next=null;
var scrollTop=ItemList.scroller().scrollTop;
var offset=-scrollTop;

var start=($listScrollHeight<=scrollTop)?ItemList.cSelectedItemIndex:Math.max(ItemList.cSelectedItemIndex-4,0);
for(var i=start;i<ItemList.cShowCount;i++){
var feedItemId=ItemList.cList[i].feedItemId;
var elItem=$('item_'+feedItemId);
var itemY=Dom.getXY(elItem)[1]+offset;
var itemB=itemY+elItem.offsetHeight;
var part=(itemY<panelY&&itemB>panelY&&itemB<panelB);
var full=(((itemY<=panelY&&itemB>panelY)&&(!part))||(itemY>=panelY&&itemB<=panelB));
if(full||part){
first={
id:feedItemId,
index:i,
y:itemY,
b:itemB
};
if(part&&i<ItemList.cShowCount-1){
var elNextItem=$('item_'+ItemList.cList[i+1].feedItemId);
var nextItemY=Dom.getXY(elNextItem)[1]+offset;
next={
id:ItemList.cList[i+1].feedItemId,
index:i+1,
y:nextItemY,
b:nextItemY+elNextItem.offsetHeight
};
}
break;
}
}
$listScrollHeight=scrollTop;
return[first,next];
}
ItemList.scroller=function(){
return Actor.UserConfig.full_scroll?$('content_pannel'):$('context_itemList');
}
ItemList.ItemListScroll=function(){


if(!PageMgr.inItemList()||!Actor.UserConfig.enable_scroll_read||Actor.UserConfig.item_list_mode)return;

var elPanel=ItemList.scroller();
var panelY=Dom.getXY(elPanel)[1];
var panelB=panelY+elPanel.offsetHeight;

var items=ItemList.getShowedTwoItem(panelY,panelB);
var first=items[0];
var next=items[1];
if(!first&&!next)return;
for(var i=ItemList.cSelectedItemIndex;i<=first.index;i++){

ItemList.markItemReaded(i);
}
ItemList.enableItemScroll(false);
if(next){
if(next.y>=panelY&&next.b<=panelB){
ItemList.selectItem(next.index);
}else{
var firstH=first.b-panelY;
var nextH=panelB-next.y;
if(firstH>nextH){
ItemList.selectItem(first.index);
}else{
ItemList.selectItem(next.index);
}
}
}else{
ItemList.selectItem(first.index);
}
}
var $listScrollHeight=0;
ItemList.enableScrollRead=function(enable){
var elMain=$('content_pannel');
var elList=$('context_itemList');
$listScrollHeight=0;
var el=null;
if(Actor.UserConfig.full_scroll){
elList.onscroll=null;
el=elMain;
}else{
elMain.onscroll=null;
el=elList;
}
if(!el)return;
if(!enable){
el.onscroll=null;
el.onmousewheel=null;
}else{
if(el.onscroll)return;
el.onscroll=ItemList.ItemListScroll;
if(Dom.IsOpera){
el.onmousewheel=ItemList.ItemListScroll;
}
}
}
ItemList.scrollEnable=true;
ItemList.enableItemScroll=function(enable){
ItemList.scrollEnable=(enable==true);
}
ItemList.scrollToItem=function(index){
if(index<0||index>=this.cShowCount||!ItemList.scrollEnable)return;
var scroll=index;
for(var i=0;i<index;i++){

var item=$('item_'+this.cList[i].feedItemId);

scroll+=item.offsetHeight;
}
if(!Actor.UserConfig.full_scroll)
$('context_itemList').scrollTop=scroll;
else{
$('content_pannel').scrollTop=scroll+$('header_pannel').offsetHeight+$('itemList_header').offsetHeight;
}
}
ItemList.selectItem=function(index,onlyFocus){
var listMode=Actor.UserConfig.item_list_mode;
var item=ItemList.cList[index];
var feedItemId=item.feedItemId;

if(ItemList.cSelectedItemId!=null&&ItemList.cSelectedItemId!=feedItemId){
var elLast=$('item_'+ItemList.cSelectedItemId);
Dom.removeClass(elLast,'item_selected');
if(!ItemList.isItemCollapse(ItemList.cSelectedItemIndex)){
var itemN=ItemList.cList[ItemList.cSelectedItemIndex];

}
}


ItemList.cSelectedItemId=feedItemId;
ItemList.cSelectedItemIndex=index;
var elItem=$('item_'+feedItemId);
Dom.addClass(elItem,"item_selected");

if(!item.remark.read){
ItemList.markItemReaded(index);
}else{
ItemList.markItemReadedHtml(index);
}
ItemList.scrollToItem(index);
ItemList.enableItemScroll(true);
}
ItemList.GoPageHead=function(){
var el=this.scroller();
if(el)el.scrollTop=0;
}
ItemList.headerClick=function(index){
var index=index||0;
var item=ItemList.cList[index];
if(!item)return;
ItemList.enableItemScroll(false);
var e=JEvent.getEvent();
var el=JEvent.element(e);

if(el.tagName.toLowerCase()!="a"){
var elItem=$('item_'+item.feedItemId);
if(ItemList.isItemCollapse(index)){
ItemList.expandItem(index);
}else{
if(ItemList.cSelectedItemIndex==index)
ItemList.collapseItem(index);
}

ItemList.selectItem(index);
}
}
ItemList.isItemCollapse=function(index){
var item=ItemList.cList[index];
if(item){
return Dom.hasClass($('item_'+item.feedItemId),"item_title_mode");
}
}
ItemList.expandItem=function(index){
var item=ItemList.cList[index];
var el=$('item_'+item.feedItemId);
if(!el)return false;
if(!item._expandDescr){

var feed=ItemList.cFeedsMap[item.feedId];
$('descr_'+item.feedItemId).innerHTML=item.description+tidyHTML;
Dom.replaceClass(el,"item_title_mode","item");
item._expandDescr=true;
}
Dom.replaceClass(el,"item_title_mode","item");
}
ItemList.collapseItem=function(index){
var item=ItemList.cList[index];
var el=$('item_'+item.feedItemId);
if(!el)return false;
Dom.replaceClass(el,"item","item_title_mode");


}
ItemList.switchFavoriteItem=function(index){
if(Actor.demandLogin()){
return;
}
var item=ItemList.cList[index];
var oldFav=item.remark.favorited;
ItemList.addDiggNum(index,"favorited");
item.remark.favorited=!oldFav;
ItemList.switchFavoriteItemHtml(index);
ItemRemark.favoriteItem(item,item.remark.favorited);
if(TabMgr.inFavorite()){
if(oldFav!=item.remark.favorited){
ActorTag.addTotalNum(item.remark.favorited?1:-1);
if(item.remark.favorited){
ActorTag.addUntagNum(item.remark.favorited?1:-1);
}
}
}

}
ItemList.switchFavoriteItemHtml=function(index){

var item=ItemList.cList[index];
var feedItemId=item.feedItemId;
var elB=$('favBottom_'+feedItemId);
var elT=$('fav_'+feedItemId);
var elLT=$('list_fav_'+feedItemId);
if(item.remark.favorited){
if(elB){
elB.title='取消收藏';
elB.innerHTML='取消';
Dom.replaceClass(elB,'favorite','favorited');
}
if(elT){
elT.title='取消收藏';
Dom.replaceClass(elT,'favorite','favorited');
}
if(elLT){
elLT.title='取消收藏';
Dom.replaceClass(elLT,'favorite','favorited');
}
}else{
if(elB){
elB.title=elB.innerHTML='收藏';
Dom.replaceClass(elB,'favorited','favorite');
}
if(elT){
elT.title='收藏';
Dom.replaceClass(elT,'favorited','favorite');
}
if(elLT){
elLT.title='收藏';
Dom.replaceClass(elLT,'favorited','favorite');
}
}
}
ItemList.switchDiggItem=function(index){
if(Actor.demandLogin()){
return;
}
var item=ItemList.cList[index];
var feedItemId=item.feedItemId;
var digg=item.remark.digg;
ItemList.addDiggNum(index,"digg");
item.remark.digg=!digg;
ItemList.switchDiggItemHtml(index);
if(item.remark.digg){
ShareAccount.quickShare(item);
}
ItemRemark.diggItem(item,item.remark.digg,function(res){
ret=eval('('+res.responseText+')');
if(ret.status==1){
ActorTag.diggItemNum=parseInt(ActorTag.diggItemNum)+(item.remark.digg?parseInt(1):parseInt(-1));
if($('listTag_digg_Num'))$('listTag_digg_Num').innerHTML=ActorTag.diggItemNum;
}
});

}
ItemList.switchDiggItemHtml=function(index){
var item=ItemList.cList[index];
var feedItemId=item.feedItemId;
var elB=$('shareBottom_'+feedItemId);
var elT=$('share_'+feedItemId);
var elLT=$('list_share_'+feedItemId);
if(item.remark.digg){
if(elB){
elB.title='取消推荐';
elB.innerHTML='取消';
Dom.replaceClass(elB,'digg','digged');
}
if(elT){
elT.title='取消推荐';
Dom.replaceClass(elT,'digg','digged');
}
if(elLT){
elLT.title='取消推荐';
Dom.replaceClass(elLT,'digg','digged');
}
}else{
if(elB){
elB.title=elB.innerHTML='推荐';
Dom.replaceClass(elB,'digged','digg');
}
if(elT){
elT.title='推荐';
Dom.replaceClass(elT,'digged','digg');
}
if(elLT){
elLT.title='推荐';
Dom.replaceClass(elLT,'digged','digg');
}
}
}
var tagSuggest={

suggest:null,
time:null,
data:[],
init:function(data){
if(!this.suggest){
this.suggest=new Suggest();
this.suggest.init('ipt_Tag',this.data,'tagSuggest.suggest');
}
},
show:function(e,sender,onenter){
var prefix=$('ipt_Tag').value;
var ls=prefix.split(/\s+/);
prefix=ls[ls.length-1];
this.suggest.show(e,prefix);
}

}
ItemList.tagItemIndex=null;
ItemList.showTagPanel=function(index){
if(Actor.demandLogin()){
return;
}
ItemList.tagItemIndex=index;
var panel=$('tagPanel');
panel.__drager=true;
if(panel.innerHTML==''){
panel.innerHTML=Template.get('TagPanel');
}

var item=ItemList.cList[index];


if(tagSuggest&&tagSuggest.suggest){
tagSuggest.suggest.closeDiv();
}
AsyncBatchCall(interfaceUrl,[{
method:'Tag.getFavorites',
params:{feedItemId:item.refId}
},{
method:'Tag.getItemTags',
params:{feedItemId:item.refId,page:0,pageSize:20}
},{
method:'Tag.getActorTags',
params:{page:0,pageSize:50}
}],function(res){
var ret=JSON.decode(res.responseText);
if(ret.length==3){
panel.style.display='block';

$('ipt_Tag').value='';
$('allItemTags').innerHTML='';
$('allMyTags').innerHTML='';
var favorited=ret[0].data.favorited;
$('ipt_Title').value=(favorited&&favorited.title)||item.title;
$('ipt_Notes').value=(favorited&&favorited.notes)||"";

var public=!Actor.UserConfig.get('favorite_is_private');
if(favorited)
public=favorited.public;
$('ipt_Public').checked=!public;

$('ipt_Tag').value=(favorited&&favorited.tags)||"";;

tags=ret[1].data.list;

ItemList.loadTagsToPanel(tags,'allItemTags',false,'ItemList.appendTagInput(this)');
tags=ret[2].data.list;

ItemList.loadTagsToPanel(tags,'allMyTags',false,'ItemList.appendTagInput(this)');

tagSuggest.init();
PanelMgr.show(panel,{
x:($('mainContext').offsetWidth-panel.offsetWidth)/2+$('SidePannel').offsetWidth,
y:140,
autoPos:false,
hideCallback:function(){
ItemList.tagItemIndex=null;
}
});
$('ipt_Tag').focus();
}

});

try{

if(Actor.Account.bookmark_cancel){
$('tr_ta_bookmark_cancel').style.display="none";
}else{
$('tr_ta_bookmark_cancel').style.display="";
}
if(Actor.Account.bookmark_sync){
$('ta_tobindaccount').style.display="none";
$('ipt_c_disableBookmark').disabled='';
$('ipt_c_disableBookmark').checked=Actor.Account.bookmark_sync_abled;
}else{
$('ta_tobindaccount').style.display="";
$('ipt_c_disableBookmark').disabled='disabled';
}
}catch(e){}
}
ItemList.appendTagInput=function(tagSpan){
if(ItemList.tagItemIndex==null)return;

var input=$("ipt_Tag");
var value=input.value;
if(value.indexOf(tagSpan.innerHTML)>-1)
value=value.replaceAll(tagSpan.innerHTML,'');
else value+=' '+tagSpan.innerHTML;
input.value=value.trim();
input.focus();

JEvent.stop(JEvent.getEvent());

}
ItemList.loadTagsToPanel=function(tags,panelid,remove,onclick){


if(ItemList.tagItemIndex==null)return;
var itemTagPanel=$(panelid);
var html=[];
tags.each(function(tag){
var v=tag.name;
if(v==''||v==' ')return;

html.push('<span class="PanelTag" ');
if(onclick)html.push('onclick="'+onclick+'">');
else html.push('>');
html.push(v);
html.push('</span>');
if(remove){

html.push('<span class="removeTag" onclick="ItemList.removeTag(this, ');
html.push(tag.tagId);
html.push(')"> (X)</span>');
}
html.push(' ');
if(tagSuggest.data.indexOf(tag.name)==-1){
tagSuggest.data.push(tag.name);

}
});
itemTagPanel.innerHTML=html.join('');
}
ItemList.removeTag=function(span,tagId,tag){

if(ItemList.tagItemIndex==null)return;
var item=ItemList.cList[ItemList.tagItemIndex];
var params={
feedItemId:item.feedItemId,
refId:item.refId,
feedId:item.feedId,
tagId:tagId
};

AsyncCall(interfaceUrl,"method=Tag.removeItemTag&params="+JSON.serialize(params),function(){

span.parentNode.removeChild(span.previousSibling);

span.parentNode.removeChild(span);
if(TabMgr.inFavorite()){
ActorTag.Load();
}
WaitControl.SaveError("删除标签完成");
},function(){
WaitControl.SaveError("删除标签出错");
});


}
ItemList.tagItem=function(){
if(ItemList.tagItemIndex==null)return;
var tagString=$('ipt_Tag').value.Trim().replaceAll('　',' ');
var title=$('ipt_Title').value.Trim();
var notes=$('ipt_Notes').value.Trim();

var public=!$('ipt_Public').checked;

if(tagString==''){
alert('必须输入标签！');
$('ipt_Tag').focus();
return;
};
var item=ItemList.cList[ItemList.tagItemIndex];
var oldFavStatus=item.remark.favorited;
var newTags=(tagString.split(/\s+|　|,|，|；|;/)).without("");
if(TabMgr.inFavorite()){
ActorTag.addTag(newTags);
}
ItemList.addDiggNum(ItemList.tagItemIndex,"favorited");
item.remark.favorited=true;
if(title==item.title){

title='';
}
var disableBookmark=!$('ipt_c_disableBookmark').checked;
ItemRemark.tagItem(item,newTags,title,notes,public,function(){
if(Actor.Account.bookmark_sync&&!disableBookmark)
WaitControl.SaveEndMsg("已同时收藏到Del.icio.us！");
},null,disableBookmark);


if(!oldFavStatus){
ItemList.switchFavoriteItemHtml(ItemList.tagItemIndex);
}
PanelMgr.hide();
}
ItemList.ToTagOther=function(type,img){
$('img_type').src=img;
$('div_ToTag').style.display="block";
var tag=encodeURIComponent($('ipt_Tag').value+" berryline");
var title=encodeURIComponent(ItemList.cList[ItemList.tagItemIndex].title);
var url=encodeURIComponent(ItemList.cList[ItemList.tagItemIndex].url);
if(type=='del'){
$('spn_type').innerHTML="del.icio.us 收藏";
$('if_ToTag').src='http://del.icio.us/post?v=4&partner=xianguo.com&noui=&jump=close&url='+url+'&tags='+tag+'&title='+title;
}else if(type=='digg'){
$('spn_type').innerHTML="digg 收藏";
$('if_ToTag').src='http://digg.com/submit?phase=2&url='+url+'&title='+title+'&bodytext='+tag;
}else if(type=='yahoo'){
$('spn_type').innerHTML="yahoo 收藏";
$('if_ToTag').src='http://myweb2.search.yahoo.com/myresults/bookmarklet?tag='+tag+'&u='+url+'&t='+title;
}else if(type=='qq'){
$('spn_type').innerHTML="qq 书签";
$('if_ToTag').src='http://shuqian.qq.com/post?title='+title+'&uri='+url+'&jumpback=2&noui=1';
}else if(type=='baidu'){
$('spn_type').innerHTML="baidu 收藏";
$('if_ToTag').src='http://cang.baidu.com/do/add?iu='+url+'&it='+title+'&fr=ien#nw=1';
}
window.open($('if_ToTag').src,'_blank','scrollbars=no,width=600,height=450,left=75,top=20,status=no,resizable=yes');
}
ItemList.EndTagOther=function(){

$('if_ToTag').src='about:blank';
$('div_ToTag').style.display="none";
}
ItemList.tagKeyDown=function(e,sender){
var evt=JEvent.getEvent();


if(evt.keyCode==13){
ItemList.tagItem();
}
}
ItemList.suggestForTag=function(e,sender){
var evt=e||window.event;
if(evt.keyCode==13&&evt.ctrlKey){
ItemList.tagItem();
}
else{
var tags=$('allMyTags').tagList;

tagSuggest.show(evt,sender,tags);
}
}
ItemList.addDiggNum=function(index,property){
var item=ItemList.cList[index];
var oldFlag=item.remark[property];
var bool=true;
if(oldFlag){
item.remark[property]=false;
bool=false;
}
if((item.remark.digg||item.remark.shared||item.remark.favorited)){
return;
}
if(bool)item.diggNum++;
else item.diggNum--;

var el=$('digg_num_'+item.feedItemId);
el.innerHTML=item.diggNum;
if(item.diggNum>0){
el.className='digg_num_highlight';
}else{
el.className='digg_num';
}
}
ItemList.showItemDiggers=function(index){
var item=ItemList.cList[index];
if(item){
PanelMgr.showItemDiggers(item);
}
}
ItemList.markItemReaded=function(index,skipHtml){
if(!PageMgr.inItemList()||ItemList.status!='feed'){
return;
}
var item=ItemList.cList[index];

var feedItemId=item.feedItemId;

var feedId=item.feedId;
var feed=ChannelList.FindChannel(feedId);
if(!skipHtml){
ItemList.markItemReadedHtml(index);
}
if(!feed||(ItemList.loading&&feed.unreadNum==0)){
return;
}
if(!item.remark.read){

setTimeout(function(){
ChannelList.setFeedUnreadNum(feedId,feed.unreadNum-1);
},100);
ItemRemark.queueItemForMarkRead(item);
}
item.remark.read=true;
}
ItemList.markItemReadedHtml=function(index){
var item=ItemList.cList[index];
var feedItemId=item.feedItemId;
var el=$('item_'+feedItemId);
if(el)Dom.replaceClass(el,'item_unreaded','item_readed');
}
ItemList.markShowingFeedReaded=function(feeds){
if(!feeds||this.status!='feed'||!this.cList)return;
if(typeof feeds=='string'&&feeds!='*')feeds=feeds.split(',');
for(var i=0;i<this.cList.length;i++){
if(feeds=='*'||feeds.indexOf(this.cList[i].feedId)>-1){
this.cList[i].remark.read=true;
this.markItemReadedHtml(i);
}
}
}
ItemList.cancelItemReaded=function(index){
var item=ItemList.cList[index];
if(!item.remark.read)return;
var feedItemId=item.feedItemId;
var feedId=item.feedId;
var feed=ChannelList.FindChannel(feedId);
if(feed==null)return;
item.remark.read=false;
ItemList.cancelItemReadedHtml(index);
ChannelList.setFeedUnreadNum(feedId,feed.unreadNum+1);
ItemRemark.unreadItem(item);
}
ItemList.cancelItemReadedHtml=function(index){
var item=ItemList.cList[index];
var feedItemId=item.feedItemId;
var el=$('item_'+feedItemId);
Dom.replaceClass(el,'item_readed','item_unreaded');
}
ItemList.markAllReaded=function(){
if(ItemList.status!="feed")return;
if(ItemList.cFeedId){
var feedids=ItemList.cFeedId;
if(feedids=='*'){

ChannelList.markFeedsReaded('*');
}else{
ChannelList.markFeedsReaded(feedids.split(','));
}
}
}
ItemList.markPageReaded=function(){
if(ItemList.status!="feed")return;
var feeds=[];
for(var i=0;i<this.cList.length;i++){
var item=this.cList[i];
if(!this.isItemReaded(item)){
this.markItemReaded(i);
}else{
this.markItemReadedHtml(i);
}
}
}
ItemList.sendItemIndex=null;
ItemList.showItemSendPanel=function(index){
ItemList.sendItemIndex=index;
friendListMg.Load(function(){
friendListMg.initSelect('sel_friendEach_mails');
$('itemSend.panel.sendButton').onclick=ItemList.sendItem;
$('itemSend.panel.sendOutSide').style.display='';
$('tr_itemSend_otherEmail').style.display='none';

var panel=$('itemSend.panel');
panel.style.display='block';
ItemList.sendItemIndex=index;
$('itemSend.title').value=Actor.GetActorName()+'推荐：'+ItemList.cList[index].title;
$('itemSend.content').value='嗨，这篇文章不错，看看吧';
PanelMgr.show(panel,{
x:($('mainContext').offsetWidth-panel.offsetWidth)/2+$('SidePannel').offsetWidth,
y:140,
autoPos:false
});
$('itemSend.content').focus();
}
);
};
ItemList.sendItem=function(){
if(!PageMgr.inItemList()||this.sendItemIndex===null)return;
if($('itemSend.mails').value.Trim()==''&&($('sel_friendEach_mails').value<0)){
alert('请选择朋友昵称或者输入站外朋友的邮件,！');
$('sel_friendEach_mails').focus();
return;
}
if($('itemSend.title').value==''&&$('itemSend.content').value==''){
alert('请输入邮件标题和正文!');
return false;
}
if($('itemSend.title').value.length>80){
alert('标题大于80个字符!');
$('itemSend.title').focus();
return false;
}
if($('itemSend.content').value.length>350){
alert('内容大于350个字符!');
$('itemSend.content').focus();
return false;
}
if($('itemSend.mails').value.Trim()!=''||$('sel_friendEach_mails').value.Trim()!='')
{
var item=ItemList.cList[ItemList.sendItemIndex];
var feed=ItemList.cFeedsMap[item.feedId];
var p={
mails:$('itemSend.mails').value.replace(/，/,','),
title:$('itemSend.title').value,
time:item.time,
feedId:item.feedId,
feedItemId:item.feedItemId,
refId:item.refId,
friendNote:$('itemSend.content').value,
xianguoMails:$('sel_friendEach_mails').value.Trim(),
mailBody:$('itemSend.content').value
};
var shared=item.remark.shared;
ItemList.addDiggNum(ItemList.sendItemIndex,"shared");
item.remark.shared=!shared;

AsyncCall(interfaceUrl,'method=FeedItem.mailItem&params='+encodeURIComponent(JSON.serialize(p)),function(res){
var ret=JSON.decode(res.responseText);
if(ret.error){
WaitControl.SaveError(ret.error);
}else{
WaitControl.SaveEndMsg('邮件发送成功！');
}
},function(){
WaitControl.SaveEndMsg('邮件发送失败！');
});
}
PanelMgr.hide();
};
ItemList.showOtherEmail=function(){
if($('tr_itemSend_otherEmail').style.display=='none')
{
$('tr_itemSend_otherEmail').style.display='block';
}
else
{
$('tr_itemSend_otherEmail').style.display='none';
}
}
ItemList.switchReadCurrentItem=function(){
if(!PageMgr.inItemList()||this.cSelectedItemIndex===null)return;
var item=this.cList[this.cSelectedItemIndex];
if(this.isItemReaded(item)){
ItemList.cancelItemReaded(this.cSelectedItemIndex);
}else{
ItemList.markItemReaded(this.cSelectedItemIndex);
}
}
ItemList.switchFavoriteCurrentItem=function(){
if(!PageMgr.inItemList()||this.cSelectedItemIndex===null)return;
ItemList.switchFavoriteItem(this.cSelectedItemIndex);
}
ItemList.switchShareCurrentItem=function(){
if(!PageMgr.inItemList()||this.cSelectedItemIndex===null)return;
ItemList.switchDiggItem(this.cSelectedItemIndex);
}
ItemList.switchExpandCurrentItem=function(){
if(this.cSelectedItemIndex===null||!this.cList[this.cSelectedItemIndex])return;
var item=this.cList[this.cSelectedItemIndex];
var el=$('item_'+item.feedItemId);
if(ItemList.isItemCollapse(this.cSelectedItemIndex)){
ItemList.expandItem(this.cSelectedItemIndex);
}else{
ItemList.collapseItem(this.cSelectedItemIndex);
}
}
ItemList.tagCurrentItem=function(){
if(!PageMgr.inItemList()||this.cSelectedItemIndex===null)return;
this.showTagPanel(this.cSelectedItemIndex);
}
ItemList.openCurrentItem=function(){
if(!PageMgr.inItemList()||this.cSelectedItemIndex===null)return;
var item=this.cList[this.cSelectedItemIndex];
if(!open(item.url,'item'+item.feedItemId)){
alert('你的浏览器可能启用了弹出窗口过滤器！');
}
}
ItemList.feedIsShowing=function(feedid){
if(!PageMgr.inItemList())return false;
if(!ItemList.cFeedId)return false;
if(ItemList.cFeedId=='*')return true;
return ItemList.cFeedId.indexOf(feedid)>-1;
}
ItemList.isItemReaded=function(item){
var feed=ChannelList.FindChannel(item.feedId);
if(!feed)return true;
if(feed&&feed.unreadNum<=0&&ItemList.loading)return true;
return item.remark.read;
}
ItemList.isSingleFeed=function(){
if(!PageMgr.inItemList())return false;

if(this.status=='preview')return true;

return this.status=='feed'&&ChannelList.status=='feed';
}
ItemList.pushToReWenPannel=function(){

AsyncCall(interfaceUrl,"method=Actor.getPower",function(res){

ret=eval('('+res.responseText+')');
if(ret.data!=1&&ret.data!=2){

return;
}else{
if(ItemList.cSelectedItemIndex==null){
alert('请选择上热文的文章');
return;
}
item=ItemList.cList[ItemList.cSelectedItemIndex];
if(!item){
alert('当前项不存在，请尝试刷新后再推荐');
return;
}

$('submit_title').value=item.title;
$('submit_digg_notes').value='';
$('item_category_select').value=1;

panel=$('submit_rewen_div');
PanelMgr.show(panel,{
x:($('mainContext').offsetWidth-150)/2+$('SidePannel').offsetWidth,
y:140,
autoPos:false
});


}
},function(){
alert('失败');
return;
});

}
ItemList.pushToReWen=function(){
item=ItemList.cList[ItemList.cSelectedItemIndex];
if(!item){
return;
}
diggNotes=$('submit_digg_notes').value;
if(diggNotes.Trim().length>300){
return alert('推荐语不多于300个字');
}
category=$('item_category_select').value;
p={
itemid:item.refId,
diggNotes:diggNotes,
category:category==-1?'':category,
submitType:$('hot_type_submit').value,
feedId:item.feedId
};

AsyncCall(interfaceUrl,"method=SubmitDigg.submitToHotOrNew&params="+JSON.serialize(p),function(res){

ret=eval('('+res.responseText+')');
if(ret.error){
alert(ret.error);
}else{
alert('推荐成功');
PanelMgr.hide();
}
},function(){
alert('失败');
return;
});



}
var interfaceUrl='/rssreader.php';
var Keyboard={};
Keyboard.Key={};
Keyboard.KeyD=[{id:0,title:'下一篇文章',text:'J',onkeydown:function(){ItemList.goNextItem();}},
{id:1,title:'上一篇文章',text:'K',onkeydown:function(){ItemList.goPrevItem();}},
{id:2,title:'下移阅读焦点',text:'N',onkeydown:function(){ItemList.nextFocus();}},
{id:3,title:'上移阅读焦点',text:'P',onkeydown:function(){ItemList.prevFocus();}},
{id:4,title:'展开/收缩文章',text:'O',onkeydown:function(){ItemList.switchExpandCurrentItem();}},
{id:5,title:'收藏文章',text:'S',onkeydown:function(){ItemList.switchFavoriteCurrentItem();}},
{id:6,title:'推荐文章',text:'Shift+S',onkeydown:function(){ItemList.switchShareCurrentItem();}},
{id:7,title:'打标签',text:'T',onkeydown:function(){ItemList.tagCurrentItem();}},
{id:8,title:'查看原文',text:'V',onkeydown:function(){ItemList.openCurrentItem();}},
{id:9,title:'标记文章为已读/未读',text:'M',onkeydown:function(){ItemList.switchReadCurrentItem();}},
{id:10,title:'下一个频道',text:'Shift+N',onkeydown:function(){ItemList.nextFeed();}},
{id:11,title:'上一个频道',text:'Shift+P',onkeydown:function(){ItemList.prevFeed();}},
{id:12,title:'下一页',text:'+',onkeydown:function(){ItemList.nextPage();}},
{id:13,title:'上一页',text:'-',onkeydown:function(){ItemList.prevPage();}},
{id:14,title:'标记本页为已读',text:'Shift+M',onkeydown:function(){ItemList.markPageReaded();}},
{id:15,title:'标记全部为已读',text:'Shift+A',onkeydown:function(){ItemList.markAllReaded();}},
{id:16,title:'刷新左侧列表',text:'R',onkeydown:function(){ChannelList.refresh();}},
{id:17,title:'隐藏左侧列表',text:'U',onkeydown:function(){TabMgr.switchExpandSide();}},
{id:18,title:'标题阅读',text:'1',onkeydown:function(){Actor.UserConfig.item_list_mode=false;ItemList.SwitchListMode();}},
{id:19,title:'全文阅读',text:'2',onkeydown:function(){Actor.UserConfig.item_list_mode=true;ItemList.SwitchListMode();}},
{id:21,title:'快捷键提示',text:'Shift+/',onkeydown:function(){PanelMgr.showHotKey();}},
{id:22,title:'频道过滤器',text:'F',onkeydown:function(){TabMgr.showFeedFilter(true);}}
];
Keyboard.KeyForBid=[{title:'帮助',text:'F1'},
{title:'打开地址栏',text:'F4'},
{title:'页面刷新',text:'F5'},
{title:'全屏阅读',text:'F11'},
{title:'取消',text:'Esc'},
{title:'关闭窗口',text:'Alt+F4'},
{title:'后退',text:'Alt+Left'},
{title:'前进',text:'Alt+Right'},
{title:'新标签页中打开地址',text:'Alt+Enter'},
{title:'制表',text:'Tab'},
{title:'制表',text:'Shift+Tab'},
{title:'页面刷新',text:'Ctrl+R'},
{title:'打开',text:'Ctrl+O'},
{title:'下一标签页',text:'Ctrl+Tab'},
{title:'关闭选卡',text:'Ctrl+W'},
{title:'打印',text:'Ctrl+P'},
{title:'缩小文字',text:'Ctrl+-'},
{title:'放大文字',text:'Ctrl++'},
{title:'选中标签页',text:'Ctrl+1'},
{title:'选中标签页',text:'Ctrl+2'},
{title:'选中标签页',text:'Ctrl+3'},
{title:'选中标签页',text:'Ctrl+4'},
{title:'选中标签页',text:'Ctrl+5'},
{title:'选中标签页',text:'Ctrl+6'},
{title:'选中标签页',text:'Ctrl+7'},
{title:'选中标签页',text:'Ctrl+8'},
{title:'选中标签页',text:'Ctrl+9'},
{title:'前进',text:'Shift+←'},
{title:'页面后退',text:'←'}];
Keyboard.onkeydown=function(evt){
if(!Actor.UserConfig.enable_hot_key)return;
var el=JEvent.element(evt);
if(el.tagName=='INPUT'||el.tagName=='TEXTAREA')return;
evt=evt||window.event;
var keycode=evt.keyCode;
var key=Keyboard.GetKey(evt);
if(key){
if(key.text=="F11"){
PageMgr.fullScreen();
return true;
}
for(var i=0;i<Keyboard.KeyD.length;i++){
var kd=Keyboard.KeyD[i];
if(key.text==Keyboard.Key[kd.id]&&kd.onkeydown){
try{
kd.onkeydown();
JEvent.stop(evt);
}catch(e){break;}
return false;
}
}
if(el.scrollHeight>el.offsetHeight){
return true;
}
if(PageMgr.inItemList()){
var scroller=ItemList.scroller();
switch(keycode){
case 33:
case 105:
scroller.scrollTop-=scroller.offsetHeight;
break;
case 34:
case 99:
scroller.scrollTop+=scroller.offsetHeight;
break;
case 36:
case 103:
scroller.scrollTop=0;
break;
case 35:
case 97:
scroller.scrollTop=scroller.scrollHeight;
break;
case 38:
case 104:
scroller.scrollTop-=30;
break;
case 40:
case 98:
scroller.scrollTop+=30;
break;
case 61:
ItemList.pushToReWenPannel();
break;
}
}
}
return true;
}

Keyboard.KeyCode=[{text:'←',code:'8'},
{text:'Tab',code:'9'},
{text:'Clear',code:'12'},
{text:'Enter',code:'13'},
{text:'Shift',code:'16'},
{text:'Ctrl',code:'17'},
{text:'Alt',code:'18'},
{text:'Pause',code:'19'},
{text:'Caps_Lock',code:'20'},
{text:'Escape',code:'27'},
{text:'Space',code:'32'},
{text:'PageUp',code:'33'},
{text:'PageDown',code:'34'},
{text:'End',code:'35'},
{text:'Home',code:'36'},
{text:'Left',code:'37'},
{text:'Up',code:'38'},
{text:'Right',code:'39'},
{text:'Down',code:'40'},
{text:'Select',code:'41'},
{text:'Print',code:'42'},
{text:'Execute',code:'43'},
{text:'Insert',code:'45'},
{text:'Delete',code:'46'},
{text:'Help',code:'47'},
{text:'0',code:'48'},
{text:'1',code:'49'},
{text:'2',code:'50'},
{text:'3',code:'51'},
{text:'4',code:'52'},
{text:'5',code:'53'},
{text:'6',code:'54'},
{text:'7',code:'55'},
{text:'8',code:'56'},
{text:'9',code:'57'},
{text:';',code:'59'},
{text:'+',code:'61'},
{text:'A',code:'65'},
{text:'B',code:'66'},
{text:'C',code:'67'},
{text:'D',code:'68'},
{text:'E',code:'69'},
{text:'F',code:'70'},
{text:'G',code:'71'},
{text:'H',code:'72'},
{text:'I',code:'73'},
{text:'J',code:'74'},
{text:'K',code:'75'},
{text:'L',code:'76'},
{text:'M',code:'77'},
{text:'N',code:'78'},
{text:'O',code:'79'},
{text:'P',code:'80'},
{text:'Q',code:'81'},
{text:'R',code:'82'},
{text:'S',code:'83'},
{text:'T',code:'84'},
{text:'U',code:'85'},
{text:'V',code:'86'},
{text:'W',code:'87'},
{text:'X',code:'88'},
{text:'Y',code:'89'},
{text:'Z',code:'90'},
{text:'KP_0',code:'96'},
{text:'KP_1',code:'97'},
{text:'KP_2',code:'98'},
{text:'KP_3',code:'99'},
{text:'KP_4',code:'100'},
{text:'KP_5',code:'101'},
{text:'KP_6',code:'102'},
{text:'KP_7',code:'103'},
{text:'KP_8',code:'104'},
{text:'KP_9',code:'105'},
{text:'*',code:'106'},
{text:'+',code:'107'},
{text:'KP_Separator',code:'108'},
{text:'-',code:'109'},
{text:'.',code:'110'},
{text:'/',code:'111'},
{text:'F1',code:'112'},
{text:'F2',code:'113'},
{text:'F3',code:'114'},
{text:'F4',code:'115'},
{text:'F5',code:'116'},
{text:'F6',code:'117'},
{text:'F7',code:'118'},
{text:'F8',code:'119'},
{text:'F9',code:'120'},
{text:'F10',code:'121'},
{text:'F11',code:'122'},
{text:'F12',code:'123'},
{text:'F13',code:'124'},
{text:'F14',code:'125'},
{text:'F15',code:'126'},
{text:'F16',code:'127'},
{text:'F17',code:'128'},
{text:'F18',code:'129'},
{text:'F19',code:'130'},
{text:'F20',code:'131'},
{text:'F21',code:'132'},
{text:'F22',code:'133'},
{text:'F23',code:'134'},
{text:'F24',code:'135'},
{text:'Num_Lock',code:'144'},
{text:'Scroll_Lock',code:'145'},
{text:'+',code:'187'},
{text:'<',code:'188'},
{text:'-',code:'189'},
{text:'>',code:'190'},
{text:'/',code:'191'},
{text:'~',code:'192'},
{text:'[',code:'219'},
{text:'\\',code:'220'},
{text:']',code:'221'},
{text:'\'',code:'222'}];
Keyboard.InitView=function(){
var html=[];
html.push('<div class="hotKeyList"><div class="title">鲜果快捷键 <span class="link_button" onmouseup="PanelMgr.hide();PageMgr.goKeyboard()" style="font-size:12px;font-weight:lighter">(自定义快捷键)</span></div><table class="indexitem" width="100%" border="0" cellspacing="0" cellpadding="0">');
for(var i=0;i<Keyboard.KeyD.length;i++){
var kd=Keyboard.KeyD[i];
var k=Keyboard.Key[kd.id];
html.push('<tr><td><span>'+k+'</span></td><td>'+kd.title+'</td></tr>');
}
html.push('</div>');
var h=html.join('');

Template.Hotkey=h;
}
Keyboard.InitHtml=function(){

var html=[];
html.push("<table class='keyboard_body' cellpadding='0' cellspacing='0'>");
html.push("<tr class='tr_1'><td class='td_1'>操作命令</td><td class='td_2'>快捷键(单击修改)</td><td class='td_3'></td></tr>");
for(var i=0;i<Keyboard.KeyD.length;i++){
var kd=Keyboard.KeyD[i];
var id=kd.id;
var k=Keyboard.Key[id];
var cssName=i%2==0?"tr_2":"tr_3";
var restore=k==kd.text?"style='display:none'":"";
html.push("<tr class='"+cssName+"'><td>"+kd.title+"</td><td><input id='kb_i_"+id+"' title='单击修改' name='"+id+"' class='ipt_read' value='"+k+"' onmouseover='Keyboard.MouseOn(this)' readonly='true'></td><td><span id='kb_info_"+id+"'></span> <span id='kb_btn_"+id+"' "+restore+" class='span_button' onclick='Keyboard.Restore("+id+")'>还原</span></td></tr>");
}
html.push("<tr><td colspan='3'><button onclick='Keyboard.RestoreAll()'>全部还原</button></td></tr></table>");
$('keyboard_main').innerHTML=html.join('');
}
Keyboard.InitKeyCode=function(tempkey){
Keyboard.Key={};
for(var i=0;i<Keyboard.KeyD.length;i++){
var kd=Keyboard.KeyD[i];
Keyboard.Key[kd.id]=tempkey[kd.id]||kd.text;
}
Keyboard.checkKey(tempkey);
}
Keyboard.checkKey=function(tempkey){
var kb=eval('('+tempkey.Keyboard+')');
if(!kb)return;
for(var i=0;i<kb.length;i++)
if(Keyboard.Key[i])
Keyboard.Key[i]=kb[i].text;
}
Keyboard.Init=function(ret,oncomplete){
if(ret.status==1){
Keyboard.InitKeyCode(ret.data);
if(oncomplete)oncomplete();
}
}
Keyboard.Save=function(id){
if(id){
var target=$('kb_i_'+id);
var k=target.value;
Keyboard.Key[id]=k;
var kd=Keyboard.getKeyDById(id);
$('kb_btn_'+id).style.display=k==kd.text?"none":"";
}


var params='method=Actor.modifyAllHotkey&params='+JSON.serialize(Keyboard.Key).replace(/\+/g,"%2B");

AsyncCall(interfaceUrl,params);
}
Keyboard.MouseOn=function(target){
target.className=target.className=="ipt_write"?"ipt_write":"ipt_mouseon";

target.onmouseout=function(){
target.className=target.className=="ipt_write"?"ipt_write":"ipt_read";
}
target.onfocus=function(){
target.className="ipt_write";
target.lastValue=target.value;
}
target.onblur=function(){
target.className="ipt_read";
if(target.lastValue==target.value)return;
if(target.value=="Shift"||target.value=="Ctrl"||target.value=="Alt"){
Keyboard.showInfo(target.name,'不能单独使用Shift、Ctrl、Alt键');
target.state=false;
return;
}

for(var i=0;i<Keyboard.KeyD.length;i++){
var kd=Keyboard.KeyD[i];
if(kd.id==target.name)continue;
if(Keyboard.Key[kd.id]==target.value){
Keyboard.showInfo(target.name,'与已有的“'+kd.title+'”快捷键冲突');
target.state=false;
return;
}
}

for(var j=0;j<Keyboard.KeyForBid.length;j++){
if(Keyboard.KeyForBid[j].text==target.value){
Keyboard.showInfo(target.name,'与浏览器的“'+Keyboard.KeyForBid[j].title+'”快捷键冲突',1);
target.state=false;
return;
}
}
target.state=true;
Keyboard.cancelInfo(target.name);
Keyboard.Save(target.name);
}

target.onkeydown=function(event){
var key=Keyboard.GetKey(event);
if(key)
target.value=key.text;
try{
JEvent.stop(event);
}catch(e){}
return false;
}
}
Keyboard.showInfo=function(index,info,type){
var s=$('kb_info_'+index);
type=type||2;
if(!s)return;
s.innerHTML=info;
s.className=type==1?"keyboard_info keyboard_info_1":"keyboard_info keyboard_info_2";
s.style.display="";
$('kb_btn_'+index).style.display="";
window.setTimeout("$('kb_i_"+index+"').focus()",1);
}
Keyboard.cancelInfo=function(index){
$('kb_info_'+index).innerHTML="";
$('kb_info_'+index).style.display="none";
$('kb_btn_'+index).style.display="none";
}
Keyboard.GetKey=function(event){
var evt=event||window.event;
var text1=evt.shiftKey?"Shift":(evt.ctrlKey?"Ctrl":(evt.altKey?"Alt":null));
var text2=Keyboard.GetKeyText(evt.keyCode);
if(text2=='Shift'||text2=='Ctrl'||text2=='Alt')text2=null;
var text="";
text=text2?(text1?(text1==text2?text1:(text1+"+"+text2)):text2):text1;
if(text==null)return null;
return{text:text};
}
Keyboard.GetKeyText=function(code){
for(var i=0;i<Keyboard.KeyCode.length;i++)
if(Keyboard.KeyCode[i].code==code)
return Keyboard.KeyCode[i].text;
return null;
}
Keyboard.RestoreAll=function(){
var count=0;
for(var i=0;i<Keyboard.KeyD.length;i++){
var kd=Keyboard.KeyD[i];
var key=Keyboard.Key[kd.id];
var target=$('kb_i_'+kd.id);
if(!kd||target.value==kd.text)continue;
Keyboard.Key[kd.id]=kd.text;
target.value=kd.text;
Keyboard.cancelInfo(kd.id);
if(target.state===false){
target.state=true;
continue;
}
count++;
}
if(count>0)Keyboard.Save();
}
Keyboard.getKeyDById=function(id){
for(var i=0;i<Keyboard.KeyD.length;i++){
if(Keyboard.KeyD[i].id==id)
return Keyboard.KeyD[i];
}
return null;
}
Keyboard.Restore=function(index){
var kd=Keyboard.getKeyDById(index);
var target=$('kb_i_'+index);
if(!kd||target.value==kd.text)return;
Keyboard.cancelInfo(index);
if(target.state===false){
target.state=true;
target.value=Keyboard.Key[target.name];
$('kb_btn_'+index).style.display=target.value==kd.text?"none":"";
return;
}
Keyboard.Key[target.name]=kd.text;
target.value=kd.text;
Keyboard.Save();
}
var interfaceUrl='/rssreader.php';
var Actor={};
Actor.Login=function(email,pwd,iskeep,onComplete,onError){
var p=new Object();
p.email=email;
p.password=pwd;
p.persist=iskeep;
var params='method=Actor.logon&params='+encodeURIComponent(JSON.serialize(p));
AsyncCall(interfaceUrl,params,function(res){
eval('var ret = '+res.responseText);
if(ret.error!=null){
if(onError)onError(ret.error);
}else{
if(onComplete)onComplete();
}
},onError);
}
Actor.Account={


'quickShare':null,
'sharetoAccountList':null,'del.us':"User:PASS",

bookmark_cancel:false,
bookmark_sync:false,
bookmark_sync_quick:false,
bookmark_sync_abled:true,
bookmark_type:null,
bookmark_user:null,
bookmark_password:null,

init:function(onComplete){
AsyncCall(interfaceUrl,'method=Actor.listAccount',function(res){
var ret=eval('('+res.responseText+')');
if(ret.status==1){
Actor.Account.loadAccount(ret.data);
if(onComplete)onComplete(ret.data);
}
});
},
init1:function(ret,onComplete){
if(ret.status==1){
Actor.Account.loadAccount(ret.data);
if(onComplete)onComplete(ret.data);
}
},
loadAccount:function(setting){
for(var p in setting){
if(setting[p]&&setting[p]!=''){
if(typeof Actor.Account[p]==='undefined')continue;
var v=setting[p];
if(v==="true")
Actor.Account[p]=true;
else if(v==="false")
Actor.Account[p]=false;
else Actor.Account[p]=v;
}
}
},
save:function(onSuccess,onError,async){
var obj={};
var cfg=Actor.Account;
for(var p in cfg){
if(typeof(cfg[p])!="function"){
if(p.indexOf('_')==0)continue;
if(cfg[p]===true)
obj[p]="true";
else if(cfg[p]===false)
obj[p]="false";
else obj[p]=cfg[p];
}
}
var params='method=Actor.modifyAccount&params='+JSON.serialize(obj);
if(async===false)SyncCall(interfaceUrl,params,onSuccess,onError);
else AsyncCall(interfaceUrl,params,onSuccess,onError);
Actor.UserConfig._saveTimer=0;
},
getAccount:function(key){
if(this.isset(key)){
return Actor.Account[key].split(":");
}
else return null;
},

isset:function(key){
return(key in Actor.Account)&&(Actor.Account[key]!==null);
},
usset:function(key){
delete Actor.Account[key];
Actor.Account.save();
}
}
Actor.UserConfig={
full_scroll:false,enable_scroll_read:true,enable_hot_key:true,show_feedLevel:1,show_folder_unread:false,show_feed_unread:false,item_list_mode:true,expand_folders:'',page_size:20,mark_page_read:false,default_entry:'default',refresh_channel_interval:10,auto_expand:true,isCloseLeftTip:1,enable_item_title_link:true,auto_charset:'default',
sharetoAccountList:null,htmlWidgetSetting:null,flashWidgetSetting:null,favorite_is_private:false,expand_folders_friend:'',
xianguo_not_alertId:'',email_filt:'1',get:function(name){
return this[name];
},
_delays:[],
set:function(name,value,isDelay,timeout){
this[name]=value;
if(isDelay){
if(this._delays.indexOf(name)==-1){
this._delays.push(name);
if(!timeout)timeout=30000;
setTimeout(function(){
Actor.UserConfig._save(name);
Actor.UserConfig._delays=Actor.UserConfig._delays.without(name);
},timeout);
}
}else{
this._save(name);
}
},
_save:function(name){
var obj={};
if(this[name]===true)
obj[name]="true";
else if(this[name]===false)
obj[name]="false";
else obj[name]=this[name];

var params='method=Actor.modifySetting&params='+JSON.serialize(obj);
AsyncGet(interfaceUrl,params);
},
init:function(onComplete){
AsyncCall(interfaceUrl,'method=Actor.listSetting',function(res){
var ret=eval('('+res.responseText+')');
if(ret.status==1){
Actor.UserConfig._loadSetting(ret.data);
if(onComplete)onComplete(ret.data);
}
});
},
_loadSetting:function(setting){
var cfg=Actor.UserConfig;
for(var p in cfg){
if(setting[p]&&setting[p]!=''){
if(typeof cfg[p]==='undefined'||
p.charAt(0)=='_'||
typeof cfg[p]=='function')
continue;
var v=setting[p];
if(v==="true")
v=true;
else if(v==="false")
v=false;
cfg[p]=v;
}
}
},
save:function(onSuccess,onError){
var obj={};
var cfg=Actor.UserConfig;
var toSave=false;
for(var p in cfg){
if(typeof(cfg[p])!="function"){
if(p.indexOf('_')===0)continue;
var v=cfg[p];
if(v===true)
v="true";
else if(v===false)
v="false";
obj[p]=v;
}
}
var params='method=Actor.modifyAllSetting&params='+JSON.serialize(obj);
AsyncCall(interfaceUrl,params,onSuccess,onError);
}
};
Actor.Register=function(email,nickName,pwd,importAnomymous,setting,favor,key,authCode,onComplete,onError){
var p=new Object();
p.email=email;
p.nickname=nickName;
p.password=pwd;
p.importAnonymous=!!importAnomymous;
p.setting=setting;
p.favor=favor;
p.__auth__=key+":"+authCode;

var params='method=Actor.register&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
var ret;
eval('var ret = '+res.responseText);
if(ret.error!=null){
if(onerror)onError(ret.error);
}else{
if(onComplete)onComplete();
}
},onError);
};
Actor.verifyEmail=function(){
var params='method=Actor.verifyEmail';
AsyncCall(interfaceUrl,params,function(res){
var ret=JSON.decode(res.responseText);
if(ret.error!=null){
WaitControl.SaveError('验证邮件发送失败，可能你的注册邮箱不合法');
}else{
WaitControl.SaveEndMsg('验证邮件已经发出，请稍候查收！');
}
},function(){
WaitControl.SaveError('验证邮件发送失败');
});
}
Actor.registerAnonymous=function(){
var params='method=Actor.anonymousLogon';
AsyncCall(interfaceUrl,params,function(res){
var ret=eval('('+res.responseText+')');
if(ret.status==0){
alert(ret.error);
}else{
location.href="default.php";
}
});
};
Actor.QuickRegister=function(email,oncomplete,onerror){
var p=new Object();
p.email=email;
var params='method=Actor.quickRegister&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
var ret;
eval('var ret = '+res.responseText);
if(ret.error!=null){
if(onerror)onerror(ret.error);
}else{
if(oncomplete)oncomplete(ret);
}
},onerror);
};
Actor.changePwd=function(oldPwd,newPwd,onSuccess,onFailure){
var p={oldPassword:oldPwd,newPassword:newPwd};
var params='method=Actor.changePassword&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,onSuccess,onFailure);
};
Actor.toChangePwd=function(){
if(Actor.isAnonymous())return;
var newPwd=$('pwd.new').value;
var againPwd=$('pwd.again').value;
var oldPwd=$('pwd.old').value;
if(oldPwd==''){
alert('旧密码不能为空！');
$('pwd.old').focus();
return;
}
if(newPwd==''){
alert('新密码不能为空！');
$('pwd.new').focus();
return;
}
if(newPwd!=againPwd){
alert('两次输入的密码不一致！');
$('pwd.again').focus();
return;
}
Dom.enableButton('pwd.submit',false);
Actor.changePwd(oldPwd,newPwd,function(res){
Dom.enableButton('pwd.submit',true);
var ret=JSON.decode(res.responseText);
if(ret.status!=1){
WaitControl.SaveError("修改失败:"+ret.error);
}else{
WaitControl.SaveEndMsg('修改成功！');
$('pwd.old').value='';
$('pwd.new').value='';
$('pwd.again').value='';
$('pwd.old').focus();
}

},function(){Dom.enableButton('pwd.submit',true);
WaitControl.SaveError('修改失败！');});
};
Actor.isAnonymous=function(){
var match=document.cookie.match(/bemail\=anonymous_[\d]+%40[\d]+\.xianguo\.com/ig);
if(match&&match.length==1)return true;
return false;
};
Actor.CheckEmail=function(email,oncomplete,onerror){
var p=new Object();
p.email=email;
var params='method=Actor.isEmailNotExist&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
var ret;
eval('var ret = '+res.responseText);
if(ret.error!=null){
if(onerror)onerror(ret.error);
}else{
if(oncomplete)oncomplete(ret);
}
},onerror);
}
Actor.IsLogin=function(){
Exp=/reader_actor=([0-9]|[a-z]|[A-Z])+/;
return Exp.test(document.cookie);
}
Actor.getID=function(){
var match=document.cookie.match(/bid\=(\d+)/ig);
if(!match||match.length==0)return 0;
return parseInt(match[0].substr(match[0].lastIndexOf('=')+1));
}
Actor.getActorName=Actor.GetActorName=function(){

if(Actor.IsLogin()){
var match=document.cookie.match(/bnickname\=[^\s;]+/ig);
return decodeURIComponent(decodeURIComponent(match[0].substr(match[0].lastIndexOf('=')+1)))||'';
}
else return'未登录';
}
Actor.getEmail=function(){
if(Actor.IsLogin()){
var match=document.cookie.match(/bemail\=[^\s;]+/ig);
return decodeURIComponent(match[0].substr(match[0].lastIndexOf('=')+1))||'';
}
return false;
}
Actor.Logout=function(){
if(window.confirm('你真的要退出吗？')){
var params='method=Actor.logout';
AsyncCall(interfaceUrl,params,function(res){
location.href='/index.php';
});

}
}
Actor.demandLogin=function(){
if(Actor.isAnonymous()){
Actor.showLogin();
return true;
}
return false;
}
Actor.showLogin=function(){
var elBG=$('Background');
var elLogin=$('actor.loginForm');
elBG.style.display=elLogin.style.display='block';
elLogin.style.left=(elBG.offsetWidth-elLogin.offsetWidth)/2+'px';
elLogin.style.top=(elBG.offsetHeight-elLogin.offsetHeight)/2+'px';
}
Actor.hideLogin=function(){
var elBG=$('Background');
var elLogin=$('actor.loginForm');
elBG.style.display=elLogin.style.display='none';
}
function pindao_shezhi_over(sender,e){
sender.src="/img/pindao_shezhi1.gif";
}
function pindao_shezhi_out(sender,e){
sender.src="/img/pindao_shezhi.gif";
}
function trimTxt(txt,len){
if(typeof txt=='string'&&txt.length>len){
return txt.substr(0,len)+"..";
}
return txt;
}
current_error_report_feed=null;
function error_report_show(sender,e,feedId){

$('check_report_error_1').checked=false;
$('check_report_error_2').checked=false;
$('check_report_error_3').checked=false;
$('check_report_error_4').checked=false;
$('report_txt').value='';
$('report.result').innerHTML='';
$('report_txt').select();
$('reportPanelDiv').style.display="block";
feedId=feedId||ChannelList.currentSelectedId;

current_error_report_feed=ChannelList.FindChannel(feedId);

var t=current_error_report_feed?current_error_report_feed.title:"没有标题";
$('report.feedTitle').innerHTML="("+trimTxt(t,8)+")";
PanelMgr.show($('reportPanelDiv'),{

});
}
function do_report_error(sender,e){
if(!current_error_report_feed)return;
var checkData=getChekedValue('report_error_type').join('|');
if(checkData.length<1)return $('report.result').innerHTML="还没有说明任何错误原因！";
var arg={"feedId":current_error_report_feed.feedId,"type":checkData,"text":$('report_txt').value};
var p="method=Feedback.report&params="+JSON.serialize(arg);
WaitControl.PannelWait();
AsyncCall(interfaceUrl,p,
function(res){
WaitControl.PannelEndWait();
var ret=eval('('+res.responseText+')');
if(ret.status==0){
WaitControl.SaveEndMsg('发送过程中出现暂时中断，请稍候再试!');
}
else{
WaitControl.SaveEndMsg('发送成功!');
}
});
WaitControl.SaveEndMsg('正在发送报告，请稍候...');
PanelMgr.hide();
}
function pingCurrentFeed(){
if(!current_error_report_feed)return;
pingRssFeed(current_error_report_feed.feedId);
}
function pingRssFeed(feedId){
var p="method=Feedback.ping&params="+JSON.serialize({"feedId":feedId});
WaitControl.PannelWait();
WaitControl.SaveEndMsg('正在执行操作，请稍候...');
AsyncCall(interfaceUrl,p,
function(res){
WaitControl.PannelEndWait();
WaitControl.SaveEndMsg("已将此feed加入队列，更新会在稍后完成!");
});
PanelMgr.hide();
}
var ActorTag={
TagList:null,
currentSelectedTagId:null,
totalFavoriteNum:null,
untagNum:null,
diggItemNum:0,
NeedLoadTag:true
}
ActorTag.Load=function(onSuccess){
WaitControl.SidePannelWait();
ActorTag.NeedLoadTag=false;
var p=new Object();
p.page=0;
p.pageSize=999;
var params='method=Tag.getActorAllTags&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
WaitControl.SidePannelEndWait();
var ret=eval('('+res.responseText+')');
if(ret.status==1){
ActorTag.TagList=ret;
ActorTag.totalFavoriteNum=ActorTag.TagList.data.totalNum;
ActorTag.untagNum=ActorTag.TagList.data.untagNum;
ActorTag.diggItemNum=ActorTag.TagList.data.diggNum;
ActorTag.ShowTagList();
if(onSuccess)onSuccess();
}
});
}
ActorTag.ShowTagList=function(){
if(ActorTag.TagList==null)return;
var html=new Array();
var list=ActorTag.TagList.data.list;
html.push('<div class="tagList">');
html.push('<div id="listTag_digg" class="tagListOuter_all" onclick="PageMgr.goDiggItem()"><span class="tagList_digg">我的推荐 (<span id="listTag_digg_Num">'+ActorTag.diggItemNum+'</span>)</span></div>');
html.push('<div id="listTag_all" class="tagListOuter_all" onclick="PageMgr.goAllFavItem()"><span class="tagList_all">我的收藏 (<span id="listTag_all_Num">'+ActorTag.totalFavoriteNum+'</span>)</span></div>');
html.push('<ul class="tagCloud" id="tagCloud">');
var shareCss=ActorTag.TagList.data.untagPublic?"list_public_tag":"list_private_tag";
html.push('<li><div class="tagItemPadding"><div class="'+shareCss+'" id="listTag_untag" onclick="PageMgr.goUntagItem()">未标记项 (<span id="listTag_untag_Num">'+ActorTag.untagNum+'</span>)</div></div></li>');
for(var i=0;i<list.length;i++){
html.push(ActorTag.CreateTagHtml(list[i]));
}
html.push('</ul>');
html.push('</div>');
$('TagList').innerHTML=html.join('');


for(var i=0;i<list.length;i++){
var tag=list[i];
$('listTag_'+tag.tagId).onclick=function(){
PageMgr.goMyTagItem(this.id.substr(8),this.title);
};
}
}
ActorTag.TagTemplete='<li><div class="tagItemPadding"><div id="listTag_{tagId}" title="{name}" total="{total}" class="{tagCss}">{name} ({total})</div></div></li>';
ActorTag.CreateTagHtml=function(tag){
var html=ActorTag.TagTemplete;
html=html.replaceAll('{name}',tag.name);
html=html.replaceAll('{tagId}',tag.tagId);
html=html.replaceAll('{total}',tag.total);
html=html.replaceAll('{tagCss}',tag.isPublic?"list_public_tag":"list_private_tag");
return html;
}
ActorTag.BrowseTagItem=function(elementId,tagId,name){

var size=Actor.UserConfig.page_size;


if(ActorTag.currentSelectedTagId!=null&&ActorTag.currentSelectedTagId!=tagId){
var el=$('listTag_'+ActorTag.currentSelectedTagId);
if(el)Dom.removeClass(el,'selectedTag');
}

var element=$(elementId);
if(element){
Dom.addClass(element,'selectedTag');
}
ActorTag.currentSelectedTagId=tagId;

var completeFun=function(ret){

PageMgr.setTitle(name);
ActorTag.completeFun(ret);
}
if(tagId=='all'){
ItemList.LoadMyFavoriteItem(1,size,completeFun);
}else if(tagId=='untag'){
ItemList.LoadMyUntagItem(1,size,completeFun);
}else if(tagId=='digg'){
ActorTag.browseAllShare();
}else{
ItemList.LoadMyTagItem(tagId,1,size,completeFun);
}
}
ActorTag.completeFun=function(ret){

ItemList.cFeedsMap=ret.data.feeds;
ItemList.showOptionMark(false);
ItemList.showOptionUnread(false);
ItemList.addOption('<span id="refreshItem" class="refreshTagItem" onclick="ItemList.load(ItemList.cPage,ActorTag.completeFun)">&nbsp;&nbsp;</span>');
}
ActorTag.browseGlobalTagItem=function(tagId,name){

var size=Actor.UserConfig.page_size;


if(ActorTag.currentSelectedTagId!=null&&ActorTag.currentSelectedTagId!=tagId){
var el=$('listTag_'+ActorTag.currentSelectedTagId);
if(el)Dom.removeClass(el,'selectedTag');
}

var element=$('listTag_'+tagId);
if(element){
Dom.addClass(element,'selectedTag');
}
ActorTag.currentSelectedTagId=tagId;

var completeFun=function(ret){

ItemList.setTitle('鲜果"'+name+'"下的全部文章');
ItemList.cFeedsMap=ret.data.feeds;
ItemList.showOptionMark(false);
ItemList.showOptionUnread(false);
}
ItemList.LoadAllItemByTag(tagId,1,size,completeFun);
}
ActorTag.addTag=function(tag){
return;
if(typeof tag=='string')
tag=tag.split(' ');
var ul=document.createElement('ul');
var panel=$('tagCloud');
tag.each(function(v){
ul.innerHTML=ActorTag.CreateTagHtml(v);
panel.appendChild(ul.childNodes[0]);
})
}
ActorTag.removeTag=function(tag){
if(typeof tag=='array')
tag=tag.join(' ');
var ul=document.createElement('ul');
var panel=$('tagCloud');
for(var i=panel.childNodes.length-1;i>=0;i--){
var el=panel.childNodes[i].childNodes[0];
if(tag.indexOf(el.innerHTML)>-1&&parseInt(el.getAttribute('total'))<=1)panel.childNodes[i].removeChild(el);
}
}
ActorTag.addTotalNum=function(num){
ActorTag.totalFavoriteNum=parseInt(ActorTag.totalFavoriteNum)+num;
$('listTag_all_Num').innerHTML=ActorTag.totalFavoriteNum;
}
ActorTag.addUntagNum=function(num){
ActorTag.untagNum=parseInt(ActorTag.untagNum)+num;
$('listTag_untag_Num').innerHTML=ActorTag.untagNum;
}
ActorTag.TagID=null;
ActorTag.ToModify=function(){
$('ActorTagPannel').style.display="block";
var ipt=$('ipt_TagName');
ipt.value=$('listTag_'+this.TagID).innerHTML;
ipt.focus();
ipt.select();
};
ActorTag.Modify=function(){
var TagName=$('ipt_TagName').value;
if(TagName==''){alert('请输入标签名称');$('ipt_TagName').focus();return;}
this.ClosePannel();
var d=$('listTag_'+this.FolderID);
if(d){
d.title=FolderName;
d.innerHTML=FolderName;
}
var p={tagId:this.TagID,tagName:TagName};
var params='method=Tag.modifyTag&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
eval('var ret = '+res.responseText);
if(ret.error!=null){
}else{
this.TagID=null;
}
}.bind(this));
};
ActorTag.Remove=function(){};
ActorTag.ClosePannel=function(){
$('ipt_TagName').value="";
$('ActorTagPannel').style.display="none";
};
ActorTag.browseAllShare=function(){
ItemList.loadAllShare(function(ret){
ItemList.cFeedsMap=ret.data.feeds;
ItemList.setTitle('我的推荐');
ItemList.showOptionMark(false);
ItemList.showOptionUnread(false);
ItemList.addOption('<span class="option_button"><a href="http://tools.xianguo.com/tools-share.html" target="tools">分享我的推荐</a></span>');
ItemList.addOption('<span id="refreshItem" class="refreshTagItem" onclick="ActorTag.browseAllShare()">&nbsp;&nbsp;</span>');
});
}
var TagManage={};
TagManage.Init=function(){
TagManage.cPage=1;
TagManage.cTotalPage=0;
TagManage.cList=null;
TagManage.cListTotal=null;
TagManage.loading=false;
TagManage.editingTagId=null;
TagManage.editingTagName=null;
}
TagManage.Load=function(page){
this.cPage=page?page:this.cPage;
WaitControl.PannelWait();
var p=new Object();
p.page=this.cPage-1;
p.pageSize=Actor.UserConfig.page_size;
var params='method=Tag.getActorAllTags&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
WaitControl.PannelEndWait();

if(TagManage.cPage==1)TagManage.ShowTagEditList();
else $('context_itemList').innerHTML='';
var ret=eval('('+res.responseText+')');
TagManage.editingTagId=null;
TagManage.selectedTagID=null;
TagManage.cList=[];
ret.data.list.each(function(value){
TagManage.cList.push(value);
});
var tagListHtml='';
for(i=0;i<TagManage.cList.length;i++)
{
var tag=TagManage.cList[i];
var t={
tagId:tag.tagId,
name:tag.name,
total:tag.total,
shareCss:tag.isPublic?"public_tag":"private_tag",
shareLabel:tag.isPublic?"取消分享":"分享",
isPublic:tag.isPublic?"1":"0"
}
tagListHtml+=TagManage.CreateTagItemElement(t);
tagListHtml+="<div class='itemPannel_hr'></div>";
}
$('context_itemList').innerHTML=tagListHtml;
$('publicFavorite').checked=!Actor.UserConfig.favorite_is_private;
PageMgr.adjustMainSize();
});
}
TagManage.showPager=function(functioName){

var functioName=functioName||'TagManage.Load';
var flipObj=new FlipPage(TagManage.cPage,Actor.UserConfig.page_size,TagManage.cListTotal,2);
var flipHtml='<span>'+flipObj.startItem+'-'+flipObj.endItem+' 共'+TagManage.cListTotal+'项</span> ';
flipHtml+=flipObj.CreateHtml('<a onclick="'+functioName+'({page});" class="page_link">{text}</a>','<span class="current_page_link">{text}</span>');
$('itemList_footer').innerHTML=flipHtml;

$('itemList_footer').loader=functioName;
}
TagManage.ShowTagEditList=function(){
$('mainContext').innerHTML=Template.get('TagManageFrame');
$('context_itemList').innerHTML='';
}
TagManage.CreateTagItemElement=function(itemObject){
return bind(Template.get('TagItem'),itemObject);
}
TagManage.RemoveAllSelectedTags=function(){
var checks=document.getElementsByName("tagEditCheck");
var tagIdList='';
for(i=0;i<checks.length;i++){
if(checks[i].checked){
tagIdList+=checks[i].value;
if(i!=checks.length-1)tagIdList+=',';
}
}
if(tagIdList.length==0)return;
if(!confirm('确认要将所有选中的标签删除么？'))return;
var p=new Object();
p.tagIdList=tagIdList;
var params='method=Tag.removeTagGroup&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
var ret=eval('('+res.responseText+')');
if(ret.error!=null){
alert(ret.error);
}
if(ret.status==1){
TagManage.Load();
ActorTag.Load();
}
});
};
TagManage.RemoveTag=function(tagId,tagName){
if(!confirm('确认要将标签"'+tagName+'"与所有相关文章的关联解除么？'))return;
var p={tagId:tagId};
var params='method=Tag.removeTag&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
var ret=eval('('+res.responseText+')');
if(ret.error!=null){
alert(ret.error);
}
if(ret.status==1){
TagManage.Load();
ActorTag.Load();
}
});
};
TagManage.RenameTag=function(){
var tagId=TagManage.editingTagId;
var tagName=TagManage.editingTagName;
var tagNewName=$('TagEditBox_'+tagId).value;
if(tagNewName==''||tagNewName==tagName)TagManage.RevertEdit();
else{
var p=new Object();
p.tagId=tagId;
p.tagNewName=tagNewName;
p.tagName=tagName;
var params='method=Tag.renameTag&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
var ret=eval('('+res.responseText+')');
if(ret.error!=null){
WaitControl.SaveError(ret.error);
TagManage.RevertEdit();
}
if(ret.status==2){
if(confirm("已经存在名为‘"+ret.data.newTagName+"’的标签，要与之合并么？")){
TagManage.CombineTag(TagManage.editingTagId,ret.data.newTagId);
}
else TagManage.RevertEdit();
}

if(ret.status==1){
TagManage.editingTagId=null;
TagManage.editingTagName=null;
ActorTag.Load();
TagManage.Load();
}
});
}
};
TagManage.CombineTag=function(tagId,newTagId){
var p=new Object();
p.tagId=tagId;
p.newTagId=newTagId;
var params='method=Tag.combineTag&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
var ret=eval('('+res.responseText+')');
if(ret.status==1){
TagManage.Load();
ActorTag.Load();
}
if(ret.status==0){
alert(ret.error);
}
});
}
TagManage.startEdit=function(tagId,tagName){
if(TagManage.editingTagId)TagManage.RevertEdit();
$("tagName_"+tagId).style.display="none";
$("TagEditBox_"+tagId).style.display="inline";
$("submitTagEdit_"+tagId).style.display="inline";
$("modifyTagSpan_"+tagId).style.display="none";
$("TagEditBox_"+tagId).focus();
TagManage.editingTagId=tagId;
TagManage.editingTagName=tagName;
};
TagManage.RevertEdit=function(){
var tagId=TagManage.editingTagId;
var tagName=TagManage.editingTagName;
$("tagName_"+tagId).style.display="inline";
$("TagEditBox_"+tagId).style.display="none";
$("TagEditBox_"+tagId).value=tagName;
$("submitTagEdit_"+tagId).style.display="none";
$("modifyTagSpan_"+tagId).style.display="inline";
TagManage.editingTagId=null;
TagManage.editingTagName=null;
}
TagManage.SelectAllTag=function(selected){
var checks=document.getElementsByName("tagEditCheck");
for(i=0;i<checks.length;i++){
if(selected){
checks[i].checked=true;
}else{
checks[i].checked=!(checks[i].checked);
}
}
}
TagManage.Keydown=function(evt){
evt=evt||window.event;
var kc=evt.keyCode;
if(kc==27)TagManage.RevertEdit();
else if(kc==13)TagManage.RenameTag();
};
TagManage.changeFavoriteSetting=function(){
var isPublic=$('publicFavorite').checked;
Actor.UserConfig.set("favorite_is_private",!isPublic);
}
TagManage.publicSelectedTags=function(isPublic){
var checks=document.getElementsByName("tagEditCheck");
var tags=[];
for(i=0;i<checks.length;i++){
if(checks[i].checked){
var id=checks[i].id.substr("tagEditCheck_".length);
tags.push(id);
TagManage.publicTagHtml(id,isPublic);
}
}
var params={
isPublic:!!isPublic,
tagList:tags
};
AsyncCall(interfaceUrl,"method=Tag.publicTags&params="+JSON.serialize(params));
}
TagManage.switchPublicTag=function(tagId){
var elTagState=$('shareState_'+tagId);
if(!elTagState)return;
var isPublic=elTagState.getAttribute("public")=="0";
var params={
isPublic:isPublic,
tagList:[tagId]
};
AsyncCall(interfaceUrl,"method=Tag.publicTags&params="+JSON.serialize(params),function(res){
TagManage.publicTagHtml(tagId,isPublic);
});
}
TagManage.publicTagHtml=function(tagId,isPublic){

var elListTag=$('listTag_'+(tagId==-1?"untag":tagId));
if(elListTag){
elListTag.className=isPublic?"list_public_tag":"list_private_tag";
}
var elTagState=$('shareState_'+tagId);
if(elTagState){
elTagState.className=isPublic?"public_tag":"private_tag";
elTagState.innerHTML=isPublic?"取消分享":"分享";
elTagState.setAttribute('public',isPublic?"1":"0");
}
}
var BrowseChannel={
currentCategoryList:null,
currentCategoryChannelList:null,
currentCategoryId:null,
currentCategoryName:null,
currentSelectedFeedId:null
}
BrowseChannel.PackListOnMouseOver=function(id){
var el=$('subChannelList_'+id);
if(el)
el.style.display='';
}
BrowseChannel.PackListOnMouseOut=function(id){
var el=$('subChannelList_'+id);
if(el)
el.style.display='none';
}
BrowseChannel.GetHtmlForChannelList=function(res){
res=res||BrowseChannel.currentCategoryChannelList;
var list=res.data.list;
var html=new Array();
for(var i=0;i<list.length;i++){
html.push(BrowseChannel.CreateChannelSubUnit(list[i]));
}
return html.join('');
}
BrowseChannel.CreateChannelSubUnit=function(obj){
var reg=new RegExp('\'','g');
var html='<div class="channelSubListUnit">'+
'<span class="channelBrowseSubNum">[{subNum}]</span>'+
'<a title="{channelName}" target="bang" class="channelBrowseName" href="http://bang.xianguo.com/feed/{feedId}/">{channelName}</span>';
var channel=ChannelList.FindChannel(obj.feedId);
var title=(obj.title||"").replace(/'/g,'&apos;');
var title=(title||"").replace(/"/g,'&quot;');
if(channel==null){
html+='<div title="订阅此频道" id="channelBrowse_sub_{feedId}"  ftitle="{channelTitle}" onclick="BrowseChannel.ChannelListChangeSub(this,event,\'{feedId}\')" class="channelBrowseSubButton" subscribe="0"></div>';

}else{
html+='<div title="取消订阅" id="channelBrowse_sub_{feedId}" ftitle="{channelTitle}" onclick="BrowseChannel.ChannelListChangeSub(this,event,\'{feedId}\')" class="channelBrowseSubButton1" subscribe="1"></div>';
}
html+='<div style="clear:both;"></div></div>';
var subNum=obj.subscribeNum+'';
if(subNum.length<5){
var l=5-subNum.length;
for(var i=0;i<l;i++)subNum='0'+subNum;
}
html=html.replace('{subNum}',subNum);
html=html.replaceAll('{channelName}',title);
html=html.replaceAll('{channelUrl}',obj.url);
html=html.replaceAll('{feedId}',obj.feedId);
return html;
}
BrowseChannel.QuickSubFolder_Over=function(sender){
sender.className+=' QuickSubFolder_Over';
}
BrowseChannel.QuickSubFolder_Out=function(sender){
var s=sender.className;
sender.className=s.replace('QuickSubFolder_Over','');
}
BrowseChannel.ChannelListShowSubFolder=function(evt,feedId,title,roomtarget,unSubClass){
title=title.replace(new RegExp('\'','g'),'\\\'');
unSubClass=unSubClass||"channelBrowseSubButton1";
BrowseChannel.NotClose=true;
BrowseChannel.currentSelectedFeedId=feedId;
evt=evt||window.event;
var element=evt.target||evt.srcElement;
var pos=Dom.getXY(element);
var folderList=$('channelSubList_folderList');
var html=[];
var onsuc=roomtarget=="opml_list"?"function(){OPML.setFeedState("+feedId+",true);OPML.resetFeedNum();OPML.resetFeesSubNum("+feedId+",1);}":"''";
html.push('<div class="menuitem" onmouseover="BrowseChannel.QuickSubFolder_Over(this);" onmouseout="BrowseChannel.QuickSubFolder_Out(this);" onclick="BrowseChannel.QuickSubByNewFolder(\''+feedId+'\',\''+title+'\','+onsuc+',\''+unSubClass+'\')">新建目录</div>');
html.push('<div class="menuitem" onmouseover="BrowseChannel.QuickSubFolder_Over(this);" onmouseout="BrowseChannel.QuickSubFolder_Out(this);" onclick="BrowseChannel.AppendChannel(\'0\',\''+feedId+'\','+onsuc+',\'\',\''+unSubClass+'\')">根目录</div>');
for(var i=0;i<ChannelList.folders.length;i++){
var folder=ChannelList.folders[i];
if(folder.folderName=='')continue;
html.push('<div class="menuitem" onmouseover="BrowseChannel.QuickSubFolder_Over(this);" onmouseout="BrowseChannel.QuickSubFolder_Out(this);" onclick="BrowseChannel.AppendChannel('+
folder.folderId+',\''+feedId+'\','+onsuc+',\'\',\''+unSubClass+'\')">'+
folder.folderName+'</div>');
}
folderList.innerHTML=html.join('');
folderList.style.display='block';
if(folderList.offsetHeight>150){
folderList.style.height=150+'px';
folderList.style.overflowY='auto';
folderList.style.overflowX='hidden';
}
var pos=JEvent.pointerXY(evt);
pos=Dom.getAutoPos(folderList,pos);
folderList.style.top=pos[1]+'px';
folderList.style.left=pos[0]+'px';
}
BrowseChannel.QuickSubByNewFolder=function(feedId,title,onsuccess,unSubClass){
ChannelList.Folder.ToAdd(feedId,{
onSuccess:function(){
if(onsuccess)onsuccess(feedId,true);

var browse=$('previewSubBtn');
if(browse)browse.style.display='none';
var img1=$('channelBrowse_FeedSubedImage_'+feedId);
if(img1)img1.style.display='none';
var img2=$('channelBrowse_FeedUnsubedImage_'+feedId);
if(img2)img2.style.display='';
var obj=$('channelBrowse_sub_'+feedId)||$('opml_feed_con_'+feedId);
if(obj){
obj.isSubscribe=1;
obj.className=unSubClass||'channelBrowseSubButton1';
}
var folder=ChannelList.getFeedFolder(feedId);
if(folder)
ChannelList.expandFolder(folder.folderId,true,true);
ChannelList.scrollTo(feedId);

BrowseChannel.CallBack(true);
}
});
}
BrowseChannel.AppendChannel=function(folderId,feedId,onSuccess,onFailure,unsubClass){
$('channelSubList_folderList').style.display='none';

WaitControl.SaveStartWait();
ChannelList.subFeeds(feedId,{folderId:folderId},function(){

WaitControl.SaveEndWait();

if(onSuccess)onSuccess(feedId,true);

var browse=$('previewSubBtn');
if(browse)browse.style.display='none';
var obj=$('channelBrowse_sub_'+feedId)||$('opml_feed_con_'+feedId);
if(obj){
obj.isSubscribe=1;
if(obj.tagName=='IMG'){
obj.src='/img/ico/cunsubfeed.gif';
var $n=$('subscribeNum'+feedId);
if($n){
var num=parseInt($n.innerHTML,10);
$n.innerHTML=(num+1);
}
}else{
obj.className=unsubClass||'channelBrowseSubButton1';;
}
obj.title='取消订阅';
}

if(feedId&&feedId.indexOf(',')==-1){
if(PageMgr.inItemList()){
PageMgr.goFeed(feedId);
ChannelList.scrollTo(feedId);
}
else{
ChannelList.expandFolder(folderId,true,true);
ChannelList.scrollTo(feedId);
}
}else if(folderId){
ChannelList.expandFolder(folderId,true,true);
ChannelList.scrollTo(folderId,true);
}
BrowseChannel.CallBack(true);
})
}
BrowseChannel.ChannelListCancelSub=function(feedId,onSuccess){
if(window.confirm('你确定要删除该频道吗？')){
ChannelList.Feed.FeedID=feedId;
ChannelList.Feed.Remove(true);
if(onSuccess)onSuccess();
}
}
BrowseChannel.ChannelListChangeSub=function(sender,e,feedId,roomtarget,classSub,classUnSub,callback){
var isSub=isNull(sender.isSubscribe)?sender.getAttribute('subscribe'):sender.isSubscribe;
var fTitle=sender.getAttribute('ftitle');
this.callbackFunction=callback;
if(parseInt(isSub)==0){
BrowseChannel.ChannelListShowSubFolder(e,feedId,fTitle,roomtarget,classUnSub);
}
else{
BrowseChannel.ChannelListCancelSub(feedId,function(){
if(roomtarget=="opml_list"){
OPML.setFeedState(feedId,false);
OPML.resetFeedNum();
OPML.resetFeesSubNum(feedId,-1);
}
sender.isSubscribe=0;
if(sender.tagName=='IMG'){
sender.className='';
sender.src='/img/ico/csubfeed.gif';

var $n=$('subscribeNum'+feedId);
if($n){
var num=parseInt($n.innerHTML,10);
$n.innerHTML=(num-1);
}
}else{
sender.className=classSub?classSub:'channelBrowseSubButton';
}
sender.title='订阅';
BrowseChannel.CallBack(false);
});
}

}
BrowseChannel.NotClose=false;
BrowseChannel.ChannelListCloseSubFolder=function(){
try{
if(BrowseChannel.NotClose==true){
BrowseChannel.NotClose=false;
return;
}
var folderList=$('channelSubList_folderList');
if(folderList!=null)
folderList.style.display='none';
}catch(e){alert(e);}
}
BrowseChannel.callbackFunction=null;
BrowseChannel.CallBack=function(afterSub){
if(typeof this.callbackFunction=='function')this.callbackFunction(afterSub);
};
var Search={
keywords:'',
searchType:'',
sortCode:1,
cPage:1,
cTotalPage:0,
cList:null,
cListTotal:null
}
Search.Load=function(){
this.searchType=$('searchOption').value;
this.keywords=$('searchKey').value;
if(this.keywords==''){
alert('请输入关键字');
$('searchKey').focus();
return;
}
Search.goPage(1);
}
Search.goPage=function(page){
this.cPage=page||1;
switch(this.searchType){
case'item':
PageMgr.goSearchItem(this.keywords,{
page:this.cPage,
size:20,
sort:this.sortCode
});
break;
case'myitem':
PageMgr.goSearchItem(this.keywords,{
page:this.cPage,
size:20,
filter:"actor",
sort:this.sortCode
});
break;
case'feed':
PageMgr.goSearchFeed(this.keywords,{page:this.cPage});
break;
}
}
Search.LoadItem=function(key,params){
if(!key||key=='')return;
params.page=(params.page||1);
this.cPage=params.page;
this.keywords=key;
this.sortCode=params.sort||this.sortCode;
ItemList.LoadSearchItem(key,params,function(ret){
WaitControl.PannelEndWait();
ItemList.cFeedsMap=ret.data.feeds;
PageMgr.setTitle('\"'+Search.keywords+'\"文章搜索结果');
ItemList.setSearchResultNum(ret.data.total,Search.keywords);
ItemList.showOptionMark(false);
ItemList.showOptionUnread(false);
},function(ret){
WaitControl.PannelEndWait();
ItemList.LoadRange();
$('context_itemList').innerHTML='<div class="errorInfo">'+ret.error+'</div>';
});
}
Search.LoadFeed=function(keywords,searchParams){
if(keywords&&keywords.length>0){
this.keywords=keywords;
WaitControl.PannelWait();
loadWidget('http://bang.xianguo.com/widget/searchfeeds.php?k='+encodeURIComponent(keywords)+'&p='+(searchParams.page-1)+'&e=mainContext','searchFeed',function(){
PageMgr.setTitle('搜索频道');
PageMgr.adjustMainContextSize();
WaitControl.PannelEndWait();
});
}
}
Search.showPager=function(functioName){

var functioName=functioName||'Search.goPage';
var flipObj=new FlipPage(Search.cPage,20,Search.cListTotal,2);
var flipHtml='<span>'+flipObj.startItem+'-'+flipObj.endItem+' 约'+Search.cListTotal+'项</span> ';
flipHtml+=flipObj.CreateHtml('<a onclick="'+functioName+'({page});" class="page_link">{text}</a>','<span class="current_page_link">{text}</span>');
$('feedList_footer').innerHTML=flipHtml;

$('feedList_footer').loader=functioName;
}
Search.TextKeyDown=function(evt){
evt=evt||window.event;
if(evt.keyCode==13){
Search.Load();
}
}
window.FeedManage={};
FeedManage.RightMenuObjectID=null;
FeedManage.showRightMenu=function(menuid,target,objectid,isout){
FeedManage.RightMenuObjectID=objectid;
var menu=$(menuid);
var pos=Dom.getXY(target);
var t=isout==true?0:$('fm_setting_body').scrollTop;
menu.style.left=pos[0]+"px";
menu.style.display="block";
var h=target.offsetHeight;
var mh=menu.offsetHeight;
if(mh>200){
mh=200;
menu.style.height=200+"px";
}

var hh=pos[1]+h-t;
if(hh+mh>document.documentElement.offsetHeight)
hh=pos[1]-menu.offsetHeight-t;
menu.style.top=hh+"px";


document.onmousedown=function(event){
if(FeedManage.IsMouseOut(event,menu))
menu.style.display="none";
}
}
FeedManage.MouseOnItem=function(target){
if(target.className=="feedManage_menu_item_selected")return;
target.className="feedManage_menu_item_mouseon";
target.onmouseout=function(){
if(target.className=="feedManage_menu_item_selected")return;
target.className="feedManage_menu_item";
}
}
FeedManage.MouseOnItem2=function(target,newclassName,oldclassName){
target.className=newclassName;
target.onmouseout=function(){
target.className=oldclassName;
}
}
FeedManage.IsMouseOut=function(evt,Target){
evt=evt||window.event;
var mX=evt.pageX||evt.x;
var mY=evt.pageY||evt.y;
var p=FeedManage.positionedOffset(Target);
return(mY<p[1]||
mY>p[1]+Target.offsetHeight||
mX<p[0]||
mX>p[0]+Target.offsetWidth);
}
FeedManage.positionedOffset=function(element){
var valueT=0,valueL=0;
do{
valueT+=element.offsetTop||0;
valueL+=element.offsetLeft||0;
element=element.offsetParent;
if(element&&element.style.position=='relative')
break;
}while(element);
return[valueL,valueT];
}
FeedManage.ControlFolders=function(){
var target=$('fm_fold');
var tofold=target.innerHTML=='折叠';
target.innerHTML=tofold?'展开':'折叠';
FeedManage.ControlFolder(0,tofold);
var len=ChannelList.folders.length+1;
for(var i=0;i<ChannelList.folders.length;i++){
FeedManage.ControlFolder(ChannelList.folders[i].folderId,tofold);
}
}
FeedManage.ControlFolder=function(folderid,tofold){
var target=$('fm_folder_img_'+folderid);
if(tofold||target.title=="折叠"){
$("fm_folderfeed_"+folderid).style.display="none";
target.src="/img/closeFolder.gif";
target.title="展开";
}else{
$("fm_folderfeed_"+folderid).style.display="block";
target.src="/img/openFolder.gif";
target.title="折叠";
}
}
FeedManage.CreateFolder=function(folderid,title,feednum,feeds,html){
html.push("<li id='fm_folder_"+folderid+"'><table cellpadding='0' cellspacing='0' class='feedManage_li_2' onmouseover=\"FeedManage.MouseOnItem2(this,'feedManage_li_2 feedManage_li_2_mouseon','feedManage_li_2')\">");
html.push("<tr><td class='feedManage_ul_li_tb_c1' align='left'><input id='fm_cb_folder_"+folderid+"' type='checkbox' onclick=\"FeedManage.CheckAllByFolder(this,"+folderid+")\"></td>");
html.push("	<td class='feedManage_ul_li_tb_c1' align='left'><img id='fm_folder_img_"+folderid+"' onclick='FeedManage.ControlFolder("+folderid+")' class='feedManage_folderOpen' src='/img/openFolder.gif' title='折叠'/></td>");
html.push("	<td align='left' onclick='FeedManage.ControlFolder("+folderid+")' style='cursor:pointer;'><span id='fm_folder_tb_title_"+folderid+"'>"+title+"</span>(<span id='fm_folder_feednum_"+folderid+"'>"+feednum+"</span>)</td>");
html.push("	<td class='feedManage_ul_li_tb_c2'>");

if(folderid!=0)
html.push("<span class='feedManage_button' onclick='FeedManage.ToModifyFolder("+folderid+")'>修改</span><span class='feedManage_button' onclick='FeedManage.DeleteFolder("+folderid+")'>删除</span>");

html.push("	</td></tr></table>");
FeedManage.CreateFeedList(folderid,title,feeds,html);
html.push("</li>");
}
FeedManage.CreateFeedList=function(folderid,foldertitle,feedlist,html){
var tranLevel=function(level){
switch(parseInt(level)){
case 2:return"关注";
case 3:
case 4:
case 5:return"必读";
default:return"一般";
}
}
html.push("<div id='fm_folderfeed_"+folderid+"'>");
for(var i=0;i<feedlist.length;i++){
var title=feedlist[i].title;
var feedid=feedlist[i].feedId;
var level=tranLevel(feedlist[i].level);
var titlecss=feedlist[i].state==2?" class='feedList_bad'":""
var ico=feedlist[i].faviconUrl?("http://xgimg.com"+feedlist[i].faviconUrl):"/img/feedico.gif";
html.push("<table id='fm_feed_tb_"+feedid+"' cellpadding='0' cellspacing='0' class='feedManage_li_3' onmouseover=\"FeedManage.MouseOnItem2(this,'feedManage_li_3 feedManage_li_3_mouseon','feedManage_li_3')\">");
html.push("	<tr id='fm_folder_tr_"+feedid+"'><td class='feedManage_ul_li_tb_c1' align='left'></td>");
html.push("		<td class='feedManage_ul_li_tb_c1' align='left'><input id='fm_cb_folder_feed_"+feedid+"' value='"+feedid+"' type='checkbox'></td>");
html.push("		<td class='feedManage_ul_li_tb_c1' align='left'><img class='feedManage_feedIco' src='"+ico+"' onerror='FeedManage.IcoError(this)'/></td>");
html.push("		<td align='left'"+titlecss+" id='fm_feed_tb_title_"+feedid+"'>"+title+"</td>");
html.push("		<td class='feedManage_ul_li_tb_c2'><span id='fm_feed_level_"+feedid+"' class='feedManage_button_select' onclick=\"FeedManage.showRightMenu('feedmanage_menu_7',this,"+feedid+")\">"+level+"</span></td>");
html.push("		<td class='feedManage_ul_li_tb_c2' align='right'><span id='fm_feed_folder_"+feedid+"' class='feedManage_button_select' onclick=\"FeedManage.showRightMenu('feedmanage_menu_6',this,"+feedid+")\">"+foldertitle+"</span></td>");
html.push("		<td class='feedManage_ul_li_tb_c2'><span class='feedManage_button' onclick='FeedManage.ToModifyFeed("+feedid+")'>修改</span>");
html.push("			<span class='feedManage_button' onclick='FeedManage.DeleteFeeds(["+feedid+"])'>删除</span></td>");
html.push("	</tr></table>");
}
html.push("</div>");
}
FeedManage.IcoError=function(target){
target.src="/img/feedico.gif";
}
FeedManage.CreateManageList=function(){
WaitControl.PannelWait();
$('fm_fold').innerHTML="折叠";
window.setTimeout("FeedManage._CreateManageList();",1);
}
FeedManage._CreateManageList=function(){


var folders=ChannelList.folders;
var flen=folders.length;
var feednums=ChannelList.feeds.length;
var folderMenuHtml=[];
var folderMenuHtml2=[];
folderMenuHtml.push("<div style='width:100px' id='fm_menu_item_-1' class='feedManage_menu_item' onmouseover='FeedManage.MouseOnItem(this)' onclick=\"FeedManage.MoveToNewFolder()\">-新建目录-</div>");
folderMenuHtml2.push("<div style='width:100px' id='fm_menu_item_-1' class='feedManage_menu_item' onmouseover='FeedManage.MouseOnItem(this)' onclick=\"FeedManage.MoveToNewFolder()\">-新建目录-</div>");
var html=[];
FeedManage.CreateFolder(0,"根目录",ChannelList.feeds.length,ChannelList.feeds,html);
folderMenuHtml.push("<div style='width:100px' class='feedManage_menu_item' onmouseover='FeedManage.MouseOnItem(this)' onclick=\"FeedManage.MoveToFolder(0,[FeedManage.RightMenuObjectID],'根目录')\">根目录</div>");
folderMenuHtml2.push("<div style='width:100px' class='feedManage_menu_item' onmouseover='FeedManage.MouseOnItem(this)' onclick=\"FeedManage.MoveToFolder(0,FeedManage.GetCheckList(),'根目录')\">根目录</div>");

for(var i=0;i<flen;i++){
var folder=folders[i];
FeedManage.CreateFolder(folder.folderId,folder.folderName,folder.feeds.length,folder.feeds,html);
feednums+=folder.feeds.length;
folderMenuHtml.push("<div style='width:100px' id='fm_menu_item_"+folder.folderId+"' class='feedManage_menu_item' onmouseover='FeedManage.MouseOnItem(this)' onclick=\"FeedManage.MoveToFolder("+folder.folderId+",[FeedManage.RightMenuObjectID],'"+folder.folderName+"')\">"+folder.folderName+"</div>");
folderMenuHtml2.push("<div style='width:100px' id='fm_menu2_item_"+folder.folderId+"' class='feedManage_menu_item' onmouseover='FeedManage.MouseOnItem(this)' onclick=\"FeedManage.MoveToFolder("+folder.folderId+",FeedManage.GetCheckList(),'"+folder.folderName+"')\">"+folder.folderName+"</div>");
}
$('feedmanage_body').innerHTML=html.join('');
if(folderMenuHtml!=""){
$('feedmanage_menu_6').innerHTML=folderMenuHtml.join('');
$('feedmanage_menu_3').innerHTML=folderMenuHtml2.join('');
}
FeedManage.RefreshNum(flen,feednums);
WaitControl.PannelEndWait();


}
FeedManage.CheckAll=function(prefix,checked){
var cbs=document.getElementsByTagName("input");
for(var i=0;i<cbs.length;i++)
if(cbs[i].type=="checkbox"&&cbs[i].id.indexOf(prefix)>-1)
cbs[i].checked=checked;
}
FeedManage.CheckAllByFolder=function(target,folderid){
var cbs=$('fm_folderfeed_'+folderid).getElementsByTagName("input");
for(var i=0;i<cbs.length;i++)
if(cbs[i].type=="checkbox")
cbs[i].checked=target.checked;
}
FeedManage.CheckByLevel=function(level){
$('feedmanage_menu_1').style.display="none";
var cbs=document.getElementsByTagName('INPUT');
for(var i=0;i<cbs.length;i++){
if(cbs[i].type=="checkbox"&&cbs[i].value&&cbs[i].id.indexOf('fm_cb_folder_feed_')>-1){
var feed=ChannelList.feedMap[cbs[i].value];
if(feed){
feed.level=feed.level||1;
cbs[i].checked=feed.level==level;
}
}
}
}
FeedManage.CheckByPublicLevel=function(publiclevel){
$('feedmanage_menu_8').style.display="none";
for(var i in ChannelList.feedMap){
$('fm_cb_folder_feed_'+i).checked=ChannelList.feedMap[i].publicLevel==publiclevel;
}
}
FeedManage.GetCheckList=function(){
var IDList=[];
var cbs=document.getElementsByTagName("input");
for(var i=0;i<cbs.length;i++)
if(cbs[i].type=="checkbox"&&cbs[i].checked&&cbs[i].value&&cbs[i].id.indexOf('fm_cb_folder_feed_')>-1)
IDList[IDList.length]=cbs[i].value;
return IDList;
}
FeedManage.DeleteFeeds=function(IDList){
if(IDList.length==0){
alert("你还没有选择频道");
return;
}
var feed=ChannelList.feedMap[IDList[0]];
if(!feed)return;
var Info="";
if(IDList.length>1)
Info='你确认要删除“'+feed.title+'”等频道吗?';
else Info='你确认要删除频道“'+feed.title+'”吗?';
if(!window.confirm(Info))return;
for(var i=0;i<IDList.length;i++){
var feed=ChannelList.feedMap[IDList[i]];
var folder=ChannelList.getFeedFolder(IDList[i]);
if(folder){
folder.feeds=folder.feeds.without(feed);
}else{
ChannelList.feeds=ChannelList.feeds.without(feed);
}
delete ChannelList.feedMap[IDList[i]];
$('fm_feed_tb_'+IDList[i]).parentNode.removeChild($('fm_feed_tb_'+IDList[i]));
}
ChannelList.modifyAllFolder(null,null,IDList);
ChannelList.ShowList();
FeedManage.RefreshNum();
}
FeedManage.SetLevel=function(IDList,value,text){
$('feedmanage_menu_2').style.display="none";
$('feedmanage_menu_7').style.display="none";
if(IDList.length==0){
alert("你还没有选择频道");
return;
}
for(var i=0;i<IDList.length;i++){
$('fm_feed_level_'+IDList[i]).innerHTML=text;
}

ChannelList.modifyFeedsShowLevel(IDList,value);
FeedManage.RefreshNum();

ChannelList.ShowList();
}
FeedManage.SetPublicLevel=function(IDList,publiclevel){
$('feedmanage_menu_9').style.display="none";
if(IDList.length==0){
alert("你还没有选择频道");
return;
}

ChannelList.modifyFeedsPublicLevel(IDList,publiclevel);
}
FeedManage.SetRadar=function(IDList,useradar){
$('feedmanage_menu_10').style.display="none";
if(IDList.length==0){
alert("你还没有选择频道");
return;
}
WaitControl.PannelWait();
ChannelList.modifyFeedsRadarAlert(IDList,useradar,WaitControl.PannelEndWait);
}
FeedManage.SetWapRead=function(IDList,usewap){
$('feedmanage_menu_10').style.display="none";
if(IDList.length==0){
alert("你还没有选择频道");
return;
}
WaitControl.PannelWait();
ChannelList.modifyFeedsWapRead(IDList,usewap,WaitControl.PannelEndWait);
}
FeedManage.recommendFeeds=function(IDList){
$('feedmanage_menu_10').style.display="none";
if(IDList.length==0){
alert("你还没有选择频道");
return;
}
if(IDList.length>10){
alert("一次推荐不能超过10个频道");
return;
}
ChannelList.showSendFeedPanel(IDList);
}
FeedManage.ToModifyFeed=function(feedid){
FeedManage.EndModifyFolder();
PanelMgr.show($('feedmanage_feed_edit'),{
hideCallback:function(){
FeedManage.EndModifyFeed();
}
});

$('feedmanage_feed_edit_title').focus();

var feed=ChannelList.feedMap[feedid];
if(!feed){

PanelMgr.hide();
return;
}
FeedManage.CurrentEditFeed=feed;
$('feedmanage_feed_edit_title').value=feed.title;
$('feedmanage_feed_edit_title').focus();
$('feedmanage_feed_edit_url').href=feed.url;
$('feedmanage_feed_edit_url').innerHTML=feed.url;
$('feedmanage_feed_edit_desc').value=feed.description;
$('feedmanage_feed_edit_radar').checked=feed.radarAlert==1;
$('feedmanage_feed_edit_wap').checked=feed.wapRead==1;
if(feed.publicLevel==2){
$('feedmanage_feed_edit_publiclevel_2').checked=true;
}else{
$('feedmanage_feed_edit_publiclevel_0').checked=true;
}
}
FeedManage.CurrentEditFeed=null;
FeedManage.ModifyFeed=function(){
if(FeedManage.CurrentEditFeed){
title=$('feedmanage_feed_edit_title').value;
desc=$('feedmanage_feed_edit_desc').value;
publiclevel=$('feedmanage_feed_edit_publiclevel_0').checked?0:2;
radarAlert=$('feedmanage_feed_edit_radar').checked?1:0;
wapRead=$('feedmanage_feed_edit_wap').checked?1:0;
FeedManage.CurrentEditFeed.title=title;
FeedManage.CurrentEditFeed.publicLevel=publiclevel;
FeedManage.CurrentEditFeed.description=desc;
FeedManage.CurrentEditFeed.radarAlert=radarAlert;
FeedManage.CurrentEditFeed.wapRead=wapRead;
$('fm_feed_tb_title_'+FeedManage.CurrentEditFeed.feedId).innerHTML=title;
$('Channel_'+FeedManage.CurrentEditFeed.feedId).innerHTML=title;
var p={feedId:FeedManage.CurrentEditFeed.feedId,
title:encodeURIComponent(title),
publicLevel:publiclevel,
radarAlert:radarAlert,
wapRead:wapRead,
description:encodeURIComponent(desc)};
var params='method=Feed.modifySubscribeFeed&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params);
}

PanelMgr.hide();
}
FeedManage.EndModifyFeed=function(feedid){
FeedManage.CurrentEditFeed=null;

}
FeedManage.MoveToNewFolder=function(){
$('feedmanage_menu_6').style.display="none";
$('feedmanage_menu_3').style.display="none";
FeedManage.ToModifyFolder(-1);
}
FeedManage.MoveToFolder=function(folderid,feedlist,text){
FeedManage.RightMenuObjectID=null;
$('feedmanage_menu_6').style.display="none";
$('feedmanage_menu_3').style.display="none";
if(feedlist.length==0){
alert('你还没有选择频道');
return;
}
WaitControl.PannelWait();
FeedManage.mtf_feedlist=feedlist;
window.setTimeout("FeedManage._MoveToFolder('"+folderid+"','"+text+"')",1);
}
FeedManage.mtf_feedlist=null;
FeedManage._MoveToFolder=function(folderid,text){
var feedlist=FeedManage.mtf_feedlist;
var d=$('fm_folderfeed_'+folderid);

if(!d)return;
for(var i=0;i<feedlist.length;i++){
var feedid=feedlist[i];
var feed=ChannelList.feedMap[feedid];

var oldFolder=ChannelList.getFeedFolder(feedid);
var oldFolderId=oldFolder?oldFolder.folderId:0;
if(oldFolderId==folderid)continue;

if(oldFolder){
oldFolder.feeds=oldFolder.feeds.without(feed);
}else{
ChannelList.feeds=ChannelList.feeds.without(feed);
}

if(folderid==0){
ChannelList.feeds.push(feed);
}else{
ChannelList.folderMap[folderid].feeds.push(feed);
}

var tb=$('fm_feed_tb_'+feedid);
if(tb){
d.appendChild(tb);
$('fm_feed_folder_'+feedid).innerHTML=text;
}
}
FeedManage.RefreshNum();
ChannelList.modifyAllFolder();
ChannelList.ShowList();
window.setTimeout("WaitControl.PannelEndWait()",1);
FeedManage.mtf_feedlist=null;
}
FeedManage.RefreshNum=function(foldernum,feednum,feedlevel3num,feedlevel2num){
if(!foldernum&&!feednum){
foldernum=ChannelList.folders.length;
feednum=ChannelList.feeds.length;
feedlevel3num=0;
feedlevel2num=0;
$('fm_folder_feednum_0').innerHTML=ChannelList.feeds.length;
for(var j=0;j<foldernum;j++){
var folder=ChannelList.folders[j];
if($('fm_folder_feednum_'+folder.folderId))$('fm_folder_feednum_'+folder.folderId).innerHTML=folder.feeds.length;
feednum+=folder.feeds.length;
}
}
if(!feedlevel3num&&!feedlevel2num){
feedlevel3num=0;
feedlevel2num=0;
for(var i in ChannelList.feedMap){
var feed=ChannelList.feedMap[i];
if(feed.level==3)feedlevel3num++;
if(feed.level==2)feedlevel2num++;
}
}
$('fm_num').innerHTML="你有"+foldernum+"个目录,"+feednum+"个频道(其中"+feedlevel3num+"个必读频道，"+feedlevel2num+"个关注频道)";
}
FeedManage.DeleteFolder=function(folderid){
var folder=ChannelList.folderMap[folderid];
if(!folder)return;
if(!window.confirm('你确认要删除目录“'+folder.folderName+'”吗?'))return;
$('fm_folder_'+folderid).parentNode.removeChild($('fm_folder_'+folderid));
$('fm_menu_item_'+folderid).parentNode.removeChild($('fm_menu_item_'+folderid));
$('fm_menu2_item_'+folderid).parentNode.removeChild($('fm_menu2_item_'+folderid));
ChannelList.removeFolder(folderid);
FeedManage.RefreshNum();
}
FeedManage.ToModifyFolder=function(folderid){

FeedManage.EndModifyFeed();
$('feedmanage_folder_edit').style.display="block";
$('feedmanage_folder_edit_title').focus();
document.onkeydown=function(event){
var evt=event||window.event;
var keyCode=evt.keyCode;
if(keyCode==13){
if($('feedmanage_folder_edit')&&$('feedmanage_folder_edit').style.display=="none")return;
FeedManage.ModifyFolder();
}else if(keyCode==27){
FeedManage.EndModifyFolder();
}
}
if(folderid>=0)
{
var folder=ChannelList.folderMap[folderid];
if(!folder){
FeedManage.EndModifyFolder();
return;
}
FeedManage.CurrentEditFolder=folder;
$('feedmanage_folder_edit_title').value=folder.folderName;
}else{
FeedManage.CurrentEditFolder=null;
$('feedmanage_folder_edit_title').value="";
}
}
FeedManage.CurrentEditFolder=null;
FeedManage.ModifyFolder=function(){
if(!$('feedmanage_folder_edit_title'))return;
var title=$('feedmanage_folder_edit_title').value;
if(title==''){
alert('请输入目录名称');
$('feedmanage_folder_edit_title').focus();
return;
}
var id=FeedManage.CurrentEditFolder?FeedManage.CurrentEditFolder.folderId:-1;
var f=ChannelList.FindFolderByName(title);
if(f&&f.folderId==id)f=null;

if(FeedManage.CurrentEditFolder){
if(f){
alert("已经存在目录:"+title);
$('feedmanage_folder_edit_title').focus();
$('feedmanage_folder_edit_title').select();
return;
}
if(FeedManage.CurrentEditFolder.folderName==title){
FeedManage.EndModifyFolder();
return;
}
var folder=FeedManage.CurrentEditFolder;
var folderid=folder.folderId;
folder.folderName=title;
$('fm_folder_tb_title_'+folderid).innerHTML=title;
$('fm_menu_item_'+folderid).innerHTML=title;
$('fm_menu2_item_'+folderid).innerHTML=title;
$('folder_'+folderid).innerHTML=title;

var feeds=folder.feeds;
for(var i=0;i<feeds.length;i++){
$('fm_feed_folder_'+feeds[i].feedId).innerHTML=title;
}

var p={folderId:folderid,
folderName:encodeURIComponent(title)};
var params='method=Actor.modifyFolder&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params);
}else{
var feedList=[];
if(FeedManage.RightMenuObjectID)
feedList=[FeedManage.RightMenuObjectID];
else feedList=FeedManage.GetCheckList();
if(f){
FeedManage.MoveToFolder(f.folderId,feedList,title);
FeedManage.EndModifyFolder();
return;
}
ChannelList.addFolder(title,function(folder){
folderid=folder.folderId;
var li=document.createElement("LI");
li.id="fm_folder_"+folderid;
var html=[];
html.push("<table cellpadding='0' cellspacing='0' class='feedManage_li_2'>");
html.push("<tr><td class='feedManage_ul_li_tb_c1' align='left'><input id='fm_cb_folder_"+folderid+"' type='checkbox' onclick=\"FeedManage.CheckAllByFolder(this,"+folderid+")\"></td>");
html.push("	<td class='feedManage_ul_li_tb_c1' align='left'><img id='fm_folder_img_"+folderid+"' onclick='FeedManage.ControlFolder("+folderid+")' class='feedManage_folderOpen' src='/img/openFolder.gif' title='折叠'/></td>");
html.push("	<td align='left' onclick='FeedManage.ControlFolder("+folderid+")'><span id='fm_folder_tb_title_"+folderid+"'>"+title+"</span>(<span id='fm_folder_feednum_"+folderid+"'>0</span>)</td>");
html.push("	<td class='feedManage_ul_li_tb_c2'>");
html.push("		<span class='feedManage_button' onclick='FeedManage.ToModifyFolder("+folderid+")'>修改</span><span class='feedManage_button' onclick='FeedManage.DeleteFolder("+folderid+")'>删除</span>");
html.push("	</td></tr></table><div id='fm_folderfeed_"+folderid+"' class='feedManage_li_3'></div>");
li.innerHTML=html.join('');
$('feedmanage_body').appendChild(li);

var d1=document.createElement('DIV');
d1.id="fm_menu_item_"+folderid;
d1.style.width="100px";
d1.className="feedManage_menu_item";
d1.onmouseover=function(){FeedManage.MouseOnItem(d1);};
d1.onclick=function(){FeedManage.MoveToFolder(folderid,[FeedManage.RightMenuObjectID],folder.folderName)};
d1.innerHTML=folder.folderName;

var d2=document.createElement('DIV');
d2.id="fm_menu2_item_"+folderid;
d2.style.width="100px";
d2.className="feedManage_menu_item";
d2.onmouseover=function(){FeedManage.MouseOnItem(d2);};
d2.onclick=function(){FeedManage.MoveToFolder(folderid,FeedManage.GetCheckList(),folder.folderName)};
d2.innerHTML=folder.folderName;
$('feedmanage_menu_6').appendChild(d1);
$('feedmanage_menu_3').appendChild(d2);

if(feedList.length>0)
FeedManage.MoveToFolder(folderid,feedList,folder.folderName);
})
}
FeedManage.EndModifyFolder();
}
FeedManage.EndModifyFolder=function(folderid){
FeedManage.CurrentEditFolder=null;
if($('feedmanage_folder_edit'))$('feedmanage_folder_edit').style.display="none";
}
var interfaceUrl='/rssreader.php';
var TagAccount={};
TagAccount.Init=function(){

var cfg=Actor.Account;
if(cfg.bookmark_sync){
$("ta_enableAutoExpand_d").checked=cfg.bookmark_sync_quick?true:false;
$("ta_atitle_d").value=cfg.bookmark_user||"";
$("ta_apwd_d").value=cfg.bookmark_password||"";
TagAccount.resetClassName('delicious2','delicious');
}
$("ta_atitle_d").focus();
$("ta_apwd_d").onkeydown=function(event){
event=event||window.event;
var keycode=event.keyCode;
if(keycode=="13")
TagAccount.Save();
}
}
TagAccount.resetClassName=function(o,n){
var e=$('ta_title_del');
e.className=e.className.replace(o,n);
}
TagAccount.Save=function(isbind){
if(isbind&&($("ta_atitle_d").value==""||$("ta_apwd_d").value=="")){
alert("请输入用户名和密码");
return;
}
Actor.Account.bookmark_type="del.icio.us";
if(isbind){
Actor.Account.bookmark_cancel=false;
Actor.Account.bookmark_sync=true;
Actor.Account.bookmark_sync_quick=$("ta_enableAutoExpand_d").checked;
Actor.Account.bookmark_user=$("ta_atitle_d").value;
Actor.Account.bookmark_password=$("ta_apwd_d").value;
}else{
Actor.Account.bookmark_cancel=true;
Actor.Account.bookmark_user="";
Actor.Account.bookmark_password="";
Actor.Account.bookmark_sync=false;
Actor.Account.bookmark_sync_quick=false;
$("ta_enableAutoExpand_d").checked=false;
$("ta_atitle_d").value="";
$("ta_apwd_d").value="";
TagAccount.resetClassName('delicious','delicious2');
}
var info=isbind?"绑定":"取消绑定";
$("ta_btn_save").disabled='disabled';
Actor.Account.save(function(resp){
$("ta_btn_save").disabled='';
if(isbind)TagAccount.resetClassName('delicious2','delicious');
WaitControl.SaveEndMsg(info+"成功！");
},function(msg){
$("ta_btn_save").disabled='';
WaitControl.SaveEndMsg(info+"失败:"+msg);
});
}
String.prototype.startWith=function(prefix){
return(this.substr(0,prefix.length).toLowerCase()==prefix.toLowerCase());
}
var Suggest=function(){
this.Time=null;
this.Target=null;
this.Div=null;
this.InstanceName=null;
this.Temp={};
}
Suggest.prototype.init=function(input,data,instanceNameString){
this.Target=$(input);


this.InstanceName=instanceNameString;
this.Div=document.createElement("div");
this.Div.id="Suggest_DIV_"+Math.round(Math.random()*100);
this.Div.className="Suggest_Div";
this.Div.style.backgroundColor='#fff';
this.Div.style.position="absolute";
this.Div.style.wordWrap="break-word";
this.Div.style.zIndex=1;
this.Div.style.cursor="default";
this.Div.style.width=(this.Target.offsetWidth-3)+"px";
this.Div.style.display="none";
this._setPosition();

this.Target.parentNode.appendChild(this.Div);

this.Data=data;
this._innerData='';
this._buildData();

var self=this;
this.Target.onblur=function(event){

if(self.Temp.closeDivTimer>0){
clearTimeout(self.Temp.closeDivTimer);
}
self.Temp.closeDivTimer=window.setTimeout(
function(){
self.closeDiv(true);
clearTimeout(self.Temp.closeDivTimer);
self.Temp.closeDivTimer=-1;
}
,300);

}
this.Target.onclick=function(){
return;
if(self.Target.value.trim().length>0){
self.showDiv();
}
}
}
Suggest.prototype._buildData=function(){
if(this.Data){
this._innerData='\n'+this.Data.join('\n')+"\n";
}
}
Suggest.prototype._setPosition=function(){
if(document.all){
var pos=Dom.getXY(this.Target);
this.Div.style.left=pos[0]+"px";
this.Div.style.top=(pos[1]+this.Target.offsetHeight)+"px";
}
}
Suggest.prototype.show=function(e,prefix){

prefix=typeof prefix=='string'&&prefix.length>0?prefix:this.Target.value;


if(e.keyCode==40){
this.next();
}
else if(e.keyCode==38){
this.prev();
}
else{
var self=this;
var dealHtml=function(txt){
var html="<div class='Suggest_Item' onclick='"+self.InstanceName+".pick(event,this)' onmouseover='"+self.InstanceName+".over(event,this)' onmouseout='"+self.InstanceName+".out(event,this)'>"+txt+"</div>";
return html;

}
if(this.Time>0)
this.clearTime();
this.Time=window.setTimeout(
function(){
self.render(prefix,dealHtml);
self.clearTime();
},500);
}


}
Suggest.prototype.render=function(prefix,dealHTML){
if(prefix.replace(/\s+/ig,"").length==0)
return this.closeDiv();

var list=this.search(prefix,dealHTML);

if(list.length>0){
this.Div.innerHTML=list.join("");
this.Selected=null;
this.showDiv();
}
else this.closeDiv();
}
Suggest.prototype.showDiv=function(){
if(this.Div){
if(this.Div.style.display=="block"&&this.Div.style.visibility=="visible"){
return true;
}

this.Div.style.display="block";
this.Div.style.visibility="visible";
this._setPosition();


if(window.joyeach&&joyeach.util.Opacity){
joyeach.util.Opacity.set(this.Div,100);
}
}
}
Suggest.prototype.closeDiv=function(effect){

if(this.Div){

if(this.Div.style.display=="none"){
return true;
}

if(effect&&window.joyeach&&joyeach.util.Opacity){
joyeach.util.Opacity.fadeOut(this.Div,100);
}
else{
this.Div.style.visibility="hidden";
this.Div.style.display="none";
}
}
}
Suggest.prototype.binarySearch=function(data,target){
var list=data;
var low=0,high=list.length-1;
while(low<=high){
var mid=Math.floor((high-low)/2);
var interValue=list[mid];
if(target.localeCompare(interValue)>0){
low=mid+1;
}
else if(target.localeCompare(interValue)<0){
high=mid-1;
}
else return mid;
}
return-(mid+1);
}
Suggest.prototype.search=function(target,itemFunction){
if(this._innerData=='')return[];
var deal=typeof itemFunction=='function'?itemFunction:function(txt){return txt.substr(1,txt.length-2);};
var list=this._innerData.match(new RegExp('\n'+target+'.*\n','ig'));
if(list==null)return[];
for(var i=0,len=list.length;i<len;i++){
list[i]=deal(list[i]);
}
return list;

var list=(data&&data.join)?data:new Array(2);


var dist=[];
for(var i=0,len=list[0].length;i<len;i++){
if(list[0][i].indexOf(target)==0){
dist.push(deal(list[0][i]));
}
}
return dist;
}
Suggest.prototype.sort=function(){
this.Data.sort(function(a,b){return a.localeCompare(b)});
}
Suggest.prototype.clearTime=function(){
window.clearTimeout(this.Time);
this.Time=-1;
}
Suggest.prototype.over=function(e,sender){
this.Selected=sender;
if(sender){
sender.className="Suggest_Item_Hover";

}
}
Suggest.prototype.out=function(e,sender){
this.Selected=null;
if(sender&&sender.style){
sender.className="";

}

}
Suggest.prototype.next=function(){
var item=null;
if(this.Selected){
var div=this.Selected.nextSibling;
item=div==null?this.Selected:div;
}
else{
item=this.Div.firstChild;
}
if(item!=null&&item!=this.Selected){
this.out(null,this.Selected);
this.over(null,item);
this.pick();
}
}
Suggest.prototype.prev=function(){
var item=null;
if(this.Selected){
var div=this.Selected.previousSibling;
item=div==null?this.Selected:div;
}
else{
item=this.Div.firstChild;
}
if(item!=null&&item!=this.Selected){
this.out(null,this.Selected);
this.over(null,item);
this.pick();
}
}
Suggest.prototype.pick=function(e,sender){

var obj=sender?sender:this.Selected;
if(obj&&obj.innerHTML){
this.Target.value=this.Target.value.replace(/\s*$/,"").replace(/\s?\S+$/,' '+obj.innerHTML.substr(1,obj.innerHTML.length-2));
}
else if(typeof this.onEnter=='function'){
this.onEnter.apply(this,e);
}

}
var friendListMg={

friendMap:[],
folderMap:[],
positionMap:[],
inviteMeActorMap:[],
maxId:0,
preSelectActor:-1,
bisLoad:false
}
friendListMg.Load=function(onSuc,isforce)
{
if(!friendListMg.bisLoad|isforce)
{
friendListMg.tempFun=onSuc;
var onSuccess=function(res)
{

WaitControl.SidePannelEndWait();
var ret=JSON.decode(res.responseText);
friendListMg.maxId=ret.data.maxid;
if(ret.data.friendMap.constructor==Array)
{
friendListMg.friendMap={};
}
else
{
friendListMg.friendMap=ret.data.friendMap;
}

if(ret.data.folderMap.constructor==Array)
{
friendListMg.folderMap={};
}
else
{
friendListMg.folderMap=ret.data.folderMap;
}

friendListMg.inviteMeActorMap=ret.data.inviteMeActorId;

friendListMg.positionMap=ret.data.positionMap;
friendListMg.bisLoad=true;

if(friendListMg.tempFun)
{
friendListMg.tempFun();
delete friendListMg.tempFun;
}
friendListMg._ShowList();
}

this.initFolderStatus();

var oreturn=this._GetAllFriendList(onSuccess);
}
else
{
if(onSuc)
{
onSuc();
}
}
}
friendListMg.switchExpandFolder=function(folderId)
{
var list=$('ul_friend_'+folderId);
if(list.style.display=='none'){
friendListMg.expandFolder(folderId,true);
}else{
friendListMg.expandFolder(folderId,false);
}

}
friendListMg.expandFolder=function(folderId,expand){
var folderName=this.folderMap[folderId];

if(!folderName){return;}

if(this.isFolderExpanded(folderId)==!!expand)return;

var elFolder=$('ul_friend_'+folderId);

if(!!expand){
elFolder.style.display='';
$('friend_folder_preImg_'+folderId).className='folder_preImg_expand';
}else{
elFolder.style.display='none';
$('friend_folder_preImg_'+folderId).className='folder_preImg_collapse';
}
this.saveFolderStatus(folderId,!!expand);
}
friendListMg.saveFolderStatus=function(folderId,isExpand)
{
if(isExpand){
if(this.isFolderExpanded(folderId))return;
friendExpandedFolders[folderId]=true;
}else{
if(!this.isFolderExpanded(folderId))return;
delete friendExpandedFolders[folderId];
}
var id=[];
for(var p in friendExpandedFolders){
if(!isNaN(parseInt(p)))
{
id.push(p);
}
}
Actor.UserConfig.expand_folders_friend=id.join(',');
setTimeout(function(){
Actor.UserConfig.set("expand_folders_friend",Actor.UserConfig.expand_folders_friend);
},30000);
}
friendListMg.isFolderExpanded=function(folderid)
{
return!!friendExpandedFolders[folderid];
}
var friendExpandedFolders={};
friendListMg.initFolderStatus=function(){
if(Actor&&Actor.UserConfig)
{
var id=Actor.UserConfig.expand_folders_friend.split(',');
id.each(function(i){friendExpandedFolders[i]=true;})
}
}
friendListMg.selectActor=function(actorId)
{
Dom.addClass('actor_ul_'+actorId,'friend_ul_sel');
if(friendListMg.preSelectActor>0)
{
var el=$('actor_ul_'+friendListMg.preSelectActor);
if(el)Dom.removeClass(el,'friend_ul_sel');
}
PageMgr.goDiggItem(actorId);
friendListMg.preSelectActor=actorId;

}
friendListMg.isGroupNameIn=function(groupName)
{
for(var key in this.folderMap)
{
if(this.folderMap[key].toLowerCase()==groupName.toLowerCase())
{
return true;
}
}
return false;
}
friendListMg.findFolderPosition=function(folderId)
{
if(folderId==0)
{
return this.positionMap;
}
for(var i=0;i<this.positionMap.folders.length;i++)
{
if(this.positionMap.folders[i].folderId==folderId)
{
return this.positionMap.folders[i];
}
}
return null;
}
friendListMg.deleteFriendPosition=function(friendId,onlyReturnFolder)
{
for(var i=0;i<this.positionMap.folders.length;i++)
{
for(var y=0;y<this.positionMap.folders[i].friends.length;y++)
{
if(this.positionMap.folders[i].friends[y]==friendId)
{
if(onlyReturnFolder!=true)
{
this.positionMap.folders[i].friends.splice(y,1);
}
return i;
}
}
}
for(var i=0;i<this.positionMap.friends.length;i++)
{
if(this.positionMap.friends[i]==friendId)
{
if(onlyReturnFolder!=true)
{
this.positionMap.friends.splice(i,1);
}
return-2;
}
}
return-1;
}
friendListMg.addFriendPosition=function(friendId,folderId)
{
if(folderId==0)
{
this.positionMap.friends.push(friendId);
return-2;
}
for(var i=0;i<this.positionMap.folders.length;i++)
{
if(this.positionMap.folders[i].folderId==folderId)
{
this.positionMap.folders[i].friends.push(friendId.toString());
return i;
}
}
return-1;
}
friendListMg.addFolder=function(name,onSuccess){
var p={groupName:encodeURIComponent(name)};
var params='method=Actor.addFriendGroup&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
eval('var ret = '+res.responseText);
if(ret.status=='1'){
group={};
group.folderId=ret.data.folderId;
friendListMg.maxId=group.folderId;
group.friends=[];
friendListMg.folderMap[group.folderId]=ret.data.folderName;
friendListMg.positionMap.folders.push(group);

folderHtml=friendListMg._CreateFriendFolderHtml(group);
var uls=htmlToFragment(folderHtml);
var panel=$('friendListBody');
var end=$('ul_friend_0');

panel.insertBefore(uls,end);
friendListMg.scrollTo(group.folderId,true);
if(onSuccess)onSuccess(folder);
}
});
}
friendListMg.addFriend=function(friendAddMap,nickName)
{

var tempMap={};
count=0;
var actorId;
var nickName=nickName;
for(var key in friendAddMap)
{
var actorIds=friendAddMap[key];
for(var i=0;i<actorIds.length;i++)
{
if(friendListMg.friendMap[actorIds[i]])
{
continue;
}
if(!tempMap[key]){
tempMap[key]=[];
}
tempMap[key].push(actorIds[i]);
count=count+1;
actorId=actorIds[i];
}
}
if(count==0)
{

return;
}
var p={friendPosMap:tempMap};
var params='method=Actor.addFriends&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
eval('var ret = '+res.responseText);
if(ret.status==1)
{
beAddActorId=ret.data;

if(actorId){
var el=$('friend_op_'+actorId);
if(el){
el.innerHTML=nickName+"已经是你的好友&nbsp;<span onclick=\"friendListMg.removeFriend("+actorId+");WaitControl.SaveEndMsg('删除朋友完成');\" class='link_button'>删除</span>";
el.className="";
}
}

el=$("addFriend_MessageShow");
if(el){
el.innerHTML="您已成功添加,请到我的好友列表查看";
el.className="";
}

WaitControl.SaveEndWait('添加成功');
if(friendListMg.bisLoad)
{
friendListMg.Load(null,true);
}
}
else
{
WaitControl.SaveEndWait(ret.error);
}
});
}
friendListMg.scrollTo=function(id,isFolder)
{
var el=isFolder?$('friend_folder_ul_'+id):$('friend_li_'+id);
if(!el)return;
var elPanel=$('friendListBody');
var pXY=Dom.getXY(elPanel);
var fXY=Dom.getXY(el);

{
fXY[1]-=elPanel.scrollTop;
}

if(fXY[1]>pXY[1]+elPanel.offsetHeight*2/3){
var scroll=fXY[1]-pXY[1]-30;
elPanel.scrollTop+=scroll;
}else if(fXY[1]<pXY[1]){
elPanel.scrollTop-=pXY[1]-fXY[1];
}
}
friendListMg.removeFolder=function(folderId)
{
if(!folderId||folderId=='0')return;
var folder=this.findFolderPosition(folderId);


folder.friends.each(function(friendId){
delete friendListMg.friendMap[friendId];

});
if(folder){

this.positionMap.folders=this.positionMap.folders.without(folder);
delete this.folderMap[folderId];


$('friendListBody').removeChild($('friend_folder_ul_'+folderId));
$('friendListBody').removeChild($('ul_friend_'+folderId));
var p={groupId:folderId};
var params='method=Actor.deleteGroup&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params);
}
}
friendListMg.removeFriend=function(friendId)
{
var p={friendId:friendId};
if(friendListMg.bisLoad){
if(this.friendMap[friendId]==null)
{
WaitControl.SaveEndWait('已删除成功');
return;
}

folderId=this.deleteFriendPosition(friendId);
if(folderId>-1)
{
$('folder_actorNum_'+this.positionMap.folders[folderId].folderId).innerHTML="("+this.positionMap.folders[folderId].friends.length+")";
}
var el=$('friend_op_'+friendId);
if(el){
var actor=this.friendMap[friendId];



}
$('friend_li_'+friendId).parentNode.removeChild($('friend_li_'+friendId));
}

delete friendListMg.friendMap[friendId];
var params='method=Actor.deleteFriend&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
WaitControl.SaveEndMsg('删除朋友完成');
});


}
friendListMg.moveFriend=function(friendId,folderid)
{
var p={friendId:friendId,groupId:folderid};
var elFeed=$('friend_li_'+friendId);
oldfolderPos=this.deleteFriendPosition(friendId);
newfolderPos=friendListMg.addFriendPosition(friendId,folderid);
if(oldfolderPos>-1)
{
$('ul_friend_'+this.positionMap.folders[oldfolderPos].folderId).removeChild(elFeed);
}
else
{
$('ul_friend_0').removeChild(elFeed);
}
$('ul_friend_'+folderid).appendChild(elFeed);
if(oldfolderPos>-1)
{
$('folder_actorNum_'+this.positionMap.folders[oldfolderPos].folderId).innerHTML="("+this.positionMap.folders[oldfolderPos].friends.length+")";
}
if(folderid>0)
{
$('folder_actorNum_'+folderid).innerHTML="("+this.positionMap.folders[newfolderPos].friends.length+")";
this.expandFolder(folderid,true);
}
var params='method=Actor.moveFriendPos&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params);

}
friendListMg._ShowList=function()
{
if(this.positionMap==null)return;
var html=new Array();
html.push('<div class="friedlist" id="friendListBody"  style="height: 253px;" oncontextmenu="return false">');
haveFriends=false;
for(var i=0;i<this.positionMap.folders.length;i++){
haveFriends=true;
html.push(this._CreateFriendFolderHtml(this.positionMap.folders[i]));
}
html.push('<ul id="ul_friend_0" class="ul_root_friendList">');
for(var i=0;i<this.positionMap.friends.length;i++)
{
haveFriends=true;
html.push(this._CreateFriendHtml(this.positionMap.friends[i]));
}
if(!haveFriends)
{
html.push('<div>你现在还没有添加好友，如果你的朋友也在用鲜果，你可以加他为好友，然后就可以关注他（她）在鲜果的一举一动，并且你可以跟他分享文章、频道</div>');
}
html.push('</ul></div>');
$('friendList').innerHTML=html.join('');
}
friendListMg.friendFolderTemplate='<ul oncontextmenu="return friendListMg.Folder.ShowContextMenu(this,{ifolderId})"  onclick="friendListMg.switchExpandFolder({ifolderId});" id="friend_folder_ul_{ifolderId}" class="friend_folder_ul">'
+'<li class="{folderLogoClass}" id="friend_folder_preImg_{ifolderId}" >&nbsp;</li>'
+'<li id="friend_folder_{ifolderId}" class="friend_folder_title" title="{folderTitle}">{folderTitle}</li>'
+'<li id="folder_actorNum_{ifolderId}" class="friend_num">({folderTotal})</li>'
+'</ul>'
+'<ul id="ul_friend_{ifolderId}" class="ul_friend_list" {folderIsDisplay}>';
friendListMg._CreateFriendFolderHtml=function(ofriendFolder)
{
var folderHtml=new Array();
var tempFolderHtml=friendListMg.friendFolderTemplate;
tempFolderHtml=tempFolderHtml.replaceAll('{ifolderId}',ofriendFolder.folderId);
tempFolderHtml=tempFolderHtml.replaceAll('{folderTitle}',this.folderMap[ofriendFolder.folderId]);
tempFolderHtml=tempFolderHtml.replaceAll('{folderTotal}',ofriendFolder.friends.length==null?0:ofriendFolder.friends.length);
if(friendListMg.isFolderExpanded(ofriendFolder.folderId))
{
tempFolderHtml=tempFolderHtml.replaceAll('{folderLogoClass}',"folder_preImg_expand");
tempFolderHtml=tempFolderHtml.replaceAll('{folderIsDisplay}','');
}
else
{
tempFolderHtml=tempFolderHtml.replaceAll('{folderIsDisplay}',' style="display:none;"');
tempFolderHtml=tempFolderHtml.replaceAll('{folderLogoClass}',"folder_preImg_collapse");
}
folderHtml.push(tempFolderHtml);

for(var i=0;i<ofriendFolder.friends.length;i++)
{
folderHtml.push(this._CreateFriendHtml(ofriendFolder.friends[i]));
}
folderHtml.push('</ul>');
return folderHtml.join('');
}
friendListMg.friendActorTemplate='<li oncontextmenu="friendListMg.Actor.ShowContextMenu(this,{actorid});return false;"  title="{nickName}" id="friend_li_{actorid}">'
+'<ul id="actor_ul_{actorid}" class="{friendCss}" onclick="friendListMg.selectActor({actorid})">'
+'<li class="actor_logo_li"><img width="16" height="16" alt="" src="http://xgimg.com/smalluserlogo/{actorid}"/></li>'
+'<li class="actor_nickname" id="nickname_{actorid}">{nickName}</li>'
+'<li class="friend_verify" id="verify_{actorid}">{verify}</li>'
+'</ul></li>';

function _xg_escape(text)
{
text=text.replaceAll('<','&gt;');
text=text.replaceAll('>','&lt;');
return text;
}
friendListMg._CreateFriendHtml=function(ofriend)
{
var tempActorHtml=friendListMg.friendActorTemplate;
var friend=this.friendMap[ofriend];
if(!friend)return"";
tempActorHtml=tempActorHtml.replaceAll('{actorid}',friend.actorId);
tempActorHtml=tempActorHtml.replaceAll('{nickName}',_xg_escape(friend.nickname));
if(friendListMg.inviteMeActorMap.indexOf(friend.actorId)>-1){
tempActorHtml=tempActorHtml.replaceAll('{verify}','');
tempActorHtml=tempActorHtml.replaceAll('{friendCss}','friend_ul');
}else{
tempActorHtml=tempActorHtml.replaceAll('{verify}','(未验证)');
tempActorHtml=tempActorHtml.replaceAll('{friendCss}','friend_ul_verify');
}
return tempActorHtml;
}
friendListMg._GetAllFriendList=function(fSuccess)
{
if(fSuccess!=null)
{
var sParam=CreateAsync1SyncCallParam("Actor.getAllFriends");
WaitControl.SidePannelWait();
AsyncCall(interfaceUrl,sParam,fSuccess);
}
}
friendListMg.initSelect=function(select){
var select=$(select);
select.length=0;
select.options[select.length]=new Option("请选择",-1);
select.options[select.length]=new Option("",-2);
for(var i=0;i<friendListMg.inviteMeActorMap.length;i++){
var actor=friendListMg.friendMap[friendListMg.inviteMeActorMap[i]];
select.options[select.length]=new Option(actor.nickname,actor.actorId);
}
}
friendListMg.Folder={
menu:null,
FolderID:null,
FolderName:null,
ShowContextMenu:function(target,folderid){
this.FolderID=folderid;
this.FolderName=null;
if(this.menu==null)this.initMenu();
this.menu.show();
return false;
},
initMenu:function(){
var m=new Menu({style:'menu',autoPos:true});
m.addItem(new MenuItem('新建小组...',{
style:'menuitem',
enterStyle:'hovermenuitem',
onclick:function(){friendListMg.Folder.ToAdd();}
}));
m.addItem(new MenuItem('修改小组名称...',{
style:'menuitem',
enterStyle:'hovermenuitem',
onclick:function(){friendListMg.Folder.ToModify();}
}));
m.addItem(new MenuItem('删除目录',{
style:'menuitem',
enterStyle:'hovermenuitem',
onclick:function(){friendListMg.Folder.Remove();}
}));
m.addGroupItem("menuitem_line");

m.addItem(new MenuItem('添加好友',{
style:'menuitem',
enterStyle:'hovermenuitem',
onclick:function(){PageMgr.goFindAndInvite(friendListMg.Folder.FolderID);}
}));
this.menu=m;
},
ToModify:function(){
PanelMgr.show('AddFriendFolder',{
hideCallback:function(){$('ipt_FriendFolderName').value="";}
});
var ipt=$('ipt_FriendFolderName');
ipt.value=$('friend_folder_'+this.FolderID).innerHTML.stripTags();
ipt.focus();
ipt.select();
},
Modify:function(){
var FolderName=$('ipt_FriendFolderName').value;
if(FolderName==''){alert('请输入目录名称');$('ipt_FriendFolderName').focus();return;}

if(friendListMg.isGroupNameIn(FolderName))
{alert('小组已存在');$('ipt_FriendFolderName').focus();return;}

this.FolderName=FolderName;
PanelMgr.hide();
var d=$('friend_folder_'+this.FolderID);
if(d){

d.title=FolderName;
d.innerHTML='<a>'+FolderName+'</a>';
}
var p={groupId:this.FolderID,groupName:encodeURIComponent(FolderName)};
var params='method=Actor.modifyGroupName&params='+JSON.serialize(p);
AsyncCall(interfaceUrl,params,function(res){
friendListMg.folderMap[friendListMg.Folder.FolderID]=friendListMg.Folder.FolderName;
this.FolderID=null;
}
);

},

ToAdd:function(){
this.FolderID=null;
PanelMgr.show('AddFriendFolder',{
hideCallback:function(){$('ipt_FolderName').value="";}
});
$('ipt_FolderName').focus();


},
SubscribeOption:null,
friendIDForAdd:null,
Add:function(){
var FolderName=$('ipt_FriendFolderName').value;
if(FolderName==''){alert('请输入小组名称');$('ipt_FriendFolderName').focus();return;}


if(friendListMg.isGroupNameIn(FolderName))
{alert('小组已存在');$('ipt_FriendFolderName').focus();return;}

PanelMgr.hide();
this.FolderID=null;
friendListMg.addFolder(FolderName);
},
Remove:function(){
this.menu.hide();
var folder=friendListMg.findFolderPosition(this.FolderID);
var tip="目录“"+friendListMg.folderMap[this.FolderID]+"”有"+folder.friends.length+"个用户，你确定要删除吗?";
if(window.confirm(tip)){

friendListMg.removeFolder(this.FolderID);
WaitControl.SaveEndMsg('删除小组完成');
this.FolderID=null;
}
},
Keydown:function(evt){
evt=evt||window.event;
var kc=evt.keyCode;
if(kc==27)PanelMgr.hide();
else if(kc==13)this.Save();
},
Save:function(){
if(this.FolderID||this.FolderID>0){
var name=friendListMg.folderMap[this.FolderID];
var ipt=$('ipt_FriendFolderName');
if(ipt.value==name){
PanelMgr.hide();
return;
}
this.Modify();
}else{
this.Add();
}
}
};
friendListMg.Actor={
friendID:null,
menu:null,
menutype:null,
ShowContextMenu:function(target,feedid){
this.friendID=feedid;
if(this.menu==null||this.menutype!='context')this.initMenu();
this.menu.show();
this.LoadActorFolder('slt_FriendFolderMoveTo');
this.SetCurrentFolder('slt_FriendFolderMoveTo');
},
initMenu:function(){
if(this.menu)this.menu.close();
var m=new Menu({style:'menu',autoPos:true});
m.addItem(new MenuItem('发送消息',{
style:'menuitem',
enterStyle:'hovermenuitem',
onclick:function(){PageMgr.goWriteMessage(friendListMg.friendMap[friendListMg.Actor.friendID].actorId,friendListMg.friendMap[friendListMg.Actor.friendID].nickname);}
}));
m.addItem(new MenuItem('删除朋友',{
style:'menuitem',
enterStyle:'hovermenuitem',
onclick:function(){friendListMg.Actor.Remove();}
}));

m.addItem(new MenuItem('新建小组....',{
style:'menuitem',
enterStyle:'hovermenuitem',
onclick:function(){friendListMg.Folder.ToAdd();}
}));
m.addItem(new MenuItem('<select id="slt_FriendFolderMoveTo" style="width:100%"></select>',{
style:'menuitem',
title:'目录',
onclick:function(e){e.cancel=true;}
}));
this.menu=m;
this.menutype='context';
},
Remove:function(hideConfirm){
if(this.menu!=null)this.menu.hide();
var friend=friendListMg.friendMap[this.friendID];
if(hideConfirm||window.confirm('你确定要删除朋友“'+friend.nickname+'”吗？')){
friendListMg.removeFriend(this.friendID);
WaitControl.SaveEndMsg('删除朋友完成');
this.friendID=null;
}
},
SetCurrentFolder:function(ID){
var select=$(ID);
positionId=friendListMg.deleteFriendPosition(this.friendID,true);
select.value=positionId>-1?friendListMg.positionMap.folders[positionId].folderId:0;
},
LoadActorFolder:function(ID,fID){
var folders=friendListMg.folderMap;
var select=$(ID);
select.length=0;
if(!select.onchange)
select.onchange=function(ex){
friendListMg.Actor.MoveToFolder(this.value,fID);
};
this.AddFeedFolder({folderName:'根目录',folderId:0},ID);
for(var key in folders)
{
this.AddFeedFolder({folderName:folders[key],folderId:key},ID);
}
},
AddFeedFolder:function(folder,ID){
if(folder==null||folder.folderName==null||folder.folderName=='')return;
var select=$(ID);
select.options[select.length]=new Option(folder.folderName,folder.folderId);
},
MoveToFolder:function(folderid,fId){
friendListMg.moveFriend(this.friendID||fId,folderid);
if(this.menu)this.menu.hide();
},
Keydown:function(evt){
evt=evt||window.event;
var kc=evt.keyCode;
if(kc==27)PanelMgr.hide();
else if(kc==13)this.ModifyName();
}
};

var XGDragDrop={
lastEnterId:false,
itemIndex:false,
prepareDragItem:function(index,header){
if(index==null)return;
var e=JEvent.getEvent();
var el=JEvent.element(e);
if(el.tagName=='A'){return true;}
var item=ItemList.cList[index];
var proxy=$('tmp_drag_item');
if(!proxy){
proxy=htmlToElement('<div style="display:none" id="tmp_drag_item" class="drag_item"></div>');
document.body.appendChild(proxy);
}
XGDragDrop._internalPrepareDrag(header,item);
proxy.innerHTML=item.title;
},
_getFavoriteArea:function(){
if(ActorTag.TagList){
var area=[$('listTag_digg'),$('listTag_all'),$('listTag_untag')];
ActorTag.TagList.data.list.each(function(tag){
var el=$('listTag_'+tag.tagId);
if(el)area.push(el);
});
return area;
}else{
return[];
}

},
_getFriendArea:function(){
var area=[];
for(var p in friendListMg.friendMap){
var el=$('actor_ul_'+p);
if(el)area.push(el);
}
for(var p in friendListMg.folderMap){
var el=$('friend_folder_ul_'+p);
if(el)area.push(el);
}
return area;
},
_lastStatus:false,
_internalPrepareDrag:function(el,item){
var proxy=$('tmp_drag_item');
var enterStyle='drop_enter';
if(!el.drag){
el.drag=new joyeach.util.Dragable(el,{
onmovetarget:function(ev){
ev.cancel=true;
},
onend:function(ev){
if(TabMgr.inFavorite()){
XGDragDrop._toFavEnd(item);
}else if(TabMgr.inFriend()){
XGDragDrop._toFriendEnd(item);
}
Dom.removeClass($(XGDragDrop.lastEnterId),enterStyle);
XGDragDrop.lastEnterId=false;
XGDragDrop._lastStatus=false;

if(Dom.IsNs){
Dom.removeClass(document.body,'moz_disable_select');
}

},
onstart:function(ev){
proxy.style.display='block';

if(Dom.IsNs){
Dom.addClass(document.body,'moz_disable_select');
}
}
});

el.drag.installProxy(proxy,'left');
el.drag.prepare(JEvent.getEvent());

JEvent.addListener(el.drag,'onmove',function(ev){
if(XGDragDrop._lastStatus!=TabMgr.status){
var area=[$('myFavorite'),$('myFriend')];
if(TabMgr.inFavorite()){
var favArea=XGDragDrop._getFavoriteArea();
area=favArea.concat(area);
}else if(TabMgr.inFriend()){
var friendArea=XGDragDrop._getFriendArea();
area=friendArea.concat(area);
}
if(area.length>2){
XGDragDrop._lastStatus=TabMgr.status;
}
el.drag.setMonitorArea(area);
}
if(Dom.withIn($('myFavorite'),ev.mouseX,ev.mouseY)){
TabMgr.goFavorite();
}else if(Dom.withIn($('myFriend'),ev.mouseX,ev.mouseY)){
TabMgr.goFriend();
}
});
JEvent.addListener(el.drag,"onenter",function(ev){
if(XGDragDrop.lastEnterId){
Dom.removeClass($(XGDragDrop.lastEnterId),enterStyle);
}
if(TabMgr.inFavorite()){

}else if(TabMgr.inFriend()){

if(ev.monitor.id.startsWith("friend_folder_ul_")){
friendListMg.expandFolder(ev.monitor.id.substr("friend_folder_ul_".length),true);
return;
}
}
XGDragDrop.lastEnterId=ev.monitor.id;
Dom.addClass(ev.monitor,enterStyle);
if(TabMgr.inFriend()){
var id=ev.monitor.id.substr("actor_ul_".length);
if(friendListMg.inviteMeActorMap.indexOf(id)==-1){
return;
}
}
Dom.replaceClass(proxy,'drag_item','dragAllow_item');
});
JEvent.addListener(el.drag,"onleave",function(ev){
Dom.removeClass(ev.monitor,enterStyle);
XGDragDrop.lastEnterId=false;
Dom.replaceClass(proxy,'dragAllow_item','drag_item');
});
}
},
_toFriendEnd:function(item){
if(XGDragDrop.lastEnterId!==false){
var actorId=XGDragDrop.lastEnterId.substr('actor_ul_'.length);
if(friendListMg.inviteMeActorMap.indexOf(actorId)>-1){
var itemIndex=ItemList.cList.indexOf(item);
ItemList.addDiggNum(itemIndex,"shared");
XGDragDrop.sendDiggMessage(actorId,item);
item.remark.shared=true;
}else{
alert("他(她)还没有加你为好友，你还不能给他推荐");
}
}
},
_toFavEnd:function(item){
if(XGDragDrop.lastEnterId!==false){
var itemIndex=ItemList.cList.indexOf(item);
var tagId=XGDragDrop.lastEnterId.substr('listTag_'.length);
if(tagId=='digg'){
if(!item.remark.digg){
ItemList.switchDiggItem(itemIndex);
}
}else if(tagId=='all'||tagId=='untag'){
if(!item.remark.favorited){
ItemList.switchFavoriteItem(itemIndex);
}
}else{
var tagEl=$(XGDragDrop.lastEnterId);
var pos=tagEl.innerHTML.lastIndexOf('(');
var tag=tagEl.innerHTML.substr(0,pos);
var num=parseInt(tagEl.innerHTML.substr(pos+1,tagEl.innerHTML.length-1));
ItemList.addDiggNum(itemIndex,"favorited");
ItemRemark.tagItem(item,[tag],function(){
if(Actor.Account.bookmark_sync)
WaitControl.SaveEndMsg("已同时收藏到Del.icio.us！");
},null,true);
tagEl.innerHTML=tag+'('+(num+1)+')';

if(item.remark.favorited==null||item.remark.favorited==false){
item.remark.favorited=true;
ItemList.switchFavoriteItemHtml(itemIndex);
}
}
}
},
sendDiggMessage:function(actorId,item){
WaitControl.SaveStartWait('发送推荐....');
var p={"friendIdList":actorId,
"feedItemId":item.feedItemId,
"refId":item.refId,
"title":item.title};
var params='method=Message.recommendItem&params='+JSON.serialize(p);

AsyncCall(interfaceUrl,params,function(ret)
{
var res=eval("("+ret.responseText+")");
if(res.status)
{
WaitControl.SaveEndWait('推荐成功');
}
else
{
WaitControl.SaveEndWait(res.error==''?'推荐失败':res.error);
}
});
}
};
window.ReadingTrend={
FeedTrendTypeEnum:{
"newItemNum":0,
"totalReadNum":1,
"goodNum":2,
"readPercent":3,
"lastUpdateTime":4
},
FeedTrendNum:20,
FeedTrendDesc:true,
FeedTrendType:0,
curFeedId:0,
init:function(){
this.FeedTrendNum=20;
this.FeedTrendDesc=true;
this.FeedTrendType=0;
},
changeViewMode:function(num,type,desc){
num=num||this.FeedTrendNum;
type=(typeof type=="undefined")?this.FeedTrendType:this.FeedTrendTypeEnum[type];
desc=(typeof desc=="undefined")?this.FeedTrendDesc:desc;
if(num==this.FeedTrendNum&&type==this.FeedTrendType&&desc==this.FeedTrendDesc)return;
PageMgr.goFeedTrend(num,type,desc);

var array=[20,50,100];
array.each(function(n){
var $e=$('feedTrendNum'+n+'Link');
if(n==num){
$e.className="";
$e.style.cursor="default";
}else{
$e.className="link_button";
$e.style.cursor="pointer";
}
});

this.FeedTrendType=type;
this.FeedTrendDesc=desc;
this.FeedTrendNum=num;
},
changeOrderType:function(type,sender){
var num=this.FeedTrendNum;
var desc=true;
if(sender.className=='feedTrend_Asc'){
desc=false;
}
this.changeViewMode(num,type,desc);
},
changeOrderType2:function(type){
var num=this.FeedTrendNum;
var desc=true;
this.changeViewMode(num,type,desc);
},
deleteFeed:function(feedId){
var feed=ChannelList.feedMap[feedId];
if(!confirm("你确定要删除频道“"+feed.title+"”吗？"))return;
$("feedtrend_"+feedId).parentNode.removeChild($("feedtrend_"+feedId));
ChannelList.removeFeed(feedId);
ChannelList.ShowList();
},
setLevel:function(level,desc){
var feedId=this.curFeedId;
$('feedtrend_menu').style.display="none";
var $e=$('feed_level_span_'+feedId);
var curLevel=$e.getAttribute("level");
if(curLevel==level)return;

$e.innerHTML=desc;
$e.setAttribute("level",level);

ChannelList.modifyFeedsShowLevel([feedId],level);
ChannelList.ShowList();
},
showLevelMenu:function(menu,feedId,event){
menu.style.display="";
var pos=Dom.getAutoPos(menu,[event.clientX,event.clientY]);
if(Dom.IsOpera)pos[1]+=$("ft_setting_body").scrollTop;
menu.style.left=pos[0]+"px";
menu.style.top=pos[1]+"px";
this.curFeedId=feedId;

document.onmousedown=function(event){
if(FeedManage.IsMouseOut(event,menu))
menu.style.display="none";
}
}
};
var TabStrip=function(param){
this.header=$(param.headerId);
this.form=$(param.formId);
this.tabs=[];
this.formFields=param.formFields;
this.selectedColor=param.selectedColor;
this.onActive=param.onActive;

this.updateData=param.updateData;
this.bindData=param.bindData;
this.selectedTab=null;
};
TabStrip.getInstance=function(param){
if(!$(param.headerId)||!$(param.formId))return null;
if(typeof param.onActive=='undefinded')param.onActive=function(){};
if(typeof param.updateData=='undefined')param.updateData=function(){
var data={};
for(var i=0;i<this.formFields.length;i++){
var name=this.formFields[i];
if(typeof this.form[name].length=="undefined"&&this.nodeName!="SELECT"){
data[name]=this.form[name].value;
}else{
var s=[];
for(var j=0;j<this.form[name].length;j++){
if(this.form[name][j].checked)
s.push(this.form[name][j].value);
}
data[name]=s;
break;
}
}
return data;
};
if(typeof param.bindData=='undefined')param.bindData=function(data){
if(typeof data=="undefined"){
this.form.reset();
return;
};
for(var i=0;i<this.formFields.length;i++){
var name=this.formFields[i];
if(typeof this.form[name].length=="undefined"&&this.nodeName!="SELECT"){
this.form[name].value=data[name];
}else{
var s=data[name];
for(var j=0;j<this.form[name].length;j++){
this.form[name][j].checked=s.indexOf(this.form[name][j].value)>-1;
}
}
}
}
return new TabStrip(param);
};
TabStrip.prototype.addTab=function(obj){
var li=document.createElement("li");
li.tabId=obj.tabId;
if(typeof obj.active=='undefined')li.active=true;
else li.active=obj.active;
li.innerHTML=obj.text;
li.style.backgroundImage="url("+(obj.normalImg||'')+")";
var self=this;
li.onclick=function(){
if(self.selectedTab!=null){
self.selectedTab.data=self.updateData();
self.selectedTab.style.backgroundColor='white';
}
this.style.backgroundColor=self.selectedColor;
self.selectedTab=this;

self.onActive(this.active);
if(typeof obj.onClick=="function")obj.onClick.call(this);
self.bindData(this.data);
};
li.bind=function(){
this.style.backgroundImage="url("+obj.bindBgImg+")";
self.onActive(this.active);
};
li.unset=function(){
this.style.backgroundImage="url("+obj.normalBgImg+")";
self.onActive(this.active);
};
li.style.backgroundImage="url("+obj.normalBgImg+")";

this.header.appendChild(li);
if(obj.setDefault){
this.selectedTab=li;
li.style.backgroundColor=this.selectedColor;
}
this.tabs.push(li);
};
var interfaceUrl='/rssreader.php';
var ReaderMover={
init:function(){
this.tabStrip=TabStrip.getInstance({
headerId:'tabStripHeader',
formId:'formReaderMover',
formFields:['username','password','services'],
selectedColor:'#deefff',
onActive:function(active){
$('btnBeginMove').disabled=!active;
$('btnCancelMove').disabled=active;
}
});
this.tabStrip.header.innerHTML='';
this.tabStrip.addTab({
tabId:0,
text:"Google Reader",
normalBgImg:'/img/favico/googlereader.gif',
bindBgImg:'/img/favico/googlereader_gray.gif',
setDefault:true,
onClick:function(){
$('moreServicesDiv').style.display='';
$('tbNotValidHint').style.display='none';
}
});
this.tabStrip.addTab({
tabId:1,
text:"Bloglines",
normalBgImg:'/img/favico/bloglines.gif',
bindBgImg:'/img/favico/bloglines_gray.gif',
onClick:function(){
$('moreServicesDiv').style.display='none';
$('tbNotValidHint').style.display='';
}
});
this.tabStrip.addTab({
tabId:2,
text:"NewsGator",
normalBgImg:'/img/favico/newsgator.gif',
bindBgImg:'/img/favico/newsgator_gray.gif',
onClick:function(){
$('moreServicesDiv').style.display='none';
$('tbNotValidHint').style.display='';
}
});

AsyncCall(interfaceUrl,"method=Actor.getUnfinishMover",this.onGetSuccess);
},
tryMoveReader:function(){
var readerId=this.tabStrip.selectedTab.tabId;
var form=this.tabStrip.form;
if(!(form.username.value)||!(username=form.username.value.trim())){
alert("帐号不能为空！");
form.username.focus();
return;
}
if(!form.password.value||!(password=form.password.value.trim())){
alert("密码不能为空");
form.password.focus();
return;
}
var len=form.services.length;
var s=[];
for(var i=0;i<len;i++){
if(form.services[i].checked)s.push(form.services[i].value);
}
if(s.length==0){
alert("没有选择任何搬家内容");
return;
}
var p={readerId:readerId,username:username,password:password,services:s.join(',')};
AsyncCall(interfaceUrl+"?method=Actor.moveReader","params="+JSON.serialize(p),this.onMoveSuccess);
},
cancelMoveReader:function(){
if(!confirm("你确认要取消这次搬家吗？"))return;
var p={readerId:this.tabStrip.selectedTab.tabId};
AsyncCall(interfaceUrl+"?method=Actor.cancelMoveReader","params="+JSON.serialize(p),this.onCancelSuccess);
},
onMoveSuccess:function(res){
var ret=eval('('+res.responseText+')');
if(ret.status==0){
alert(ret.error);
}else{
alert("你的搬家任务已经提交给鲜果，我们会在大约15分钟内处理完毕您的请求。\n搬家完毕时我们会发站内邮件进行通知，所以现在你可以放心地做别的事情了。");
var ts=ReaderMover.tabStrip;
ts.selectedTab.active=false;
ts.selectedTab.bind();
}
},
onCancelSuccess:function(res){
var ret=eval('('+res.responseText+')');
if(ret.status==0){
alert("取消失败："+ret.error);
}else{
alert("取消搬家成功！");
var ts=ReaderMover.tabStrip;
ts.selectedTab.active=true;
ts.selectedTab.unset();
ts.form.reset();
}
},
onGetSuccess:function(res){
var ret=eval('('+res.responseText+')');
if(ret.status=='0'){
alert(ret.error);
}else{
var ts=ReaderMover.tabStrip;
for(var i=0;i<ts.tabs.length;i++){
var readerId=ts.tabs[i].tabId;
if(typeof ret.data[readerId]!="undefined"){
ts.tabs[i].onclick();
ts.tabs[i].active=false;
ts.bindData(ret.data[ts.tabs[i].tabId]);
ts.onActive();
}
}
}
}
};