(function(){var lang=YAHOO.lang,util=YAHOO.util,Ev=util.Event;
util.DataSourceBase=function(oLiveData,oConfigs){if(oLiveData===null||oLiveData===undefined){return
}this.liveData=oLiveData;
this._oQueue={interval:null,conn:null,requests:[]};
this.responseSchema={};
if(oConfigs&&(oConfigs.constructor==Object)){for(var sConfig in oConfigs){if(sConfig){this[sConfig]=oConfigs[sConfig]
}}}var maxCacheEntries=this.maxCacheEntries;
if(!lang.isNumber(maxCacheEntries)||(maxCacheEntries<0)){maxCacheEntries=0
}this._aIntervals=[];
this.createEvent("cacheRequestEvent");
this.createEvent("cacheResponseEvent");
this.createEvent("requestEvent");
this.createEvent("responseEvent");
this.createEvent("responseParseEvent");
this.createEvent("responseCacheEvent");
this.createEvent("dataErrorEvent");
this.createEvent("cacheFlushEvent");
var DS=util.DataSourceBase;
this._sName="DataSource instance"+DS._nIndex;
DS._nIndex++
};
var DS=util.DataSourceBase;
lang.augmentObject(DS,{TYPE_UNKNOWN:-1,TYPE_JSARRAY:0,TYPE_JSFUNCTION:1,TYPE_XHR:2,TYPE_JSON:3,TYPE_XML:4,TYPE_TEXT:5,TYPE_HTMLTABLE:6,TYPE_SCRIPTNODE:7,TYPE_LOCAL:8,ERROR_DATAINVALID:"Invalid data",ERROR_DATANULL:"Null data",_nIndex:0,_nTransactionId:0,issueCallback:function(callback,params,error,scope){if(lang.isFunction(callback)){callback.apply(scope,params)
}else{if(lang.isObject(callback)){scope=callback.scope||scope||window;
var callbackFunc=callback.success;
if(error){callbackFunc=callback.failure
}if(callbackFunc){callbackFunc.apply(scope,params.concat([callback.argument]))
}}}},parseString:function(oData){if(!lang.isValue(oData)){return null
}var string=oData+"";
if(lang.isString(string)){return string
}else{return null
}},parseNumber:function(oData){var number=oData*1;
if(lang.isNumber(number)){return number
}else{return null
}},convertNumber:function(oData){return DS.parseNumber(oData)
},parseDate:function(oData){var date=null;
if(!(oData instanceof Date)){date=new Date(oData)
}else{return oData
}if(date instanceof Date){return date
}else{return null
}},convertDate:function(oData){return DS.parseDate(oData)
}});
DS.Parser={string:DS.parseString,number:DS.parseNumber,date:DS.parseDate};
DS.prototype={_sName:null,_aCache:null,_oQueue:null,_aIntervals:null,maxCacheEntries:0,liveData:null,dataType:DS.TYPE_UNKNOWN,responseType:DS.TYPE_UNKNOWN,responseSchema:null,toString:function(){return this._sName
},getCachedResponse:function(oRequest,oCallback,oCaller){var aCache=this._aCache;
if(this.maxCacheEntries>0){if(!aCache){this._aCache=[]
}else{var nCacheLength=aCache.length;
if(nCacheLength>0){var oResponse=null;
this.fireEvent("cacheRequestEvent",{request:oRequest,callback:oCallback,caller:oCaller});
for(var i=nCacheLength-1;
i>=0;
i--){var oCacheElem=aCache[i];
if(this.isCacheHit(oRequest,oCacheElem.request)){oResponse=oCacheElem.response;
this.fireEvent("cacheResponseEvent",{request:oRequest,response:oResponse,callback:oCallback,caller:oCaller});
if(i<nCacheLength-1){aCache.splice(i,1);
this.addToCache(oRequest,oResponse)
}oResponse.cached=true;
break
}}return oResponse
}}}else{if(aCache){this._aCache=null
}}return null
},isCacheHit:function(oRequest,oCachedRequest){return(oRequest===oCachedRequest)
},addToCache:function(oRequest,oResponse){var aCache=this._aCache;
if(!aCache){return
}while(aCache.length>=this.maxCacheEntries){aCache.shift()
}var oCacheElem={request:oRequest,response:oResponse};
aCache[aCache.length]=oCacheElem;
this.fireEvent("responseCacheEvent",{request:oRequest,response:oResponse})
},flushCache:function(){if(this._aCache){this._aCache=[];
this.fireEvent("cacheFlushEvent")
}},setInterval:function(nMsec,oRequest,oCallback,oCaller){if(lang.isNumber(nMsec)&&(nMsec>=0)){var oSelf=this;
var nId=setInterval(function(){oSelf.makeConnection(oRequest,oCallback,oCaller)
},nMsec);
this._aIntervals.push(nId);
return nId
}else{}},clearInterval:function(nId){var tracker=this._aIntervals||[];
for(var i=tracker.length-1;
i>-1;
i--){if(tracker[i]===nId){tracker.splice(i,1);
clearInterval(nId)
}}},clearAllIntervals:function(){var tracker=this._aIntervals||[];
for(var i=tracker.length-1;
i>-1;
i--){clearInterval(tracker[i])
}tracker=[]
},sendRequest:function(oRequest,oCallback,oCaller){var oCachedResponse=this.getCachedResponse(oRequest,oCallback,oCaller);
if(oCachedResponse){DS.issueCallback(oCallback,[oRequest,oCachedResponse],false,oCaller);
return null
}return this.makeConnection(oRequest,oCallback,oCaller)
},makeConnection:function(oRequest,oCallback,oCaller){var tId=DS._nTransactionId++;
this.fireEvent("requestEvent",{tId:tId,request:oRequest,callback:oCallback,caller:oCaller});
var oRawResponse=this.liveData;
this.handleResponse(oRequest,oRawResponse,oCallback,oCaller,tId);
return tId
},handleResponse:function(oRequest,oRawResponse,oCallback,oCaller,tId){this.fireEvent("responseEvent",{tId:tId,request:oRequest,response:oRawResponse,callback:oCallback,caller:oCaller});
var xhr=(this.dataType==DS.TYPE_XHR)?true:false;
var oParsedResponse=null;
var oFullResponse=oRawResponse;
if(this.responseType===DS.TYPE_UNKNOWN){var ctype=(oRawResponse&&oRawResponse.getResponseHeader)?oRawResponse.getResponseHeader["Content-Type"]:null;
if(ctype){if(ctype.indexOf("text/xml")>-1){this.responseType=DS.TYPE_XML
}else{if(ctype.indexOf("application/json")>-1){this.responseType=DS.TYPE_JSON
}else{if(ctype.indexOf("text/plain")>-1){this.responseType=DS.TYPE_TEXT
}}}}else{if(YAHOO.lang.isArray(oRawResponse)){this.responseType=DS.TYPE_JSARRAY
}else{if(oRawResponse&&oRawResponse.nodeType&&oRawResponse.nodeType==9){this.responseType=DS.TYPE_XML
}else{if(oRawResponse&&oRawResponse.nodeName&&(oRawResponse.nodeName.toLowerCase()=="table")){this.responseType=DS.TYPE_HTMLTABLE
}else{if(YAHOO.lang.isObject(oRawResponse)){this.responseType=DS.TYPE_JSON
}else{if(YAHOO.lang.isString(oRawResponse)){this.responseType=DS.TYPE_TEXT
}}}}}}}switch(this.responseType){case DS.TYPE_JSARRAY:if(xhr&&oRawResponse&&oRawResponse.responseText){oFullResponse=oRawResponse.responseText
}oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);
oParsedResponse=this.parseArrayData(oRequest,oFullResponse);
break;
case DS.TYPE_JSON:if(xhr&&oRawResponse&&oRawResponse.responseText){oFullResponse=oRawResponse.responseText
}try{if(lang.isString(oFullResponse)){if(lang.JSON){oFullResponse=lang.JSON.parse(oFullResponse)
}else{if(window.JSON&&JSON.parse){oFullResponse=JSON.parse(oFullResponse)
}else{if(oFullResponse.parseJSON){oFullResponse=oFullResponse.parseJSON()
}else{while(oFullResponse.length>0&&(oFullResponse.charAt(0)!="{")&&(oFullResponse.charAt(0)!="[")){oFullResponse=oFullResponse.substring(1,oFullResponse.length)
}if(oFullResponse.length>0){var objEnd=Math.max(oFullResponse.lastIndexOf("]"),oFullResponse.lastIndexOf("}"));
oFullResponse=oFullResponse.substring(0,objEnd+1);
oFullResponse=eval("("+oFullResponse+")")
}}}}}}catch(e){}oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);
oParsedResponse=this.parseJSONData(oRequest,oFullResponse);
break;
case DS.TYPE_HTMLTABLE:if(xhr&&oRawResponse.responseText){oFullResponse=oRawResponse.responseText
}oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);
oParsedResponse=this.parseHTMLTableData(oRequest,oFullResponse);
break;
case DS.TYPE_XML:if(xhr&&oRawResponse.responseXML){oFullResponse=oRawResponse.responseXML
}oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);
oParsedResponse=this.parseXMLData(oRequest,oFullResponse);
break;
case DS.TYPE_TEXT:if(xhr&&lang.isString(oRawResponse.responseText)){oFullResponse=oRawResponse.responseText
}oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);
oParsedResponse=this.parseTextData(oRequest,oFullResponse);
break;
default:oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);
oParsedResponse=this.parseData(oRequest,oFullResponse);
break
}oParsedResponse=oParsedResponse||{};
if(!oParsedResponse.results){oParsedResponse.results=[]
}if(!oParsedResponse.meta){oParsedResponse.meta={}
}if(oParsedResponse&&!oParsedResponse.error){oParsedResponse=this.doBeforeCallback(oRequest,oFullResponse,oParsedResponse,oCallback);
this.fireEvent("responseParseEvent",{request:oRequest,response:oParsedResponse,callback:oCallback,caller:oCaller});
this.addToCache(oRequest,oParsedResponse)
}else{oParsedResponse.error=true;
this.fireEvent("dataErrorEvent",{request:oRequest,response:oRawResponse,callback:oCallback,caller:oCaller,message:DS.ERROR_DATANULL})
}oParsedResponse.tId=tId;
DS.issueCallback(oCallback,[oRequest,oParsedResponse],oParsedResponse.error,oCaller)
},doBeforeParseData:function(oRequest,oFullResponse,oCallback){return oFullResponse
},doBeforeCallback:function(oRequest,oFullResponse,oParsedResponse,oCallback){return oParsedResponse
},parseData:function(oRequest,oFullResponse){if(lang.isValue(oFullResponse)){var oParsedResponse={results:oFullResponse,meta:{}};
return oParsedResponse
}return null
},parseArrayData:function(oRequest,oFullResponse){if(lang.isArray(oFullResponse)){var results=[],i,j,rec,field,data;
if(lang.isArray(this.responseSchema.fields)){var fields=this.responseSchema.fields;
for(i=fields.length-1;
i>=0;
--i){if(typeof fields[i]!=="object"){fields[i]={key:fields[i]}
}}var parsers={},p;
for(i=fields.length-1;
i>=0;
--i){p=(typeof fields[i].parser==="function"?fields[i].parser:DS.Parser[fields[i].parser+""])||fields[i].converter;
if(p){parsers[fields[i].key]=p
}}var arrType=lang.isArray(oFullResponse[0]);
for(i=oFullResponse.length-1;
i>-1;
i--){var oResult={};
rec=oFullResponse[i];
if(typeof rec==="object"){for(j=fields.length-1;
j>-1;
j--){field=fields[j];
data=arrType?rec[j]:rec[field.key];
if(parsers[field.key]){data=parsers[field.key].call(this,data)
}if(data===undefined){data=null
}oResult[field.key]=data
}}else{if(lang.isString(rec)){for(j=fields.length-1;
j>-1;
j--){field=fields[j];
data=rec;
if(parsers[field.key]){data=parsers[field.key].call(this,data)
}if(data===undefined){data=null
}oResult[field.key]=data
}}}results[i]=oResult
}}else{results=oFullResponse
}var oParsedResponse={results:results};
return oParsedResponse
}return null
},parseTextData:function(oRequest,oFullResponse){if(lang.isString(oFullResponse)){if(lang.isString(this.responseSchema.recordDelim)&&lang.isString(this.responseSchema.fieldDelim)){var oParsedResponse={results:[]};
var recDelim=this.responseSchema.recordDelim;
var fieldDelim=this.responseSchema.fieldDelim;
if(oFullResponse.length>0){var newLength=oFullResponse.length-recDelim.length;
if(oFullResponse.substr(newLength)==recDelim){oFullResponse=oFullResponse.substr(0,newLength)
}if(oFullResponse.length>0){var recordsarray=oFullResponse.split(recDelim);
for(var i=0,len=recordsarray.length,recIdx=0;
i<len;
++i){var bError=false,sRecord=recordsarray[i];
if(lang.isString(sRecord)&&(sRecord.length>0)){var fielddataarray=recordsarray[i].split(fieldDelim);
var oResult={};
if(lang.isArray(this.responseSchema.fields)){var fields=this.responseSchema.fields;
for(var j=fields.length-1;
j>-1;
j--){try{var data=fielddataarray[j];
if(lang.isString(data)){if(data.charAt(0)=='"'){data=data.substr(1)
}if(data.charAt(data.length-1)=='"'){data=data.substr(0,data.length-1)
}var field=fields[j];
var key=(lang.isValue(field.key))?field.key:field;
if(!field.parser&&field.converter){field.parser=field.converter
}var parser=(typeof field.parser==="function")?field.parser:DS.Parser[field.parser+""];
if(parser){data=parser.call(this,data)
}if(data===undefined){data=null
}oResult[key]=data
}else{bError=true
}}catch(e){bError=true
}}}else{oResult=fielddataarray
}if(!bError){oParsedResponse.results[recIdx++]=oResult
}}}}}return oParsedResponse
}}return null
},parseXMLResult:function(result){var oResult={},schema=this.responseSchema;
try{for(var m=schema.fields.length-1;
m>=0;
m--){var field=schema.fields[m];
var key=(lang.isValue(field.key))?field.key:field;
var data=null;
var xmlAttr=result.attributes.getNamedItem(key);
if(xmlAttr){data=xmlAttr.value
}else{var xmlNode=result.getElementsByTagName(key);
if(xmlNode&&xmlNode.item(0)&&xmlNode.item(0)){data=xmlNode.item(0).firstChild.nodeValue;
var item=xmlNode.item(0);
data=(item.text)?item.text:(item.textContent)?item.textContent:null;
if(!data){var datapieces=[];
for(var j=0,len=item.childNodes.length;
j<len;
j++){if(item.childNodes[j].nodeValue){datapieces[datapieces.length]=item.childNodes[j].nodeValue
}}if(datapieces.length>0){data=datapieces.join("")
}}}}if(data===null){data=""
}if(!field.parser&&field.converter){field.parser=field.converter
}var parser=(typeof field.parser==="function")?field.parser:DS.Parser[field.parser+""];
if(parser){data=parser.call(this,data)
}if(data===undefined){data=null
}oResult[key]=data
}}catch(e){}return oResult
},parseXMLData:function(oRequest,oFullResponse){var bError=false,schema=this.responseSchema,oParsedResponse={meta:{}},xmlList=null,metaNode=schema.metaNode,metaLocators=schema.metaFields||{},i,k,loc,v;
try{xmlList=(schema.resultNode)?oFullResponse.getElementsByTagName(schema.resultNode):null;
metaNode=metaNode?oFullResponse.getElementsByTagName(metaNode)[0]:oFullResponse;
if(metaNode){for(k in metaLocators){if(lang.hasOwnProperty(metaLocators,k)){loc=metaLocators[k];
v=metaNode.getElementsByTagName(loc)[0];
if(v){v=v.firstChild.nodeValue
}else{v=metaNode.attributes.getNamedItem(loc);
if(v){v=v.value
}}if(lang.isValue(v)){oParsedResponse.meta[k]=v
}}}}}catch(e){}if(!xmlList||!lang.isArray(schema.fields)){bError=true
}else{oParsedResponse.results=[];
for(i=xmlList.length-1;
i>=0;
--i){var oResult=this.parseXMLResult(xmlList.item(i));
oParsedResponse.results[i]=oResult
}}if(bError){oParsedResponse.error=true
}else{}return oParsedResponse
},parseJSONData:function(oRequest,oFullResponse){var oParsedResponse={results:[],meta:{}};
if(lang.isObject(oFullResponse)&&this.responseSchema.resultsList){var schema=this.responseSchema,fields=schema.fields,resultsList=oFullResponse,results=[],metaFields=schema.metaFields||{},fieldParsers=[],fieldPaths=[],simpleFields=[],bError=false,i,len,j,v,key,parser,path;
var buildPath=function(needle){var path=null,keys=[],i=0;
if(needle){needle=needle.replace(/\[(['"])(.*?)\1\]/g,function(x,$1,$2){keys[i]=$2;
return".@"+(i++)
}).replace(/\[(\d+)\]/g,function(x,$1){keys[i]=parseInt($1,10)|0;
return".@"+(i++)
}).replace(/^\./,"");
if(!/[^\w\.\$@]/.test(needle)){path=needle.split(".");
for(i=path.length-1;
i>=0;
--i){if(path[i].charAt(0)==="@"){path[i]=keys[parseInt(path[i].substr(1),10)]
}}}else{}}return path
};
var walkPath=function(path,origin){var v=origin,i=0,len=path.length;
for(;
i<len&&v;
++i){v=v[path[i]]
}return v
};
path=buildPath(schema.resultsList);
if(path){resultsList=walkPath(path,oFullResponse);
if(resultsList===undefined){bError=true
}}else{bError=true
}if(!resultsList){resultsList=[]
}if(!lang.isArray(resultsList)){resultsList=[resultsList]
}if(!bError){if(schema.fields){var field;
for(i=0,len=fields.length;
i<len;
i++){field=fields[i];
key=field.key||field;
parser=((typeof field.parser==="function")?field.parser:DS.Parser[field.parser+""])||field.converter;
path=buildPath(key);
if(parser){fieldParsers[fieldParsers.length]={key:key,parser:parser}
}if(path){if(path.length>1){fieldPaths[fieldPaths.length]={key:key,path:path}
}else{simpleFields[simpleFields.length]={key:key,path:path[0]}
}}else{}}for(i=resultsList.length-1;
i>=0;
--i){var r=resultsList[i],rec={};
for(j=simpleFields.length-1;
j>=0;
--j){rec[simpleFields[j].key]=(r[simpleFields[j].path]!==undefined)?r[simpleFields[j].path]:r[j]
}for(j=fieldPaths.length-1;
j>=0;
--j){rec[fieldPaths[j].key]=walkPath(fieldPaths[j].path,r)
}for(j=fieldParsers.length-1;
j>=0;
--j){var p=fieldParsers[j].key;
rec[p]=fieldParsers[j].parser(rec[p]);
if(rec[p]===undefined){rec[p]=null
}}results[i]=rec
}}else{results=resultsList
}for(key in metaFields){if(lang.hasOwnProperty(metaFields,key)){path=buildPath(metaFields[key]);
if(path){v=walkPath(path,oFullResponse);
oParsedResponse.meta[key]=v
}}}}else{oParsedResponse.error=true
}oParsedResponse.results=results
}else{oParsedResponse.error=true
}return oParsedResponse
},parseHTMLTableData:function(oRequest,oFullResponse){var bError=false;
var elTable=oFullResponse;
var fields=this.responseSchema.fields;
var oParsedResponse={results:[]};
for(var i=0;
i<elTable.tBodies.length;
i++){var elTbody=elTable.tBodies[i];
for(var j=elTbody.rows.length-1;
j>-1;
j--){var elRow=elTbody.rows[j];
var oResult={};
for(var k=fields.length-1;
k>-1;
k--){var field=fields[k];
var key=(lang.isValue(field.key))?field.key:field;
var data=elRow.cells[k].innerHTML;
if(!field.parser&&field.converter){field.parser=field.converter
}var parser=(typeof field.parser==="function")?field.parser:DS.Parser[field.parser+""];
if(parser){data=parser.call(this,data)
}if(data===undefined){data=null
}oResult[key]=data
}oParsedResponse.results[j]=oResult
}}if(bError){oParsedResponse.error=true
}else{}return oParsedResponse
}};
lang.augmentProto(DS,util.EventProvider);
util.LocalDataSource=function(oLiveData,oConfigs){this.dataType=DS.TYPE_LOCAL;
if(oLiveData){if(YAHOO.lang.isArray(oLiveData)){this.responseType=DS.TYPE_JSARRAY
}else{if(oLiveData.nodeType&&oLiveData.nodeType==9){this.responseType=DS.TYPE_XML
}else{if(oLiveData.nodeName&&(oLiveData.nodeName.toLowerCase()=="table")){this.responseType=DS.TYPE_HTMLTABLE;
oLiveData=oLiveData.cloneNode(true)
}else{if(YAHOO.lang.isString(oLiveData)){this.responseType=DS.TYPE_TEXT
}else{if(YAHOO.lang.isObject(oLiveData)){this.responseType=DS.TYPE_JSON
}}}}}}else{oLiveData=[];
this.responseType=DS.TYPE_JSARRAY
}this.constructor.superclass.constructor.call(this,oLiveData,oConfigs)
};
lang.extend(util.LocalDataSource,DS);
lang.augmentObject(util.LocalDataSource,DS);
util.FunctionDataSource=function(oLiveData,oConfigs){this.dataType=DS.TYPE_JSFUNCTION;
oLiveData=oLiveData||function(){};
this.constructor.superclass.constructor.call(this,oLiveData,oConfigs)
};
lang.extend(util.FunctionDataSource,DS,{makeConnection:function(oRequest,oCallback,oCaller){var tId=DS._nTransactionId++;
this.fireEvent("requestEvent",{tId:tId,request:oRequest,callback:oCallback,caller:oCaller});
var oRawResponse=this.liveData(oRequest);
if(this.responseType===DS.TYPE_UNKNOWN){if(YAHOO.lang.isArray(oRawResponse)){this.responseType=DS.TYPE_JSARRAY
}else{if(oRawResponse&&oRawResponse.nodeType&&oRawResponse.nodeType==9){this.responseType=DS.TYPE_XML
}else{if(oRawResponse&&oRawResponse.nodeName&&(oRawResponse.nodeName.toLowerCase()=="table")){this.responseType=DS.TYPE_HTMLTABLE
}else{if(YAHOO.lang.isObject(oRawResponse)){this.responseType=DS.TYPE_JSON
}else{if(YAHOO.lang.isString(oRawResponse)){this.responseType=DS.TYPE_TEXT
}}}}}}this.handleResponse(oRequest,oRawResponse,oCallback,oCaller,tId);
return tId
}});
lang.augmentObject(util.FunctionDataSource,DS);
util.ScriptNodeDataSource=function(oLiveData,oConfigs){this.dataType=DS.TYPE_SCRIPTNODE;
oLiveData=oLiveData||"";
this.constructor.superclass.constructor.call(this,oLiveData,oConfigs)
};
lang.extend(util.ScriptNodeDataSource,DS,{getUtility:util.Get,asyncMode:"allowAll",scriptCallbackParam:"callback",generateRequestCallback:function(id){return"&"+this.scriptCallbackParam+"=YAHOO.util.ScriptNodeDataSource.callbacks["+id+"]"
},makeConnection:function(oRequest,oCallback,oCaller){var tId=DS._nTransactionId++;
this.fireEvent("requestEvent",{tId:tId,request:oRequest,callback:oCallback,caller:oCaller});
if(util.ScriptNodeDataSource._nPending===0){util.ScriptNodeDataSource.callbacks=[];
util.ScriptNodeDataSource._nId=0
}var id=util.ScriptNodeDataSource._nId;
util.ScriptNodeDataSource._nId++;
var oSelf=this;
util.ScriptNodeDataSource.callbacks[id]=function(oRawResponse){if((oSelf.asyncMode!=="ignoreStaleResponses")||(id===util.ScriptNodeDataSource.callbacks.length-1)){if(oSelf.responseType===DS.TYPE_UNKNOWN){if(YAHOO.lang.isArray(oRawResponse)){oSelf.responseType=DS.TYPE_JSARRAY
}else{if(oRawResponse.nodeType&&oRawResponse.nodeType==9){oSelf.responseType=DS.TYPE_XML
}else{if(oRawResponse.nodeName&&(oRawResponse.nodeName.toLowerCase()=="table")){oSelf.responseType=DS.TYPE_HTMLTABLE
}else{if(YAHOO.lang.isObject(oRawResponse)){oSelf.responseType=DS.TYPE_JSON
}else{if(YAHOO.lang.isString(oRawResponse)){oSelf.responseType=DS.TYPE_TEXT
}}}}}}oSelf.handleResponse(oRequest,oRawResponse,oCallback,oCaller,tId)
}else{}delete util.ScriptNodeDataSource.callbacks[id]
};
util.ScriptNodeDataSource._nPending++;
var sUri=this.liveData+oRequest+this.generateRequestCallback(id);
this.getUtility.script(sUri,{autopurge:true,onsuccess:util.ScriptNodeDataSource._bumpPendingDown,onfail:util.ScriptNodeDataSource._bumpPendingDown});
return tId
}});
lang.augmentObject(util.ScriptNodeDataSource,DS);
lang.augmentObject(util.ScriptNodeDataSource,{_nId:0,_nPending:0,callbacks:[]});
util.XHRDataSource=function(oLiveData,oConfigs){this.dataType=DS.TYPE_XHR;
this.connMgr=this.connMgr||util.Connect;
oLiveData=oLiveData||"";
this.constructor.superclass.constructor.call(this,oLiveData,oConfigs)
};
lang.extend(util.XHRDataSource,DS,{connMgr:null,connXhrMode:"allowAll",connMethodPost:false,connTimeout:0,makeConnection:function(oRequest,oCallback,oCaller){var oRawResponse=null;
var tId=DS._nTransactionId++;
this.fireEvent("requestEvent",{tId:tId,request:oRequest,callback:oCallback,caller:oCaller});
var oSelf=this;
var oConnMgr=this.connMgr;
var oQueue=this._oQueue;
var _xhrSuccess=function(oResponse){if(oResponse&&(this.asyncMode=="ignoreStaleResponses")&&(oResponse.tId!=oQueue.conn.tId)){return null
}else{if(!oResponse){this.fireEvent("dataErrorEvent",{request:oRequest,callback:oCallback,caller:oCaller,message:DS.ERROR_DATANULL});
DS.issueCallback(oCallback,[oRequest,{error:true}],true,oCaller);
return null
}else{if(this.responseType===DS.TYPE_UNKNOWN){var ctype=(oResponse.getResponseHeader)?oResponse.getResponseHeader["Content-Type"]:null;
if(ctype){if(ctype.indexOf("text/xml")>-1){this.responseType=DS.TYPE_XML
}else{if(ctype.indexOf("application/json")>-1){this.responseType=DS.TYPE_JSON
}else{if(ctype.indexOf("text/plain")>-1){this.responseType=DS.TYPE_TEXT
}}}}}this.handleResponse(oRequest,oResponse,oCallback,oCaller,tId)
}}};
var _xhrFailure=function(oResponse){this.fireEvent("dataErrorEvent",{request:oRequest,callback:oCallback,caller:oCaller,message:DS.ERROR_DATAINVALID});
if(lang.isString(this.liveData)&&lang.isString(oRequest)&&(this.liveData.lastIndexOf("?")!==this.liveData.length-1)&&(oRequest.indexOf("?")!==0)){}oResponse=oResponse||{};
oResponse.error=true;
DS.issueCallback(oCallback,[oRequest,oResponse],true,oCaller);
return null
};
var _xhrCallback={success:_xhrSuccess,failure:_xhrFailure,scope:this};
if(lang.isNumber(this.connTimeout)){_xhrCallback.timeout=this.connTimeout
}if(this.connXhrMode=="cancelStaleRequests"){if(oQueue.conn){if(oConnMgr.abort){oConnMgr.abort(oQueue.conn);
oQueue.conn=null
}else{}}}if(oConnMgr&&oConnMgr.asyncRequest){var sLiveData=this.liveData;
var isPost=this.connMethodPost;
var sMethod=(isPost)?"POST":"GET";
var sUri=(isPost||!lang.isValue(oRequest))?sLiveData:sLiveData+oRequest;
var sRequest=(isPost)?oRequest:null;
if(this.connXhrMode!="queueRequests"){oQueue.conn=oConnMgr.asyncRequest(sMethod,sUri,_xhrCallback,sRequest)
}else{if(oQueue.conn){var allRequests=oQueue.requests;
allRequests.push({request:oRequest,callback:_xhrCallback});
if(!oQueue.interval){oQueue.interval=setInterval(function(){if(oConnMgr.isCallInProgress(oQueue.conn)){return
}else{if(allRequests.length>0){sUri=(isPost||!lang.isValue(allRequests[0].request))?sLiveData:sLiveData+allRequests[0].request;
sRequest=(isPost)?allRequests[0].request:null;
oQueue.conn=oConnMgr.asyncRequest(sMethod,sUri,allRequests[0].callback,sRequest);
allRequests.shift()
}else{clearInterval(oQueue.interval);
oQueue.interval=null
}}},50)
}}else{oQueue.conn=oConnMgr.asyncRequest(sMethod,sUri,_xhrCallback,sRequest)
}}}else{DS.issueCallback(oCallback,[oRequest,{error:true}],true,oCaller)
}return tId
}});
lang.augmentObject(util.XHRDataSource,DS);
util.DataSource=function(oLiveData,oConfigs){oConfigs=oConfigs||{};
var dataType=oConfigs.dataType;
if(dataType){if(dataType==DS.TYPE_LOCAL){lang.augmentObject(util.DataSource,util.LocalDataSource);
return new util.LocalDataSource(oLiveData,oConfigs)
}else{if(dataType==DS.TYPE_XHR){lang.augmentObject(util.DataSource,util.XHRDataSource);
return new util.XHRDataSource(oLiveData,oConfigs)
}else{if(dataType==DS.TYPE_SCRIPTNODE){lang.augmentObject(util.DataSource,util.ScriptNodeDataSource);
return new util.ScriptNodeDataSource(oLiveData,oConfigs)
}else{if(dataType==DS.TYPE_JSFUNCTION){lang.augmentObject(util.DataSource,util.FunctionDataSource);
return new util.FunctionDataSource(oLiveData,oConfigs)
}}}}}if(YAHOO.lang.isString(oLiveData)){lang.augmentObject(util.DataSource,util.XHRDataSource);
return new util.XHRDataSource(oLiveData,oConfigs)
}else{if(YAHOO.lang.isFunction(oLiveData)){lang.augmentObject(util.DataSource,util.FunctionDataSource);
return new util.FunctionDataSource(oLiveData,oConfigs)
}else{lang.augmentObject(util.DataSource,util.LocalDataSource);
return new util.LocalDataSource(oLiveData,oConfigs)
}}};
lang.augmentObject(util.DataSource,DS)
})();
YAHOO.util.Number={format:function(c,k){k=k||{};
if(!YAHOO.lang.isNumber(c)){c*=1
}if(YAHOO.lang.isNumber(c)){var a=(c<0);
var g=c+"";
var j=(k.decimalSeparator)?k.decimalSeparator:".";
var i;
if(YAHOO.lang.isNumber(k.decimalPlaces)){var h=k.decimalPlaces;
var b=Math.pow(10,h);
g=Math.round(c*b)/b+"";
i=g.lastIndexOf(".");
if(h>0){if(i<0){g+=j;
i=g.length-1
}else{if(j!=="."){g=g.replace(".",j)
}}while((g.length-1-i)<h){g+="0"
}}}if(k.thousandsSeparator){var e=k.thousandsSeparator;
i=g.lastIndexOf(j);
i=(i>-1)?i:g.length;
var f=g.substring(i);
var d=-1;
for(var l=i;
l>0;
l--){d++;
if((d%3===0)&&(l!==i)&&(!a||(l>1))){f=e+f
}f=g.charAt(l-1)+f
}g=f
}g=(k.prefix)?k.prefix+g:g;
g=(k.suffix)?g+k.suffix:g;
return g
}else{return c
}}};
(function(){var a=function(e,c,d){if(typeof d==="undefined"){d=10
}for(;
parseInt(e,10)<d&&d>1;
d/=10){e=c.toString()+e
}return e.toString()
};
var b={formats:{a:function(c,d){return d.a[c.getDay()]
},A:function(c,d){return d.A[c.getDay()]
},b:function(c,d){return d.b[c.getMonth()]
},B:function(c,d){return d.B[c.getMonth()]
},C:function(c){return a(parseInt(c.getFullYear()/100,10),0)
},d:["getDate","0"],e:["getDate"," "],g:function(c){return a(parseInt(b.formats.G(c)%100,10),0)
},G:function(d){var c=d.getFullYear();
var e=parseInt(b.formats.V(d),10);
var f=parseInt(b.formats.W(d),10);
if(f>e){c++
}else{if(f===0&&e>=52){c--
}}return c
},H:["getHours","0"],I:function(c){var d=c.getHours()%12;
return a(d===0?12:d,0)
},j:function(c){var d=new Date(""+c.getFullYear()+"/1/1 GMT");
var f=new Date(""+c.getFullYear()+"/"+(c.getMonth()+1)+"/"+c.getDate()+" GMT");
var g=f-d;
var e=parseInt(g/60000/60/24,10)+1;
return a(e,0,100)
},k:["getHours"," "],l:function(c){var d=c.getHours()%12;
return a(d===0?12:d," ")
},m:function(c){return a(c.getMonth()+1,0)
},M:["getMinutes","0"],p:function(c,d){return d.p[c.getHours()>=12?1:0]
},P:function(c,d){return d.P[c.getHours()>=12?1:0]
},s:function(c,d){return parseInt(c.getTime()/1000,10)
},S:["getSeconds","0"],u:function(d){var c=d.getDay();
return c===0?7:c
},U:function(c){var f=parseInt(b.formats.j(c),10);
var d=6-c.getDay();
var e=parseInt((f+d)/7,10);
return a(e,0)
},V:function(c){var d=parseInt(b.formats.W(c),10);
var f=(new Date(""+c.getFullYear()+"/1/1")).getDay();
var e=d+(f>4||f<=1?0:1);
if(e===53&&(new Date(""+c.getFullYear()+"/12/31")).getDay()<4){e=1
}else{if(e===0){e=b.formats.V(new Date(""+(c.getFullYear()-1)+"/12/31"))
}}return a(e,0)
},w:"getDay",W:function(c){var f=parseInt(b.formats.j(c),10);
var d=7-b.formats.u(c);
var e=parseInt((f+d)/7,10);
return a(e,0,10)
},y:function(c){return a(c.getFullYear()%100,0)
},Y:"getFullYear",z:function(d){var e=d.getTimezoneOffset();
var f=a(parseInt(Math.abs(e/60),10),0);
var c=a(Math.abs(e%60),0);
return(e>0?"-":"+")+f+c
},Z:function(d){var c=d.toString().replace(/^.*:\d\d( GMT[+-]\d+)? \(?([A-Za-z ]+)\)?\d*$/,"$2").replace(/[a-z ]/g,"");
if(c.length>4){c=b.formats.z(d)
}return c
},"%":function(c){return"%"
}},aggregates:{c:"locale",D:"%m/%d/%y",F:"%Y-%m-%d",h:"%b",n:"\n",r:"locale",R:"%H:%M",t:"\t",T:"%H:%M:%S",x:"locale",X:"locale"},format:function(f,g,i){g=g||{};
if(!(f instanceof Date)){return YAHOO.lang.isValue(f)?f:""
}var e=g.format||"%m/%d/%Y";
if(e==="YYYY/MM/DD"){e="%Y/%m/%d"
}else{if(e==="DD/MM/YYYY"){e="%d/%m/%Y"
}else{if(e==="MM/DD/YYYY"){e="%m/%d/%Y"
}}}i=i||"en";
if(!(i in YAHOO.util.DateLocale)){if(i.replace(/-[a-zA-Z]+$/,"") in YAHOO.util.DateLocale){i=i.replace(/-[a-zA-Z]+$/,"")
}else{i="en"
}}var c=YAHOO.util.DateLocale[i];
var j=function(k,l){var m=b.aggregates[l];
return(m==="locale"?c[l]:m)
};
var h=function(k,l){var m=b.formats[l];
if(typeof m==="string"){return f[m]()
}else{if(typeof m==="function"){return m.call(f,f,c)
}else{if(typeof m==="object"&&typeof m[0]==="string"){return a(f[m[0]](),m[1])
}else{return l
}}}};
while(e.match(/%[cDFhnrRtTxX]/)){e=e.replace(/%([cDFhnrRtTxX])/g,j)
}var d=e.replace(/%([aAbBCdegGHIjklmMpPsSuUVwWyYzZ%])/g,h);
j=h=undefined;
return d
}};
YAHOO.namespace("YAHOO.util");
YAHOO.util.Date=b;
YAHOO.util.DateLocale={a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a %d %b %Y %T %Z",p:["AM","PM"],P:["am","pm"],r:"%I:%M:%S %p",x:"%d/%m/%y",X:"%T"};
YAHOO.util.DateLocale.en=YAHOO.lang.merge(YAHOO.util.DateLocale,{});
YAHOO.util.DateLocale["en-US"]=YAHOO.lang.merge(YAHOO.util.DateLocale.en,{c:"%a %d %b %Y %I:%M:%S %p %Z",x:"%m/%d/%Y",X:"%I:%M:%S %p"});
YAHOO.util.DateLocale["en-GB"]=YAHOO.lang.merge(YAHOO.util.DateLocale.en,{r:"%l:%M:%S %P %Z"});
YAHOO.util.DateLocale["en-AU"]=YAHOO.lang.merge(YAHOO.util.DateLocale.en)
})();
YAHOO.register("datasource",YAHOO.util.DataSource,{version:"2.6.0",build:"1321"});
