/**
 * Copyright 2005 Darren L. Spurgeon
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
var AjaxJspTag={Version:"1.2"};
AJAX_DEFAULT_PARAMETER="ajaxParameter";
AJAX_PORTLET_MAX=1;
AJAX_PORTLET_MIN=2;
AJAX_PORTLET_CLOSE=3;
AJAX_CALLOUT_OVERLIB_DEFAULT="STICKY,"+"CLOSECLICK,"+"DELAY,250,"+"TIMEOUT,5000,"+"VAUTO,WRAPMAX,240,"+"CSSCLASS,FGCLASS,'olfg',BGCLASS,'olbg',CGCLASS,'olcg',"+"CAPTIONFONTCLASS,'olcap',CLOSEFONTCLASS,'olclo',TEXTFONTCLASS,'oltxt'";
function isAlien(a){
return isObject(a)&&typeof a.constructor!="function";
}
function isArray(a){
return isObject(a)&&a.constructor==Array;
}
function isBoolean(a){
return typeof a=="boolean";
}
function isEmpty(o){
var i,v;
if(isObject(o)){
for(i in o){
v=o[i];
if(isUndefined(v)&&isFunction(v)){
return false;
}
}
}
return true;
}
function isFunction(a){
return typeof a=="function";
}
function isNull(a){
return typeof a=="object"&&!a;
}
function isNumber(a){
return typeof a=="number"&&isFinite(a);
}
function isObject(a){
return (a&&typeof a=="object")||isFunction(a);
}
function isString(a){
return typeof a=="string";
}
function isUndefined(a){
return typeof a=="undefined";
}
function addOnLoadEvent(_d){
var _e=window.onload;
if(typeof window.onload!="function"){
window.onload=_d;
}else{
window.onload=function(){
_e();
_d();
};
}
}
function extractQueryString(_f){
var ret=(_f.indexOf("?")>=0&&_f.indexOf("?")<(_f.length-1))?_f.substr(_f.indexOf("?")+1):"";
return ret;
}
function trimQueryString(url){
var ret=url.indexOf("?")>=0?url.substring(0,url.indexOf("?")):url;
return ret;
}
function delimitQueryString(qs){
var ret="";
if(qs.length>0){
var _15=qs.split("&");
for(var i=0;i<_15.length;i++){
if(i>0){
ret+=",";
}
ret+=_15[i];
}
}
return ret;
}
function buildParameterString(_17){
var _18="";
var _19=(_17||"").split(",");
if(_19!=null){
for(var p=0;p<_19.length;p++){
var _1b=_19[p].split("=");
var key=_1b[0];
var val=_1b[1];
if(!isEmpty(val)||isString(val)){
var _1e=val.match(new RegExp("\\{[\\w\\.\\(\\)\\[\\]]*\\}","g"));
if(!isNull(_1e)){
var _1f=$(_1e[0].substring(1,_1e[0].length-1));
switch(_1f.type){
case "checkbox":
case "radio":
case "text":
case "textarea":
case "password":
case "hidden":
case "select-one":
_18+="&"+key+"="+encodeURIComponent(_1f.value);
break;
case "select-multiple":
var _20=$F(_1e[0].substring(1,_1e[0].length-1));
for(var i=0;i<_20.length;i++){
_18+="&"+key+"="+encodeURIComponent(_20[i]);
}
break;
default:
_18+="&"+key+"="+encodeURIComponent(_1f.innerHTML);
break;
}
}else{
_18+="&"+key+"="+encodeURIComponent(val);
}
}
}
}
if(_18.charAt(0)=="&"){
_18=_18.substr(1);
}
return _18;
}
function getElementsByClassName(_22,_23){
var _24=_22.getElementsByTagName("*");
var _25=new Array();
for(var i=0;i<_24.length;i++){
var _27=_24[i];
var _28=_27.className.split(" ");
for(var j=0;j<_28.length;j++){
if(_28[j]==_23){
_25.push(_27);
break;
}
}
}
return _25;
}
function evalBoolean(_2a,_2b){
if(!isNull(_2a)&&isString(_2a)){
return ("true"==_2a.toLowerCase()||"yes"==_2a.toLowerCase())?"true":"false";
}else{
return _2b==true?"true":"false";
}
}
function getExpDate(_2c,_2d,_2e){
var _2f=new Date();
if(typeof _2c=="number"&&typeof _2d=="number"&&typeof _2d=="number"){
_2f.setDate(_2f.getDate()+parseInt(_2c));
_2f.setHours(_2f.getHours()+parseInt(_2d));
_2f.setMinutes(_2f.getMinutes()+parseInt(_2e));
return _2f.toGMTString();
}
}
function getCookieVal(_30){
var _31=document.cookie.indexOf(";",_30);
if(_31==-1){
_31=document.cookie.length;
}
return unescape(document.cookie.substring(_30,_31));
}
function getCookie(_32){
var arg=_32+"=";
var _34=arg.length;
var _35=document.cookie.length;
var i=0;
while(i<_35){
var j=i+_34;
if(document.cookie.substring(i,j)==arg){
return getCookieVal(j);
}
i=document.cookie.indexOf(" ",i)+1;
if(i==0){
break;
}
}
return null;
}
function setCookie(_38,_39,_3a,_3b,_3c,_3d){
document.cookie=_38+"="+escape(_39)+((_3a)?"; expires="+_3a:"")+((_3b)?"; path="+_3b:"")+((_3c)?"; domain="+_3c:"")+((_3d)?"; secure":"");
}
function deleteCookie(_3e,_3f,_40){
if(getCookie(_3e)){
document.cookie=_3e+"="+((_3f)?"; path="+_3f:"")+((_40)?"; domain="+_40:"")+"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}
AbstractResponseParser=function(){
};
ResponseTextParser=Class.create();
ResponseTextParser.prototype=Object.extend(new AbstractResponseParser(),{initialize:function(){
this.type="text";
},load:function(_41){
this.content=_41.responseText;
this.split();
},split:function(){
this.itemList=new Array();
var _42=this.content.split("\n");
for(var i=0;i<_42.length;i++){
this.itemList.push(_42[i].split(","));
}
}});
ResponseXmlParser=Class.create();
ResponseXmlParser.prototype=Object.extend(new AbstractResponseParser(),{initialize:function(){
this.type="xml";
},load:function(_44){
this.content=_44.responseXML;
this.parse();
},parse:function(){
var _45=this.content.documentElement;
var _46=_45.getElementsByTagName("response");
this.itemList=new Array();
if(_46.length>0){
var _47=_46[0];
var _48=_47.getElementsByTagName("item");
for(var i=0;i<_48.length;i++){
var _4a=_48[i].getElementsByTagName("name");
var _4b=_48[i].getElementsByTagName("value");
if(_4a.length>0&&_4b.length>0){
var _4c=_4a[0].firstChild.nodeValue;
var _4d=_4b[0].firstChild.nodeValue;
this.itemList.push(new Array(_4c,_4d));
}
}
}
}});
ResponseHtmlParser=Class.create();
ResponseHtmlParser.prototype=Object.extend(new AbstractResponseParser(),{initialize:function(){
this.type="html";
},load:function(_4e){
this.content=_4e.responseText;
}});
ResponseXmlToHtmlParser=Class.create();
ResponseXmlToHtmlParser.prototype=Object.extend(new AbstractResponseParser(),{initialize:function(){
this.type="xmltohtml";
},load:function(_4f){
this.xml=_4f.responseXML;
this.parse();
},parse:function(){
this.content="";
var _50=this.xml.documentElement;
var _51=_50.getElementsByTagName("response");
if(_51.length>0){
var _52=_51[0];
var _53=_52.getElementsByTagName("item");
for(var i=0;i<_53.length;i++){
var _55=_53[i].getElementsByTagName("name");
var _56=_53[i].getElementsByTagName("value");
if(_55.length>0&&_56.length>0){
var _57=_55[0].firstChild.nodeValue;
var _58=_56[0].firstChild.nodeValue;
this.content+="<h1>"+_57+"</h1>";
this.content+="<div>"+_58+"</div>";
}
}
}
}});
ResponseXmlToHtmlListParser=Class.create();
ResponseXmlToHtmlListParser.prototype=Object.extend(new AbstractResponseParser(),{initialize:function(){
this.type="xmltohtmllist";
},load:function(_59){
this.xml=_59.responseXML;
this.parse();
},parse:function(){
var ul="<ul>";
var _5b=this.xml.documentElement;
var _5c=_5b.getElementsByTagName("response");
if(_5c.length>0){
var _5d=_5c[0];
var _5e=_5d.getElementsByTagName("item");
for(var i=0;i<_5e.length;i++){
var _60=_5e[i].getElementsByTagName("name");
var _61=_5e[i].getElementsByTagName("value");
if(_60.length>0&&_61.length>0){
var _62=_60[0].firstChild.nodeValue;
var _63=_61[0].firstChild.nodeValue;
ul+="<li id=\""+_63+"\">"+_62+"</li>";
}
}
}
ul+="</ul>";
this.content=ul;
}});
AjaxJspTag.Base=function(){
};
AjaxJspTag.Base.prototype={resolveParameters:function(){
var qs=delimitQueryString(extractQueryString(this.url));
if(this.options.parameters){
this.options.parameters+=","+qs;
}else{
this.options.parameters=qs;
}
this.url=trimQueryString(this.url);
if(this.options.parameters.length>0&&this.options.parameters.charAt(this.options.parameters.length-1)==","){
this.options.parameters=this.options.parameters.substr(0,this.options.parameters.length-1);
}
}};
AjaxJspTag.UpdateField=Class.create();
AjaxJspTag.UpdateField.prototype=Object.extend(new AjaxJspTag.Base(),{initialize:function(url,_66){
this.url=url;
this.setOptions(_66);
this.setListeners();
},setOptions:function(_67){
this.options=Object.extend({parameters:_67.parameters||"",eventType:_67.eventType?_67.eventType:"click",parser:_67.parser?_67.parser:new ResponseTextParser(),handler:_67.handler?_67.handler:this.handler},_67||{});
},setListeners:function(){
eval("$(this.options.action).on"+this.options.eventType+" = this.execute.bindAsEventListener(this)");
},execute:function(e){
if(this.options.preFunction!=null){
this.options.preFunction();
}
var _69=buildParameterString(this.options.parameters);
var _6a=this.options.target.split(",");
var obj=this;
var _6c=this.setField;
var aj=new Ajax.Request(this.url,{asynchronous:true,method:"get",evalScripts:true,parameters:_69,onSuccess:function(_6e){
obj.options.parser.load(_6e);
var _6f=obj.options.parser.itemList;
obj.options.handler(_6e,{targets:_6a,items:_6f});
},onFailure:function(_70){
if(obj.options.errorFunction!=null){
obj.options.errorFunction(_70);
}
},onComplete:function(_71){
if(obj.options.postFunction!=null){
obj.options.postFunction(_71);
}
}});
},handler:function(_72,_73){
for(var i=0;i<_73.targets.length&&i<_73.items.length;i++){
$(_73.targets[i]).value=_73.items[i][1];
}
}});
AjaxJspTag.Select=Class.create();
AjaxJspTag.Select.prototype=Object.extend(new AjaxJspTag.Base(),{initialize:function(url,_76){
this.url=url;
this.setOptions(_76);
this.setListeners();
if(this.options.executeOnLoad=="true"){
this.execute();
}
},setOptions:function(_77){
this.options=Object.extend({parameters:_77.parameters||"",eventType:_77.eventType?_77.eventType:"change",parser:_77.parser?_77.parser:new ResponseXmlParser(),handler:_77.handler?_77.handler:this.handler},_77||{});
},setListeners:function(){
Event.observe($(this.options.source),this.options.eventType,this.execute.bindAsEventListener(this),false);
eval("$(this.options.source).on"+this.options.eventType+" = function(){return false;};");
},execute:function(e){
if(this.options.preFunction!=null){
this.options.preFunction();
}
var _79=buildParameterString(this.options.parameters);
var obj=this;
var aj=new Ajax.Request(this.url,{asynchronous:true,method:"get",evalScripts:true,parameters:_79,onSuccess:function(_7c){
obj.options.parser.load(_7c);
var _7d=obj.options.parser.itemList;
obj.options.handler(_7c,{target:obj.options.target,items:_7d,defaultOptions:obj.options.defaultOptions});
},onFailure:function(_7e){
if(obj.options.errorFunction!=null){
obj.options.errorFunction(_7e);
}
},onComplete:function(_7f){
if(obj.options.postFunction!=null){
obj.options.postFunction(_7f);
}
}});
},handler:function(_80,_81){
var _82=(_81.defaultOptions||"").split(",");
$(_81.target).options.length=0;
$(_81.target).disabled=false;
for(var i=0;i<_81.items.length;i++){
var _84=new Option(_81.items[i][0],_81.items[i][1]);
for(j=0;j<_82.length&&_84.selected==false;j++){
if(_82[j]==_81.items[i][1]){
_84.selected=true;
}
}
$(_81.target).options[i]=_84;
}
}});
AjaxJspTag.HtmlContent=Class.create();
AjaxJspTag.HtmlContent.prototype=Object.extend(new AjaxJspTag.Base(),{initialize:function(url,_86){
this.url=url;
this.setOptions(_86);
this.setListeners();
},setOptions:function(_87){
this.options=Object.extend({parameterName:_87.parameterName?_87.parameterName:AJAX_DEFAULT_PARAMETER,parameters:_87.parameters||"",eventType:_87.eventType?_87.eventType:"click",parser:_87.parser?_87.parser:new ResponseHtmlParser(),handler:_87.handler?_87.handler:this.handler},_87||{});
},setListeners:function(){
if(this.options.source){
eval("$(this.options.source).on"+this.options.eventType+" = this.execute.bindAsEventListener(this)");
}else{
if(this.options.sourceClass){
var _88=document.getElementsByClassName(this.options.sourceClass);
for(var i=0;i<_88.length;i++){
eval("elementArray[i].on"+this.options.eventType+" = this.execute.bindAsEventListener(this)");
}
}
}
},execute:function(e){
if(this.options.preFunction!=null){
this.options.preFunction();
}
var _8b=this.options.parameters;
if(this.options.sourceClass){
var re=new RegExp("(\\{"+this.options.parameterName+"\\})","g");
var _8d=Event.element(e);
if(_8d.type){
_8b=_8b.replace(re,$F(_8d));
}else{
_8b=_8b.replace(re,_8d.innerHTML);
}
}
var _8e=buildParameterString(_8b);
var obj=this;
var aj=new Ajax.Updater(this.options.target,this.url,{asynchronous:true,method:"get",evalScripts:true,parameters:_8e,onFailure:function(_91){
if(obj.options.errorFunction!=null){
obj.options.errorFunction(_91);
}
},onComplete:function(_92){
if(obj.options.postFunction!=null){
obj.options.postFunction(_92);
}
}});
}});
AjaxJspTag.TabPanel=Class.create();
AjaxJspTag.TabPanel.prototype=Object.extend(new AjaxJspTag.Base(),{initialize:function(url,_94){
this.url=url;
this.setOptions(_94);
this.execute();
},setOptions:function(_95){
this.options=Object.extend({parameters:_95.parameters||"",eventType:_95.eventType?_95.eventType:"click",parser:_95.parser?_95.parser:new ResponseHtmlParser(),handler:_95.handler?_95.handler:this.handler},_95||{});
},execute:function(e){
if(this.options.preFunction!=null){
this.options.preFunction();
}
this.resolveParameters();
var _97=buildParameterString(this.options.parameters);
var obj=this;
var aj=new Ajax.Updater(this.options.target,this.url,{asynchronous:true,method:"get",evalScripts:true,parameters:_97,onSuccess:function(_9a){
var src;
if(obj.options.source){
src=obj.options.source;
}else{
src=document.getElementsByClassName(obj.options.currentStyleClass,$(obj.options.panelStyleId))[0];
}
obj.options.handler(_9a,{source:src,panelStyleId:obj.options.panelStyleId,currentStyleClass:obj.options.currentStyleClass});
},onFailure:function(_9c){
if(obj.options.errorFunction!=null){
obj.options.errorFunction(_9c);
}
},onComplete:function(_9d){
if(obj.options.postFunction!=null){
obj.options.postFunction(_9d);
}
}});
},handler:function(_9e,_9f){
var cur=document.getElementsByClassName(_9f.currentStyleClass,$(_9f.panelStyleId));
cur[0].className="";
_9f.source.className=_9f.currentStyleClass;
}});
AjaxJspTag.Portlet=Class.create();
AjaxJspTag.Portlet.prototype=Object.extend(new AjaxJspTag.Base(),{initialize:function(url,_a2){
this.url=url;
this.setOptions(_a2);
this.setListeners();
if(this.options.executeOnLoad=="true"){
this.execute();
}
if(this.preserveState){
this.checkCookie();
}
},setOptions:function(_a3){
this.options=Object.extend({parameters:_a3.parameters||"",target:_a3.source+"Content",close:_a3.source+"Close",refresh:_a3.source+"Refresh",toggle:_a3.source+"Size",isMaximized:true,expireDays:_a3.expireDays||"0",expireHours:_a3.expireHours||"0",expireMinutes:_a3.expireMinutes||"0",executeOnLoad:evalBoolean(_a3.executeOnLoad,true),refreshPeriod:_a3.refreshPeriod||null,eventType:_a3.eventType?_a3.eventType:"click",parser:_a3.parser?_a3.parser:new ResponseHtmlParser(),handler:_a3.handler?_a3.handler:this.handler},_a3||{});
if(parseInt(this.options.expireDays)>0||parseInt(this.options.expireHours)>0||parseInt(this.options.expireMinutes)>0){
this.preserveState=true;
this.options.expireDate=getExpDate(parseInt(this.options.expireDays),parseInt(this.options.expireHours),parseInt(this.options.expireMinutes));
}
this.isAutoRefreshSet=false;
},setListeners:function(){
if(this.options.imageClose){
eval("$(this.options.close).on"+this.options.eventType+" = this.closePortlet.bindAsEventListener(this)");
}
if(this.options.imageRefresh){
eval("$(this.options.refresh).on"+this.options.eventType+" = this.refreshPortlet.bindAsEventListener(this)");
}
if(this.options.imageMaximize&&this.options.imageMinimize){
eval("$(this.options.toggle).on"+this.options.eventType+" = this.togglePortlet.bindAsEventListener(this)");
}
},execute:function(e){
if(this.options.preFunction!=null){
this.options.preFunction();
}
this.resolveParameters();
var _a5=buildParameterString(this.options.parameters);
var obj=this;
if(this.options.refreshPeriod&&this.isAutoRefreshSet==false){
var _a7=this.options.refreshPeriod;
this.ajaxPeriodicalUpdater=new Ajax.PeriodicalUpdater(this.options.target,this.url,{asynchronous:true,method:"get",evalScripts:true,parameters:_a5,frequency:_a7,onFailure:function(_a8){
if(obj.options.errorFunction!=null){
obj.options.errorFunction(_a8);
}
},onComplete:function(_a9){
},onSuccess:function(_aa){
if(obj.options.postFunction!=null){
obj.options.postFunction(_aa);
}
}});
this.isAutoRefreshSet=true;
}else{
this.ajaxUpdater=new Ajax.Updater(this.options.target,this.url,{asynchronous:true,method:"get",parameters:_a5,evalScripts:true,onFailure:function(_ab){
if(obj.options.errorFunction!=null){
obj.options.errorFunction(_ab);
}
},onComplete:function(_ac){
if(obj.options.postFunction!=null){
obj.options.postFunction(_ac);
}
}});
}
},checkCookie:function(){
var _ad=getCookie("AjaxJspTag.Portlet."+this.options.source);
if(_ad!=null){
if(_ad==AJAX_PORTLET_MIN){
this.togglePortlet();
}else{
if(_ad==AJAX_PORTLET_CLOSE){
this.closePortlet();
}
}
}
},stopAutoRefresh:function(){
if(this.ajaxPeriodicalUpdater!=null&&this.options.refreshPeriod&&this.isAutoRefreshSet==true){
this.ajaxPeriodicalUpdater.stop();
}
},startAutoRefresh:function(){
if(this.ajaxPeriodicalUpdater!=null&&this.options.refreshPeriod){
this.ajaxPeriodicalUpdater.start();
}
},refreshPortlet:function(e){
this.stopAutoRefresh();
if(this.ajaxPeriodicalUpdater!=null){
this.startAutoRefresh();
}else{
this.execute();
}
},closePortlet:function(e){
this.stopAutoRefresh();
Element.remove(this.options.source);
if(this.preserveState){
setCookie("AjaxJspTag.Portlet."+this.options.source,AJAX_PORTLET_CLOSE,this.options.expireDate);
}
},togglePortlet:function(e){
Element.toggle(this.options.target);
if(this.options.isMaximized){
$(this.options.toggle).src=this.options.imageMaximize;
this.stopAutoRefresh();
}else{
$(this.options.toggle).src=this.options.imageMinimize;
this.startAutoRefresh();
}
this.options.isMaximized=!this.options.isMaximized;
if(this.preserveState){
setCookie("AjaxJspTag.Portlet."+this.options.source,(this.options.isMaximized==true?AJAX_PORTLET_MAX:AJAX_PORTLET_MIN),this.options.expireDate);
}
}});
Ajax.XmlToHtmlAutocompleter=Class.create();
Object.extend(Object.extend(Ajax.XmlToHtmlAutocompleter.prototype,Autocompleter.Base.prototype),{initialize:function(_b1,_b2,url,_b4,_b5){
this.baseInitialize(_b1,_b2,_b5);
this.options.asynchronous=true;
this.options.onComplete=this.onComplete.bind(this);
this.options.defaultParams=this.options.parameters||null;
this.url=url;
this.target=_b4;
},getUpdatedChoices:function(){
entry=encodeURIComponent(this.options.paramName)+"="+encodeURIComponent(this.getToken());
this.options.parameters=this.options.callback?this.options.callback(this.element,entry):entry;
var _b6=buildParameterString(this.options.defaultParams);
if(!isEmpty(_b6)||(isString(_b6)&&_b6.length>0)){
this.options.parameters+="&"+_b6;
}
new Ajax.Request(this.url,this.options);
},onComplete:function(_b7){
var _b8=new ResponseXmlToHtmlListParser();
_b8.load(_b7);
this.updateChoices(_b8.content);
var d=$("ajaxAuto_cityStreet");
target=$(this.target);
target.value="";
}});
AjaxJspTag.Autocomplete=Class.create();
AjaxJspTag.Autocomplete.prototype=Object.extend(new AjaxJspTag.Base(),{initialize:function(url,_bb){
this.url=url;
this.setOptions(_bb);
$(this.options.source).setAttribute("autocomplete","off");
new Insertion.After(this.options.source,"<div id=\""+this.options.divElement+"\" class=\""+this.options.className+"\"></div>");
this.execute();
},setOptions:function(_bc){
this.options=Object.extend({divElement:"ajaxAuto_"+_bc.source,indicator:_bc.indicator||"",parameters:_bc.parameters||"",parser:_bc.parser?_bc.parser:new ResponseHtmlParser(),handler:_bc.handler?_bc.handler:this.handler},_bc||{});
},execute:function(e){
if(this.options.preFunction!=null){
this.options.preFunction();
}
var obj=this;
var aj=new Ajax.XmlToHtmlAutocompleter(this.options.source,this.options.divElement,this.url,obj.options.target,{minChars:obj.options.minimumCharacters,tokens:obj.options.appendSeparator,indicator:obj.options.indicator,parameters:obj.options.parameters,evalScripts:true,afterUpdateElement:function(_c0,_c1){
obj.options.handler(null,{selectedItem:_c1,tokens:obj.options.appendSeparator,target:obj.options.target,inputField:_c0,postFunction:obj.options.postFunction});
}});
},handler:function(_c2,_c3){
if(_c3.target){
if(_c3.tokens){
if($(_c3.target).value.length>0){
$(_c3.target).value+=_c3.tokens;
}
$(_c3.target).value+=_c3.selectedItem.id;
}else{
$(_c3.target).value=_c3.selectedItem.id;
}
}
if(_c3.postFunction!=null){
var _c4=$(_c3.inputField).onupdate;
$(_c3.inputField).onupdate="";
_c3.postFunction(_c2);
$(_c3.inputField).onupdate=_c4;
}
}});
AjaxJspTag.Toggle=Class.create();
AjaxJspTag.Toggle.prototype=Object.extend(new AjaxJspTag.Base(),{initialize:function(url,_c6){
this.url=url;
this.setOptions(_c6);
if(this.options.messageClass){
this.messageContainer=new Insertion.Top($(this.options.source),"<div id=\""+this.options.source+"_message\" class=\""+this.options.messageClass+"\"></div>");
}
this.setListeners();
},setOptions:function(_c7){
this.options=Object.extend({parameters:_c7.parameters||"rating={ajaxParameter}",parser:_c7.parser?_c7.parser:new ResponseTextParser(),handler:_c7.handler?_c7.handler:this.handler},_c7||{});
this.ratingParameter=AJAX_DEFAULT_PARAMETER;
},setListeners:function(){
var _c8=$(this.options.source).getElementsByTagName("a");
for(var j=0;j<_c8.length;j++){
_c8[j].onmouseover=this.raterMouseOver.bindAsEventListener(this);
_c8[j].onmouseout=this.raterMouseOut.bindAsEventListener(this);
_c8[j].onclick=this.raterClick.bindAsEventListener(this);
}
},getCurrentRating:function(_ca){
var _cb=-1;
for(var i=0;i<_ca.length;i++){
if(Element.hasClassName(_ca[i],this.options.selectedClass)){
_cb=i;
}
}
return _cb;
},getCurrentIndex:function(_cd,_ce){
var _cf=0;
for(var i=0;i<_cd.length;i++){
if(_ce==_cd[i]){
_cf=i;
}
}
return _cf;
},raterMouseOver:function(e){
var _d2=Event.findElement(e,"div");
var _d3=_d2.getElementsByTagName("a");
var _d4=this.getCurrentRating(_d3);
var _d5=this.getCurrentIndex(_d3,Event.element(e));
if(this.options.messageClass){
$(_d2.id+"_message").innerHTML=Event.element(e).title;
}
for(var i=0;i<_d3.length;i++){
if(_d4>-1){
if(i<=_d4&&i<=_d5){
Element.addClassName(_d3[i],this.options.selectedOverClass);
}else{
if(i<=_d4&&i>_d5){
Element.addClassName(_d3[i],this.options.selectedLessClass);
}else{
if(i>_d4&&i<=_d5){
Element.addClassName(_d3[i],this.options.overClass);
}
}
}
}else{
if(i<=_d5){
Element.addClassName(_d3[i],this.options.overClass);
}
}
}
},raterMouseOut:function(e){
var _d8=Event.findElement(e,"div");
var _d9=_d8.getElementsByTagName("a");
if(this.options.messageClass){
$(_d8.id+"_message").innerHTML="";
}
for(var i=0;i<_d9.length;i++){
Element.removeClassName(_d9[i],this.options.selectedOverClass);
Element.removeClassName(_d9[i],this.options.selectedLessClass);
Element.removeClassName(_d9[i],this.options.overClass);
}
},raterClick:function(e){
var _dc=Event.findElement(e,"div");
var _dd=_dc.getElementsByTagName("a");
var _de=this.getCurrentIndex(_dd,Event.element(e));
for(var i=0;i<_dd.length;i++){
Element.removeClassName(_dd[i],this.options.selectedOverClass);
Element.removeClassName(_dd[i],this.options.selectedLessClass);
Element.removeClassName(_dd[i],this.options.overClass);
if(i<=_de){
if(Element.hasClassName(_dc,"onoff")&&Element.hasClassName(_dd[i],this.options.selectedClass)){
Element.removeClassName(_dd[i],this.options.selectedClass);
}else{
Element.addClassName(_dd[i],this.options.selectedClass);
}
}else{
if(i>_de){
Element.removeClassName(_dd[i],this.options.selectedClass);
}
}
}
var _e0=_dd[_de].title;
if(Element.hasClassName(_dc,"onoff")){
var _e1=this.options.ratings.split(",");
if(_e1[0]==_e0){
_e0=_e1[1];
}else{
_e0=_e1[0];
}
}
this.execute(_e0);
if(this.options.state){
$(this.options.state).value=_e0;
}
},execute:function(_e2){
if(this.options.preFunction!=null){
this.options.preFunction();
}
var _e3=this.options.parameters||"";
var re=new RegExp("(\\{"+this.ratingParameter+"\\})","g");
_e3=_e3.replace(re,_e2);
var _e5=buildParameterString(_e3);
var obj=this;
var _e7=this.getToggleStateValue;
var aj=new Ajax.Request(this.url,{asynchronous:true,method:"get",evalScripts:true,parameters:_e5,onSuccess:function(_e9){
obj.options.parser.load(_e9);
var _ea=obj.options.parser.itemList;
obj.options.handler(_e9,{items:_ea});
},onFailure:function(_eb){
if(obj.options.errorFunction!=null){
obj.options.errorFunction(_eb);
}
},onComplete:function(_ec){
if(obj.options.postFunction!=null){
obj.options.postFunction(_ec);
}
}});
},handler:function(_ed,_ee){
},getToggleStateValue:function(_ef,_f0){
for(var i=0;i<_f0.length;i++){
if(_f0[i][0]==_ef){
return _f0[i][1];
}
}
return "";
}});
AjaxJspTag.Callout=Class.create();
AjaxJspTag.Callout.prototype=Object.extend(new AjaxJspTag.Base(),{initialize:function(url,_f3){
this.url=url;
this.setOptions(_f3);
this.setListeners();
},setOptions:function(_f4){
this.options=Object.extend({parameters:_f4.parameters||"",overlib:_f4.overlib||AJAX_CALLOUT_OVERLIB_DEFAULT,parser:_f4.parser?_f4.parser:new ResponseXmlToHtmlParser(),handler:_f4.handler?_f4.handler:this.handler},_f4||{});
this.calloutParameter=AJAX_DEFAULT_PARAMETER;
},setListeners:function(){
if(this.options.sourceClass){
var _f5=document.getElementsByClassName(this.options.sourceClass);
for(var i=0;i<_f5.length;i++){
_f5[i].onmouseover=this.calloutMouseover.bindAsEventListener(this);
_f5[i].onmouseout=this.calloutMouseout.bindAsEventListener(this);
}
}
},calloutMouseover:function(e){
this.execute(e);
},calloutMouseout:function(e){
nd();
},execute:function(e){
if(this.options.preFunction!=null){
this.options.preFunction();
}
var _fa=this.options.parameters||"";
var re=new RegExp("(\\{"+this.calloutParameter+"\\})","g");
var _fc=Event.element(e);
if(_fc.type){
_fa=_fa.replace(re,$F(_fc));
}else{
_fa=_fa.replace(re,_fc.innerHTML);
}
var _fd=buildParameterString(_fa);
var obj=this;
var aj=new Ajax.Request(this.url,{asynchronous:true,method:"get",evalScripts:true,parameters:_fd,onSuccess:function(_100){
obj.options.parser.load(_100);
obj.options.handler(obj.options.parser.content,{title:obj.options.title,overlib:obj.options.overlib});
},onFailure:function(_101){
if(obj.options.errorFunction!=null){
obj.options.errorFunction(_101);
}
},onComplete:function(_102){
if(obj.options.postFunction!=null){
obj.options.postFunction(_102);
}
}});
},handler:function(_103,_104){
if(_104.overlib){
if(_104.title){
return eval("overlib(content,CAPTION,options.title,"+_104.overlib+")");
}else{
return eval("overlib(content,"+_104.overlib+")");
}
}else{
if(_104.title){
return overlib(_103,CAPTION,_104.title);
}else{
return overlib(_103);
}
}
}});