if(!window.A4J){window.A4J={};}
function Sarissa(){}
Sarissa.VERSION="0.9.9.3";Sarissa.PARSED_OK="Document contains no parsing errors";Sarissa.PARSED_EMPTY="Document is empty";Sarissa.PARSED_UNKNOWN_ERROR="Not well-formed or other error";Sarissa.IS_ENABLED_TRANSFORM_NODE=false;Sarissa.REMOTE_CALL_FLAG="gr.abiss.sarissa.REMOTE_CALL_FLAG";Sarissa._sarissa_iNsCounter=0;Sarissa._SARISSA_IEPREFIX4XSLPARAM="";Sarissa._SARISSA_HAS_DOM_IMPLEMENTATION=document.implementation&&true;Sarissa._SARISSA_HAS_DOM_CREATE_DOCUMENT=Sarissa._SARISSA_HAS_DOM_IMPLEMENTATION&&document.implementation.createDocument;Sarissa._SARISSA_HAS_DOM_FEATURE=Sarissa._SARISSA_HAS_DOM_IMPLEMENTATION&&document.implementation.hasFeature;Sarissa._SARISSA_IS_MOZ=Sarissa._SARISSA_HAS_DOM_CREATE_DOCUMENT&&Sarissa._SARISSA_HAS_DOM_FEATURE;Sarissa._SARISSA_IS_SAFARI=navigator.userAgent.toLowerCase().indexOf("safari")!=-1||navigator.userAgent.toLowerCase().indexOf("konqueror")!=-1;Sarissa._SARISSA_IS_SAFARI_OLD=Sarissa._SARISSA_IS_SAFARI&&(parseInt((navigator.userAgent.match(/AppleWebKit\/(\d+)/)||{})[1],10)<420);Sarissa._SARISSA_IS_IE=document.all&&window.ActiveXObject&&navigator.userAgent.toLowerCase().indexOf("msie")>-1&&navigator.userAgent.toLowerCase().indexOf("opera")==-1;Sarissa._SARISSA_IS_OPERA=navigator.userAgent.toLowerCase().indexOf("opera")!=-1;if(!window.Node||!Node.ELEMENT_NODE){Node={ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12};}
if(Sarissa._SARISSA_IS_SAFARI_OLD){HTMLHtmlElement=document.createElement("html").constructor;Node=HTMLElement={};HTMLElement.prototype=HTMLHtmlElement.__proto__.__proto__;HTMLDocument=Document=document.constructor;var x=new DOMParser();XMLDocument=x.constructor;Element=x.parseFromString("<Single />","text/xml").documentElement.constructor;x=null;}
if(typeof XMLDocument=="undefined"&&typeof Document!="undefined"){XMLDocument=Document;}
if(Sarissa._SARISSA_IS_IE){Sarissa._SARISSA_IEPREFIX4XSLPARAM="xsl:";var _SARISSA_DOM_PROGID="";var _SARISSA_XMLHTTP_PROGID="";var _SARISSA_DOM_XMLWRITER="";Sarissa.pickRecentProgID=function(idList){var bFound=false,e;var o2Store;for(var i=0;i<idList.length&&!bFound;i++){try{var oDoc=new ActiveXObject(idList[i]);o2Store=idList[i];bFound=true;}catch(objException){e=objException;}}
if(!bFound){throw"Could not retrieve a valid progID of Class: "+idList[idList.length-1]+". (original exception: "+e+")";}
idList=null;return o2Store;};_SARISSA_DOM_PROGID=null;_SARISSA_THREADEDDOM_PROGID=null;_SARISSA_XSLTEMPLATE_PROGID=null;_SARISSA_XMLHTTP_PROGID=null;Sarissa.originalXMLHttpRequest=window.XMLHttpRequest;XMLHttpRequest=function(){if(!_SARISSA_XMLHTTP_PROGID){_SARISSA_XMLHTTP_PROGID=Sarissa.pickRecentProgID(["Msxml2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"]);}
return new ActiveXObject(_SARISSA_XMLHTTP_PROGID);};Sarissa.getDomDocument=function(sUri,sName){if(!_SARISSA_DOM_PROGID){_SARISSA_DOM_PROGID=Sarissa.pickRecentProgID(["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"]);}
var oDoc=new ActiveXObject(_SARISSA_DOM_PROGID);if(sName){var prefix="";if(sUri){if(sName.indexOf(":")>1){prefix=sName.substring(0,sName.indexOf(":"));sName=sName.substring(sName.indexOf(":")+1);}else{prefix="a"+(Sarissa._sarissa_iNsCounter++);}}
if(sUri){oDoc.loadXML('<'+prefix+':'+sName+" xmlns:"+prefix+"=\""+sUri+"\""+" />");}else{oDoc.loadXML('<'+sName+" />");}}
return oDoc;};Sarissa.getParseErrorText=function(oDoc){var parseErrorText=Sarissa.PARSED_OK;if(oDoc&&oDoc.parseError&&oDoc.parseError.errorCode&&oDoc.parseError.errorCode!=0){parseErrorText="XML Parsing Error: "+oDoc.parseError.reason+"\nLocation: "+oDoc.parseError.url+"\nLine Number "+oDoc.parseError.line+", Column "+
oDoc.parseError.linepos+":\n"+oDoc.parseError.srcText+"\n";for(var i=0;i<oDoc.parseError.linepos;i++){parseErrorText+="-";}
parseErrorText+="^\n";}
else if(oDoc.documentElement===null){parseErrorText=Sarissa.PARSED_EMPTY;}
return parseErrorText;};Sarissa.setXpathNamespaces=function(oDoc,sNsSet){oDoc.setProperty("SelectionLanguage","XPath");oDoc.setProperty("SelectionNamespaces",sNsSet);};XSLTProcessor=function(){if(!_SARISSA_XSLTEMPLATE_PROGID){_SARISSA_XSLTEMPLATE_PROGID=Sarissa.pickRecentProgID(["Msxml2.XSLTemplate.6.0","MSXML2.XSLTemplate.3.0"]);}
this.template=new ActiveXObject(_SARISSA_XSLTEMPLATE_PROGID);this.processor=null;};XSLTProcessor.prototype.importStylesheet=function(xslDoc){if(!_SARISSA_THREADEDDOM_PROGID){_SARISSA_THREADEDDOM_PROGID=Sarissa.pickRecentProgID(["MSXML2.FreeThreadedDOMDocument.6.0","MSXML2.FreeThreadedDOMDocument.3.0"]);}
xslDoc.setProperty("SelectionLanguage","XPath");xslDoc.setProperty("SelectionNamespaces","xmlns:xsl='http://www.w3.org/1999/XSL/Transform'");var converted=new ActiveXObject(_SARISSA_THREADEDDOM_PROGID);try{converted.resolveExternals=true;converted.setProperty("AllowDocumentFunction",true);}
catch(e){}
if(xslDoc.url&&xslDoc.selectSingleNode("//xsl:*[local-name() = 'import' or local-name() = 'include']")!=null){converted.async=false;converted.load(xslDoc.url);}
else{converted.loadXML(xslDoc.xml);}
converted.setProperty("SelectionNamespaces","xmlns:xsl='http://www.w3.org/1999/XSL/Transform'");var output=converted.selectSingleNode("//xsl:output");if(output){this.outputMethod=output.getAttribute("method");}
else{delete this.outputMethod;}
this.template.stylesheet=converted;this.processor=this.template.createProcessor();this.paramsSet=[];};XSLTProcessor.prototype.transformToDocument=function(sourceDoc){var outDoc;if(_SARISSA_THREADEDDOM_PROGID){this.processor.input=sourceDoc;outDoc=new ActiveXObject(_SARISSA_DOM_PROGID);this.processor.output=outDoc;this.processor.transform();return outDoc;}
else{if(!_SARISSA_DOM_XMLWRITER){_SARISSA_DOM_XMLWRITER=Sarissa.pickRecentProgID(["Msxml2.MXXMLWriter.6.0","Msxml2.MXXMLWriter.3.0","MSXML2.MXXMLWriter","MSXML.MXXMLWriter","Microsoft.XMLDOM"]);}
this.processor.input=sourceDoc;outDoc=new ActiveXObject(_SARISSA_DOM_XMLWRITER);this.processor.output=outDoc;this.processor.transform();var oDoc=new ActiveXObject(_SARISSA_DOM_PROGID);oDoc.loadXML(outDoc.output+"");return oDoc;}};XSLTProcessor.prototype.transformToFragment=function(sourceDoc,ownerDoc){this.processor.input=sourceDoc;this.processor.transform();var s=this.processor.output;var f=ownerDoc.createDocumentFragment();var container;if(this.outputMethod=='text'){f.appendChild(ownerDoc.createTextNode(s));}else if(ownerDoc.body&&ownerDoc.body.innerHTML){container=ownerDoc.createElement('div');container.innerHTML=s;while(container.hasChildNodes()){f.appendChild(container.firstChild);}}
else{var oDoc=new ActiveXObject(_SARISSA_DOM_PROGID);if(s.substring(0,5)=='<?xml'){s=s.substring(s.indexOf('?>')+2);}
var xml=''.concat('<my>',s,'</my>');oDoc.loadXML(xml);container=oDoc.documentElement;while(container.hasChildNodes()){f.appendChild(container.firstChild);}}
return f;};XSLTProcessor.prototype.setParameter=function(nsURI,name,value){value=value?value:"";if(nsURI){this.processor.addParameter(name,value,nsURI);}else{this.processor.addParameter(name,value);}
nsURI=""+(nsURI||"");if(!this.paramsSet[nsURI]){this.paramsSet[nsURI]=[];}
this.paramsSet[nsURI][name]=value;};XSLTProcessor.prototype.getParameter=function(nsURI,name){nsURI=""+(nsURI||"");if(this.paramsSet[nsURI]&&this.paramsSet[nsURI][name]){return this.paramsSet[nsURI][name];}else{return null;}};XSLTProcessor.prototype.clearParameters=function(){for(var nsURI in this.paramsSet){for(var name in this.paramsSet[nsURI]){if(nsURI!=""){this.processor.addParameter(name,"",nsURI);}else{this.processor.addParameter(name,"");}}}
this.paramsSet=[];};}else{if(Sarissa._SARISSA_HAS_DOM_CREATE_DOCUMENT){Sarissa.__handleLoad__=function(oDoc){Sarissa.__setReadyState__(oDoc,4);};_sarissa_XMLDocument_onload=function(){Sarissa.__handleLoad__(this);};Sarissa.__setReadyState__=function(oDoc,iReadyState){oDoc.readyState=iReadyState;oDoc.readystate=iReadyState;if(oDoc.onreadystatechange!=null&&typeof oDoc.onreadystatechange=="function"){oDoc.onreadystatechange();}};Sarissa.getDomDocument=function(sUri,sName){var oDoc=document.implementation.createDocument(sUri?sUri:null,sName?sName:null,null);if(!oDoc.onreadystatechange){oDoc.onreadystatechange=null;}
if(!oDoc.readyState){oDoc.readyState=0;}
oDoc.addEventListener("load",_sarissa_XMLDocument_onload,false);return oDoc;};if(window.XMLDocument){}
else if(Sarissa._SARISSA_HAS_DOM_FEATURE&&window.Document&&!Document.prototype.load&&document.implementation.hasFeature('LS','3.0')){Sarissa.getDomDocument=function(sUri,sName){var oDoc=document.implementation.createDocument(sUri?sUri:null,sName?sName:null,null);return oDoc;};}
else{Sarissa.getDomDocument=function(sUri,sName){var oDoc=document.implementation.createDocument(sUri?sUri:null,sName?sName:null,null);if(oDoc&&(sUri||sName)&&!oDoc.documentElement){oDoc.appendChild(oDoc.createElementNS(sUri,sName));}
return oDoc;};}}}
if(!window.DOMParser){if(Sarissa._SARISSA_IS_SAFARI){DOMParser=function(){};DOMParser.prototype.parseFromString=function(sXml,contentType){var xmlhttp=new XMLHttpRequest();xmlhttp.open("GET","data:text/xml;charset=utf-8,"+encodeURIComponent(sXml),false);xmlhttp.send(null);return xmlhttp.responseXML;};}else if(Sarissa.getDomDocument&&Sarissa.getDomDocument()&&Sarissa.getDomDocument(null,"bar").xml){DOMParser=function(){};DOMParser.prototype.parseFromString=function(sXml,contentType){var doc=Sarissa.getDomDocument();doc.loadXML(sXml);return doc;};}}
if((typeof(document.importNode)=="undefined")&&Sarissa._SARISSA_IS_IE){try{var importTable={TBODY:['<table>','</table>'],THEAD:['<table>','</table>'],TFOOT:['<table>','</table>'],TR:['<table><tbody>','</tbody></table>'],TH:['<table><thead><tr>','</tr></thead></table>'],TD:['<table><tbody><tr>','</tr></tbody></table>'],OPTION:['<select>','</select>']};document.importNode=function(oNode,bChildren){var tmp;if(oNode.nodeName=='#text'){return document.createTextNode(oNode.data);}
else{var tagName=oNode.nodeName.toUpperCase();var wrapper=importTable[tagName];var nodeHtml;if(bChildren){nodeHtml=oNode.xml?oNode.xml:oNode.outerHTML;}else{nodeHtml=oNode.xml?oNode.cloneNode(false).xml:oNode.cloneNode(false).outerHTML;}
var wrapperElt=document.createElement("div");if(wrapper){nodeHtml=wrapper[0]+nodeHtml+wrapper[1];}
wrapperElt.innerHTML=nodeHtml;var stack=new Array(wrapperElt.firstChild);var result;while(!result){var newStack=new Array();for(var i=0;i<stack.length&&!result;i++){var elt=stack[i];while(elt){if(elt.tagName&&elt.tagName.toUpperCase()==tagName){result=elt;break;}else{if(elt.firstChild){newStack.push(elt.firstChild);}
elt=elt.nextSibling;}}}
stack=newStack;}
return result;}};}catch(e){}}
if(!Sarissa.getParseErrorText){Sarissa.getParseErrorText=function(oDoc){var parseErrorText=Sarissa.PARSED_OK;if(!oDoc.documentElement){parseErrorText=Sarissa.PARSED_EMPTY;}else if(oDoc.documentElement.tagName=="parsererror"){parseErrorText=oDoc.documentElement.firstChild.data;parseErrorText+="\n"+oDoc.documentElement.firstChild.nextSibling.firstChild.data;}else if(oDoc.getElementsByTagName("parsererror").length>0){var parsererror=oDoc.getElementsByTagName("parsererror")[0];parseErrorText=Sarissa.getText(parsererror,true)+"\n";}else if(oDoc.parseError&&oDoc.parseError.errorCode!=0){parseErrorText=Sarissa.PARSED_UNKNOWN_ERROR;}
return parseErrorText;};}
Sarissa.getText=function(oNode,deep){var s="";var nodes=oNode.childNodes;for(var i=0;i<nodes.length;i++){var node=nodes[i];var nodeType=node.nodeType;if(nodeType==Node.TEXT_NODE||nodeType==Node.CDATA_SECTION_NODE){s+=node.data;}else if(deep===true&&(nodeType==Node.ELEMENT_NODE||nodeType==Node.DOCUMENT_NODE||nodeType==Node.DOCUMENT_FRAGMENT_NODE)){s+=Sarissa.getText(node,true);}}
return s;};if(!window.XMLSerializer&&Sarissa.getDomDocument&&Sarissa.getDomDocument("","foo",null).xml){XMLSerializer=function(){};XMLSerializer.prototype.serializeToString=function(oNode){return oNode.xml;};}
Sarissa.stripTags=function(s){return s?s.replace(/<[^>]+>/g,""):s;};Sarissa.clearChildNodes=function(oNode){while(oNode.firstChild){oNode.removeChild(oNode.firstChild);}};Sarissa.copyChildNodes=function(nodeFrom,nodeTo,bPreserveExisting){if(Sarissa._SARISSA_IS_SAFARI&&nodeTo.nodeType==Node.DOCUMENT_NODE){nodeTo=nodeTo.documentElement;}
if((!nodeFrom)||(!nodeTo)){throw"Both source and destination nodes must be provided";}
if(!bPreserveExisting){Sarissa.clearChildNodes(nodeTo);}
var ownerDoc=nodeTo.nodeType==Node.DOCUMENT_NODE?nodeTo:nodeTo.ownerDocument;var nodes=nodeFrom.childNodes;var i;if(typeof(ownerDoc.importNode)!="undefined"){for(i=0;i<nodes.length;i++){nodeTo.appendChild(ownerDoc.importNode(nodes[i],true));}}else{for(i=0;i<nodes.length;i++){nodeTo.appendChild(nodes[i].cloneNode(true));}}};Sarissa.moveChildNodes=function(nodeFrom,nodeTo,bPreserveExisting){if((!nodeFrom)||(!nodeTo)){throw"Both source and destination nodes must be provided";}
if(!bPreserveExisting){Sarissa.clearChildNodes(nodeTo);}
var nodes=nodeFrom.childNodes;if(nodeFrom.ownerDocument==nodeTo.ownerDocument){while(nodeFrom.firstChild){nodeTo.appendChild(nodeFrom.firstChild);}}else{var ownerDoc=nodeTo.nodeType==Node.DOCUMENT_NODE?nodeTo:nodeTo.ownerDocument;var i;if(typeof(ownerDoc.importNode)!="undefined"){for(i=0;i<nodes.length;i++){nodeTo.appendChild(ownerDoc.importNode(nodes[i],true));}}else{for(i=0;i<nodes.length;i++){nodeTo.appendChild(nodes[i].cloneNode(true));}}
Sarissa.clearChildNodes(nodeFrom);}};Sarissa.xmlize=function(anyObject,objectName,indentSpace){indentSpace=indentSpace?indentSpace:'';var s=indentSpace+'<'+objectName+'>';var isLeaf=false;if(!(anyObject instanceof Object)||anyObject instanceof Number||anyObject instanceof String||anyObject instanceof Boolean||anyObject instanceof Date){s+=Sarissa.escape(""+anyObject);isLeaf=true;}else{s+="\n";var isArrayItem=anyObject instanceof Array;for(var name in anyObject){s+=Sarissa.xmlize(anyObject[name],(isArrayItem?"array-item key=\""+name+"\"":name),indentSpace+"   ");}
s+=indentSpace;}
return(s+=(objectName.indexOf(' ')!=-1?"</array-item>\n":"</"+objectName+">\n"));};Sarissa.escape=function(sXml){return sXml.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;");};Sarissa.unescape=function(sXml){return sXml.replace(/&apos;/g,"'").replace(/&quot;/g,"\"").replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&amp;/g,"&");};Sarissa.updateCursor=function(oTargetElement,sValue){if(oTargetElement&&oTargetElement.style&&oTargetElement.style.cursor!=undefined){oTargetElement.style.cursor=sValue;}};Sarissa.updateContentFromURI=function(sFromUrl,oTargetElement,xsltproc,callback,skipCache){try{Sarissa.updateCursor(oTargetElement,"wait");var xmlhttp=new XMLHttpRequest();xmlhttp.open("GET",sFromUrl,true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4){try{var oDomDoc=xmlhttp.responseXML;if(oDomDoc&&Sarissa.getParseErrorText(oDomDoc)==Sarissa.PARSED_OK){Sarissa.updateContentFromNode(xmlhttp.responseXML,oTargetElement,xsltproc);callback(sFromUrl,oTargetElement);}
else{throw Sarissa.getParseErrorText(oDomDoc);}}
catch(e){if(callback){callback(sFromUrl,oTargetElement,e);}
else{throw e;}}}};if(skipCache){var oldage="Sat, 1 Jan 2000 00:00:00 GMT";xmlhttp.setRequestHeader("If-Modified-Since",oldage);}
xmlhttp.send("");}
catch(e){Sarissa.updateCursor(oTargetElement,"auto");if(callback){callback(sFromUrl,oTargetElement,e);}
else{throw e;}}};Sarissa.updateContentFromNode=function(oNode,oTargetElement,xsltproc){try{Sarissa.updateCursor(oTargetElement,"wait");Sarissa.clearChildNodes(oTargetElement);var ownerDoc=oNode.nodeType==Node.DOCUMENT_NODE?oNode:oNode.ownerDocument;if(ownerDoc.parseError&&ownerDoc.parseError.errorCode!=0){var pre=document.createElement("pre");pre.appendChild(document.createTextNode(Sarissa.getParseErrorText(ownerDoc)));oTargetElement.appendChild(pre);}
else{if(xsltproc){oNode=xsltproc.transformToDocument(oNode);}
if(oTargetElement.tagName.toLowerCase()=="textarea"||oTargetElement.tagName.toLowerCase()=="input"){oTargetElement.value=new XMLSerializer().serializeToString(oNode);}
else{if(oNode.nodeType==Node.DOCUMENT_NODE||oNode.ownerDocument.documentElement==oNode){oTargetElement.innerHTML=new XMLSerializer().serializeToString(oNode);}
else{oTargetElement.appendChild(oTargetElement.ownerDocument.importNode(oNode,true));}}}}
catch(e){throw e;}
finally{Sarissa.updateCursor(oTargetElement,"auto");}};Sarissa.formToQueryString=function(oForm){var qs="";for(var i=0;i<oForm.elements.length;i++){var oField=oForm.elements[i];var sFieldName=oField.getAttribute("name")?oField.getAttribute("name"):oField.getAttribute("id");if(sFieldName&&((!oField.disabled)||oField.type=="hidden")){switch(oField.type){case"hidden":case"text":case"textarea":case"password":qs+=sFieldName+"="+encodeURIComponent(oField.value)+"&";break;case"select-one":qs+=sFieldName+"="+encodeURIComponent(oField.options[oField.selectedIndex].value)+"&";break;case"select-multiple":for(var j=0;j<oField.length;j++){var optElem=oField.options[j];if(optElem.selected===true){qs+=sFieldName+"[]"+"="+encodeURIComponent(optElem.value)+"&";}}
break;case"checkbox":case"radio":if(oField.checked){qs+=sFieldName+"="+encodeURIComponent(oField.value)+"&";}
break;}}}
return qs.substr(0,qs.length-1);};Sarissa.updateContentFromForm=function(oForm,oTargetElement,xsltproc,callback){try{Sarissa.updateCursor(oTargetElement,"wait");var params=Sarissa.formToQueryString(oForm)+"&"+Sarissa.REMOTE_CALL_FLAG+"=true";var xmlhttp=new XMLHttpRequest();var bUseGet=oForm.getAttribute("method")&&oForm.getAttribute("method").toLowerCase()=="get";if(bUseGet){xmlhttp.open("GET",oForm.getAttribute("action")+"?"+params,true);}
else{xmlhttp.open('POST',oForm.getAttribute("action"),true);xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlhttp.setRequestHeader("Content-length",params.length);xmlhttp.setRequestHeader("Connection","close");}
xmlhttp.onreadystatechange=function(){try{if(xmlhttp.readyState==4){var oDomDoc=xmlhttp.responseXML;if(oDomDoc&&Sarissa.getParseErrorText(oDomDoc)==Sarissa.PARSED_OK){Sarissa.updateContentFromNode(xmlhttp.responseXML,oTargetElement,xsltproc);callback(oForm,oTargetElement);}
else{throw Sarissa.getParseErrorText(oDomDoc);}}}
catch(e){if(callback){callback(oForm,oTargetElement,e);}
else{throw e;}}};xmlhttp.send(bUseGet?"":params);}
catch(e){Sarissa.updateCursor(oTargetElement,"auto");if(callback){callback(oForm,oTargetElement,e);}
else{throw e;}}
return false;};A4J.AJAX={};A4J.AJAX.Stub=function(){};A4J.AJAX.XMLHttpRequest=function(query){this._query=query;this._documentElement=window.document.documentElement;};A4J.AJAX.XMLHttpRequest.prototype={_query:null,_timeout:0,_timeoutID:null,onready:null,_parsingStatus:Sarissa.PARSED_EMPTY,_errorMessage:"XML Response object not set",_contentType:null,_onerror:function(req,status,message){if(status!=599&&req.getResponseText()){A4J.AJAX.replacePage(req);}},onfinish:null,options:{},domEvt:null,form:null,_request:null,_aborted:false,_documentElement:null,setRequestTimeout:function(timeout){this._timeout=timeout;},send:function(){this._request=new XMLHttpRequest();var _this=this;this._request.onreadystatechange=function(){if(window.document.documentElement!=_this._documentElement){LOG.warn("Page for current request have been unloaded - abort processing");if(!_this._status_stopped){A4J.AJAX.status(_this.containerId,_this.options.status,false);_this._status_stopped=true;}
_this.abort();return;};LOG.debug("Reqest state : "+_this._request.readyState);if(_this._request.readyState==4){if(_this._aborted){A4J.AJAX.status(_this.containerId,_this.options.status,false);A4J.AJAX.popQueue(_this);return;};LOG.debug("Reqest end with state 4");if(_this._timeoutID){window.clearTimeout(_this._timeoutID);}
var requestStatus;var requestStatusText;try{requestStatus=_this._request.status;requestStatusText=_this._request.statusText;}catch(e){LOG.error("request don't have status code - network problem, "+e.message);requestStatus=599;requestStatusText="Network error";}
if(requestStatus==200){try{LOG.debug("Response  with content-type: "+_this.getResponseHeader('Content-Type'));LOG.debug("Full response content: ",_this.getResponseText());}catch(e){}
if(_this._request.responseXML){_this._parsingStatus=Sarissa.getParseErrorText(_this._request.responseXML);if(_this._parsingStatus==Sarissa.PARSED_OK&&Sarissa.setXpathNamespaces){Sarissa.setXpathNamespaces(_this._request.responseXML,"xmlns='http://www.w3.org/1999/xhtml'");}}
if(_this.onready){_this.onready(_this);}}else{_this._errorMessage="Reqest error, status : "+requestStatus+" "+requestStatusText;LOG.error(_this._errorMessage);if(typeof(_this._onerror)=="function"){_this._onerror(_this,requestStatus,_this._errorMessage);}
if(_this.onfinish)
{_this.onfinish(_this);}}
_this=undefined;}};try{LOG.debug("Start XmlHttpRequest");this._request.open('POST',this._query.getActionUrl(""),true);var contentType="application/x-www-form-urlencoded; charset=UTF-8";this._request.setRequestHeader("Content-Type",contentType);}catch(e){LOG.debug("XmlHttpRequest not support setRequestHeader - use GET instead of POST");this._request.open('GET',this._query.getActionUrl("")+"?"+this._query.getQueryString(),true);}
this._request.send(this._query.getQueryString());if(this._timeout>0){this._timeoutID=window.setTimeout(function(){LOG.warn("request stopped due to timeout");if(!_this._aborted){if(typeof(A4J.AJAX.onAbort)=="function"){A4J.AJAX.onAbort(_this);}}
_this._aborted=true;_this._request.onreadystatechange=A4J.AJAX.Stub;_this._request.abort();if(_this._onerror){_this._errorMessage="Request timeout";_this._onerror(_this,500,_this._errorMessage);}
if(_this.onfinish){_this.onfinish(_this);}
_this._request=undefined;_this=undefined;},this._timeout);}},abort:function(){this._oncomplete_aborted=true;if(!this._aborted){if(typeof(A4J.AJAX.onAbort)=="function"){A4J.AJAX.onAbort(this);}}
this._aborted=true;},getResponseText:function(){try{return this._request.responseText;}catch(e){return null;}},getError:function(){return this._errorMessage;},getParserStatus:function(){return this._parsingStatus;},getContentType:function(){if(!this._contentType){var contentType=this.getResponseHeader('Content-Type');if(contentType){var i=contentType.indexOf(';');if(i>=0){this._contentType=contentType.substring(0,i);}else{this._contentType=contentType;}}else{this._contentType="text/html";}}
return this._contentType;},getResponseHeader:function(name){var result;try{result=this._request.getResponseHeader(name);if(result===""){result=undefined;}}catch(e){}
if(!result){LOG.debug("Header "+name+" not found, search in <meta>");if(this._parsingStatus==Sarissa.PARSED_OK){var metas=this.getElementsByTagName("meta");for(var i=0;i<metas.length;i++){var meta=metas[i];LOG.debug("Find <meta name='"+meta.getAttribute('name')+"' content='"+meta.getAttribute('content')+"'>");if(meta.getAttribute("name")==name){result=meta.getAttribute("content");break;}}}}
return result;},getElementsByTagName:function(elementname,element){if(!element){element=this._request.responseXML;}
LOG.debug("search for elements by name '"+elementname+"' "+" in element "+element.nodeName);var elements;try
{elements=element.selectNodes(".//*[local-name()=\""+
elementname+"\"]");}
catch(ex){try{elements=element.getElementsByTagName(elementname);}catch(nf){LOG.debug("getElementsByTagName found no elements, "+nf.Message);}}
return elements;},getElementById:function(id){var oDoc=this._request.responseXML;if(oDoc){if(typeof(oDoc.getElementById)!='undefined'){LOG.debug("call getElementById for id= "+id);return oDoc.getElementById(id);}
else if(typeof(oDoc.selectSingleNode)!="undefined"){LOG.debug("call selectSingleNode for id= "+id);return oDoc.selectSingleNode("//*[@id='"+id+"']");}
else if(typeof(oDoc.nodeFromID)!="undefined"){LOG.debug("call nodeFromID for id= "+id);return oDoc.nodeFromID(id);}
LOG.error("No functions for getElementById found ");}else{LOG.debug("No parsed XML document in response");}
return null;},getJSON:function(id){var data;var dataElement=this.getElementById(id);if(dataElement){try{data=Sarissa.getText(dataElement,true);data=window.eval('('+data+')');}catch(e){LOG.error("Error on parsing JSON data "+e.message,data);}}
return data;},_evaluateScript:function(node){var includeComments=!A4J.AJAX.isXhtmlScriptMode();var newscript=A4J.AJAX.getText(node,includeComments);try{LOG.debug("Evaluate script replaced area in document: ",newscript);if(window.execScript){window.execScript(newscript);}else{window.eval(newscript);}
LOG.debug("Script evaluation succeeded");}catch(e){LOG.error("ERROR Evaluate script:  Error name: "+e.name+e.message?". Error message: "+e.message:"");}},evaluateQueueScript:function(){var queueScript=this.getElementById('org.ajax4jsf.queue_script');if(queueScript){this._evaluateScript(queueScript);}},evalScripts:function(node,isLast){var newscripts=this.getElementsByTagName("script",node);LOG.debug("Scripts in updated part count : "+newscripts.length);if(newscripts.length>0){var _this=this;window.setTimeout(function(){for(var i=0;i<newscripts.length;i++){_this._evaluateScript(newscripts[i]);}
newscripts=null;if(isLast)
{_this.doFinish();}
_this=undefined;},0);}else
{if(isLast)
{this.doFinish();}}},updatePagePart:function(id,isLast){var newnode=this.getElementById(id);if(!newnode)
{LOG.error("New node for ID "+id+" is not present in response");if(isLast)
{this.doFinish();}
return;}
var oldnode=window.document.getElementById(id);if(oldnode){if(window.RichFaces&&window.RichFaces.Memory){window.RichFaces.Memory.clean(oldnode,true);}
var anchor=oldnode.parentNode;if(!window.opera&&!A4J.AJAX.isWebkitBreakingAmps()&&oldnode.outerHTML&&!oldnode.tagName.match(/(tbody|thead|tfoot|tr|th|td)/i)){LOG.debug("Replace content of node by outerHTML()");if(!Sarissa._SARISSA_IS_IE||oldnode.tagName.toLowerCase()!="table"){try{oldnode.innerHTML="";}catch(e){LOG.error("Error to clear node content by innerHTML "+e.message);Sarissa.clearChildNodes(oldnode);}}
oldnode.outerHTML=new XMLSerializer().serializeToString(newnode);}else{Sarissa.clearChildNodes(oldnode);var importednode=window.document.importNode(newnode,true);LOG.debug("Replace content of node by replaceChild()");var oldGetElementById=null;A4J.AJAX.TestReplacedGetElementByIdVisibility();if(!A4J.AJAX._testReplacedGetElementByIdVisibility){LOG.debug("Temporarily substituting document.getElementById() to work around WebKit issue");oldGetElementById=document.getElementById;document.getElementById=function(id){var elt=oldGetElementById.apply(document,arguments);if(!elt){var id=arguments[0];LOG.debug("Element [@id='"+id+"'] was not found in document, trying to locate XPath match");try{var result=importednode.ownerDocument.evaluate("//*[@id='"+id+"']",importednode,null,XPathResult.ANY_UNORDERED_NODE_TYPE);if(result){elt=result.singleNodeValue;}
LOG.debug("XPath located: "+elt);}catch(e){LOG.error("Error locating [@id='"+id+"'] element: "+e.message);}}
return elt;};}
try{anchor.replaceChild(importednode,oldnode);}finally{if(oldGetElementById){LOG.debug("Restoring document.getElementById()");document.getElementById=oldGetElementById;}}}
if(!A4J.AJAX._scriptEvaluated){this.evalScripts(newnode,isLast);}
LOG.debug("Update part of page for Id: "+id+" successful");}else{LOG.warn("Node for replace by response with id "+id+" not found in document");if(!A4J.AJAX._scriptEvaluated&&isLast)
{this.doFinish();}}
if(A4J.AJAX._scriptEvaluated&&isLast)
{this.doFinish();}},doFinish:function(){if(this.onfinish){this.onfinish(this);}},appendNewHeadElements:function(callback){var includes=this._appendNewElements("script","src",null,null,["type","language","charset"]);var _this=this;includes.concat(this._appendNewElements("link","href","class",["component","user"],["type","rev","media"],{"class":"className"},function(element,script){_this._copyAttribute(element,script,"rel");}));if(includes.length==0){callback();return;}
A4J.AJAX.headElementsCounter=includes.length;var onReadyStateChange=function(){if(this.readyState=='loaded'||this.readyState=='complete'){this.onreadystatechange=null;this.onload=null;callback();}};var onLoad=function(){this.onreadystatechange=null;this.onload=null;callback();};for(var i=0;i<includes.length;i++)
{includes[i].onreadystatechange=onReadyStateChange;includes[i].onload=onLoad;}},_appendNewElements:function(tag,href,role,roles,attributes,mappings,callback){var head=document.getElementsByTagName("head")[0]||document.documentElement;var newscripts=this.getElementsByTagName(tag);var oldscripts=document.getElementsByTagName(tag);var mappedRole=(mappings&&mappings[role])||role;var elements=[];var roleAnchors={};if(roles){var i=0;for(var j=0;j<oldscripts.length;j++){var oldscript=oldscripts[j];var scriptRole=oldscript[mappedRole];for(;i<roles.length&&roles[i]!=scriptRole;i++){roleAnchors[roles[i]]=oldscript;}
if(i==roles.length){break;}}}
for(var i=0;i<newscripts.length;i++){var element=newscripts[i];var src=element.getAttribute(href);var elementRole;if(roles){elementRole=element.getAttribute(role);}
if(src){var exist=false;LOG.debug("<"+tag+"> in response with src="+src);for(var j=0;j<oldscripts.length;j++){if(this._noSessionHref(src)==this._noSessionHref(oldscripts[j].getAttribute(href))){LOG.debug("Such element exist in document");if(role){var oldRole=oldscripts[j][mappedRole];if((!elementRole^!oldRole)||(elementRole&&oldRole&&elementRole!=oldRole)){LOG.warn("Roles are different");}}
exist=true;break;}}
if(!exist){var script=document.createElement(tag);script.setAttribute(href,src);for(var j=0;j<attributes.length;j++){this._copyAttribute(element,script,attributes[j]);}
if(elementRole){script[mappedRole]=elementRole;}
LOG.debug("append element to document");for(var j=0;j<A4J.AJAX._headTransformers.length;j++){A4J.AJAX._headTransformers[j](script);}
var anchor=roleAnchors[elementRole];if(anchor&&anchor.parentNode){anchor.parentNode.insertBefore(script,anchor);}else{head.appendChild(script);}
if(callback){callback(element,script);}
if(tag!="link"||script.type.toLowerCase()=="text/javascript")elements.push(script);}}}
return elements;},_noSessionHref:function(href){var cref=href;if(href){var sessionid=href.lastIndexOf(";jsessionid=");if(sessionid>0){cref=href.substring(0,sessionid);var params=href.lastIndexOf("?");if(params>sessionid){cref=cref+href.substring(params);}}}
return cref;},_copyAttribute:function(src,dst,attr){var value=src.getAttribute(attr);if(value){dst.setAttribute(attr,value);}}};A4J.AJAX.Listener=function(onafterajax){this.onafterajax=onafterajax;};A4J.AJAX.AjaxListener=function(type,callback){this[type]=callback;};A4J.AJAX._listeners=[];A4J.AJAX.AddListener=function(listener){A4J.AJAX._listeners.push(listener);};A4J.AJAX.removeListeners=function(listener){A4J.AJAX._listeners=[];};A4J.AJAX.removeListener=function(listener){for(var i=A4J.AJAX._listeners.length-1;i>=0;i--){if(A4J.AJAX._listeners[i]==listener){A4J.AJAX._listeners.splice(i,1);}}};A4J.AJAX.HeadElementTransformer=function(elt){this.elt=elt;};A4J.AJAX._headTransformers=[];A4J.AJAX.AddHeadElementTransformer=function(listener){A4J.AJAX._headTransformers.push(listener);};A4J.AJAX.SetZeroRequestDelay=function(options){if(typeof options.requestDelay=="undefined"){options.requestDelay=0;}};A4J.AJAX._pollers={};A4J.AJAX.Poll=function(containerId,form,options){A4J.AJAX.StopPoll(options.pollId);if(!options.onerror){options.onerror=function(req,status,message){if(typeof(A4J.AJAX.onError)=="function"){A4J.AJAX.onError(req,status,message);}
A4J.AJAX.Poll(containerId,form,options);};}
if(!options.onqueuerequestdrop){options.onqueuerequestdrop=function(){A4J.AJAX.Poll(containerId,form,options);};}
A4J.AJAX.SetZeroRequestDelay(options);A4J.AJAX._pollers[options.pollId]=window.setTimeout(function(){A4J.AJAX._pollers[options.pollId]=undefined;if((typeof(options.onsubmit)=='function')&&(options.onsubmit()==false)){A4J.AJAX.Poll(containerId,form,options);}else{A4J.AJAX.Submit(containerId,form,null,options);}},options.pollinterval);};A4J.AJAX.StopPoll=function(Id){if(A4J.AJAX._pollers[Id]){window.clearTimeout(A4J.AJAX._pollers[Id]);A4J.AJAX._pollers[Id]=undefined;}};A4J.AJAX.Push=function(containerId,form,options){A4J.AJAX.StopPush(options.pushId);options.onerror=function(){A4J.AJAX.Push(containerId,form,options);};options.onqueuerequestdrop=function(){LOG.debug("Push main request dropped from queue");};A4J.AJAX._pollers[options.pushId]=window.setTimeout(function(){var request=new XMLHttpRequest();request.onreadystatechange=function(){if(request.readyState==4){try{if(request.status==200){if(request.getResponseHeader("Ajax-Push-Status")=="READY"){A4J.AJAX.SetZeroRequestDelay(options);A4J.AJAX.Submit(containerId,form||options.dummyForm,null,options);}}}catch(e){}
request=null;A4J.AJAX._pollers[options.pushId]=null;A4J.AJAX.Push(containerId,form,options);}}
A4J.AJAX.SendPush(request,options);},options.pushinterval);};A4J.AJAX.SendPush=function(request,options){var url=options.pushUrl||options.actionUrl;request.open('HEAD',url,true);request.setRequestHeader("Ajax-Push-Key",options.pushId);if(options.timeout){request.setRequestHeader("Timeout",options.timeout);}
request.send(null);}
A4J.AJAX.StopPush=function(Id){if(A4J.AJAX._pollers[Id]){window.clearTimeout(A4J.AJAX._pollers[Id]);A4J.AJAX._pollers[Id]=null;}};A4J.AJAX.CloneObject=function(obj,noFunctions){var cloned={};for(var n in obj){if(noFunctions&&typeof(evt[prop])=='function'){continue;}
cloned[n]=obj[n];}
return cloned;}
A4J.AJAX.SubmitForm=function(containerId,form,options){var opt=A4J.AJAX.CloneObject(options);if(A4J._formInput){LOG.debug("Form submitted by button "+A4J._formInput.id);opt.control=A4J._formInput;A4J._formInput=null;opt.submitByForm=true;}
A4J.AJAX.Submit(containerId,form,null,opt);}
A4J.AJAX.SubmiteventsQueue=function(eventsQueue){eventsQueue.submit();};A4J.AJAX.CloneEvent=function(evt){var domEvt;evt=evt||window.event||null;if(evt){try{domEvt=A4J.AJAX.CloneObject(evt,false);}catch(e){LOG.warn("Exception on clone event "+e.name+":"+e.message);}
LOG.debug("Have Event "+domEvt+" with properties: target: "+domEvt.target+", srcElement: "+domEvt.srcElement+", type: "+domEvt.type);}
return domEvt;};A4J.AJAX.PrepareQuery=function(containerId,formId,domEvt,options){for(var li=0;li<A4J.AJAX._listeners.length;li++){var listener=A4J.AJAX._listeners[li];if(listener.onbeforeajax){listener.onbeforeajax(formId,domEvt,options);}}
LOG.debug("Query preparation for form '"+formId+"' requested");var form=window.document.getElementById(formId);if((!form||form.nodeName.toUpperCase()!="FORM")&&domEvt){var srcElement=domEvt.target||domEvt.srcElement||null;if(srcElement){form=A4J.AJAX.locateForm(srcElement);};};if(!options.submitByForm&&form&&form.onsubmit){LOG.debug("Form have onsubmit function, call it");if(form.onsubmit()==false){return false;};};var tosend=new A4J.Query(containerId,form);tosend.appendFormControls(options.single,options.control);if(options.parameters){tosend.appendParameters(options.parameters);};if(options.actionUrl){tosend.setActionUrl(options.actionUrl);};return tosend;};A4J.AJAX.SubmitQuery=function(query,options,domEvt){var req=new A4J.AJAX.XMLHttpRequest(query);var form=query._form;var containerId=query._containerId;req.options=options;req.containerId=containerId;req.domEvt=domEvt;req.form=form;if(options.timeout){req.setRequestTimeout(options.timeout);};req.onready=A4J.AJAX.processResponse;if(options.onerror){req._onerror=options.onerror;}else if(typeof(A4J.AJAX.onError)=="function"){req._onerror=A4J.AJAX.onError;}
var _queueonerror=options.queueonerror;if(_queueonerror){var _onerror=req._onerror;if(_onerror){req._onerror=function(){_queueonerror.apply(this,arguments);_onerror.apply(this,arguments);};}else{req._onerror=_queueonerror;}}
req.onfinish=A4J.AJAX.finishRequest;LOG.debug("NEW AJAX REQUEST !!! with form: "+(form.id||form.name||form));A4J.AJAX.status(containerId,options.status,true);req.send();return req;};A4J.AJAX.Submit=function(containerId,formId,event,options){var domEvt=A4J.AJAX.CloneEvent(event);var query=A4J.AJAX.PrepareQuery(containerId,formId,domEvt,options);if(query){var queue=A4J.AJAX.EventQueue.getOrCreateQueue(options,formId);if(queue){queue.push(query,options,domEvt);}else{A4J.AJAX.SubmitQuery(query,options,domEvt);}}
return false;};A4J.AJAX.SubmitRequest=function(containerId,formId,event,options){var domEvt=A4J.AJAX.CloneEvent(event);var query=A4J.AJAX.PrepareQuery(containerId,formId,domEvt,options);if(query){A4J.AJAX.SubmitQuery(query,options,domEvt);}
return false;};A4J.AJAX.processResponseAfterUpdateHeadElements=function(req,ids)
{req.evaluateQueueScript();for(var k=0;k<ids.length;k++){var id=ids[k];LOG.debug("Update page part from call parameter for ID "+id);req.updatePagePart(id,k==ids.length-1);};}
A4J.AJAX.headElementsCounter=0;A4J.AJAX.processResponse=function(req){A4J.AJAX.TestScriptEvaluation();var options=req.options;var ajaxResponse=req.getResponseHeader('Ajax-Response');var expiredMsg=req.getResponseHeader('Ajax-Expired');if(expiredMsg&&typeof(A4J.AJAX.onExpired)=='function'){var loc=A4J.AJAX.onExpired(window.location,expiredMsg);if(loc){window.location=loc;return;}}
if(ajaxResponse!="true"){LOG.warn("No ajax response header ");var loc=req.getResponseHeader("Location");try{if(ajaxResponse=='redirect'&&loc){window.location=loc;}else if(ajaxResponse=="reload"){window.location.reload(true);}else{A4J.AJAX.replacePage(req);}}catch(e){LOG.error("Error redirect to new location ");}}else{if(req.getParserStatus()==Sarissa.PARSED_OK){if(options.onbeforedomupdate||options.queueonbeforedomupdate){var event=req.domEvt;var data=req.getJSON('_ajax:data');LOG.debug("Call local onbeforedomupdate function before replacing elemements");if(options.onbeforedomupdate){options.onbeforedomupdate(req,event,data);}
if(options.queueonbeforedomupdate){options.queueonbeforedomupdate(req,event,data);}}
var idsFromResponse=req.getResponseHeader("Ajax-Update-Ids");var ids;var callback=function(){if(A4J.AJAX.headElementsCounter!=0){LOG.debug("Script "+A4J.AJAX.headElementsCounter+" was loaded");--A4J.AJAX.headElementsCounter;}
if(A4J.AJAX.headElementsCounter==0){A4J.AJAX.processResponseAfterUpdateHeadElements(req,ids);}};if(options.affected){ids=options.affected;req.appendNewHeadElements(callback);}else if(idsFromResponse&&idsFromResponse!=""){LOG.debug("Update page by list of rendered areas from response "+idsFromResponse);ids=idsFromResponse.split(",");req.appendNewHeadElements(callback);}else{LOG.warn("No information in response about elements to replace");req.doFinish();}
var idsSpan=req.getElementById("ajax-view-state");LOG.debug("Hidden JSF state fields: "+idsSpan);if(idsSpan!=null){var namespace=options.parameters['org.ajax4jsf.portlet.NAMESPACE'];LOG.debug("Namespace for hidden view-state input fields is "+namespace);var anchor=namespace?window.document.getElementById(namespace):window.document;var inputs=anchor.getElementsByTagName("input");try{var newinputs=req.getElementsByTagName("input",idsSpan);A4J.AJAX.replaceViewState(inputs,newinputs);}catch(e){LOG.warn("No elements 'input' in response");}
try{var newinputs=req.getElementsByTagName("INPUT",idsSpan);A4J.AJAX.replaceViewState(inputs,newinputs);}catch(e){LOG.warn("No elements 'INPUT' in response");}}
for(var li=0;li<A4J.AJAX._listeners.length;li++){var listener=A4J.AJAX._listeners[li];if(listener.onafterajax){var data=req.getJSON('_ajax:data');listener.onafterajax(req,req.domEvt,data);}}
var focusId=req.getJSON("_A4J.AJAX.focus");if(focusId){LOG.debug("focus must be set to control "+focusId);var focusElement=false;if(req.form){focusElement=req.form.elements[focusId];}
if(!focusElement){LOG.debug("No control element "+focusId+" in submitted form");focusElement=document.getElementById(focusId);}
if(focusElement){LOG.debug("Set focus to control ");focusElement.focus();if(focusElement.select)focusElement.select();}else{LOG.warn("Element for set focus not found");}}else{LOG.debug("No focus information in response");}}else{LOG.error("Error parsing XML");LOG.error("Parse Error: "+req.getParserStatus());}}};A4J.AJAX.replacePage=function(req){if(!req.getResponseText()){LOG.warn("No content in response for replace current page");return;}
LOG.debug("replace all page content with response");var isIE=Sarissa._SARISSA_IS_IE;var oldDocOpen=window.document.open;if(isIE){LOG.debug("setup custom document.open method");window.document.open=function(sUrl,sName,sFeatures,bReplace){oldDocOpen(sUrl,sName,sFeatures,bReplace);}}
window.setTimeout(function(){var isDocOpen=false;try{var contentType=req.getContentType();var responseText=isIE?req.getResponseText().replace(/(<script(?!\s+src=))/igm,"$1 defer "):req.getResponseText();window.document.open(contentType,"replace");if(window.LOG){LOG.debug("window.document has opened for writing");}
isDocOpen=true;window.document.write(responseText);if(window.LOG){LOG.debug("window.document has been writed");}
window.document.close();if(window.LOG){LOG.debug("window.document has been closed for writing");}
if(isIE){window.location.reload(false);}}catch(e){if(window.LOG){LOG.debug("exception during write page content "+e.Message);}
if(isDocOpen){window.document.close();}
var oDomDoc=(new DOMParser()).parseFromString(req.getResponseText(),"text/xml");if(Sarissa.getParseErrorText(oDomDoc)==Sarissa.PARSED_OK){if(window.LOG){LOG.debug("response has parsed as DOM documnet.");}
Sarissa.clearChildNodes(window.document.documentElement);var docNodes=oDomDoc.documentElement.childNodes;for(var i=0;i<docNodes.length;i++){if(docNodes[i].nodeType==1){if(window.LOG){LOG.debug("append new node in document");}
var node=window.document.importNode(docNodes[i],true);window.document.documentElement.appendChild(node);}}}else{if(window.LOG){LOG.error("Error parsing response",Sarissa.getParseErrorText(oDomDoc));}}}finally{window.document.open=oldDocOpen;}
if(window.LOG){LOG.debug("page content has been replaced");}},0);}
A4J.AJAX.replaceViewState=function(inputs,newinputs){LOG.debug("Replace value for inputs: "+inputs.length+" by new values: "+newinputs.length);if((newinputs.length>0)&&(inputs.length>0)){for(var i=0;i<newinputs.length;i++){var newinput=newinputs[i];LOG.debug("Input in response: "+newinput.getAttribute("name"));for(var j=0;j<inputs.length;j++){var input=inputs[j];if(input.name==newinput.getAttribute("name")){LOG.debug("Found same input on page with type: "+input.type);input.value=newinput.getAttribute("value");}}}}};A4J.AJAX.finishRequest=function(request){var options=request.options;if(!request._oncomplete_aborted){var oncomp;try{oncomp=request.getElementById('org.ajax4jsf.oncomplete');}catch(e){LOG.warn("Error reading oncomplete from request "+e.message);}
if(oncomp){LOG.debug("Call request oncomplete function after processing updates");window.setTimeout(function(){var event=request.domEvt;var data;try{data=request.getJSON('_ajax:data');}catch(e){LOG.warn("Error reading data from request "+e.message);}
try{var target=null;if(event){target=event.target?event.target:event.srcElement;}
var newscript=Sarissa.getText(oncomp,true);var oncomplete=new Function("request","event","data",newscript);oncomplete.call(target,request,event,data);if(options.queueoncomplete){options.queueoncomplete.call(target,request,event,data);}}catch(e){LOG.error('Error evaluate oncomplete function '+e.Message);}
A4J.AJAX.status(request.containerId,options.status,false);},0);}else if(options.oncomplete||options.queueoncomplete){LOG.debug("Call local oncomplete function after processing updates");window.setTimeout(function(){var event=request.domEvt;var data;try{data=request.getJSON('_ajax:data');}catch(e){LOG.warn("Error reading data from request "+e.message);}
if(options.oncomplete){options.oncomplete(request,event,data);}
if(options.queueoncomplete){options.queueoncomplete(request,event,data);}
A4J.AJAX.status(request.containerId,options.status,false);},0);}else{LOG.debug("Processing updates finished, no oncomplete function to call");setTimeout(function(){A4J.AJAX.status(request.containerId,options.status,false);},0)}}else{LOG.debug("Aborted request, won't call oncomplete at all");setTimeout(function(){A4J.AJAX.status(request.containerId,options.status,false);},0)}
A4J.AJAX.popQueue(request);};A4J.AJAX.popQueue=function(request){if(request.shouldNotifyQueue&&request.queue){request.queue.pop();}};A4J.AJAX.getCursorPos=function(inp){if(inp.selectionEnd!=null)
return inp.selectionEnd;var range=document.selection.createRange();var isCollapsed=range.compareEndPoints("StartToEnd",range)==0;if(!isCollapsed)
range.collapse(false);var b=range.getBookmark();return b.charCodeAt(2)-2;}
A4J.AJAX.locateForm=function(obj){var parent=obj;while(parent&&parent.nodeName.toLowerCase()!='form'){parent=parent.parentNode;};return parent;};A4J.AJAX.getElementById=function(id,options){var namespace=options['org.ajax4jsf.portlet.NAMESPACE'];var anchor=namespace?window.document.getElementById(namespace):window.document;var element;if(anchor){element=anchor.getElementById(id);}else{LOG.error("No root element for portlet namespace "+namespace+" on page");}
return element;}
A4J.AJAX._requestsCounts={};A4J.AJAX.status=function(regionID,targetID,start){try{targetID=targetID||regionID+":status";A4J.AJAX._requestsCounts[targetID]=(A4J.AJAX._requestsCounts[targetID]||0)+(start?1:-1);var startElem=document.getElementById(targetID+".start");var stopElem=document.getElementById(targetID+".stop");if(A4J.AJAX._requestsCounts[targetID]>0){if(stopElem){stopElem.style.display="none";}
if(startElem){startElem.style.display="";}}else{if(startElem){startElem.style.display="none";}
if(stopElem){stopElem.style.display="";}}
if(start){if(startElem&&(typeof(startElem.onstart)=='function')){startElem.onstart();}}else{if(stopElem&&(typeof(stopElem.onstop)=='function')){stopElem.onstop();}}}catch(e){LOG.error("Exception on status change: ");}};A4J.Query=function(containerId,form){this._query={AJAXREQUEST:containerId};this._oldSubmit=null;this._form=form;this._containerId=containerId;this._actionUrl=(this._form.action)?this._form.action:this._form;};A4J.Query.prototype={_form:null,_actionUrl:null,_ext:"",_query:{},_oldSubmit:null,_pageBase:window.location.protocol+"//"+window.location.host,hidden:function(control){this._value_query(control);if((control.name.length>4)&&(control.name.lastIndexOf("_idcl")==(control.name.length-5))){control.value="";}else if((control.name.length>12)&&(control.name.lastIndexOf("_link_hidden_")==(control.name.length-13))){control.value="";}},text:function(control){this._value_query(control);},textarea:function(control){this._value_query(control);},'select-one':function(control){if(control.selectedIndex!=-1){this._value_query(control);}},password:function(control){this._value_query(control);},file:function(control){this._value_query(control);},radio:function(control){this._radio_query(control);},checkbox:function(control){this._check_query(control);},'select-multiple':function(control){var cname=control.name;var options=control.options;for(var i=0;i<control.length;i++){var option=options[i];this._addOption(cname,option);}},_addOption:function(cname,option){if(option.selected){if(!this._query[cname]){this._query[cname]=[];}
this._query[cname][this._query[cname].length]=option.value;}},image:function(control,action){if(action)this._value_query(control);},button:function(control,action){if(action)this._value_query(control);},submit:function(control,action){if(action){this._value_query(control);}},link:function(control,action){if(action){this._value_query(control);if(control.parameters){this.appendParameters(control.parameters);}}},input:function(control,action){if(action){this.link(control,action);if(control.control){this.appendControl(control.control,action);}}},appendControl:function(control,action){if(this[control.type]){this[control.type](control,action);}else{this._appendById(control.id||control);}},appendFormControls:function(hiddenOnly,actionControl){try{var elems=this._form.elements;if(elems){var k=0;for(k=0;k<elems.length;k++){var element=elems[k];if(element==actionControl){continue;}
try{if(!hiddenOnly||element.type=="hidden"){this.appendControl(element,false);}}catch(ee){LOG.error("exception in building query ( append form control ) "+ee);}}}}catch(e){LOG.warn("Error with append form controls to query "+e)}
if(actionControl){this.appendControl(actionControl,true);}},appendParameters:function(parameters){for(k in parameters){if(typeof Object.prototype[k]=='undefined'){LOG.debug("parameter "+k+" with value "+parameters[k]);this.appendParameter(k,parameters[k]);}}},setActionUrl:function(actionUrl){this._actionUrl=actionUrl;},getActionUrl:function(ext){var actionUrl=this._actionUrl;var ask=actionUrl.indexOf('?');if(actionUrl.substring(0,1)=='/'){actionUrl=this._pageBase+actionUrl;}
if(!ext)ext=this._ext;if(ask>=0)
{return actionUrl.substring(0,ask)+ext+actionUrl.substring(ask);}
else return actionUrl+ext;},getQueryString:function(){var qs="";var iname;var querySegments=[];var paramName;for(var k in this._query){if(typeof Object.prototype[k]=='undefined'){iname=this._query[k];paramName=this._encode(k);if(iname instanceof Object){for(var l=0;l<iname.length;l++){querySegments.push(paramName);querySegments.push("=");querySegments.push(this._encode(iname[l]));querySegments.push("&");}}else{querySegments.push(paramName);querySegments.push("=");querySegments.push(this._encode(iname));querySegments.push("&");}}}
qs=querySegments.join("");LOG.debug("QueryString: "+qs);return qs;},_appendById:function(id){this.appendParameter(this._form.id+"_link_hidden_",id);},_value_query:function(control){if(control.name){LOG.debug("Append "+control.type+" control "+control.name+" with value ["+control.value+"] and value attribute ["+control.getAttribute('value')+"]");if(null!=control.value){this.appendParameter(control.name,control.value);}}else{LOG.debug("Ignored "+control.type+" no-name control with value ["+control.value+"] and value attribute ["+control.getAttribute('value')+"]");}},_check_query:function(control){if(control.checked){this.appendParameter(control.name,control.value?control.value:"on");}},_radio_query:function(control){if(control.checked){this.appendParameter(control.name,control.value?control.value:"");}},appendParameter:function(cname,value){if(!this._query[cname]){this._query[cname]=value;return;}else if(!(this._query[cname]instanceof Object)){this._query[cname]=[this._query[cname]];}
this._query[cname][this._query[cname].length]=value;},_encode:function(string){try{return encodeURIComponent(string);}catch(e){var str=escape(string);return str.split('+').join('%2B');}}}
A4J.AJAX.getText=function(oNode,includeComment){var s="";var nodes=oNode.childNodes;for(var i=0;i<nodes.length;i++){var node=nodes[i];var nodeType=node.nodeType;if(nodeType==Node.TEXT_NODE||nodeType==Node.CDATA_SECTION_NODE||(includeComment&&nodeType==Node.COMMENT_NODE)){s+=node.data;}else if(nodeType==Node.ELEMENT_NODE||nodeType==Node.DOCUMENT_NODE||nodeType==Node.DOCUMENT_FRAGMENT_NODE){s+=arguments.callee(node,includeComment);}}
return s;}
A4J.AJAX.isWebkitBreakingAmps=function(){if(!this._webkitBreakingAmps){var elt=document.createElement("div");elt.innerHTML="<a href='#a=a&#38;b=b'>link</a>";var link=elt.firstChild;if(link&&link.getAttribute&&/&#38;b=b$/.test(link.getAttribute('href'))){this._webkitBreakingAmps=2;}else{this._webkitBreakingAmps=1;}}
return this._webkitBreakingAmps>1;};A4J.AJAX.isXhtmlScriptMode=function(){if(!this._xhtmlScriptMode){var elt=document.createElement("div");elt.innerHTML="<script type='text/javascript'><!--\r\n/**/\r\n//--></script>";var commentFound=false;var s=elt.firstChild;while(s){if(s.nodeType==Node.ELEMENT_NODE){var c=s.firstChild;while(c){if(c.nodeType==Node.COMMENT_NODE){commentFound=true;break;}
c=c.nextSibling;}
break;}
s=s.nextSibling;}
if(commentFound){this._xhtmlScriptMode=2;}else{this._xhtmlScriptMode=1;}}
return this._xhtmlScriptMode>1;}
A4J.AJAX._scriptEvaluated=false;A4J.AJAX.TestScriptEvaluation=function(){if((!document.all||window.opera)&&!A4J.AJAX._scriptTested){try{var oDomDoc=Sarissa.getDomDocument();var _span=document.createElement("span");document.body.appendChild(_span);var xmlString="<html xmlns='http://www.w3.org/1999/xhtml'><sc"+"ript>A4J.AJAX._scriptEvaluated=true;</scr"+"ipt></html>";oDomDoc=(new DOMParser()).parseFromString(xmlString,"text/xml");var _script=oDomDoc.getElementsByTagName("script")[0];if(!window.opera&&!A4J.AJAX.isWebkitBreakingAmps()&&_span.outerHTML){_span.outerHTML=new XMLSerializer().serializeToString(_script);}else{var importednode;importednode=window.document.importNode(_script,true);document.body.replaceChild(importednode,_span);}}catch(e){};}
A4J.AJAX._scriptTested=true;}
A4J.AJAX.TestReplacedGetElementByIdVisibility=function(){if(!A4J.AJAX._replacedGetElementByIdVisibilityTested){A4J.AJAX._replacedGetElementByIdVisibilityTested=true;A4J.AJAX.TestScriptEvaluation();if(A4J.AJAX._scriptEvaluated){try{A4J.AJAX._testReplacedGetElementByIdVisibility=true;var _span=document.createElement("span");document.body.appendChild(_span);var xmlString="<html xmlns='http://www.w3.org/1999/xhtml'><span id='_A4J_AJAX_TestReplacedGetElementByIdVisibility'><sc"+"ript>A4J.AJAX._testReplacedGetElementByIdVisibility = !!(document.getElementById('_A4J_AJAX_TestReplacedGetElementByIdVisibility'));</scr"+"ipt></span></html>";oDomDoc=(new DOMParser()).parseFromString(xmlString,"text/xml");var _newSpan=oDomDoc.getElementsByTagName("span")[0];var importednode;importednode=window.document.importNode(_newSpan,true);document.body.replaceChild(importednode,_span);document.body.removeChild(importednode);}catch(e){LOG.error("Error testing replaced elements getElementById() visibility: "+e.message);}}}};A4J.AJAX._eventQueues={};A4J.AJAX.EventQueue=function(){var DROP_NEW='dropNew';var DROP_NEXT='dropNext';var FIRE_NEW='fireNew';var FIRE_NEXT='fireNext';var extend=function(target,source){for(var property in source){target[property]=source[property];}};var extendOptions=function(options){var opts={};for(var name in options){opts[name]=options[name];}
for(var name in this.requestOptions){if(typeof opts[name]=='undefined'){opts[name]=this.requestOptions[name];}}
return opts;};var QueueEntry=function(){var ctor=function(queue,query,options,event){this.queue=queue;this.query=query;this.options=options;this.event=event;this.similarityGroupingId=this.options.similarityGroupingId;this.eventsCount=1;};extend(ctor.prototype,{isIgnoreDupResponses:function(){return this.options.ignoreDupResponses;},getSimilarityGroupingId:function(){return this.similarityGroupingId;},setSimilarityGroupingId:function(id){this.similarityGroupingId=id;},submit:function(){this.query.appendParameter("AJAX:EVENTS_COUNT",this.eventsCount);this.request=A4J.AJAX.SubmitQuery(this.query,this.options,this.event)
var queue=this.queue;this.request.queue=queue;return this.request;},abort:function(){if(this.request&&!this.aborted){this.aborted=true;this.request.abort();}},ondrop:function(){var callback=this.options.onqueuerequestdrop;if(callback){callback.call(this.queue,this.query,this.options,this.event);}},onRequestDelayPassed:function(){this.readyToSubmit=true;this.queue.submitFirst();},startTimer:function(){var delay=this.options.requestDelay;LOG.debug("Queue will wait "+(delay||0)+"ms before submit");if(delay){var _this=this;this.timer=setTimeout(function(){try{_this.onRequestDelayPassed();}finally{_this.timer=undefined;_this=undefined;}},delay);}else{this.onRequestDelayPassed();}},stopTimer:function(){if(this.timer){clearTimeout(this.timer);this.timer=undefined;}},clearEntry:function(){this.stopTimer();if(this.request){this.request.shouldNotifyQueue=false;this.request=undefined;}},getEventsCount:function(){return this.eventsCount;},setEventsCount:function(newCount){this.eventsCount=newCount;},getEventArguments:function(){return[this.query,this.options,this.event];}});return ctor;}();var Queue=function(name,queueOptions,requestOptions){this.items=new Array();this.name=name;this.queueOptions=queueOptions||{};this.requestOptions=requestOptions||{};};extend(Queue.prototype,{submitFirst:function(){var firstItem=this.items[0];if(firstItem){if(!firstItem.request){if(firstItem.readyToSubmit){LOG.debug("Queue '"+this.name+"' will submit request NOW");var req=firstItem.submit();req.shouldNotifyQueue=true;if(this.requestOptions.queueonsubmit){this.requestOptions.queueonsubmit.call(this,req);}}else{LOG.debug("First item is not ready to be submitted yet");}}}else{LOG.debug("Queue is empty now");}},getSize:function(){return this.items.length;},getMaximumSize:function(){return this.queueOptions.size;},isFull:function(){return this.getSize()==this.getMaximumSize();},getSizeExceededBehavior:function(){var policy=this.queueOptions.sizeExceededBehavior;if(!policy){policy=DROP_NEXT;}
return policy;},queue:function(entry){this.items.push(entry);if(this.queueOptions.onrequestqueue){LOG.debug("Call onrequestqueue handler");this.queueOptions.onrequestqueue.apply(this,entry.getEventArguments());}},dequeue:function(){var entry=this.items.shift();if(this.queueOptions.onrequestdequeue){LOG.debug("Call onrequestdequeue handler");this.queueOptions.onrequestdequeue.apply(this,entry.getEventArguments());}},push:function(query,opts,event){var options=extendOptions.call(this,opts);var entry=new QueueEntry(this,query,options,event);var similarityGroupingId=entry.getSimilarityGroupingId();var lastIdx=this.items.length-1;var last=this.items[lastIdx];var handled=false;if(last){if(last.getSimilarityGroupingId()==similarityGroupingId){LOG.debug("Similar request currently in queue '"+this.name+"'");if(last.request){LOG.debug("Request has already beeen sent to server");if(entry.isIgnoreDupResponses()){LOG.debug("Duplicate responses ignore requested");if(!this.isFull()){last.abort();LOG.debug("Response for the current request will be ignored");}else{LOG.debug("Queue is full, cannot set to ignore response for the current request");}}}else{LOG.debug("Combine similar requests and reset timer");handled=true;last.stopTimer();entry.setEventsCount(last.getEventsCount()+1);this.items[lastIdx]=entry;entry.startTimer();}}else{LOG.debug("Last queue entry is not the last anymore. Stopping requestDelay timer and marking entry as ready for submission")
last.stopTimer();last.setSimilarityGroupingId(undefined);last.readyToSubmit=true;}}
if(!handled){if(this.isFull()){LOG.debug("Queue '"+this.name+"' is currently full")
var b=this.getSizeExceededBehavior();var nextIdx=0;while(this.items[nextIdx]&&this.items[nextIdx].request){nextIdx++;}
if(this.queueOptions.onsizeexceeded){this.queueOptions.onsizeexceeded.apply(this,entry.getEventArguments());}
if(b==DROP_NEW){LOG.debug("Queue '"+this.name+"' is going to drop new item");entry.ondrop();handled=true;}else if(b==DROP_NEXT){LOG.debug("Queue '"+this.name+"' is going to drop ["+nextIdx+"] item that is the next one");var nextEntry=this.items.splice(nextIdx,1)[0];if(nextEntry){LOG.debug("Item dropped from queue");nextEntry.stopTimer();nextEntry.ondrop();}else{LOG.debug("There's no such item, will handle new request instead");entry.ondrop();handled=true;}}else if(b==FIRE_NEW){LOG.debug("Queue '"+this.name+"' will submit new request");entry.submit();handled=true;}else if(b==FIRE_NEXT){LOG.debug("Queue '"+this.name+"' is going to drop and fire immediately ["+nextIdx+"] item that is the next one");var nextEntry=this.items.splice(nextIdx,1)[0];if(nextEntry){LOG.debug("Item dropped from queue");nextEntry.stopTimer();nextEntry.submit();}else{LOG.debug("There's no such item, will handle new request instead");entry.submit();handled=true;}}}
this.submitFirst();}
if(!handled){this.queue(entry);LOG.debug("New request added to queue '"+this.name+"'. Queue similarityGroupingId changed to "+similarityGroupingId);entry.startTimer();}},pop:function(){LOG.debug("After request: queue '"+this.name+"'");this.dequeue();LOG.debug("There are "+this.items.length+" requests more in this queue");this.submitFirst();},clear:function(){var length=this.items.length;for(var i=0;i<this.items.length;i++){this.items[i].clearEntry();}
this.items.splice(0,length);}});return Queue;}();A4J.AJAX.EventQueue.DEFAULT_QUEUE_NAME="org.richfaces.queue.global";A4J.AJAX.EventQueue.getQueue=function(name){return A4J.AJAX._eventQueues[name];};A4J.AJAX.EventQueue.getQueues=function(){return A4J.AJAX._eventQueues;};A4J.AJAX.EventQueue.addQueue=function(queue){var name=queue.name;if(A4J.AJAX._eventQueues[name]){throw"Queue already registered";}else{LOG.debug("Adding queue '"+name+"' to queues registry");A4J.AJAX._eventQueues[name]=queue;}};A4J.AJAX.EventQueue.removeQueue=function(name){var queue=A4J.AJAX._eventQueues[name];if(queue){queue.clear();}
delete A4J.AJAX._eventQueues[name];};A4J.AJAX.EventQueue.getOrCreateQueue=function(){var qualifyName=function(name,prefix){if(prefix){return prefix+":"+name;}else{return name;}};var qualifyNamespace=function(name,prefix){if(prefix){return prefix+name;}else{return name;}};return function(options,formId){var queueName=options.eventsQueue;var namespace=options.namespace;var formQueueName;var viewQueueName;var implicitQueueName;if(queueName){LOG.debug("Look up queue with name '"+queueName+"'");formQueueName=qualifyName(queueName,formId);viewQueueName=qualifyNamespace(queueName,namespace);implicitQueueName=viewQueueName;}else{LOG.debug("Look up queue with default name");formQueueName=formId;viewQueueName=qualifyNamespace(A4J.AJAX.EventQueue.DEFAULT_QUEUE_NAME,namespace);implicitQueueName=options.implicitEventsQueue;}
var queue=A4J.AJAX._eventQueues[formQueueName];if(!queue){queue=A4J.AJAX._eventQueues[viewQueueName];if(!queue){if(implicitQueueName){queue=A4J.AJAX._eventQueues[implicitQueueName];if(!queue){LOG.debug("Creating new transient queue '"+implicitQueueName+"' with default settings");queue=new A4J.AJAX.EventQueue(implicitQueueName);queue._transient=true;A4J.AJAX.EventQueue.addQueue(queue);}else{LOG.debug("Found transient queue '"+implicitQueueName+"'");}}}else{LOG.debug("Found view queue '"+viewQueueName+"'");}}else{LOG.debug("Found form queue '"+formQueueName+"'");}
return queue;}}();(function(){var observer=function(){var queues=A4J.AJAX.EventQueue.getQueues();for(var queueName in queues){var queue=queues[queueName];queue.clear();}};if(window.addEventListener){window.addEventListener("unload",observer,false);}else{window.attachEvent("onunload",observer);}})();if(!window.LOG){window.LOG={};}
LOG.Level=function(name,priority,color){this.name=name;this.priority=priority;if(color){this.color=color;}}
LOG.OFF=new LOG.Level("off",1000);LOG.FATAL=new LOG.Level("fatal",900,"red");LOG.ERROR=new LOG.Level("error",800,"red");LOG.WARN=new LOG.Level("warn",500,"yellow");LOG.INFO=new LOG.Level("info",400,"blue");LOG.DEBUG=new LOG.Level("debug",300,"darkblue");LOG.ALL=new LOG.Level("all",100);LOG.A4J_DEBUG=new LOG.Level("a4j_debug",0,"green");LOG.LEVEL=LOG.OFF;LOG._window=null;LOG.transmitToServer=true;LOG.consoleDivId="logConsole";LOG.styles={a4j_debug:"green",debug:"darkblue",info:"blue",warn:"yellow",error:"red",fatal:"red"};LOG.a4j_debug=function(msg,pre)
{LOG._log(msg,LOG.A4J_DEBUG,pre);}
LOG.debug=function(msg,pre)
{LOG._log(msg,LOG.DEBUG,pre);}
LOG.info=function(msg,pre)
{LOG._log(msg,LOG.INFO,pre);}
LOG.warn=function(msg,pre)
{LOG._log(msg,LOG.WARN,pre);}
LOG.error=function(msg,pre)
{LOG._log(msg,LOG.ERROR,pre);}
LOG.fatal=function(msg,pre)
{LOG._log(msg,LOG.FATAL,pre);}
LOG.registerPopup=function(hotkey,name,width,height,level){if(!LOG._onkeydown){LOG._onkeydown=document.onkeydown;}
var key=hotkey.toUpperCase();document.onkeydown=function(e){if(window.event){e=window.event;};if(String.fromCharCode(e.keyCode)==key&e.shiftKey&e.ctrlKey){LOG.LEVEL=level;LOG.openWindow(name,'width='+width+',height='+height+',toolbar=no,scrollbars=yes,location=no,statusbar=no,menubar=no,resizable=yes,left = '+((screen.width-width)/2)+',top ='+((screen.height-height)/2));}else{if(LOG._onkeydown)LOG._onkeydown(e);};}}
LOG.clear=function(){if(LOG._window&&LOG._window.document){consoleDiv=LOG._window.document.body;}else{consoleDiv=window.document.getElementById(LOG.consoleDivId);}
consoleDiv.innerHTML='<button onclick="LOG.clear()">Clear</button><br />';}
LOG.openWindow=function(name,features){if(LOG._window){LOG._window.focus();}else{LOG._window=window.open("",name,features);LOG._window.LOG=LOG;LOG.clear();var _LOG=LOG;LOG._window.onunload=function(){_LOG._window.LOG=null;_LOG._window=null;_LOG.LEVEL=_LOG.OFF;_LOG=undefined;}}}
LOG._log=function(msg,logLevel,pre)
{if(logLevel.priority>=LOG.LEVEL.priority){LOG._logToConsole(msg,logLevel,pre);if(LOG.transmitToServer)
{LOG._logToServer(msg,logLevel);}}}
LOG._time=function(){var currentTime=new Date();var hours=currentTime.getHours();var minutes=currentTime.getMinutes();if(minutes<10){minutes="0"+minutes;}
var seconds=currentTime.getSeconds();if(seconds<10){seconds="0"+seconds;}
var millisec=currentTime.getTime()%1000;if(millisec<100){millisec="0"+millisec;}
if(millisec<10){millisec="0"+millisec;}
return hours+":"+minutes+":"+seconds+","+millisec;}
LOG._logToConsole=function(msg,logLevel,preformat)
{var consoleDiv;var doc;if(LOG._window&&LOG._window.document){doc=LOG._window.document;consoleDiv=LOG._window.document.body;}else{doc=window.document;consoleDiv=window.document.getElementById(LOG.consoleDivId);}
if(consoleDiv)
{var span=doc.createElement("span");span.style.color=logLevel.color;span.appendChild(doc.createTextNode(logLevel.name+"["+LOG._time()+"]: "));var div=doc.createElement("div");var textnode=doc.createTextNode(msg);div.appendChild(span);div.appendChild(textnode);if(preformat){var pre=doc.createElement("span");textnode=doc.createTextNode(preformat);pre.appendChild(textnode);div.appendChild(pre);}
consoleDiv.appendChild(div);}
else
{}}
LOG._logToServer=function(msg,logLevel)
{var data=logLevel.name.substring(0,1)+msg;}
LOG._requestCallBack=function()
{}
if(!window.RichFaces){window.RichFaces={};}
if(!window.RichFaces.Memory){window.RichFaces.Memory={nodeCleaners:{},componentCleaners:{},addCleaner:function(name,cleaner){this.nodeCleaners[name]=cleaner;},addComponentCleaner:function(name,cleaner,checker){this.componentCleaners[name]={cleaner:cleaner,checker:checker};},applyCleaners:function(node,isAjax,componentNodes){for(var name in this.nodeCleaners){this.nodeCleaners[name](node,isAjax);}
for(var name in this.componentCleaners){if(this.componentCleaners[name].checker(node,isAjax))
componentNodes.push(node);}},_clean:function(oldNode,isAjax,componentNodes){if(oldNode){this.applyCleaners(oldNode,isAjax,componentNodes);var all=oldNode.all;if(all){var counter=0;var length=all.length;for(var counter=0;counter<length;counter++){this.applyCleaners(all[counter],isAjax,componentNodes);}}else{var node=oldNode.firstChild;while(node){this._clean(node,isAjax,componentNodes);node=node.nextSibling;}}}},_cleanComponentNodes:function(oldNodes,isAjax){for(var i=0;i<oldNodes.length;i++){var node=oldNodes[i];for(var name in this.componentCleaners){this.componentCleaners[name].cleaner(node,isAjax);}}},clean:function(oldNode,isAjax){var componentNodes=[];this._clean(oldNode,isAjax,componentNodes);this._cleanComponentNodes(componentNodes,isAjax);componentNodes=null;}};window.RichFaces.Memory.addComponentCleaner("richfaces",function(node,isAjax){var component=node.component;if(component){var destructorName=component["rich:destructor"];if(destructorName){var destructor=component[destructorName];if(destructor){destructor.call(component,isAjax);}}}},function(node,isAjax){return(node.component&&node.component["rich:destructor"]);});if(window.attachEvent){window.attachEvent("onunload",function(){var memory=window.RichFaces.Memory;memory.clean(document);memory.clean(window);});}}
var Prototype={Version:'1.6.0.3',Browser:{IE:!!(window.attachEvent&&navigator.userAgent.indexOf('Opera')===-1),Opera:navigator.userAgent.indexOf('Opera')>-1,WebKit:navigator.userAgent.indexOf('AppleWebKit/')>-1,Gecko:navigator.userAgent.indexOf('Gecko')>-1&&navigator.userAgent.indexOf('KHTML')===-1,MobileSafari:!!navigator.userAgent.match(/Apple.*Mobile.*Safari/)},BrowserFeatures:{XPath:!!document.evaluate,SelectorsAPI:!!document.querySelector,ElementExtensions:!!window.HTMLElement,SpecificElementExtensions:document.createElement('div')['__proto__']&&document.createElement('div')['__proto__']!==document.createElement('form')['__proto__']},ScriptFragment:'<script[^>]*>([\\S\\s]*?)<\/script>',JSONFilter:/^\/\*-secure-([\s\S]*)\*\/\s*$/,emptyFunction:function(){},K:function(x){return x}};if(Prototype.Browser.MobileSafari)
Prototype.BrowserFeatures.SpecificElementExtensions=false;var Class={create:function(){var parent=null,properties=$A(arguments);if(Object.isFunction(properties[0]))
parent=properties.shift();function klass(){this.initialize.apply(this,arguments);}
Object.extend(klass,Class.Methods);klass.superclass=parent;klass.subclasses=[];if(parent){var subclass=function(){};subclass.prototype=parent.prototype;klass.prototype=new subclass;parent.subclasses.push(klass);}
for(var i=0;i<properties.length;i++)
klass.addMethods(properties[i]);if(!klass.prototype.initialize)
klass.prototype.initialize=Prototype.emptyFunction;klass.prototype.constructor=klass;return klass;}};Class.Methods={addMethods:function(source){var ancestor=this.superclass&&this.superclass.prototype;var properties=Object.keys(source);if(!Object.keys({toString:true}).length)
properties.push("toString","valueOf");for(var i=0,length=properties.length;i<length;i++){var property=properties[i],value=source[property];if(ancestor&&Object.isFunction(value)&&value.argumentNames().first()=="$super"){var method=value;value=(function(m){return function(){return ancestor[m].apply(this,arguments)};})(property).wrap(method);value.valueOf=method.valueOf.bind(method);value.toString=method.toString.bind(method);}
this.prototype[property]=value;}
return this;}};var Abstract={};Object.extend=function(destination,source){for(var property in source)
destination[property]=source[property];return destination;};Object.extend(Object,{inspect:function(object){try{if(Object.isUndefined(object))return'undefined';if(object===null)return'null';return object.inspect?object.inspect():String(object);}catch(e){if(e instanceof RangeError)return'...';throw e;}},toJSON:function(object){var type=typeof object;switch(type){case'undefined':case'function':case'unknown':return;case'boolean':return object.toString();}
if(object===null)return'null';if(object.toJSON)return object.toJSON();if(Object.isElement(object))return;var results=[];for(var property in object){var value=Object.toJSON(object[property]);if(!Object.isUndefined(value))
results.push(property.toJSON()+': '+value);}
return'{'+results.join(', ')+'}';},toQueryString:function(object){return $H(object).toQueryString();},toHTML:function(object){return object&&object.toHTML?object.toHTML():String.interpret(object);},keys:function(object){var keys=[];for(var property in object)
keys.push(property);return keys;},values:function(object){var values=[];for(var property in object)
values.push(object[property]);return values;},clone:function(object){return Object.extend({},object);},isElement:function(object){return!!(object&&object.nodeType==1);},isArray:function(object){return object!=null&&typeof object=="object"&&'splice'in object&&'join'in object;},isHash:function(object){return object instanceof Hash;},isFunction:function(object){return typeof object=="function";},isString:function(object){return typeof object=="string";},isNumber:function(object){return typeof object=="number";},isUndefined:function(object){return typeof object=="undefined";}});Object.extend(Function.prototype,{argumentNames:function(){var names=this.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1].replace(/\s+/g,'').split(',');return names.length==1&&!names[0]?[]:names;},bind:function(){if(arguments.length<2&&Object.isUndefined(arguments[0]))return this;var __method=this,args=$A(arguments),object=args.shift();return function(){return __method.apply(object,args.concat($A(arguments)));}},bindAsEventListener:function(){var __method=this,args=$A(arguments),object=args.shift();return function(event){return __method.apply(object,[event||window.event].concat(args));}},curry:function(){if(!arguments.length)return this;var __method=this,args=$A(arguments);return function(){return __method.apply(this,args.concat($A(arguments)));}},delay:function(){var __method=this,args=$A(arguments),timeout=args.shift()*1000;return window.setTimeout(function(){return __method.apply(__method,args);},timeout);},defer:function(){var args=[0.01].concat($A(arguments));return this.delay.apply(this,args);},wrap:function(wrapper){var __method=this;return function(){return wrapper.apply(this,[__method.bind(this)].concat($A(arguments)));}},methodize:function(){if(this._methodized)return this._methodized;var __method=this;return this._methodized=function(){return __method.apply(null,[this].concat($A(arguments)));};}});Date.prototype.toJSON=function(){return'"'+this.getUTCFullYear()+'-'+
(this.getUTCMonth()+1).toPaddedString(2)+'-'+
this.getUTCDate().toPaddedString(2)+'T'+
this.getUTCHours().toPaddedString(2)+':'+
this.getUTCMinutes().toPaddedString(2)+':'+
this.getUTCSeconds().toPaddedString(2)+'Z"';};var Try={these:function(){var returnValue;for(var i=0,length=arguments.length;i<length;i++){var lambda=arguments[i];try{returnValue=lambda();break;}catch(e){}}
return returnValue;}};RegExp.prototype.match=RegExp.prototype.test;RegExp.escape=function(str){return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g,'\\$1');};var PeriodicalExecuter=Class.create({initialize:function(callback,frequency){this.callback=callback;this.frequency=frequency;this.currentlyExecuting=false;this.registerCallback();},registerCallback:function(){this.timer=setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},execute:function(){this.callback(this);},stop:function(){if(!this.timer)return;clearInterval(this.timer);this.timer=null;},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.execute();}finally{this.currentlyExecuting=false;}}}});Object.extend(String,{interpret:function(value){return value==null?'':String(value);},specialChar:{'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','\\':'\\\\'}});Object.extend(String.prototype,{gsub:function(pattern,replacement){var result='',source=this,match;replacement=arguments.callee.prepareReplacement(replacement);while(source.length>0){if(match=source.match(pattern)){result+=source.slice(0,match.index);result+=String.interpret(replacement(match));source=source.slice(match.index+match[0].length);}else{result+=source,source='';}}
return result;},sub:function(pattern,replacement,count){replacement=this.gsub.prepareReplacement(replacement);count=Object.isUndefined(count)?1:count;return this.gsub(pattern,function(match){if(--count<0)return match[0];return replacement(match);});},scan:function(pattern,iterator){this.gsub(pattern,iterator);return String(this);},truncate:function(length,truncation){length=length||30;truncation=Object.isUndefined(truncation)?'...':truncation;return this.length>length?this.slice(0,length-truncation.length)+truncation:String(this);},strip:function(){return this.replace(/^\s+/,'').replace(/\s+$/,'');},stripTags:function(){return this.replace(/<\/?[^>]+>/gi,'');},stripScripts:function(){return this.replace(new RegExp(Prototype.ScriptFragment,'img'),'');},extractScripts:function(){var matchAll=new RegExp(Prototype.ScriptFragment,'img');var matchOne=new RegExp(Prototype.ScriptFragment,'im');return(this.match(matchAll)||[]).map(function(scriptTag){var result=(scriptTag.match(matchOne)||['',''])[1];result=result.replace(/</,"&lt;").replace(/\s*&lt;!--[^\r\n]*/,"");return result;});},evalScripts:function(){return this.extractScripts().map(function(script){return eval(script)});},escapeHTML:function(){var self=arguments.callee;self.text.data=this;return self.div.innerHTML;},unescapeHTML:function(){var div=new Element('div');div.innerHTML=this.stripTags();return div.childNodes[0]?(div.childNodes.length>1?$A(div.childNodes).inject('',function(memo,node){return memo+node.nodeValue}):div.childNodes[0].nodeValue):'';},toQueryParams:function(separator){var match=this.strip().match(/([^?#]*)(#.*)?$/);if(!match)return{};return match[1].split(separator||'&').inject({},function(hash,pair){if((pair=pair.split('='))[0]){var key=decodeURIComponent(pair.shift());var value=pair.length>1?pair.join('='):pair[0];if(value!=undefined)value=decodeURIComponent(value);if(key in hash){if(!Object.isArray(hash[key]))hash[key]=[hash[key]];hash[key].push(value);}
else hash[key]=value;}
return hash;});},toArray:function(){return this.split('');},succ:function(){return this.slice(0,this.length-1)+
String.fromCharCode(this.charCodeAt(this.length-1)+1);},times:function(count){return count<1?'':new Array(count+1).join(this);},camelize:function(){var parts=this.split('-'),len=parts.length;if(len==1)return parts[0];var camelized=this.charAt(0)=='-'?parts[0].charAt(0).toUpperCase()+parts[0].substring(1):parts[0];for(var i=1;i<len;i++)
camelized+=parts[i].charAt(0).toUpperCase()+parts[i].substring(1);return camelized;},capitalize:function(){return this.charAt(0).toUpperCase()+this.substring(1).toLowerCase();},underscore:function(){return this.gsub(/::/,'/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase();},dasherize:function(){return this.gsub(/_/,'-');},inspect:function(useDoubleQuotes){var escapedString=this.gsub(/[\x00-\x1f\\]/,function(match){var character=String.specialChar[match[0]];return character?character:'\\u00'+match[0].charCodeAt().toPaddedString(2,16);});if(useDoubleQuotes)return'"'+escapedString.replace(/"/g,'\\"')+'"';return"'"+escapedString.replace(/'/g,'\\\'')+"'";},toJSON:function(){return this.inspect(true);},unfilterJSON:function(filter){return this.sub(filter||Prototype.JSONFilter,'#{1}');},isJSON:function(){var str=this;if(str.blank())return false;str=this.replace(/\\./g,'@').replace(/"[^"\\\n\r]*"/g,'');return(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);},evalJSON:function(sanitize){var json=this.unfilterJSON();try{if(!sanitize||json.isJSON())return eval('('+json+')');}catch(e){}
throw new SyntaxError('Badly formed JSON string: '+this.inspect());},include:function(pattern){return this.indexOf(pattern)>-1;},startsWith:function(pattern){return this.indexOf(pattern)===0;},endsWith:function(pattern){var d=this.length-pattern.length;return d>=0&&this.lastIndexOf(pattern)===d;},empty:function(){return this=='';},blank:function(){return/^\s*$/.test(this);},interpolate:function(object,pattern){return new Template(this,pattern).evaluate(object);}});if(Prototype.Browser.WebKit||Prototype.Browser.IE)Object.extend(String.prototype,{escapeHTML:function(){return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');},unescapeHTML:function(){return this.stripTags().replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');}});String.prototype.gsub.prepareReplacement=function(replacement){if(Object.isFunction(replacement))return replacement;var template=new Template(replacement);return function(match){return template.evaluate(match)};};String.prototype.parseQuery=String.prototype.toQueryParams;Object.extend(String.prototype.escapeHTML,{div:document.createElement('div'),text:document.createTextNode('')});String.prototype.escapeHTML.div.appendChild(String.prototype.escapeHTML.text);var Template=Class.create({initialize:function(template,pattern){this.template=template.toString();this.pattern=pattern||Template.Pattern;},evaluate:function(object){if(Object.isFunction(object.toTemplateReplacements))
object=object.toTemplateReplacements();return this.template.gsub(this.pattern,function(match){if(object==null)return'';var before=match[1]||'';if(before=='\\')return match[2];var ctx=object,expr=match[3];var pattern=/^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;match=pattern.exec(expr);if(match==null)return before;while(match!=null){var comp=match[1].startsWith('[')?match[2].gsub('\\\\]',']'):match[1];ctx=ctx[comp];if(null==ctx||''==match[3])break;expr=expr.substring('['==match[3]?match[1].length:match[0].length);match=pattern.exec(expr);}
return before+String.interpret(ctx);});}});Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;var $break={};var Enumerable={each:function(iterator,context){var index=0;try{this._each(function(value){iterator.call(context,value,index++);});}catch(e){if(e!=$break)throw e;}
return this;},eachSlice:function(number,iterator,context){var index=-number,slices=[],array=this.toArray();if(number<1)return array;while((index+=number)<array.length)
slices.push(array.slice(index,index+number));return slices.collect(iterator,context);},all:function(iterator,context){iterator=iterator||Prototype.K;var result=true;this.each(function(value,index){result=result&&!!iterator.call(context,value,index);if(!result)throw $break;});return result;},any:function(iterator,context){iterator=iterator||Prototype.K;var result=false;this.each(function(value,index){if(result=!!iterator.call(context,value,index))
throw $break;});return result;},collect:function(iterator,context){iterator=iterator||Prototype.K;var results=[];this.each(function(value,index){results.push(iterator.call(context,value,index));});return results;},detect:function(iterator,context){var result;this.each(function(value,index){if(iterator.call(context,value,index)){result=value;throw $break;}});return result;},findAll:function(iterator,context){var results=[];this.each(function(value,index){if(iterator.call(context,value,index))
results.push(value);});return results;},grep:function(filter,iterator,context){iterator=iterator||Prototype.K;var results=[];if(Object.isString(filter))
filter=new RegExp(filter);this.each(function(value,index){if(filter.match(value))
results.push(iterator.call(context,value,index));});return results;},include:function(object){if(Object.isFunction(this.indexOf))
if(this.indexOf(object)!=-1)return true;var found=false;this.each(function(value){if(value==object){found=true;throw $break;}});return found;},inGroupsOf:function(number,fillWith){fillWith=Object.isUndefined(fillWith)?null:fillWith;return this.eachSlice(number,function(slice){while(slice.length<number)slice.push(fillWith);return slice;});},inject:function(memo,iterator,context){this.each(function(value,index){memo=iterator.call(context,memo,value,index);});return memo;},invoke:function(method){var args=$A(arguments).slice(1);return this.map(function(value){return value[method].apply(value,args);});},max:function(iterator,context){iterator=iterator||Prototype.K;var result;this.each(function(value,index){value=iterator.call(context,value,index);if(result==null||value>=result)
result=value;});return result;},min:function(iterator,context){iterator=iterator||Prototype.K;var result;this.each(function(value,index){value=iterator.call(context,value,index);if(result==null||value<result)
result=value;});return result;},partition:function(iterator,context){iterator=iterator||Prototype.K;var trues=[],falses=[];this.each(function(value,index){(iterator.call(context,value,index)?trues:falses).push(value);});return[trues,falses];},pluck:function(property){var results=[];this.each(function(value){results.push(value[property]);});return results;},reject:function(iterator,context){var results=[];this.each(function(value,index){if(!iterator.call(context,value,index))
results.push(value);});return results;},sortBy:function(iterator,context){return this.map(function(value,index){return{value:value,criteria:iterator.call(context,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.map();},zip:function(){var iterator=Prototype.K,args=$A(arguments);if(Object.isFunction(args.last()))
iterator=args.pop();var collections=[this].concat(args).map($A);return this.map(function(value,index){return iterator(collections.pluck(index));});},size:function(){return this.toArray().length;},inspect:function(){return'#<Enumerable:'+this.toArray().inspect()+'>';}};Object.extend(Enumerable,{map:Enumerable.collect,find:Enumerable.detect,select:Enumerable.findAll,filter:Enumerable.findAll,member:Enumerable.include,entries:Enumerable.toArray,every:Enumerable.all,some:Enumerable.any});function $A(iterable){if(!iterable)return[];if(iterable.toArray)return iterable.toArray();var length=iterable.length||0,results=new Array(length);while(length--)results[length]=iterable[length];return results;}
if(Prototype.Browser.WebKit){$A=function(iterable){if(!iterable)return[];if(!(typeof iterable==='function'&&typeof iterable.length==='number'&&typeof iterable.item==='function')&&iterable.toArray)
return iterable.toArray();var length=iterable.length||0,results=new Array(length);while(length--)results[length]=iterable[length];return results;};}
Array.from=$A;Object.extend(Array.prototype,Enumerable);if(!Array.prototype._reverse)Array.prototype._reverse=Array.prototype.reverse;Object.extend(Array.prototype,{_each:function(iterator){for(var i=0,length=this.length;i<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!=null;});},flatten:function(){return this.inject([],function(array,value){return array.concat(Object.isArray(value)?value.flatten():[value]);});},without:function(){var values=$A(arguments);return this.select(function(value){return!values.include(value);});},reverse:function(inline){return(inline!==false?this:this.toArray())._reverse();},reduce:function(){return this.length>1?this:this[0];},uniq:function(sorted){return this.inject([],function(array,value,index){if(0==index||(sorted?array.last()!=value:!array.include(value)))
array.push(value);return array;});},intersect:function(array){return this.uniq().findAll(function(item){return array.detect(function(value){return item===value});});},clone:function(){return[].concat(this);},size:function(){return this.length;},inspect:function(){return'['+this.map(Object.inspect).join(', ')+']';},toJSON:function(){var results=[];this.each(function(object){var value=Object.toJSON(object);if(!Object.isUndefined(value))results.push(value);});return'['+results.join(', ')+']';}});if(Object.isFunction(Array.prototype.forEach))
Array.prototype._each=Array.prototype.forEach;if(!Array.prototype.indexOf)Array.prototype.indexOf=function(item,i){i||(i=0);var length=this.length;if(i<0)i=length+i;for(;i<length;i++)
if(this[i]===item)return i;return-1;};if(!Array.prototype.lastIndexOf)Array.prototype.lastIndexOf=function(item,i){i=isNaN(i)?this.length:(i<0?this.length+i:i)+1;var n=this.slice(0,i).reverse().indexOf(item);return(n<0)?n:i-n-1;};Array.prototype.toArray=Array.prototype.clone;function $w(string){if(!Object.isString(string))return[];string=string.strip();return string?string.split(/\s+/):[];}
if(Prototype.Browser.Opera){Array.prototype.concat=function(){var array=[];for(var i=0,length=this.length;i<length;i++)array.push(this[i]);for(var i=0,length=arguments.length;i<length;i++){if(Object.isArray(arguments[i])){for(var j=0,arrayLength=arguments[i].length;j<arrayLength;j++)
array.push(arguments[i][j]);}else{array.push(arguments[i]);}}
return array;};}
Object.extend(Number.prototype,{toColorPart:function(){return this.toPaddedString(2,16);},succ:function(){return this+1;},times:function(iterator,context){$R(0,this,true).each(iterator,context);return this;},toPaddedString:function(length,radix){var string=this.toString(radix||10);return'0'.times(length-string.length)+string;},toJSON:function(){return isFinite(this)?this.toString():'null';}});$w('abs round ceil floor').each(function(method){Number.prototype[method]=Math[method].methodize();});function $H(object){return new Hash(object);};var Hash=Class.create(Enumerable,(function(){function toQueryPair(key,value){if(Object.isUndefined(value))return key;return key+'='+encodeURIComponent(String.interpret(value));}
return{initialize:function(object){this._object=Object.isHash(object)?object.toObject():Object.clone(object);},_each:function(iterator){for(var key in this._object){var value=this._object[key],pair=[key,value];pair.key=key;pair.value=value;iterator(pair);}},set:function(key,value){return this._object[key]=value;},get:function(key){if(this._object[key]!==Object.prototype[key])
return this._object[key];},unset:function(key){var value=this._object[key];delete this._object[key];return value;},toObject:function(){return Object.clone(this._object);},keys:function(){return this.pluck('key');},values:function(){return this.pluck('value');},index:function(value){var match=this.detect(function(pair){return pair.value===value;});return match&&match.key;},merge:function(object){return this.clone().update(object);},update:function(object){return new Hash(object).inject(this,function(result,pair){result.set(pair.key,pair.value);return result;});},toQueryString:function(){return this.inject([],function(results,pair){var key=encodeURIComponent(pair.key),values=pair.value;if(values&&typeof values=='object'){if(Object.isArray(values))
return results.concat(values.map(toQueryPair.curry(key)));}else results.push(toQueryPair(key,values));return results;}).join('&');},inspect:function(){return'#<Hash:{'+this.map(function(pair){return pair.map(Object.inspect).join(': ');}).join(', ')+'}>';},toJSON:function(){return Object.toJSON(this.toObject());},clone:function(){return new Hash(this);}}})());Hash.prototype.toTemplateReplacements=Hash.prototype.toObject;Hash.from=$H;var ObjectRange=Class.create(Enumerable,{initialize:function(start,end,exclusive){this.start=start;this.end=end;this.exclusive=exclusive;},_each:function(iterator){var value=this.start;while(this.include(value)){iterator(value);value=value.succ();}},include:function(value){if(value<this.start)
return false;if(this.exclusive)
return value<this.end;return value<=this.end;}});var $R=function(start,end,exclusive){return new ObjectRange(start,end,exclusive);};var Ajax={getTransport:function(){return Try.these(function(){return new XMLHttpRequest()},function(){return new ActiveXObject('Msxml2.XMLHTTP')},function(){return new ActiveXObject('Microsoft.XMLHTTP')})||false;},activeRequestCount:0};Ajax.Responders={responders:[],_each:function(iterator){this.responders._each(iterator);},register:function(responder){if(!this.include(responder))
this.responders.push(responder);},unregister:function(responder){this.responders=this.responders.without(responder);},dispatch:function(callback,request,transport,json){this.each(function(responder){if(Object.isFunction(responder[callback])){try{responder[callback].apply(responder,[request,transport,json]);}catch(e){}}});}};Object.extend(Ajax.Responders,Enumerable);Ajax.Responders.register({onCreate:function(){Ajax.activeRequestCount++},onComplete:function(){Ajax.activeRequestCount--}});Ajax.Base=Class.create({initialize:function(options){this.options={method:'post',asynchronous:true,contentType:'application/x-www-form-urlencoded',encoding:'UTF-8',parameters:'',evalJSON:true,evalJS:true};Object.extend(this.options,options||{});this.options.method=this.options.method.toLowerCase();if(Object.isString(this.options.parameters))
this.options.parameters=this.options.parameters.toQueryParams();else if(Object.isHash(this.options.parameters))
this.options.parameters=this.options.parameters.toObject();}});Ajax.Request=Class.create(Ajax.Base,{_complete:false,initialize:function($super,url,options){$super(options);this.transport=Ajax.getTransport();this.request(url);},request:function(url){this.url=url;this.method=this.options.method;var params=Object.clone(this.options.parameters);if(!['get','post'].include(this.method)){params['_method']=this.method;this.method='post';}
this.parameters=params;if(params=Object.toQueryString(params)){if(this.method=='get')
this.url+=(this.url.include('?')?'&':'?')+params;else if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))
params+='&_=';}
try{var response=new Ajax.Response(this);if(this.options.onCreate)this.options.onCreate(response);Ajax.Responders.dispatch('onCreate',this,response);this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);if(this.options.asynchronous)this.respondToReadyState.bind(this).defer(1);this.transport.onreadystatechange=this.onStateChange.bind(this);this.setRequestHeaders();this.body=this.method=='post'?(this.options.postBody||params):null;this.transport.send(this.body);if(!this.options.asynchronous&&this.transport.overrideMimeType)
this.onStateChange();}
catch(e){this.dispatchException(e);}},onStateChange:function(){var readyState=this.transport.readyState;if(readyState>1&&!((readyState==4)&&this._complete))
this.respondToReadyState(this.transport.readyState);},setRequestHeaders:function(){var headers={'X-Requested-With':'XMLHttpRequest','X-Prototype-Version':Prototype.Version,'Accept':'text/javascript, text/html, application/xml, text/xml, */*'};if(this.method=='post'){headers['Content-type']=this.options.contentType+
(this.options.encoding?'; charset='+this.options.encoding:'');if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005)
headers['Connection']='close';}
if(typeof this.options.requestHeaders=='object'){var extras=this.options.requestHeaders;if(Object.isFunction(extras.push))
for(var i=0,length=extras.length;i<length;i+=2)
headers[extras[i]]=extras[i+1];else
$H(extras).each(function(pair){headers[pair.key]=pair.value});}
for(var name in headers)
this.transport.setRequestHeader(name,headers[name]);},success:function(){var status=this.getStatus();return!status||(status>=200&&status<300);},getStatus:function(){try{return this.transport.status||0;}catch(e){return 0}},respondToReadyState:function(readyState){var state=Ajax.Request.Events[readyState],response=new Ajax.Response(this);if(state=='Complete'){try{this._complete=true;(this.options['on'+response.status]||this.options['on'+(this.success()?'Success':'Failure')]||Prototype.emptyFunction)(response,response.headerJSON);}catch(e){this.dispatchException(e);}
var contentType=response.getHeader('Content-type');if(this.options.evalJS=='force'||(this.options.evalJS&&this.isSameOrigin()&&contentType&&contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
this.evalResponse();}
try{(this.options['on'+state]||Prototype.emptyFunction)(response,response.headerJSON);Ajax.Responders.dispatch('on'+state,this,response,response.headerJSON);}catch(e){this.dispatchException(e);}
if(state=='Complete'){this.transport.onreadystatechange=Prototype.emptyFunction;}},isSameOrigin:function(){var m=this.url.match(/^\s*https?:\/\/[^\/]*/);return!m||(m[0]=='#{protocol}//#{domain}#{port}'.interpolate({protocol:location.protocol,domain:document.domain,port:location.port?':'+location.port:''}));},getHeader:function(name){try{return this.transport.getResponseHeader(name)||null;}catch(e){return null}},evalResponse:function(){try{return eval((this.transport.responseText||'').unfilterJSON());}catch(e){this.dispatchException(e);}},dispatchException:function(exception){(this.options.onException||Prototype.emptyFunction)(this,exception);Ajax.Responders.dispatch('onException',this,exception);}});Ajax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];Ajax.Response=Class.create({initialize:function(request){this.request=request;var transport=this.transport=request.transport,readyState=this.readyState=transport.readyState;if((readyState>2&&!Prototype.Browser.IE)||readyState==4){this.status=this.getStatus();this.statusText=this.getStatusText();this.responseText=String.interpret(transport.responseText);this.headerJSON=this._getHeaderJSON();}
if(readyState==4){var xml=transport.responseXML;this.responseXML=Object.isUndefined(xml)?null:xml;this.responseJSON=this._getResponseJSON();}},status:0,statusText:'',getStatus:Ajax.Request.prototype.getStatus,getStatusText:function(){try{return this.transport.statusText||'';}catch(e){return''}},getHeader:Ajax.Request.prototype.getHeader,getAllHeaders:function(){try{return this.getAllResponseHeaders();}catch(e){return null}},getResponseHeader:function(name){return this.transport.getResponseHeader(name);},getAllResponseHeaders:function(){return this.transport.getAllResponseHeaders();},_getHeaderJSON:function(){var json=this.getHeader('X-JSON');if(!json)return null;json=decodeURIComponent(escape(json));try{return json.evalJSON(this.request.options.sanitizeJSON||!this.request.isSameOrigin());}catch(e){this.request.dispatchException(e);}},_getResponseJSON:function(){var options=this.request.options;if(!options.evalJSON||(options.evalJSON!='force'&&!(this.getHeader('Content-type')||'').include('application/json'))||this.responseText.blank())
return null;try{return this.responseText.evalJSON(options.sanitizeJSON||!this.request.isSameOrigin());}catch(e){this.request.dispatchException(e);}}});Ajax.Updater=Class.create(Ajax.Request,{initialize:function($super,container,url,options){this.container={success:(container.success||container),failure:(container.failure||(container.success?null:container))};options=Object.clone(options);var onComplete=options.onComplete;options.onComplete=(function(response,json){this.updateContent(response.responseText);if(Object.isFunction(onComplete))onComplete(response,json);}).bind(this);$super(url,options);},updateContent:function(responseText){var receiver=this.container[this.success()?'success':'failure'],options=this.options;if(!options.evalScripts)responseText=responseText.stripScripts();if(receiver=$(receiver)){if(options.insertion){if(Object.isString(options.insertion)){var insertion={};insertion[options.insertion]=responseText;receiver.insert(insertion);}
else options.insertion(receiver,responseText);}
else receiver.update(responseText);}}});Ajax.PeriodicalUpdater=Class.create(Ajax.Base,{initialize:function($super,container,url,options){$super(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.options.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(response){if(this.options.decay){this.decay=(response.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=response.responseText;}
this.timer=this.onTimerEvent.bind(this).delay(this.decay*this.frequency);},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options);}});function $(element){if(arguments.length>1){for(var i=0,elements=[],length=arguments.length;i<length;i++)
elements.push($(arguments[i]));return elements;}
if(Object.isString(element))
element=document.getElementById(element);return Element.extend(element);}
if(Prototype.BrowserFeatures.XPath){document._getElementsByXPath=function(expression,parentElement){var results=[];var query=document.evaluate(expression,$(parentElement)||document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);for(var i=0,length=query.snapshotLength;i<length;i++)
results.push(Element.extend(query.snapshotItem(i)));return results;};}
if(!window.Node)var Node={};if(!Node.ELEMENT_NODE){Object.extend(Node,{ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12});}
(function(){var element=this.Element;this.Element=function(tagName,attributes){attributes=attributes||{};tagName=tagName.toLowerCase();var cache=Element.cache;if(Prototype.Browser.IE&&attributes.name){tagName='<'+tagName+' name="'+attributes.name+'">';delete attributes.name;return Element.writeAttribute(document.createElement(tagName),attributes);}
if(!cache[tagName])cache[tagName]=Element.extend(document.createElement(tagName));return Element.writeAttribute(cache[tagName].cloneNode(false),attributes);};Object.extend(this.Element,element||{});if(element)this.Element.prototype=element.prototype;}).call(window);Element.cache={};Element.Methods={visible:function(element){return $(element).style.display!='none';},toggle:function(element){element=$(element);Element[Element.visible(element)?'hide':'show'](element);return element;},hide:function(element){element=$(element);element.style.display='none';return element;},show:function(element){element=$(element);element.style.display='';return element;},remove:function(element){element=$(element);element.parentNode.removeChild(element);return element;},update:function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();if(Object.isElement(content))return element.update().insert(content);content=Object.toHTML(content);element.innerHTML=content.stripScripts();content.evalScripts.bind(content).defer();return element;},replace:function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();else if(!Object.isElement(content)){content=Object.toHTML(content);var range=element.ownerDocument.createRange();range.selectNode(element);content.evalScripts.bind(content).defer();content=range.createContextualFragment(content.stripScripts());}
element.parentNode.replaceChild(content,element);return element;},insert:function(element,insertions){element=$(element);if(Object.isString(insertions)||Object.isNumber(insertions)||Object.isElement(insertions)||(insertions&&(insertions.toElement||insertions.toHTML)))
insertions={bottom:insertions};var content,insert,tagName,childNodes;for(var position in insertions){content=insertions[position];position=position.toLowerCase();insert=Element._insertionTranslations[position];if(content&&content.toElement)content=content.toElement();if(Object.isElement(content)){insert(element,content);continue;}
content=Object.toHTML(content);tagName=((position=='before'||position=='after')?element.parentNode:element).tagName.toUpperCase();childNodes=Element._getContentFromAnonymousElement(tagName,content.stripScripts());if(position=='top'||position=='after')childNodes.reverse();childNodes.each(insert.curry(element));content.evalScripts.bind(content).defer();}
return element;},wrap:function(element,wrapper,attributes){element=$(element);if(Object.isElement(wrapper))
$(wrapper).writeAttribute(attributes||{});else if(Object.isString(wrapper))wrapper=new Element(wrapper,attributes);else wrapper=new Element('div',wrapper);if(element.parentNode)
element.parentNode.replaceChild(wrapper,element);wrapper.appendChild(element);return wrapper;},inspect:function(element){element=$(element);var result='<'+element.tagName.toLowerCase();$H({'id':'id','className':'class'}).each(function(pair){var property=pair.first(),attribute=pair.last();var value=(element[property]||'').toString();if(value)result+=' '+attribute+'='+value.inspect(true);});return result+'>';},recursivelyCollect:function(element,property){element=$(element);var elements=[];while(element=element[property])
if(element.nodeType==1)
elements.push(Element.extend(element));return elements;},ancestors:function(element){return $(element).recursivelyCollect('parentNode');},descendants:function(element){return $(element).select("*");},firstDescendant:function(element){element=$(element).firstChild;while(element&&element.nodeType!=1)element=element.nextSibling;return $(element);},immediateDescendants:function(element){if(!(element=$(element).firstChild))return[];while(element&&element.nodeType!=1)element=element.nextSibling;if(element)return[element].concat($(element).nextSiblings());return[];},previousSiblings:function(element){return $(element).recursivelyCollect('previousSibling');},nextSiblings:function(element){return $(element).recursivelyCollect('nextSibling');},siblings:function(element){element=$(element);return element.previousSiblings().reverse().concat(element.nextSiblings());},match:function(element,selector){if(Object.isString(selector))
selector=new Selector(selector);return selector.match($(element));},up:function(element,expression,index){element=$(element);if(arguments.length==1)return $(element.parentNode);var ancestors=element.ancestors();return Object.isNumber(expression)?ancestors[expression]:Selector.findElement(ancestors,expression,index);},down:function(element,expression,index){element=$(element);if(arguments.length==1)return element.firstDescendant();return Object.isNumber(expression)?element.descendants()[expression]:Element.select(element,expression)[index||0];},previous:function(element,expression,index){element=$(element);if(arguments.length==1)return $(Selector.handlers.previousElementSibling(element));var previousSiblings=element.previousSiblings();return Object.isNumber(expression)?previousSiblings[expression]:Selector.findElement(previousSiblings,expression,index);},next:function(element,expression,index){element=$(element);if(arguments.length==1)return $(Selector.handlers.nextElementSibling(element));var nextSiblings=element.nextSiblings();return Object.isNumber(expression)?nextSiblings[expression]:Selector.findElement(nextSiblings,expression,index);},select:function(){var args=$A(arguments),element=$(args.shift());return Selector.findChildElements(element,args);},adjacent:function(){var args=$A(arguments),element=$(args.shift());return Selector.findChildElements(element.parentNode,args).without(element);},identify:function(element){element=$(element);var id=element.readAttribute('id'),self=arguments.callee;if(id)return id;do{id='anonymous_element_'+self.counter++}while($(id));element.writeAttribute('id',id);return id;},readAttribute:function(element,name){element=$(element);if(Prototype.Browser.IE){var t=Element._attributeTranslations.read;if(t.values[name])return t.values[name](element,name);if(t.names[name])name=t.names[name];if(name.include(':')){return(!element.attributes||!element.attributes[name])?null:element.attributes[name].value;}}
return element.getAttribute(name);},writeAttribute:function(element,name,value){element=$(element);var attributes={},t=Element._attributeTranslations.write;if(typeof name=='object')attributes=name;else attributes[name]=Object.isUndefined(value)?true:value;for(var attr in attributes){name=t.names[attr]||attr;value=attributes[attr];if(t.values[attr])name=t.values[attr](element,value);if(value===false||value===null)
element.removeAttribute(name);else if(value===true)
element.setAttribute(name,name);else element.setAttribute(name,value);}
return element;},getHeight:function(element){return $(element).getDimensions().height;},getWidth:function(element){return $(element).getDimensions().width;},classNames:function(element){return new Element.ClassNames(element);},hasClassName:function(element,className){if(!(element=$(element)))return;var elementClassName=element.className;return(elementClassName.length>0&&(elementClassName==className||new RegExp("(^|\\s)"+className+"(\\s|$)").test(elementClassName)));},addClassName:function(element,className){if(!(element=$(element)))return;if(!element.hasClassName(className))
element.className+=(element.className?' ':'')+className;return element;},removeClassName:function(element,className){if(!(element=$(element)))return;element.className=element.className.replace(new RegExp("(^|\\s+)"+className+"(\\s+|$)"),' ').strip();return element;},toggleClassName:function(element,className){if(!(element=$(element)))return;return element[element.hasClassName(className)?'removeClassName':'addClassName'](className);},cleanWhitespace:function(element){element=$(element);var node=element.firstChild;while(node){var nextNode=node.nextSibling;if(node.nodeType==3&&!/\S/.test(node.nodeValue))
element.removeChild(node);node=nextNode;}
return element;},empty:function(element){return $(element).innerHTML.blank();},descendantOf:function(element,ancestor){element=$(element),ancestor=$(ancestor);if(element.compareDocumentPosition)
return(element.compareDocumentPosition(ancestor)&8)===8;if(ancestor.contains)
return ancestor.contains(element)&&ancestor!==element;while(element=element.parentNode)
if(element==ancestor)return true;return false;},scrollTo:function(element){element=$(element);var pos=element.cumulativeOffset();window.scrollTo(pos[0],pos[1]);return element;},getStyle:function(element,style){element=$(element);style=style=='float'?'cssFloat':style.camelize();var value=element.style[style];if(!value||value=='auto'){var css=document.defaultView.getComputedStyle(element,null);value=css?css[style]:null;}
if(style=='opacity')return value?parseFloat(value):1.0;return value=='auto'?null:value;},getOpacity:function(element){return $(element).getStyle('opacity');},setStyle:function(element,styles){element=$(element);var elementStyle=element.style,match;if(Object.isString(styles)){element.style.cssText+=';'+styles;return styles.include('opacity')?element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]):element;}
for(var property in styles)
if(property=='opacity')element.setOpacity(styles[property]);else
elementStyle[(property=='float'||property=='cssFloat')?(Object.isUndefined(elementStyle.styleFloat)?'cssFloat':'styleFloat'):property]=styles[property];return element;},setOpacity:function(element,value){element=$(element);element.style.opacity=(value==1||value==='')?'':(value<0.00001)?0:value;return element;},getDimensions:function(element){element=$(element);var display=element.getStyle('display');if(display!='none'&&display!=null)
return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';els.position='absolute';els.display='block';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},makePositioned:function(element){element=$(element);var pos=Element.getStyle(element,'position');if(pos=='static'||!pos){element._madePositioned=true;element.style.position='relative';if(Prototype.Browser.Opera){element.style.top=0;element.style.left=0;}}
return element;},undoPositioned:function(element){element=$(element);if(element._madePositioned){element._madePositioned=undefined;element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right='';}
return element;},makeClipping:function(element){element=$(element);if(element._overflow)return element;element._overflow=Element.getStyle(element,'overflow')||'auto';if(element._overflow!=='hidden')
element.style.overflow='hidden';return element;},undoClipping:function(element){element=$(element);if(!element._overflow)return element;element.style.overflow=element._overflow=='auto'?'':element._overflow;element._overflow=null;return element;},cumulativeOffset:function(element){var valueT=0,valueL=0;do{if($(element).getStyle('position')=='fixed'){var pageOffsets=document.viewport.getScrollOffsets();valueT+=pageOffsets[1]+element.offsetTop;valueL+=pageOffsets[0]+element.offsetLeft;break;}else{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}}while(element);return Element._returnOffset(valueL,valueT);},positionedOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;if(element){if(element.tagName.toUpperCase()=='BODY')break;var p=Element.getStyle(element,'position');if(p!=='static')break;}}while(element);return Element._returnOffset(valueL,valueT);},absolutize:function(element){element=$(element);if(element.getStyle('position')=='absolute')return element;var offsets=element.positionedOffset();var top=offsets[1];var left=offsets[0];var width=element.clientWidth;var height=element.clientHeight;element._originalLeft=left-parseFloat(element.style.left||0);element._originalTop=top-parseFloat(element.style.top||0);element._originalWidth=element.style.width;element._originalHeight=element.style.height;element.style.position='absolute';element.style.top=top+'px';element.style.left=left+'px';element.style.width=width+'px';element.style.height=height+'px';return element;},relativize:function(element){element=$(element);if(element.getStyle('position')=='relative')return element;element.style.position='relative';var top=parseFloat(element.style.top||0)-(element._originalTop||0);var left=parseFloat(element.style.left||0)-(element._originalLeft||0);element.style.top=top+'px';element.style.left=left+'px';element.style.height=element._originalHeight;element.style.width=element._originalWidth;return element;},cumulativeScrollOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode;}while(element);return Element._returnOffset(valueL,valueT);},getOffsetParent:function(element){if(element.offsetParent)return $(element.offsetParent);if(element==document.body)return $(element);while((element=element.parentNode)&&element!=document.body&&Object.isElement(element))
if(Element.getStyle(element,'position')!='static')
return $(element);return $(document.body);},viewportOffset:function(forElement){var valueT=0,valueL=0;var element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body&&Element.getStyle(element,'position')=='absolute')break;}while(element=element.offsetParent);element=forElement;do{if(!Prototype.Browser.Opera||(element.tagName&&(element.tagName.toUpperCase()=='BODY'))){valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;if(!Prototype.Browser.WebKit&&Element.getStyle(element,'position')=='fixed'){break;}}}while((element=element.parentNode)&&element.tagName);return Element._returnOffset(valueL,valueT);},clonePosition:function(element,source){var options=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{});source=$(source);var p=source.viewportOffset();element=$(element);var delta=[0,0];var parent=null;if(Element.getStyle(element,'position')=='absolute'){parent=element.getOffsetParent();delta=parent.viewportOffset();}
if(parent==document.body){delta[0]-=document.body.offsetLeft;delta[1]-=document.body.offsetTop;}
if(options.setLeft)element.style.left=(p[0]-delta[0]+options.offsetLeft)+'px';if(options.setTop)element.style.top=(p[1]-delta[1]+options.offsetTop)+'px';if(options.setWidth)element.style.width=source.offsetWidth+'px';if(options.setHeight)element.style.height=source.offsetHeight+'px';return element;}};Element.Methods.identify.counter=1;Object.extend(Element.Methods,{getElementsBySelector:Element.Methods.select,childElements:Element.Methods.immediateDescendants});Element._attributeTranslations={write:{names:{className:'class',htmlFor:'for'},values:{}}};if(Prototype.Browser.Opera){Element.Methods.getStyle=Element.Methods.getStyle.wrap(function(proceed,element,style){switch(style){case'left':case'top':case'right':case'bottom':if(proceed(element,'position')==='static')return null;case'height':case'width':if(!Element.visible(element))return null;var dim=parseInt(proceed(element,style),10);if(dim!==element['offset'+style.capitalize()])
return dim+'px';var properties;if(style==='height'){properties=['border-top-width','padding-top','padding-bottom','border-bottom-width'];}
else{properties=['border-left-width','padding-left','padding-right','border-right-width'];}
return properties.inject(dim,function(memo,property){var val=proceed(element,property);return val===null?memo:memo-parseInt(val,10);})+'px';default:return proceed(element,style);}});Element.Methods.readAttribute=Element.Methods.readAttribute.wrap(function(proceed,element,attribute){if(attribute==='title')return element.title;return proceed(element,attribute);});}
else if(Prototype.Browser.IE){Element.Methods.getOffsetParent=Element.Methods.getOffsetParent.wrap(function(proceed,element){element=$(element);try{element.offsetParent}
catch(e){return $(document.body)}
var position=element.getStyle('position');if(position!=='static')return proceed(element);element.setStyle({position:'relative'});var value=proceed(element);element.setStyle({position:position});return value;});$w('positionedOffset viewportOffset').each(function(method){Element.Methods[method]=Element.Methods[method].wrap(function(proceed,element){element=$(element);try{element.offsetParent}
catch(e){return Element._returnOffset(0,0)}
var position=element.getStyle('position');if(position!=='static')return proceed(element);var offsetParent=element.getOffsetParent();if(offsetParent&&offsetParent.getStyle('position')==='fixed')
offsetParent.setStyle({zoom:1});element.setStyle({position:'relative'});var value=proceed(element);element.setStyle({position:position});return value;});});Element.Methods.cumulativeOffset=Element.Methods.cumulativeOffset.wrap(function(proceed,element){try{element.offsetParent}
catch(e){return Element._returnOffset(0,0)}
return proceed(element);});Element.Methods.getStyle=function(element,style){element=$(element);style=(style=='float'||style=='cssFloat')?'styleFloat':style.camelize();var value=element.style[style];if(!value&&element.currentStyle)value=element.currentStyle[style];if(style=='opacity'){if(value=(element.getStyle('filter')||'').match(/alpha\(opacity=(.*)\)/))
if(value[1])return parseFloat(value[1])/100;return 1.0;}
if(value=='auto'){if((style=='width'||style=='height')&&(element.getStyle('display')!='none'))
return element['offset'+style.capitalize()]+'px';return null;}
return value;};Element.Methods.setOpacity=function(element,value){function stripAlpha(filter){return filter.replace(/alpha\([^\)]*\)/gi,'');}
element=$(element);var currentStyle=element.currentStyle;if((currentStyle&&!currentStyle.hasLayout)||(!currentStyle&&element.style.zoom=='normal'))
element.style.zoom=1;var filter=element.getStyle('filter'),style=element.style;if(value==1||value===''){(filter=stripAlpha(filter))?style.filter=filter:style.removeAttribute('filter');return element;}else if(value<0.00001)value=0;style.filter=stripAlpha(filter)+'alpha(opacity='+(value*100)+')';return element;};Element._attributeTranslations={read:{names:{'class':'className','for':'htmlFor'},values:{_getAttr:function(element,attribute){return element.getAttribute(attribute,2);},_getAttrNode:function(element,attribute){var node=element.getAttributeNode(attribute);return node?node.value:"";},_getEv:function(element,attribute){attribute=element.getAttribute(attribute);return attribute?attribute.toString().slice(23,-2):null;},_flag:function(element,attribute){return $(element).hasAttribute(attribute)?attribute:null;},style:function(element){return element.style.cssText.toLowerCase();},title:function(element){return element.title;}}}};Element._attributeTranslations.write={names:Object.extend({cellpadding:'cellPadding',cellspacing:'cellSpacing'},Element._attributeTranslations.read.names),values:{checked:function(element,value){element.checked=!!value;},style:function(element,value){element.style.cssText=value?value:'';}}};Element._attributeTranslations.has={};$w('colSpan rowSpan vAlign dateTime accessKey tabIndex '+'encType maxLength readOnly longDesc frameBorder').each(function(attr){Element._attributeTranslations.write.names[attr.toLowerCase()]=attr;Element._attributeTranslations.has[attr.toLowerCase()]=attr;});(function(v){Object.extend(v,{href:v._getAttr,src:v._getAttr,type:v._getAttr,action:v._getAttrNode,disabled:v._flag,checked:v._flag,readonly:v._flag,multiple:v._flag,onload:v._getEv,onunload:v._getEv,onclick:v._getEv,ondblclick:v._getEv,onmousedown:v._getEv,onmouseup:v._getEv,onmouseover:v._getEv,onmousemove:v._getEv,onmouseout:v._getEv,onfocus:v._getEv,onblur:v._getEv,onkeypress:v._getEv,onkeydown:v._getEv,onkeyup:v._getEv,onsubmit:v._getEv,onreset:v._getEv,onselect:v._getEv,onchange:v._getEv});})(Element._attributeTranslations.read.values);}
else if(Prototype.Browser.Gecko&&/rv:1\.8\.0/.test(navigator.userAgent)){Element.Methods.setOpacity=function(element,value){element=$(element);element.style.opacity=(value==1)?0.999999:(value==='')?'':(value<0.00001)?0:value;return element;};}
else if(Prototype.Browser.WebKit){Element.Methods.setOpacity=function(element,value){element=$(element);element.style.opacity=(value==1||value==='')?'':(value<0.00001)?0:value;if(value==1)
if(element.tagName.toUpperCase()=='IMG'&&element.width){element.width++;element.width--;}else try{var n=document.createTextNode(' ');element.appendChild(n);element.removeChild(n);}catch(e){}
return element;};Element.Methods.cumulativeOffset=function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
if(Element.getStyle(element,'position')=='absolute')break;element=element.offsetParent;}while(element);return Element._returnOffset(valueL,valueT);};}
if(Prototype.Browser.IE||Prototype.Browser.Opera){Element.Methods.update=function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();if(Object.isElement(content))return element.update().insert(content);content=Object.toHTML(content);var tagName=element.tagName.toUpperCase();if(tagName in Element._insertionTranslations.tags){$A(element.childNodes).each(function(node){element.removeChild(node)});Element._getContentFromAnonymousElement(tagName,content.stripScripts()).each(function(node){element.appendChild(node)});}
else element.innerHTML=content.stripScripts();content.evalScripts.bind(content).defer();return element;};}
if('outerHTML'in document.createElement('div')){Element.Methods.replace=function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();if(Object.isElement(content)){element.parentNode.replaceChild(content,element);return element;}
content=Object.toHTML(content);var parent=element.parentNode,tagName=parent.tagName.toUpperCase();if(Element._insertionTranslations.tags[tagName]){var nextSibling=element.next();var fragments=Element._getContentFromAnonymousElement(tagName,content.stripScripts());parent.removeChild(element);if(nextSibling)
fragments.each(function(node){parent.insertBefore(node,nextSibling)});else
fragments.each(function(node){parent.appendChild(node)});}
else element.outerHTML=content.stripScripts();content.evalScripts.bind(content).defer();return element;};}
Element._returnOffset=function(l,t){var result=[l,t];result.left=l;result.top=t;return result;};Element._getContentFromAnonymousElement=function(tagName,html){var div=new Element('div'),t=Element._insertionTranslations.tags[tagName];if(t){div.innerHTML=t[0]+html+t[1];t[2].times(function(){div=div.firstChild});}else div.innerHTML=html;return $A(div.childNodes);};Element._insertionTranslations={before:function(element,node){element.parentNode.insertBefore(node,element);},top:function(element,node){element.insertBefore(node,element.firstChild);},bottom:function(element,node){element.appendChild(node);},after:function(element,node){element.parentNode.insertBefore(node,element.nextSibling);},tags:{TABLE:['<table>','</table>',1],TBODY:['<table><tbody>','</tbody></table>',2],TR:['<table><tbody><tr>','</tr></tbody></table>',3],TD:['<table><tbody><tr><td>','</td></tr></tbody></table>',4],SELECT:['<select>','</select>',1]}};(function(){Object.extend(this.tags,{THEAD:this.tags.TBODY,TFOOT:this.tags.TBODY,TH:this.tags.TD});}).call(Element._insertionTranslations);Element.Methods.Simulated={hasAttribute:function(element,attribute){attribute=Element._attributeTranslations.has[attribute]||attribute;var node=$(element).getAttributeNode(attribute);return!!(node&&node.specified);}};Element.Methods.ByTag={};Object.extend(Element,Element.Methods);if(!Prototype.BrowserFeatures.ElementExtensions&&document.createElement('div')['__proto__']){window.HTMLElement={};window.HTMLElement.prototype=document.createElement('div')['__proto__'];Prototype.BrowserFeatures.ElementExtensions=true;}
Element.extend=(function(){if(Prototype.BrowserFeatures.SpecificElementExtensions)
return Prototype.K;var Methods={},ByTag=Element.Methods.ByTag;var extend=Object.extend(function(element){if(!element||element._extendedByPrototype||element.nodeType!=1||element==window)return element;var methods=Object.clone(Methods),tagName=element.tagName.toUpperCase(),property,value;if(ByTag[tagName])Object.extend(methods,ByTag[tagName]);for(property in methods){value=methods[property];if(Object.isFunction(value)&&!(property in element))
element[property]=value.methodize();}
element._extendedByPrototype=Prototype.emptyFunction;return element;},{refresh:function(){if(!Prototype.BrowserFeatures.ElementExtensions){Object.extend(Methods,Element.Methods);Object.extend(Methods,Element.Methods.Simulated);}}});extend.refresh();return extend;})();Element.hasAttribute=function(element,attribute){if(element.hasAttribute)return element.hasAttribute(attribute);return Element.Methods.Simulated.hasAttribute(element,attribute);};Element.addMethods=function(methods){var F=Prototype.BrowserFeatures,T=Element.Methods.ByTag;if(!methods){Object.extend(Form,Form.Methods);Object.extend(Form.Element,Form.Element.Methods);Object.extend(Element.Methods.ByTag,{"FORM":Object.clone(Form.Methods),"INPUT":Object.clone(Form.Element.Methods),"SELECT":Object.clone(Form.Element.Methods),"TEXTAREA":Object.clone(Form.Element.Methods)});}
if(arguments.length==2){var tagName=methods;methods=arguments[1];}
if(!tagName)Object.extend(Element.Methods,methods||{});else{if(Object.isArray(tagName))tagName.each(extend);else extend(tagName);}
function extend(tagName){tagName=tagName.toUpperCase();if(!Element.Methods.ByTag[tagName])
Element.Methods.ByTag[tagName]={};Object.extend(Element.Methods.ByTag[tagName],methods);}
function copy(methods,destination,onlyIfAbsent){onlyIfAbsent=onlyIfAbsent||false;for(var property in methods){var value=methods[property];if(!Object.isFunction(value))continue;if(!onlyIfAbsent||!(property in destination))
destination[property]=value.methodize();}}
function findDOMClass(tagName){var klass;var trans={"OPTGROUP":"OptGroup","TEXTAREA":"TextArea","P":"Paragraph","FIELDSET":"FieldSet","UL":"UList","OL":"OList","DL":"DList","DIR":"Directory","H1":"Heading","H2":"Heading","H3":"Heading","H4":"Heading","H5":"Heading","H6":"Heading","Q":"Quote","INS":"Mod","DEL":"Mod","A":"Anchor","IMG":"Image","CAPTION":"TableCaption","COL":"TableCol","COLGROUP":"TableCol","THEAD":"TableSection","TFOOT":"TableSection","TBODY":"TableSection","TR":"TableRow","TH":"TableCell","TD":"TableCell","FRAMESET":"FrameSet","IFRAME":"IFrame"};if(trans[tagName])klass='HTML'+trans[tagName]+'Element';if(window[klass])return window[klass];klass='HTML'+tagName+'Element';if(window[klass])return window[klass];klass='HTML'+tagName.capitalize()+'Element';if(window[klass])return window[klass];window[klass]={};window[klass].prototype=document.createElement(tagName)['__proto__'];return window[klass];}
if(F.ElementExtensions){copy(Element.Methods,HTMLElement.prototype);copy(Element.Methods.Simulated,HTMLElement.prototype,true);}
if(F.SpecificElementExtensions){for(var tag in Element.Methods.ByTag){var klass=findDOMClass(tag);if(Object.isUndefined(klass))continue;copy(T[tag],klass.prototype);}}
Object.extend(Element,Element.Methods);delete Element.ByTag;if(Element.extend.refresh)Element.extend.refresh();Element.cache={};};document.viewport={getDimensions:function(){var dimensions={},B=Prototype.Browser;$w('width height').each(function(d){var D=d.capitalize();if(B.WebKit&&!document.evaluate){dimensions[d]=self['inner'+D];}else if(B.Opera&&parseFloat(window.opera.version())<9.5){dimensions[d]=document.body['client'+D]}else{dimensions[d]=document.documentElement['client'+D];}});return dimensions;},getWidth:function(){return this.getDimensions().width;},getHeight:function(){return this.getDimensions().height;},getScrollOffsets:function(){return Element._returnOffset(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop);}};var Selector=Class.create({initialize:function(expression){this.expression=expression.strip();if(this.shouldUseSelectorsAPI()){this.mode='selectorsAPI';}else if(this.shouldUseXPath()){this.mode='xpath';this.compileXPathMatcher();}else{this.mode="normal";this.compileMatcher();}},shouldUseXPath:function(){if(!Prototype.BrowserFeatures.XPath)return false;var e=this.expression;if(Prototype.Browser.WebKit&&(e.include("-of-type")||e.include(":empty")))
return false;if((/(\[[\w-]*?:|:checked)/).test(e))
return false;return true;},shouldUseSelectorsAPI:function(){if(!Prototype.BrowserFeatures.SelectorsAPI)return false;if(!Selector._div)Selector._div=new Element('div');try{Selector._div.querySelector(this.expression);}catch(e){return false;}
return true;},compileMatcher:function(){var e=this.expression,ps=Selector.patterns,h=Selector.handlers,c=Selector.criteria,le,p,m;if(Selector._cache[e]){this.matcher=Selector._cache[e];return;}
this.matcher=["this.matcher = function(root) {","var r = root, h = Selector.handlers, c = false, n;"];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in ps){p=ps[i];if(m=e.match(p)){this.matcher.push(Object.isFunction(c[i])?c[i](m):new Template(c[i]).evaluate(m));e=e.replace(m[0],'');break;}}}
this.matcher.push("return h.unique(n);\n}");eval(this.matcher.join('\n'));Selector._cache[this.expression]=this.matcher;},compileXPathMatcher:function(){var e=this.expression,ps=Selector.patterns,x=Selector.xpath,le,m;if(Selector._cache[e]){this.xpath=Selector._cache[e];return;}
this.matcher=['.//*'];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in ps){if(m=e.match(ps[i])){this.matcher.push(Object.isFunction(x[i])?x[i](m):new Template(x[i]).evaluate(m));e=e.replace(m[0],'');break;}}}
this.xpath=this.matcher.join('');Selector._cache[this.expression]=this.xpath;},findElements:function(root){root=root||document;var e=this.expression,results;switch(this.mode){case'selectorsAPI':if(root!==document){var oldId=root.id,id=$(root).identify();e="#"+id.replace(/:/g,'\\:')+" "+e}
results=$A(root.querySelectorAll(e)).map(Element.extend);root.id=oldId;return results;case'xpath':return document._getElementsByXPath(this.xpath,root);default:return this.matcher(root);}},match:function(element){this.tokens=[];var e=this.expression,ps=Selector.patterns,as=Selector.assertions;var le,p,m;while(e&&le!==e&&(/\S/).test(e)){le=e;for(var i in ps){p=ps[i];if(m=e.match(p)){if(as[i]){this.tokens.push([i,Object.clone(m)]);e=e.replace(m[0],'');}else{return this.findElements(document).include(element);}}}}
var match=true,name,matches;for(var i=0,token;token=this.tokens[i];i++){name=token[0],matches=token[1];if(!Selector.assertions[name](element,matches)){match=false;break;}}
return match;},toString:function(){return this.expression;},inspect:function(){return"#<Selector:"+this.expression.inspect()+">";}});Object.extend(Selector,{_cache:{},xpath:{descendant:"//*",child:"/*",adjacent:"/following-sibling::*[1]",laterSibling:'/following-sibling::*',tagName:function(m){if(m[1]=='*')return'';return"[local-name()='"+m[1].toLowerCase()+"' or local-name()='"+m[1].toUpperCase()+"']";},className:"[contains(concat(' ', @class, ' '), ' #{1} ')]",id:"[@id='#{1}']",attrPresence:function(m){m[1]=m[1].toLowerCase();return new Template("[@#{1}]").evaluate(m);},attr:function(m){m[1]=m[1].toLowerCase();m[3]=m[5]||m[6];return new Template(Selector.xpath.operators[m[2]]).evaluate(m);},pseudo:function(m){var h=Selector.xpath.pseudos[m[1]];if(!h)return'';if(Object.isFunction(h))return h(m);return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);},operators:{'=':"[@#{1}='#{3}']",'!=':"[@#{1}!='#{3}']",'^=':"[starts-with(@#{1}, '#{3}')]",'$=':"[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",'*=':"[contains(@#{1}, '#{3}')]",'~=':"[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",'|=':"[contains(concat('-', @#{1}, '-'), '-#{3}-')]"},pseudos:{'first-child':'[not(preceding-sibling::*)]','last-child':'[not(following-sibling::*)]','only-child':'[not(preceding-sibling::* or following-sibling::*)]','empty':"[count(*) = 0 and (count(text()) = 0)]",'checked':"[@checked]",'disabled':"[(@disabled) and (@type!='hidden')]",'enabled':"[not(@disabled) and (@type!='hidden')]",'not':function(m){var e=m[6],p=Selector.patterns,x=Selector.xpath,le,v;var exclusion=[];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in p){if(m=e.match(p[i])){v=Object.isFunction(x[i])?x[i](m):new Template(x[i]).evaluate(m);exclusion.push("("+v.substring(1,v.length-1)+")");e=e.replace(m[0],'');break;}}}
return"[not("+exclusion.join(" and ")+")]";},'nth-child':function(m){return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ",m);},'nth-last-child':function(m){return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ",m);},'nth-of-type':function(m){return Selector.xpath.pseudos.nth("position() ",m);},'nth-last-of-type':function(m){return Selector.xpath.pseudos.nth("(last() + 1 - position()) ",m);},'first-of-type':function(m){m[6]="1";return Selector.xpath.pseudos['nth-of-type'](m);},'last-of-type':function(m){m[6]="1";return Selector.xpath.pseudos['nth-last-of-type'](m);},'only-of-type':function(m){var p=Selector.xpath.pseudos;return p['first-of-type'](m)+p['last-of-type'](m);},nth:function(fragment,m){var mm,formula=m[6],predicate;if(formula=='even')formula='2n+0';if(formula=='odd')formula='2n+1';if(mm=formula.match(/^(\d+)$/))
return'['+fragment+"= "+mm[1]+']';if(mm=formula.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(mm[1]=="-")mm[1]=-1;var a=mm[1]?Number(mm[1]):1;var b=mm[2]?Number(mm[2]):0;predicate="[((#{fragment} - #{b}) mod #{a} = 0) and "+"((#{fragment} - #{b}) div #{a} >= 0)]";return new Template(predicate).evaluate({fragment:fragment,a:a,b:b});}}}},criteria:{tagName:'n = h.tagName(n, r, "#{1}", c);      c = false;',className:'n = h.className(n, r, "#{1}", c);    c = false;',id:'n = h.id(n, r, "#{1}", c);           c = false;',attrPresence:'n = h.attrPresence(n, r, "#{1}", c); c = false;',attr:function(m){m[3]=(m[5]||m[6]);return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);},pseudo:function(m){if(m[6])m[6]=m[6].replace(/"/g,'\\"');return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);},descendant:'c = "descendant";',child:'c = "child";',adjacent:'c = "adjacent";',laterSibling:'c = "laterSibling";'},patterns:{laterSibling:/^\s*~\s*/,child:/^\s*>\s*/,adjacent:/^\s*\+\s*/,descendant:/^\s/,tagName:/^\s*(\*|[\w\-]+)(\b|$)?/,id:/^#([\w\-\*]+)(\b|$)/,className:/^\.([\w\-\*]+)(\b|$)/,pseudo:/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/,attrPresence:/^\[((?:[\w]+:)?[\w]+)\]/,attr:/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/},assertions:{tagName:function(element,matches){return matches[1].toUpperCase()==element.tagName.toUpperCase();},className:function(element,matches){return Element.hasClassName(element,matches[1]);},id:function(element,matches){return element.id===matches[1];},attrPresence:function(element,matches){return Element.hasAttribute(element,matches[1]);},attr:function(element,matches){var nodeValue=Element.readAttribute(element,matches[1]);return nodeValue&&Selector.operators[matches[2]](nodeValue,matches[5]||matches[6]);}},handlers:{concat:function(a,b){for(var i=0,node;node=b[i];i++)
a.push(node);return a;},mark:function(nodes){var _true=Prototype.emptyFunction;for(var i=0,node;node=nodes[i];i++)
node._countedByPrototype=_true;return nodes;},unmark:function(nodes){for(var i=0,node;node=nodes[i];i++)
node._countedByPrototype=undefined;return nodes;},index:function(parentNode,reverse,ofType){parentNode._countedByPrototype=Prototype.emptyFunction;if(reverse){for(var nodes=parentNode.childNodes,i=nodes.length-1,j=1;i>=0;i--){var node=nodes[i];if(node.nodeType==1&&(!ofType||node._countedByPrototype))node.nodeIndex=j++;}}else{for(var i=0,j=1,nodes=parentNode.childNodes;node=nodes[i];i++)
if(node.nodeType==1&&(!ofType||node._countedByPrototype))node.nodeIndex=j++;}},unique:function(nodes){if(nodes.length==0)return nodes;var results=[],n;for(var i=0,l=nodes.length;i<l;i++)
if(!(n=nodes[i])._countedByPrototype){n._countedByPrototype=Prototype.emptyFunction;results.push(Element.extend(n));}
return Selector.handlers.unmark(results);},descendant:function(nodes){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++)
h.concat(results,node.getElementsByTagName('*'));return results;},child:function(nodes){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++){for(var j=0,child;child=node.childNodes[j];j++)
if(child.nodeType==1&&child.tagName!='!')results.push(child);}
return results;},adjacent:function(nodes){for(var i=0,results=[],node;node=nodes[i];i++){var next=this.nextElementSibling(node);if(next)results.push(next);}
return results;},laterSibling:function(nodes){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++)
h.concat(results,Element.nextSiblings(node));return results;},nextElementSibling:function(node){while(node=node.nextSibling)
if(node.nodeType==1)return node;return null;},previousElementSibling:function(node){while(node=node.previousSibling)
if(node.nodeType==1)return node;return null;},tagName:function(nodes,root,tagName,combinator){var uTagName=tagName.toUpperCase();var results=[],h=Selector.handlers;if(nodes){if(combinator){if(combinator=="descendant"){for(var i=0,node;node=nodes[i];i++)
h.concat(results,node.getElementsByTagName(tagName));return results;}else nodes=this[combinator](nodes);if(tagName=="*")return nodes;}
for(var i=0,node;node=nodes[i];i++)
if(node.tagName.toUpperCase()===uTagName)results.push(node);return results;}else return root.getElementsByTagName(tagName);},id:function(nodes,root,id,combinator){var targetNode=$(id),h=Selector.handlers;if(!targetNode)return[];if(!nodes&&root==document)return[targetNode];if(nodes){if(combinator){if(combinator=='child'){for(var i=0,node;node=nodes[i];i++)
if(targetNode.parentNode==node)return[targetNode];}else if(combinator=='descendant'){for(var i=0,node;node=nodes[i];i++)
if(Element.descendantOf(targetNode,node))return[targetNode];}else if(combinator=='adjacent'){for(var i=0,node;node=nodes[i];i++)
if(Selector.handlers.previousElementSibling(targetNode)==node)
return[targetNode];}else nodes=h[combinator](nodes);}
for(var i=0,node;node=nodes[i];i++)
if(node==targetNode)return[targetNode];return[];}
return(targetNode&&Element.descendantOf(targetNode,root))?[targetNode]:[];},className:function(nodes,root,className,combinator){if(nodes&&combinator)nodes=this[combinator](nodes);return Selector.handlers.byClassName(nodes,root,className);},byClassName:function(nodes,root,className){if(!nodes)nodes=Selector.handlers.descendant([root]);var needle=' '+className+' ';for(var i=0,results=[],node,nodeClassName;node=nodes[i];i++){nodeClassName=node.className;if(nodeClassName.length==0)continue;if(nodeClassName==className||(' '+nodeClassName+' ').include(needle))
results.push(node);}
return results;},attrPresence:function(nodes,root,attr,combinator){if(!nodes)nodes=root.getElementsByTagName("*");if(nodes&&combinator)nodes=this[combinator](nodes);var results=[];for(var i=0,node;node=nodes[i];i++)
if(Element.hasAttribute(node,attr))results.push(node);return results;},attr:function(nodes,root,attr,value,operator,combinator){if(!nodes)nodes=root.getElementsByTagName("*");if(nodes&&combinator)nodes=this[combinator](nodes);var handler=Selector.operators[operator],results=[];for(var i=0,node;node=nodes[i];i++){var nodeValue=Element.readAttribute(node,attr);if(nodeValue===null)continue;if(handler(nodeValue,value))results.push(node);}
return results;},pseudo:function(nodes,name,value,root,combinator){if(nodes&&combinator)nodes=this[combinator](nodes);if(!nodes)nodes=root.getElementsByTagName("*");return Selector.pseudos[name](nodes,value,root);}},pseudos:{'first-child':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(Selector.handlers.previousElementSibling(node))continue;results.push(node);}
return results;},'last-child':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(Selector.handlers.nextElementSibling(node))continue;results.push(node);}
return results;},'only-child':function(nodes,value,root){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++)
if(!h.previousElementSibling(node)&&!h.nextElementSibling(node))
results.push(node);return results;},'nth-child':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root);},'nth-last-child':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root,true);},'nth-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root,false,true);},'nth-last-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root,true,true);},'first-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,"1",root,false,true);},'last-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,"1",root,true,true);},'only-of-type':function(nodes,formula,root){var p=Selector.pseudos;return p['last-of-type'](p['first-of-type'](nodes,formula,root),formula,root);},getIndices:function(a,b,total){if(a==0)return b>0?[b]:[];return $R(1,total).inject([],function(memo,i){if(0==(i-b)%a&&(i-b)/a>=0)memo.push(i);return memo;});},nth:function(nodes,formula,root,reverse,ofType){if(nodes.length==0)return[];if(formula=='even')formula='2n+0';if(formula=='odd')formula='2n+1';var h=Selector.handlers,results=[],indexed=[],m;h.mark(nodes);for(var i=0,node;node=nodes[i];i++){if(!node.parentNode._countedByPrototype){h.index(node.parentNode,reverse,ofType);indexed.push(node.parentNode);}}
if(formula.match(/^\d+$/)){formula=Number(formula);for(var i=0,node;node=nodes[i];i++)
if(node.nodeIndex==formula)results.push(node);}else if(m=formula.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(m[1]=="-")m[1]=-1;var a=m[1]?Number(m[1]):1;var b=m[2]?Number(m[2]):0;var indices=Selector.pseudos.getIndices(a,b,nodes.length);for(var i=0,node,l=indices.length;node=nodes[i];i++){for(var j=0;j<l;j++)
if(node.nodeIndex==indices[j])results.push(node);}}
h.unmark(nodes);h.unmark(indexed);return results;},'empty':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(node.tagName=='!'||node.firstChild)continue;results.push(node);}
return results;},'not':function(nodes,selector,root){var h=Selector.handlers,selectorType,m;var exclusions=new Selector(selector).findElements(root);h.mark(exclusions);for(var i=0,results=[],node;node=nodes[i];i++)
if(!node._countedByPrototype)results.push(node);h.unmark(exclusions);return results;},'enabled':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++)
if(!node.disabled&&(!node.type||node.type!=='hidden'))
results.push(node);return results;},'disabled':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++)
if(node.disabled)results.push(node);return results;},'checked':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++)
if(node.checked)results.push(node);return results;}},operators:{'=':function(nv,v){return nv==v;},'!=':function(nv,v){return nv!=v;},'^=':function(nv,v){return nv==v||nv&&nv.startsWith(v);},'$=':function(nv,v){return nv==v||nv&&nv.endsWith(v);},'*=':function(nv,v){return nv==v||nv&&nv.include(v);},'$=':function(nv,v){return nv.endsWith(v);},'*=':function(nv,v){return nv.include(v);},'~=':function(nv,v){return(' '+nv+' ').include(' '+v+' ');},'|=':function(nv,v){return('-'+(nv||"").toUpperCase()+'-').include('-'+(v||"").toUpperCase()+'-');}},split:function(expression){var expressions=[];expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/,function(m){expressions.push(m[1].strip());});return expressions;},matchElements:function(elements,expression){var matches=$$(expression),h=Selector.handlers;h.mark(matches);for(var i=0,results=[],element;element=elements[i];i++)
if(element._countedByPrototype)results.push(element);h.unmark(matches);return results;},findElement:function(elements,expression,index){if(Object.isNumber(expression)){index=expression;expression=false;}
return Selector.matchElements(elements,expression||'*')[index||0];},findChildElements:function(element,expressions){expressions=Selector.split(expressions.join(','));var results=[],h=Selector.handlers;for(var i=0,l=expressions.length,selector;i<l;i++){selector=new Selector(expressions[i].strip());h.concat(results,selector.findElements(element));}
return(l>1)?h.unique(results):results;}});if(Prototype.Browser.IE){Object.extend(Selector.handlers,{concat:function(a,b){for(var i=0,node;node=b[i];i++)
if(node.tagName!=="!")a.push(node);return a;},unmark:function(nodes){for(var i=0,node;node=nodes[i];i++)
node.removeAttribute('_countedByPrototype');return nodes;}});}
function $$(){return Selector.findChildElements(document,$A(arguments));}
var Form={reset:function(form){$(form).reset();return form;},serializeElements:function(elements,options){if(typeof options!='object')options={hash:!!options};else if(Object.isUndefined(options.hash))options.hash=true;var key,value,submitted=false,submit=options.submit;var data=elements.inject({},function(result,element){if(!element.disabled&&element.name){key=element.name;value=$(element).getValue();if(value!=null&&element.type!='file'&&(element.type!='submit'||(!submitted&&submit!==false&&(!submit||key==submit)&&(submitted=true)))){if(key in result){if(!Object.isArray(result[key]))result[key]=[result[key]];result[key].push(value);}
else result[key]=value;}}
return result;});return options.hash?data:Object.toQueryString(data);}};Form.Methods={serialize:function(form,options){return Form.serializeElements(Form.getElements(form),options);},getElements:function(form){return $A($(form).getElementsByTagName('*')).inject([],function(elements,child){if(Form.Element.Serializers[child.tagName.toLowerCase()])
elements.push(Element.extend(child));return elements;});},getInputs:function(form,typeName,name){form=$(form);var inputs=form.getElementsByTagName('input');if(!typeName&&!name)return $A(inputs).map(Element.extend);for(var i=0,matchingInputs=[],length=inputs.length;i<length;i++){var input=inputs[i];if((typeName&&input.type!=typeName)||(name&&input.name!=name))
continue;matchingInputs.push(Element.extend(input));}
return matchingInputs;},disable:function(form){form=$(form);Form.getElements(form).invoke('disable');return form;},enable:function(form){form=$(form);Form.getElements(form).invoke('enable');return form;},findFirstElement:function(form){var elements=$(form).getElements().findAll(function(element){return'hidden'!=element.type&&!element.disabled;});var firstByIndex=elements.findAll(function(element){return element.hasAttribute('tabIndex')&&element.tabIndex>=0;}).sortBy(function(element){return element.tabIndex}).first();return firstByIndex?firstByIndex:elements.find(function(element){return['input','select','textarea'].include(element.tagName.toLowerCase());});},focusFirstElement:function(form){form=$(form);form.findFirstElement().activate();return form;},request:function(form,options){form=$(form),options=Object.clone(options||{});var params=options.parameters,action=form.readAttribute('action')||'';if(action.blank())action=window.location.href;options.parameters=form.serialize(true);if(params){if(Object.isString(params))params=params.toQueryParams();Object.extend(options.parameters,params);}
if(form.hasAttribute('method')&&!options.method)
options.method=form.method;return new Ajax.Request(action,options);}};Form.Element={focus:function(element){$(element).focus();return element;},select:function(element){$(element).select();return element;}};Form.Element.Methods={serialize:function(element){element=$(element);if(!element.disabled&&element.name){var value=element.getValue();if(value!=undefined){var pair={};pair[element.name]=value;return Object.toQueryString(pair);}}
return'';},getValue:function(element){element=$(element);var method=element.tagName.toLowerCase();return Form.Element.Serializers[method](element);},setValue:function(element,value){element=$(element);var method=element.tagName.toLowerCase();Form.Element.Serializers[method](element,value);return element;},clear:function(element){$(element).value='';return element;},present:function(element){return $(element).value!='';},activate:function(element){element=$(element);try{element.focus();if(element.select&&(element.tagName.toLowerCase()!='input'||!['button','reset','submit'].include(element.type)))
element.select();}catch(e){}
return element;},disable:function(element){element=$(element);element.disabled=true;return element;},enable:function(element){element=$(element);element.disabled=false;return element;}};var Field=Form.Element;var $F=Form.Element.Methods.getValue;Form.Element.Serializers={input:function(element,value){switch(element.type.toLowerCase()){case'checkbox':case'radio':return Form.Element.Serializers.inputSelector(element,value);default:return Form.Element.Serializers.textarea(element,value);}},inputSelector:function(element,value){if(Object.isUndefined(value))return element.checked?element.value:null;else element.checked=!!value;},textarea:function(element,value){if(Object.isUndefined(value))return element.value;else element.value=value;},select:function(element,value){if(Object.isUndefined(value))
return this[element.type=='select-one'?'selectOne':'selectMany'](element);else{var opt,currentValue,single=!Object.isArray(value);for(var i=0,length=element.length;i<length;i++){opt=element.options[i];currentValue=this.optionValue(opt);if(single){if(currentValue==value){opt.selected=true;return;}}
else opt.selected=value.include(currentValue);}}},selectOne:function(element){var index=element.selectedIndex;return index>=0?this.optionValue(element.options[index]):null;},selectMany:function(element){var values,length=element.length;if(!length)return null;for(var i=0,values=[];i<length;i++){var opt=element.options[i];if(opt.selected)values.push(this.optionValue(opt));}
return values;},optionValue:function(opt){return Element.extend(opt).hasAttribute('value')?opt.value:opt.text;}};Abstract.TimedObserver=Class.create(PeriodicalExecuter,{initialize:function($super,element,frequency,callback){$super(callback,frequency);this.element=$(element);this.lastValue=this.getValue();},execute:function(){var value=this.getValue();if(Object.isString(this.lastValue)&&Object.isString(value)?this.lastValue!=value:String(this.lastValue)!=String(value)){this.callback(this.element,value);this.lastValue=value;}}});Form.Element.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.Element.getValue(this.element);}});Form.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.serialize(this.element);}});Abstract.EventObserver=Class.create({initialize:function(element,callback){this.element=$(element);this.callback=callback;this.lastValue=this.getValue();if(this.element.tagName.toLowerCase()=='form')
this.registerFormCallbacks();else
this.registerCallback(this.element);},onElementEvent:function(){var value=this.getValue();if(this.lastValue!=value){this.callback(this.element,value);this.lastValue=value;}},registerFormCallbacks:function(){Form.getElements(this.element).each(this.registerCallback,this);},registerCallback:function(element){if(element.type){switch(element.type.toLowerCase()){case'checkbox':case'radio':Event.observe(element,'click',this.onElementEvent.bind(this));break;default:Event.observe(element,'change',this.onElementEvent.bind(this));break;}}}});Form.Element.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){return Form.Element.getValue(this.element);}});Form.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){return Form.serialize(this.element);}});if(!window.Event)var Event={};Object.extend(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,KEY_HOME:36,KEY_END:35,KEY_PAGEUP:33,KEY_PAGEDOWN:34,KEY_INSERT:45,cache:{},relatedTarget:function(event){var element;switch(event.type){case'mouseover':element=event.fromElement;break;case'mouseout':element=event.toElement;break;default:return null;}
return Element.extend(element);}});Event.Methods=(function(){var isButton;if(Prototype.Browser.IE){var buttonMap={0:1,1:4,2:2};isButton=function(event,code){return event.button==buttonMap[code];};}else if(Prototype.Browser.WebKit){isButton=function(event,code){switch(code){case 0:return event.which==1&&!event.metaKey;case 1:return event.which==1&&event.metaKey;default:return false;}};}else{isButton=function(event,code){return event.which?(event.which===code+1):(event.button===code);};}
return{isLeftClick:function(event){return isButton(event,0)},isMiddleClick:function(event){return isButton(event,1)},isRightClick:function(event){return isButton(event,2)},element:function(event){event=Event.extend(event);var node=event.target,type=event.type,currentTarget=event.currentTarget;if(currentTarget&&currentTarget.tagName){if(type==='load'||type==='error'||(type==='click'&&currentTarget.tagName.toLowerCase()==='input'&&currentTarget.type==='radio'))
node=currentTarget;}
if(node.nodeType==Node.TEXT_NODE)node=node.parentNode;return Element.extend(node);},findElement:function(event,expression){var element=Event.element(event);if(!expression)return element;var elements=[element].concat(element.ancestors());return Selector.findElement(elements,expression,0);},pointer:function(event){var docElement=document.documentElement,body=document.body||{scrollLeft:0,scrollTop:0};return{x:event.pageX||(event.clientX+
(docElement.scrollLeft||body.scrollLeft)-
(docElement.clientLeft||0)),y:event.pageY||(event.clientY+
(docElement.scrollTop||body.scrollTop)-
(docElement.clientTop||0))};},pointerX:function(event){return Event.pointer(event).x},pointerY:function(event){return Event.pointer(event).y},stop:function(event){Event.extend(event);event.preventDefault();event.stopPropagation();event.stopped=true;}};})();Event.extend=(function(){var methods=Object.keys(Event.Methods).inject({},function(m,name){m[name]=Event.Methods[name].methodize();return m;});if(Prototype.Browser.IE){Object.extend(methods,{stopPropagation:function(){this.cancelBubble=true;if(this._stopPropagation){this._stopPropagation()}},preventDefault:function(){this.returnValue=false;if(this._preventDefault){this._preventDefault()}},inspect:function(){return"[object Event]"}});return function(event){if(!event)return false;if(event._extendedByPrototype)return event;event._extendedByPrototype=Prototype.emptyFunction;var pointer=Event.pointer(event);Object.extend(event,{target:event.srcElement,relatedTarget:Event.relatedTarget(event),pageX:pointer.x,pageY:pointer.y});event._stopPropagation=event.stopPropagation;event._preventDefault=event.preventDefault;return Object.extend(event,methods);};}else{Event.prototype=Event.prototype||document.createEvent("HTMLEvents")['__proto__'];Object.extend(Event.prototype,methods);return Prototype.K;}})();Object.extend(Event,(function(){var cache=Event.cache;function getEventID(element){if(element._prototypeEventID)return element._prototypeEventID[0];arguments.callee.id=arguments.callee.id||1;return element._prototypeEventID=[++arguments.callee.id];}
function getDOMEventName(eventName){if(eventName&&eventName.include(':'))return"dataavailable";return eventName;}
function getCacheForID(id){return cache[id]=cache[id]||{};}
function getWrappersForEventName(id,eventName){var c=getCacheForID(id);return c[eventName]=c[eventName]||[];}
function createWrapper(element,eventName,handler){var id=getEventID(element);var c=getWrappersForEventName(id,eventName);if(c.pluck("handler").include(handler))return false;var wrapper=function(event){if(!Event||!Event.extend||(event.eventName&&event.eventName!=eventName))
return false;Event.extend(event);handler.call(element,event);};wrapper.handler=handler;c.push(wrapper);return wrapper;}
function findWrapper(id,eventName,handler){var c=getWrappersForEventName(id,eventName);return c.find(function(wrapper){return wrapper.handler==handler});}
function destroyWrapper(id,eventName,handler){var c=getCacheForID(id);if(!c[eventName])return false;c[eventName]=c[eventName].without(findWrapper(id,eventName,handler));}
if(Prototype.Browser.WebKit){window.addEventListener('unload',Prototype.emptyFunction,false);}
return{getDOMEventName:getDOMEventName,observe:function(element,eventName,handler){element=$(element);var name=getDOMEventName(eventName);var wrapper=createWrapper(element,eventName,handler);if(!wrapper)return element;if(element.addEventListener){element.addEventListener(name,wrapper,false);}else{element.attachEvent("on"+name,wrapper);}
return element;},stopObserving:function(element,eventName,handler){element=$(element);var id=getEventID(element),name=getDOMEventName(eventName);if(!handler&&eventName){getWrappersForEventName(id,eventName).each(function(wrapper){element.stopObserving(eventName,wrapper.handler);});return element;}else if(!eventName){Object.keys(getCacheForID(id)).each(function(eventName){element.stopObserving(eventName);});return element;}
var wrapper=findWrapper(id,eventName,handler);if(!wrapper)return element;if(element.removeEventListener){element.removeEventListener(name,wrapper,false);}else{element.detachEvent("on"+name,wrapper);}
destroyWrapper(id,eventName,handler);return element;},fire:function(element,eventName,memo){element=$(element);if(element==document&&document.createEvent&&!element.dispatchEvent)
element=document.documentElement;var event;if(document.createEvent){event=document.createEvent("HTMLEvents");event.initEvent("dataavailable",true,true);}else{event=document.createEventObject();event.eventType="ondataavailable";}
event.eventName=eventName;event.memo=memo||{};if(document.createEvent){element.dispatchEvent(event);}else{element.fireEvent(event.eventType,event);}
return Event.extend(event);}};})());Object.extend(Event,Event.Methods);Element.addMethods({fire:Event.fire,observe:Event.observe,stopObserving:Event.stopObserving});Object.extend(document,{fire:Element.Methods.fire.methodize(),observe:Element.Methods.observe.methodize(),stopObserving:Element.Methods.stopObserving.methodize(),loaded:false});(function(){var timer;function fireContentLoadedEvent(){if(document.loaded)return;if(timer)window.clearInterval(timer);document.fire("dom:loaded");document.loaded=true;}
if(document.addEventListener){if(Prototype.Browser.WebKit){timer=window.setInterval(function(){if(/loaded|complete/.test(document.readyState))
fireContentLoadedEvent();},0);Event.observe(window,"load",fireContentLoadedEvent);}else{document.addEventListener("DOMContentLoaded",fireContentLoadedEvent,false);}}else{if(document.loaded)return;if(document.readyState!="complete"){document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");var contentLoadedScript=$("__onDOMContentLoaded");if(contentLoadedScript){contentLoadedScript.onreadystatechange=function(){if(this.readyState=="complete"){this.onreadystatechange=null;fireContentLoadedEvent();}};}}}})();Hash.toQueryString=Object.toQueryString;var Toggle={display:Element.toggle};Element.Methods.childOf=Element.Methods.descendantOf;var Insertion={Before:function(element,content){return Element.insert(element,{before:content});},Top:function(element,content){return Element.insert(element,{top:content});},Bottom:function(element,content){return Element.insert(element,{bottom:content});},After:function(element,content){return Element.insert(element,{after:content});}};var $continue=new Error('"throw $continue" is deprecated, use "return" instead');var Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;},within:function(element,x,y){if(this.includeScrollOffsets)
return this.withinIncludingScrolloffsets(element,x,y);this.xcomp=x;this.ycomp=y;this.offset=Element.cumulativeOffset(element);return(y>=this.offset[1]&&y<this.offset[1]+element.offsetHeight&&x>=this.offset[0]&&x<this.offset[0]+element.offsetWidth);},withinIncludingScrolloffsets:function(element,x,y){var offsetcache=Element.cumulativeScrollOffset(element);this.xcomp=x+offsetcache[0]-this.deltaX;this.ycomp=y+offsetcache[1]-this.deltaY;this.offset=Element.cumulativeOffset(element);return(this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+element.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+element.offsetWidth);},overlap:function(mode,element){if(!mode)return 0;if(mode=='vertical')
return((this.offset[1]+element.offsetHeight)-this.ycomp)/element.offsetHeight;if(mode=='horizontal')
return((this.offset[0]+element.offsetWidth)-this.xcomp)/element.offsetWidth;},cumulativeOffset:Element.Methods.cumulativeOffset,positionedOffset:Element.Methods.positionedOffset,absolutize:function(element){Position.prepare();return Element.absolutize(element);},relativize:function(element){Position.prepare();return Element.relativize(element);},realOffset:Element.Methods.cumulativeScrollOffset,offsetParent:Element.Methods.getOffsetParent,page:Element.Methods.viewportOffset,clone:function(source,target,options){options=options||{};return Element.clonePosition(target,source,options);}};if(!document.getElementsByClassName)document.getElementsByClassName=function(instanceMethods){function iter(name){return name.blank()?null:"[contains(concat(' ', @class, ' '), ' "+name+" ')]";}
instanceMethods.getElementsByClassName=Prototype.BrowserFeatures.XPath?function(element,className){className=className.toString().strip();var cond=/\s/.test(className)?$w(className).map(iter).join(''):iter(className);return cond?document._getElementsByXPath('.//*'+cond,element):[];}:function(element,className){className=className.toString().strip();var elements=[],classNames=(/\s/.test(className)?$w(className):null);if(!classNames&&!className)return elements;var nodes=$(element).getElementsByTagName('*');className=' '+className+' ';for(var i=0,child,cn;child=nodes[i];i++){if(child.className&&(cn=' '+child.className+' ')&&(cn.include(className)||(classNames&&classNames.all(function(name){return!name.toString().blank()&&cn.include(' '+name+' ');}))))
elements.push(Element.extend(child));}
return elements;};return function(className,parentElement){return $(parentElement||document.body).getElementsByClassName(className);};}(Element.Methods);Element.ClassNames=Class.create();Element.ClassNames.prototype={initialize:function(element){this.element=$(element);},_each:function(iterator){this.element.className.split(/\s+/).select(function(name){return name.length>0;})._each(iterator);},set:function(className){this.element.className=className;},add:function(classNameToAdd){if(this.include(classNameToAdd))return;this.set($A(this).concat(classNameToAdd).join(' '));},remove:function(classNameToRemove){if(!this.include(classNameToRemove))return;this.set($A(this).without(classNameToRemove).join(' '));},toString:function(){return $A(this).join(' ');}};Object.extend(Element.ClassNames.prototype,Enumerable);Element.addMethods();if(!window.RichFaces){window.RichFaces={};}
if(!window.RichFaces.Memory){window.RichFaces.Memory={nodeCleaners:{},componentCleaners:{},addCleaner:function(name,cleaner){this.nodeCleaners[name]=cleaner;},addComponentCleaner:function(name,cleaner,checker){this.componentCleaners[name]={cleaner:cleaner,checker:checker};},applyCleaners:function(node,isAjax,componentNodes){for(var name in this.nodeCleaners){this.nodeCleaners[name](node,isAjax);}
for(var name in this.componentCleaners){if(this.componentCleaners[name].checker(node,isAjax))
componentNodes.push(node);}},_clean:function(oldNode,isAjax,componentNodes){if(oldNode){this.applyCleaners(oldNode,isAjax,componentNodes);var all=oldNode.all;if(all){var counter=0;var length=all.length;for(var counter=0;counter<length;counter++){this.applyCleaners(all[counter],isAjax,componentNodes);}}else{var node=oldNode.firstChild;while(node){this._clean(node,isAjax,componentNodes);node=node.nextSibling;}}}},_cleanComponentNodes:function(oldNodes,isAjax){for(var i=0;i<oldNodes.length;i++){var node=oldNodes[i];for(var name in this.componentCleaners){this.componentCleaners[name].cleaner(node,isAjax);}}},clean:function(oldNode,isAjax){var componentNodes=[];this._clean(oldNode,isAjax,componentNodes);this._cleanComponentNodes(componentNodes,isAjax);componentNodes=null;}};window.RichFaces.Memory.addComponentCleaner("richfaces",function(node,isAjax){var component=node.component;if(component){var destructorName=component["rich:destructor"];if(destructorName){var destructor=component[destructorName];if(destructor){destructor.call(component,isAjax);}}}},function(node,isAjax){return(node.component&&node.component["rich:destructor"]);});if(window.attachEvent){window.attachEvent("onunload",function(){var memory=window.RichFaces.Memory;memory.clean(document);memory.clean(window);});}}
Function.prototype.indexOf=function(){return-1;}
Element.clearChildren=function(element){element=$(element);while(element.firstChild){element.removeChild(element.firstChild);}
return element;};Element.isChildOf=function(node,supposedParent){while(node&&supposedParent!=node){node=node.parentNode;}
return supposedParent==node;};if(typeof Node=="undefined"){Node={ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12};};Element.isUninitialized=function(element){if(element){if(element.nodeType==Node.ELEMENT_NODE){if(!element.parentNode||element.document&&element.document.readyState=="uninitialized"){return true;}else
{return!Element.descendantOf(element,document.documentElement);}
return false;}}};if(window.RichFaces&&window.RichFaces.Memory){window.RichFaces.Memory.addCleaner("prototype",function(node,isAjax){var eventID=node._prototypeEventID?node._prototypeEventID[0]:undefined;if(eventID){var cache=Event.cache[eventID];for(var eventName in cache){var wrappers=cache[eventName];var domEventName=Event.getDOMEventName(eventName);wrappers.each(function(wrapper){if(node.removeEventListener){node.removeEventListener(domEventName,wrapper,false);}else{node.detachEvent("on"+domEventName,wrapper);}});cache[eventName]=null;}
delete Event.cache[eventID];}});}
if(!window.Richfaces){window.Richfaces={};}
Richfaces.mergeStyles=function(userStyles,commonStyles){var i;for(i in userStyles){if(typeof userStyles[i]=="object"){this.mergeStyles(userStyles[i],commonStyles[i]);}else{commonStyles[i]+=" "+userStyles[i];}}
return commonStyles;};Richfaces.getComputedStyle=function(eltId,propertyName){var elt=$(eltId);if(elt.nodeType!=Node.ELEMENT_NODE){return"";}
if(elt.currentStyle){return elt.currentStyle[propertyName];}
if(document.defaultView&&document.defaultView.getComputedStyle){var styles=document.defaultView.getComputedStyle(elt,null);if(styles){return styles.getPropertyValue(propertyName);}}
return"";};Richfaces.getComputedStyleSize=function(eltId,propertyName){var value=Richfaces.getComputedStyle(eltId,propertyName);if(value){value=value.strip();value=value.replace(/px$/,"");return parseFloat(value);}
return 0;};Richfaces.getWindowSize=function(){var myWidth=0,myHeight=0;if(typeof(window.innerWidth)=='number'){myWidth=window.innerWidth;myHeight=window.innerHeight;}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){myWidth=document.documentElement.clientWidth;myHeight=document.documentElement.clientHeight;}else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){myWidth=document.body.clientWidth;myHeight=document.body.clientHeight;}
return{"width":myWidth,"height":myHeight};};Richfaces.removePX=function(str){var pxIndex=str.indexOf("px")
if(pxIndex==-1)return str;return str.substr(0,pxIndex);};Richfaces.visitTree=function(root,callback){var node=root;if(!node){node=document;}
callback.call(this,node);var child=node.firstChild;while(child){Richfaces.visitTree(child,callback);child=child.nextSibling;}};Richfaces.getNSAttribute=function(name,element){if(element.getAttributeNS){var attr=element.getAttributeNS('http://richfaces.ajax4jsf.org/rich',name);if(attr){return attr;}}
var attributes=element.attributes;var attrName="rich:"+name;var attr=attributes[attrName];if(attr){return attr.nodeValue;}
return null;};Richfaces.VARIABLE_NAME_PATTERN=/^\s*[_,A-Z,a-z][\w,_\.]*\s*$/;Richfaces.getObjectValue=function(str,object){var a=str.split(".");var value=object[a[0]];var c=1;while(value&&c<a.length)value=value[a[c++]];return(value?value:"");}
Richfaces.evalMacro=function(template,object)
{var _value_="";if(Richfaces.VARIABLE_NAME_PATTERN.test(template))
{if(template.indexOf('.')==-1){_value_=object[template];if(!_value_)_value_=window[template];}
else{_value_=Richfaces.getObjectValue(template,object);if(!_value_)_value_=Richfaces.getObjectValue(template,window);}
if(_value_&&typeof _value_=='function')_value_=_value_(object);if(!_value_)_value_="";}
else{try{if(Richfaces.browser.isObjectEval){_value_=object.eval(template);}
else with(object){_value_=eval(template);}
if(typeof _value_=='function'){_value_=_value_(object);}}catch(e){LOG.warn("Exception: "+e.Message+"\n["+template+"]");}}
return _value_;}
Richfaces.evalSimpleMacro=function(template,object)
{var value=object[template];if(!value){value=window[template];if(!value)value="";}
return value;}
Richfaces.getComponent=function(componentType,element)
{var attribute="richfacesComponent";var type="richfaces:"+componentType;while(element.parentNode){if(element[attribute]&&element[attribute]==type)
return element.component;else
element=element.parentNode;}}
Richfaces.browser={isIE:(!window.opera&&/MSIE/.test(navigator.userAgent)),isIE6:(!window.opera&&/MSIE\s*[6][\d,\.]+;/.test(navigator.userAgent)),isSafari:/Safari/.test(navigator.userAgent),isOpera:!!window.opera,isObjectEval:(Richfaces.eval!=undefined),isFF2:(!window.opera&&/Firefox\s*[\/]2[\.]/.test(navigator.userAgent)),isFF3:(!window.opera&&/Firefox\s*[\/]3[\.]/.test(navigator.userAgent))};Richfaces.eval=function(template,object){var value='';try{with(object){value=eval(template);}}catch(e){LOG.warn('Exception: '+e.message+'\n['+template+']');}
return value;};Richfaces.interpolate=function(placeholders,context){for(var k in context){var v=context[k];var regexp=new RegExp("\\{"+k+"\\}","g");placeholders=placeholders.replace(regexp,v);}
return placeholders;};if(!Richfaces.position)Richfaces.Position={};Richfaces.Position.setElementPosition=function(element,baseElement,jointPoint,direction,offset)
{var elementDim=Richfaces.Position.getOffsetDimensions(element);var baseElementDim=Richfaces.Position.getOffsetDimensions(baseElement);var windowRect=Richfaces.Position.getWindowViewport();var baseOffset=Position.cumulativeOffset(baseElement);var ox=baseOffset[0];var oy=baseOffset[1];var re=/^(top|bottom)-(left|right)$/;var match;if(typeof jointPoint=='object'){ox=jointPoint.x;oy=jointPoint.y}
else if(jointPoint&&(match=jointPoint.toLowerCase().match(re))!=null)
{if(match[2]=='right')ox+=baseElementDim.width;if(match[1]=='bottom')oy+=baseElementDim.height;}else
{}
if(direction&&(match=direction.toLowerCase().match(re))!=null)
{var d=direction.toLowerCase().split('-');if(match[2]=='left'){ox-=elementDim.width+offset.x;}else ox+=offset.x;if(match[1]=='top'){oy-=elementDim.height+offset.y;}else oy+=offset.y}else
{var theBest={square:0};var rect={right:baseOffset[0]+baseElementDim.width,top:baseOffset[1]+baseElementDim.height};rect.left=rect.right-elementDim.width;rect.bottom=rect.top+elementDim.height;ox=rect.left;oy=rect.top;var s=Richfaces.Position.checkCollision(rect,windowRect);if(s!=0)
{if(ox>=0&&oy>=0&&theBest.square<s)theBest={x:ox,y:oy,square:s};rect={right:baseOffset[0]+baseElementDim.width,bottom:baseOffset[1]};rect.left=rect.right-elementDim.width;rect.top=rect.bottom-elementDim.height;ox=rect.left;oy=rect.top;s=Richfaces.Position.checkCollision(rect,windowRect);if(s!=0)
{if(ox>=0&&oy>=0&&theBest.square<s)theBest={x:ox,y:oy,square:s};rect={left:baseOffset[0],top:baseOffset[1]+baseElementDim.height};rect.right=rect.left+elementDim.width;rect.bottom=rect.top+elementDim.height;ox=rect.left;oy=rect.top;s=Richfaces.Position.checkCollision(rect,windowRect);if(s!=0)
{if(ox>=0&&oy>=0&&theBest.square<s)theBest={x:ox,y:oy,square:s};rect={left:baseOffset[0],bottom:baseOffset[1]};rect.right=rect.left+elementDim.width;rect.top=rect.bottom-elementDim.height;ox=rect.left;oy=rect.top;s=Richfaces.Position.checkCollision(rect,windowRect);if(s!=0)
{if(ox<0||oy<0||theBest.square>s){ox=theBest.x;oy=theBest.y}}}}}}
element.style.left=ox+'px';element.style.top=oy+'px';};Richfaces.Position.getOffsetDimensions=function(element){element=$(element);var display=$(element).getStyle('display');if(display!='none'&&display!=null)
return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';els.position='absolute';els.display='block';var originalWidth=element.offsetWidth;var originalHeight=element.offsetHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};};Richfaces.Position.checkCollision=function(elementRect,windowRect,windowOffset)
{if(elementRect.left>=windowRect.left&&elementRect.top>=windowRect.top&&elementRect.right<=windowRect.right&&elementRect.bottom<=windowRect.bottom)
return 0;var rect={left:(elementRect.left>windowRect.left?elementRect.left:windowRect.left),top:(elementRect.top>windowRect.top?elementRect.top:windowRect.top),right:(elementRect.right<windowRect.right?elementRect.right:windowRect.right),bottom:(elementRect.bottom<windowRect.bottom?elementRect.bottom:windowRect.bottom)};return(rect.right-rect.left)*(rect.bottom-rect.top);};Richfaces.Position.getWindowDimensions=function(){var w=self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0;var h=self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;return{width:w,height:h};};Richfaces.Position.getWindowScrollOffset=function(){var dx=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;var dy=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;return{left:dx,top:dy};};Richfaces.Position.getWindowViewport=function(){var windowDim=Richfaces.Position.getWindowDimensions();var windowOffset=Richfaces.Position.getWindowScrollOffset();return{left:windowOffset.left,top:windowOffset.top,right:windowDim.width+windowOffset.left,bottom:windowDim.height+windowOffset.top};};Richfaces.firstDescendant=function(node){var n=node.firstChild;while(n&&n.nodeType!=1){n=n.nextSibling;}
return n;};Richfaces.lastDescendant=function(node){var n=node.lastChild;while(n&&n.nodeType!=1){n=n.previousSibling;}
return n;};Richfaces.next=function(node){var n=node;do{n=n.nextSibling;}while(n&&n.nodeType!=1);return n;};Richfaces.previous=function(node){var n=node;do{n=n.previousSibling;}while(n&&n.nodeType!=1);return n;};Richfaces.removeNode=function(node){if(node){var parentNode=node.parentNode;if(parentNode){parentNode.removeChild(node);}}};Richfaces.readAttribute=function(element,name){var result=null;var node=element.getAttributeNode(name);if(node){result=node.nodeValue;}
return result;};Richfaces.writeAttribute=function(element,name,value){var node=element.getAttributeNode(name);if(value!==null){if(node){node.nodeValue=value;}else{node=document.createAttribute(name);node.nodeValue=value;element.setAttributeNode(node);}}else{if(node){element.removeAttributeNode(node);}}};Richfaces.mergeObjects=function(){var target=arguments[0];if(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];if(source){for(var name in source){if(!target[name]){target[name]=source[name];}}}}}};Richfaces.invokeEvent=function(eventFunc,element,eventName,memo){var result;if(eventFunc){element=$(element);if(element==document&&document.createEvent&&!element.dispatchEvent)
element=document.documentElement;var event;if(document.createEvent){event=document.createEvent("HTMLEvents");event.initEvent("dataavailable",true,true);}else{event=document.createEventObject();event.eventType="ondataavailable";}
event.eventName=eventName;event.rich={component:this};event.memo=memo||{};try{result=eventFunc.call(element,event);}
catch(e){LOG.warn("Exception: "+e.Message+"\n[on"+eventName+"]");}}
if(result!=false)result=true;return result;};Richfaces.setupScrollEventHandlers=function(element,handler){var elements=[]
element=element.parentNode;while(element&&element!=window.document.body)
{if(element.offsetWidth!=element.scrollWidth||element.offsetHeight!=element.scrollHeight)
{elements.push(element);Event.observe(element,"scroll",handler,false);}
element=element.parentNode;}
return elements;};Richfaces.removeScrollEventHandlers=function(elements,handler){if(elements)
{for(var i=0;i<elements.length;i++)
{Event.stopObserving(elements[i],"scroll",handler,false);}
elements=null;}};if(!window.RichFaces){window.RichFaces={};}
RichFaces.MSIE=0;RichFaces.FF=1;RichFaces.OPERA=2;RichFaces.NETSCAPE=3;RichFaces.SAFARI=4;RichFaces.KONQ=5;RichFaces.navigatorType=function(){var userAgent=navigator.userAgent.toLowerCase();if(userAgent.indexOf("msie")>=0||userAgent.indexOf("explorer")>=0)
return RichFaces.MSIE;if(userAgent.indexOf("firefox")>=0||userAgent.indexOf("iceweasel")>=0)
return RichFaces.FF;if(userAgent.indexOf("opera")>=0)
return RichFaces.OPERA;if(userAgent.indexOf("netscape")>=0)
return RichFaces.NETSCAPE;if(userAgent.indexOf("safari")>=0)
return RichFaces.SAFARI;if(userAgent.indexOf("konqueror")>=0)
return RichFaces.KONQ;return"OTHER";}
RichFaces.getOperaVersion=function(){var userAgent=navigator.userAgent.toLowerCase();var index=userAgent.indexOf("opera");if(index==-1)return;return parseFloat(userAgent.substring(index+6));}
RichFaces.getIEVersion=function(){var searchString="msie";var agent=navigator.userAgent.toLowerCase();var idx=agent.indexOf(searchString);if(idx!=-1){var versIdx=agent.indexOf(";",idx);var versString;if(versIdx!=-1){versString=agent.substring(idx+searchString.length,versIdx);}else{versString=agent.substring(idx+searchString.length);}
return parseFloat(versString);}else{return undefined;}}
if(!window.DW){window.DW={};}
if(!window.Richfaces){window.Richfaces={};}
function discardElement(element){var garbageBin=document.getElementById('IELeakGarbageBin');if(!garbageBin){garbageBin=document.createElement('DIV');garbageBin.id='IELeakGarbageBin';garbageBin.style.display='none';document.body.appendChild(garbageBin);}
window.RichFaces.Memory.clean(element);garbageBin.appendChild(element);garbageBin.innerHTML='';}
Selection={};Selection.eventHandler=function(event){Event.stop(event);};Selection.eventHandler=Selection.eventHandler.bindAsEventListener(Selection);Selection.disableSelection=function(element)
{if(typeof element.onselectstart!="undefined")
{Event.observe(element,'selectstart',this.eventHandler);}
else if(typeof element.style.MozUserSelect!="undefined")
{element.style.MozUserSelect="none";}
else
{Event.observe(element,'mousedown',this.eventHandler);}}
Selection.enableSelection=function(element)
{if(typeof element.onselectstart!="undefined")
{Event.stopObserving(element,'selectstart',this.eventHandler);}
else if(typeof element.style.MozUserSelect!="undefined")
{element.style.MozUserSelect="";}
else
{Event.stopObserving(element,'mousedown',this.eventHandler);}}
ModalPanel=Class.create();{var ieVersion=RichFaces.getIEVersion();if(ieVersion&&ieVersion<7){ModalPanel.disableSelects=true;}}
ModalPanel.panels=new Array();ModalPanel.activePanels=new Array();function getSizeElement(){var element;var element;if(RichFaces.navigatorType()!=RichFaces.OPERA&&document.compatMode=='CSS1Compat'){element=document.documentElement;}else{element=document.body;}
return element;}
ModalPanel.getMinimumSize=function(size){return Math.max(size,2*ModalPanel.Sizer.INITIAL_MIN+2);};ModalPanel.prototype={initialize:function(id,options){this["rich:destructor"]="destroy";this.markerId=$(id);this.id=$(id+"Container");this.options=options;this.baseZIndex=this.options.zindex?this.options.zindex:100;this.minWidth=ModalPanel.getMinimumSize(this.options.minWidth);this.minHeight=ModalPanel.getMinimumSize(this.options.minHeight);this.div=id+"Div";this.cursorDiv=id+"CursorDiv";this.cdiv=id+"CDiv";this.contentDiv=id+"ContentDiv";this.contentTable=id+"ContentTable";this.shadowDiv=id+"ShadowDiv";this.borders=new Array();if(this.options.resizeable){this.borders.push(new ModalPanel.Border(id+"ResizerN",this,"N-resize",ModalPanel.Sizer.N));this.borders.push(new ModalPanel.Border(id+"ResizerE",this,"E-resize",ModalPanel.Sizer.E));this.borders.push(new ModalPanel.Border(id+"ResizerS",this,"S-resize",ModalPanel.Sizer.S));this.borders.push(new ModalPanel.Border(id+"ResizerW",this,"W-resize",ModalPanel.Sizer.W));this.borders.push(new ModalPanel.Border(id+"ResizerNWU",this,"NW-resize",ModalPanel.Sizer.NWU));this.borders.push(new ModalPanel.Border(id+"ResizerNEU",this,"NE-resize",ModalPanel.Sizer.NEU));this.borders.push(new ModalPanel.Border(id+"ResizerNEL",this,"NE-resize",ModalPanel.Sizer.NEL));this.borders.push(new ModalPanel.Border(id+"ResizerSEU",this,"SE-resize",ModalPanel.Sizer.SEU));this.borders.push(new ModalPanel.Border(id+"ResizerSEL",this,"SE-resize",ModalPanel.Sizer.SEL));this.borders.push(new ModalPanel.Border(id+"ResizerSWL",this,"SW-resize",ModalPanel.Sizer.SWL));this.borders.push(new ModalPanel.Border(id+"ResizerSWU",this,"SW-resize",ModalPanel.Sizer.SWU));this.borders.push(new ModalPanel.Border(id+"ResizerNWL",this,"NW-resize",ModalPanel.Sizer.NWL));}
if(this.options.moveable&&$(id+"Header")){this.header=new ModalPanel.Border(id+"Header",this,"move",ModalPanel.Header);}
this.markerId.component=this;var eDiv=$(this.div);if(eDiv.style.setExpression)
if(ModalPanel.disableSelects||Richfaces.getComputedStyle(eDiv,"position")!="fixed")
{eDiv.style.position="absolute";var eCursorDiv=$(this.cursorDiv);eCursorDiv.style.position="absolute";eDiv.style.zoom="1";eCursorDiv.style.zoom="1";var eCdiv=$(this.cdiv);eCdiv.style.position="absolute";eCdiv.parentNode.style.position="absolute";eCdiv.mpUseExpr=true;}
ModalPanel.panels.push(this);this.eventFirstOnfocus=this.firstOnfocus.bindAsEventListener(this);this.eventLastOnfocus=this.lastOnfocus.bindAsEventListener(this);this.firstHref=id+"FirstHref";this.lastHref=id+"LastHref";this.selectBehavior=options.selectBehavior;},_saveInputValues:function(element){if(Prototype.Browser.IE){var inputs=element.getElementsByTagName('input');if(inputs){for(var i=0;i<inputs.length;i++){var input=inputs[i];if(input.type=='checkbox'||input.type=='radio'){input.defaultChecked=input.checked;}}}}},width:function(){return this.getSizedElement().clientWidth;},height:function(){return this.getSizedElement().clientHeight;},getSizedElement:function(){if(!this._sizedElement){this._sizedElement=$(this.cdiv);}
return this._sizedElement;},getContentElement:function(){if(!this._contentElement){this._contentElement=this.options.autosized?$(this.contentTable):$(this.contentDiv);}
return this._contentElement;},destroy:function(){if(this.observerSize){window.clearInterval(this.observerSize);this.observerSize=null;}
this._contentElement=null;this._sizedElement=null;ModalPanel.panels=ModalPanel.panels.without(this);this.enableSelects();ModalPanel.activePanels=ModalPanel.activePanels.without(this);this.parent=null;this.firstOutside=null;this.lastOutside=null;if(this.header){this.header.destroy();this.header=null;}
for(var k=0;k<this.borders.length;k++){this.borders[k].destroy();}
this.borders=null;setTimeout(function(){if(this.domReattached){var element=this.id;var parent=element.parentNode;if(parent){parent.removeChild(element);discardElement(element);}}}.bind(this),0);this.markerId.component=null;this.markerId=null;},initIframe:function(){if(this.contentWindow){Element.setStyle(this.contentWindow.document.body,{"margin":"0px 0px 0px 0px"});}else{}
if("transparent"==Element.getStyle(document.body,"background-color")){this.style.filter="alpha(opacity=0)";this.style.opacity="0";}},enableSelect:function(elt){if(elt._mdwProcessed){elt._mdwProcessed=undefined;if(elt._mdwDisabled){elt.disabled=false;elt._mdwDisabled=undefined;}
if(typeof elt._mdwHidden!="undefined"){elt.style.visibility=elt._mdwHidden;elt._mdwHidden=undefined;}}},disableSelect:function(elt){if(!elt._mdwProcessed){elt._mdwProcessed=true;if("hide"==this.selectBehavior){if(elt.style.visibility!="hidden"){elt._mdwHidden=elt.style.visibility;elt.style.visibility="hidden";}}else{if(!elt.disabled){elt.disabled=true;elt._mdwDisabled=true;}}}},enableInnerSelects:function(){if(ModalPanel.disableSelects){var selects=this.id.getElementsByTagName("SELECT");for(var k=0;k<selects.length;k++){this.enableSelect(selects[k]);}}},disableInnerSelects:function(){if(ModalPanel.disableSelects){var selects=this.id.getElementsByTagName("SELECT");for(var k=0;k<selects.length;k++){this.disableSelect(selects[k]);}}},enableSelects:function(){if(!ModalPanel.disableSelects){return;}
var lastPanel=ModalPanel.activePanels[ModalPanel.activePanels.length-1];var newLastPanel=ModalPanel.activePanels[ModalPanel.activePanels.length-2];if(newLastPanel){if(lastPanel==this){newLastPanel.enableInnerSelects();}}else{var children=document.body.childNodes;for(var k=0;k<children.length;k++){var child=children[k];if(!child.getElementsByTagName){continue;}
var selects=child.getElementsByTagName("SELECT");for(var i=0;i<selects.length;i++){this.enableSelect(selects[i]);}}}},disableOuterSelects:function(){if(!ModalPanel.disableSelects){return;}
var lastPanel=ModalPanel.activePanels.last();if(lastPanel){lastPanel.disableInnerSelects();this.enableInnerSelects();}else{var children=document.body.childNodes;for(var k=0;k<children.length;k++){var child=children[k];if(child==this.id){continue;}
if(!child.getElementsByTagName){continue;}
var selects=child.getElementsByTagName("SELECT");for(var i=0;i<selects.length;i++){this.disableSelect(selects[i]);}}}},setLeft:function(pos){var eCdiv=$(this.cdiv);if(eCdiv.mpUseExpr){eCdiv.mpLeft=pos;}else{eCdiv.style.left=pos+"px";}},setTop:function(pos){var eCdiv=$(this.cdiv);if(eCdiv.mpUseExpr){eCdiv.mpTop=pos;}else{eCdiv.style.top=pos+"px";}},firstOnfocus:function(event){var e=$(this.firstHref)
if(e&&(ModalPanel.activePanels.last()==this)){e.focus();}},lastOnfocus:function(event){var e=$(this.lastHref);if(e&&(ModalPanel.activePanels.last()==this)){e.focus();}},formElements:"|a|input|select|button|textarea|",processAllFocusElements:function(root,callback){var idx=-1;var tagName;if(root.focus&&root.nodeType==1&&(tagName=root.tagName)&&(idx=this.formElements.indexOf(tagName.toLowerCase()))!=-1&&this.formElements.charAt(idx-1)==='|'&&this.formElements.charAt(idx+tagName.length)==='|'&&!root.disabled&&root.type!="hidden"){callback.call(this,root);}else{if(root!=this.id){var child=root.firstChild;while(child){if(!child.style||child.style.display!='none'){this.processAllFocusElements(child,callback);}
child=child.nextSibling;}}}},processTabindexes:function(input){if(!this.firstOutside&&!(input.tagName.toLowerCase()=="select"&&ModalPanel.disableSelects)){this.firstOutside=input;}
this.lastOutside=input;if(input.tabIndex&&!input.prevTabIndex){input.prevTabIndex=input.tabIndex;}
input.tabIndex=undefined;if(input.accesskey&&!input.prevAccesskey){input.prevAccesskey=input.accesskey;}
input.accesskey=undefined;},restoreTabindexes:function(input){if(input.prevTabIndex){input.tabIndex=input.prevTabIndex;input.prevTabIndex=undefined;}
if(input.prevAccesskey){input.accesskey=input.prevAccesskey;input.prevAccesskey=undefined;}},preventFocus:function(){this.processAllFocusElements(document,this.processTabindexes);if(this.firstOutside){Event.observe(this.firstOutside,"focus",this.eventFirstOnfocus);}
if(this.lastOutside&&this.lastOutside!=this.firstOutside){Event.observe(this.lastOutside,"focus",this.eventLastOnfocus);}},restoreFocus:function(){this.processAllFocusElements(document,this.restoreTabindexes);if(this.firstOutside){Event.stopObserving(this.firstOutside,"focus",this.eventFirstOnfocus);this.firstOutside=null;}
if(this.lastOutside){Event.stopObserving(this.lastOutside,"focus",this.eventLastOnfocus);this.lastOutside=null;}},show:function(event,opts){if(!this.shown&&this.invokeEvent("beforeshow",event,null,element)){var element=this.id;this.preventFocus();if(!this.domReattached){this.parent=element.parentNode;var domElementAttachment;if(opts){domElementAttachment=opts.domElementAttachment;}
if(!domElementAttachment){domElementAttachment=this.options.domElementAttachment;}
var newParent;if('parent'==domElementAttachment){newParent=this.parent;}else if('form'==domElementAttachment){newParent=this._findForm(element)||document.body;}else{newParent=document.body;}
if(newParent!=this.parent){this._saveInputValues(element);newParent.insertBefore(element,null);this.domReattached=true;}else{Element.show(this.parent);}}
var eCdiv=$(this.cdiv);var forms=eCdiv.getElementsByTagName("form");if(this.options.keepVisualState&&forms){this.formOnsubmit=this.setStateInput.bindAsEventListener(this);for(var i=0;i<forms.length;i++){Event.observe(forms[i],"submit",this.formOnsubmit);}}
var eIframe;if((ModalPanel.disableSelects||this.options.overlapEmbedObjects)&&!this.iframe){this.iframe=this.id.id+"IFrame";new Insertion.Top(eCdiv,"<iframe src=\"javascript:''\" frameborder=\"0\" scrolling=\"no\" id=\""+this.iframe+"\" "+"class=\"dr-mpnl-iframe\" style=\"width: 1px; height: 1px;\">"+"</iframe>");eIframe=$(this.iframe);Event.observe(eIframe,'load',this.initIframe.bindAsEventListener(eIframe));}
var options={};this.userOptions={};if(!eCdiv.mpSet){Object.extend(options,this.options);}
if(opts){Object.extend(options,opts);Object.extend(this.userOptions,opts);}
this.currentMinHeight=ModalPanel.getMinimumSize((options.minHeight||options.minHeight==0)?options.minHeight:this.minHeight);this.currentMinWidth=ModalPanel.getMinimumSize((options.minWidth||options.minWidth==0)?options.minWidth:this.minWidth);var eContentElt=this.getContentElement();if(!this.options.autosized){if(options.width&&options.width==-1)
options.width=300;if(options.height&&options.height==-1)
options.height=200;}
if(options.width&&options.width!=-1){if(this.currentMinWidth>options.width){options.width=this.currentMinWidth;}
eContentElt.style.width=options.width+(/px/.test(options.width)?'':'px');}
if(options.height&&options.height!=-1){if(this.currentMinHeight>options.height){options.height=this.currentMinHeight;}
eContentElt.style.height=options.height+(/px/.test(options.height)?'':'px');}
eCdiv.mpSet=true;this.disableOuterSelects();ModalPanel.activePanels=ModalPanel.activePanels.without(this);ModalPanel.activePanels.push(this);var eDiv=$(this.div);if(eDiv.style.position=="absolute")
{var we="getSizeElement().clientWidth + \"px\"";var he="getSizeElement().clientHeight + \"px\"";eDiv.style.setExpression("width",we);eDiv.style.setExpression("height",he);var eCursorDiv=$(this.cursorDiv);eCursorDiv.style.setExpression("width",we);eCursorDiv.style.setExpression("height",he);var le="-Position.cumulativeOffset(this.parentNode)[0] + getSizeElement().scrollLeft + \"px\"";var te="-Position.cumulativeOffset(this.parentNode)[1] + getSizeElement().scrollTop + \"px\"";eDiv.style.setExpression("left",le);eDiv.style.setExpression("top",te);eCursorDiv.style.setExpression("left",le);eCursorDiv.style.setExpression("top",te);var leftExpr="(this.mpLeft || 0) + -Position.cumulativeOffset(this.parentNode)[0] + getSizeElement().scrollLeft + \"px\"";var topExpr="(this.mpTop || 0) + -Position.cumulativeOffset(this.parentNode)[1] + getSizeElement().scrollTop + \"px\"";eCdiv.style.setExpression("left",leftExpr);eCdiv.style.setExpression("top",topExpr);}
element.style.visibility="hidden";Element.show(element);this.correctShadowSize();if(options.left){var _left;if(options.left!="auto"){_left=parseInt(options.left,10);}else{var cw=getSizeElement().clientWidth;var _width=this.width();if(cw>=_width){_left=(cw-_width)/2;}else{_left=0;}}
this.setLeft(Math.round(_left));}
if(options.top){var _top;if(options.top!="auto"){_top=parseInt(options.top,10);}else{var cw=getSizeElement().clientHeight;var _height=this.height();if(cw>=_height){_top=(cw-_height)/2;}else{_top=0;}}
this.setTop(Math.round(_top));}
if(this.options.autosized){this.observerSize=window.setInterval(this.correctShadowSize.bindAsEventListener(this),500);}
this.doResizeOrMove(ModalPanel.Sizer.Diff.EMPTY);for(var k=0;k<this.borders.length;k++){this.borders[k].doPosition();}
if(this.header){this.header.doPosition();}
Element.hide(eCdiv);element.style.visibility="";this.lastOnfocus();Element.show(eCdiv);var event={};event.parameters=opts||{};this.shown=true;this.invokeEvent("show",event,null,element);}},startDrag:function(border){for(var k=0;k<this.borders.length;k++){this.borders[k].hide();}
Selection.disableSelection(document.body);},endDrag:function(border){for(var k=0;k<this.borders.length;k++){this.borders[k].show();this.borders[k].doPosition();}
Selection.enableSelection(document.body);},hide:function(event,opts){if(this.shown&&this.invokeEvent("beforehide",event,null,element)){this.currentMinHeight=undefined;this.currentMinWidth=undefined;this.restoreFocus();this.enableSelects();ModalPanel.activePanels=ModalPanel.activePanels.without(this);var eDiv=$(this.div);var eCdiv=$(this.cdiv);if(eDiv.style.position=="absolute"){eDiv.style.removeExpression("width");eDiv.style.removeExpression("height");eDiv.style.removeExpression("left");eDiv.style.removeExpression("top");var eCursorDiv=$(this.cursorDiv);eCursorDiv.style.removeExpression("width");eCursorDiv.style.removeExpression("height");eCursorDiv.style.removeExpression("left");eCursorDiv.style.removeExpression("top");eCdiv.style.removeExpression("left");eCdiv.style.removeExpression("top");}
var element=$(this.id);Element.hide(element);if(this.parent){if(this.domReattached){this._saveInputValues(element);this.parent.appendChild(element);this.domReattached=false;}else{Element.hide(this.parent);}}
var event={};event.parameters=opts||{};if(this.options&&this.options.onhide){this.options.onhide(event);}
var forms=eCdiv.getElementsByTagName("form");if(this.options.keepVisualState&&forms){for(var i=0;i<forms.length;i++){Event.stopObserving(forms[i],"submit",this.formOnsubmit);}}
this.shown=false;if(this.observerSize){window.clearInterval(this.observerSize);this.observerSize=null;}
if(ModalPanel.activePanels.length>0){ModalPanel.activePanels.last().preventFocus();}}},_getStyle:function(elt,name){return parseInt(elt.style[name].replace("px",""),10);},doResizeOrMove:function(diff){var vetoes={};var cssHash={};var cssHashWH={};var vetoeChange=false;var newSize;var eContentElt=this.getContentElement();newSize=this._getStyle(eContentElt,"width");var oldSize=newSize;newSize+=diff.deltaWidth||0;if(newSize>=this.currentMinWidth||this.options.autosized){if(diff.deltaWidth){cssHashWH.width=newSize+'px';}}else{if(diff.deltaWidth){cssHashWH.width=this.currentMinWidth+'px';vetoes.vx=oldSize-this.currentMinWidth;}
vetoes.x=true;}
if(vetoes.vx&&diff.deltaX){diff.deltaX=-vetoes.vx;}
var eCdiv=$(this.cdiv);if(diff.deltaX&&(vetoes.vx||!vetoes.x)){if(vetoes.vx){diff.deltaX=vetoes.vx;}
var newPos;newPos=this._getStyle(eCdiv,"left");newPos+=diff.deltaX;cssHash.left=newPos+'px';}
newSize=this._getStyle(eContentElt,"height")
var oldSize=newSize;newSize+=diff.deltaHeight||0;if(newSize>=this.currentMinHeight||this.options.autosized){if(diff.deltaHeight){cssHashWH.height=newSize+'px';}}else{if(diff.deltaHeight){cssHashWH.height=this.currentMinHeight+'px';vetoes.vy=oldSize-this.currentMinHeight;}
vetoes.y=true;}
if(vetoes.vy&&diff.deltaY){diff.deltaY=-vetoes.vy;}
if(diff.deltaY&&(vetoes.vy||!vetoes.y)){if(vetoes.vy){diff.deltaY=vetoes.vy;}
var newPos;if(eCdiv.mpUseExpr){newPos=eCdiv.mpTop||0;newPos+=diff.deltaY;eCdiv.mpTop=newPos;cssHash.top=newPos+'px';}else{newPos=this._getStyle(eCdiv,"top");newPos+=diff.deltaY;cssHash.top=newPos+'px';}}
Element.setStyle(eContentElt,cssHashWH);Element.setStyle(eCdiv,cssHash);this.correctShadowSize();Object.extend(this.userOptions,cssHash);Object.extend(this.userOptions,cssHashWH);var w=this.width();var h=this.height();this.reductionData=null;if(w<=2*ModalPanel.Sizer.INITIAL_MAX){this.reductionData={};this.reductionData.w=w;}
if(h<=2*ModalPanel.Sizer.INITIAL_MAX){if(!this.reductionData){this.reductionData={};}
this.reductionData.h=h;}
if(this.header){this.header.doPosition();}
return vetoes;},_findForm:function(elt){var target=elt;while(target){if(!target.tagName||target.tagName.toLowerCase()!="form"){target=target.parentNode;}else{break;}}
return target;},setStateInput:function(e){var target=Event.element(e);if(e&&target){target=this._findForm(target);var input=document.createElement("input");input.type="hidden";input.id=this.markerId.id+"OpenedState";input.name=this.markerId.id+"OpenedState";input.value=this.shown?"true":"false";target.appendChild(input);var keys=$H(this.userOptions).keys();if(keys){for(var i=0;i<keys.length;i++){input=document.createElement("input");input.type="hidden";input.id=this.id.id+"StateOption_"+keys[i];input.name=this.id.id+"StateOption_"+keys[i];input.value=this.userOptions[keys[i]];target.appendChild(input);}}
return true;}},correctShadowSize:function(){var eShadowDiv=$(this.shadowDiv);if(!eShadowDiv){return;}
var eIframe=$(this.iframe);var dx=0;var dy=0;if(!Richfaces.browser.isIE)
{dx=eShadowDiv.offsetWidth-eShadowDiv.clientWidth;dy=eShadowDiv.offsetHeight-eShadowDiv.clientHeight;}
var w=this.width();var h=this.height();eShadowDiv.style.width=(w-dx)+"px";eShadowDiv.style.height=(h-dy)+"px";if(eIframe){eIframe.style.width=w+"px";eIframe.style.height=h+"px";}},invokeEvent:function(eventName,event,value,element){var eventFunction=this.options['on'+eventName];var result;if(eventFunction){var eventObj;if(event){eventObj=event;}
else if(document.createEventObject){eventObj=document.createEventObject();}
else if(document.createEvent){eventObj=document.createEvent('Events');eventObj.initEvent(eventName,true,false);}
eventObj.rich={component:this};eventObj.rich.value=value;try{result=eventFunction.call(element,eventObj);}
catch(e){LOG.warn("Exception: "+e.Message+"\n[on"+eventName+"]");}}
if(result!=false){result=true;}
return result;}}
Richfaces.findModalPanel=function(id){if(id){var prefId=(id.charAt(0)==':'?id:':'+id);for(var i=0;i<ModalPanel.panels.length;i++){var pnl=ModalPanel.panels[i];if(pnl&&pnl.markerId){var pnlId=pnl.markerId.id;if(pnlId){if(pnlId.length>=prefId.length){var substr=pnlId.substring(pnlId.length-prefId.length,pnlId.length);if(substr==prefId){return pnl.markerId;}}}}}}}
Richfaces.showModalPanel=function(id,opts,event){var invoke=(Richfaces.browser.isIE||Richfaces.browser.isSafari)?function(f){if(document.readyState!="complete"){var args=arguments;var dis=this;window.setTimeout(function(){args.callee.apply(dis,args);},50);}else{f();}}:function(f){f();};var panel=$(id);if(!panel){panel=Richfaces.findModalPanel(id);}
invoke(function(){panel.component.show(event,opts);});};Richfaces.hideModalPanel=function(id,opts,event){var panel=$(id);if(!panel){panel=Richfaces.findModalPanel(id);}
panel.component.hide(event,opts);};Richfaces.hideTopModalPanel=function(event,opts){var mp=ModalPanel.activePanels.last();if(mp){mp.hide(event,opts);}}
ModalPanel.Border=Class.create();ModalPanel.Border.prototype={initialize:function(id,modalPanel,cursor,sizer){this.id=id;var element=$(id);element.style.cursor=cursor;this.boundStartDrag=this.startDrag.bindAsEventListener(this,new Date());Event.observe(this.id,'mousedown',this.boundStartDrag);this.modalPanel=modalPanel;this.sizer=sizer;this.boundDoDrag=this.doDrag.bindAsEventListener(this);this.boundEndDrag=this.endDrag.bindAsEventListener(this);},destroy:function()
{if(this.doingDrag)
{Event.stopObserving(document,'mousemove',this.boundDoDrag);Event.stopObserving(document,'mouseup',this.boundEndDrag);}
Event.stopObserving(this.id,'mousedown',this.boundStartDrag);this.modalPanel=null;},show:function(){Element.show(this.id);},hide:function(){Element.hide(this.id);},startDrag:function(event){this.doingDrag=true;this.dragX=event.clientX;this.dragY=event.clientY;Event.observe(document,'mousemove',this.boundDoDrag);Event.observe(document,'mouseup',this.boundEndDrag);var eCursorDiv=$(this.modalPanel.cursorDiv);eCursorDiv.style.cursor=$(this.id).style.cursor;eCursorDiv.style.zIndex=10;this.modalPanel.startDrag(this);this.onselectStartHandler=document.onselectstart;document.onselectstart=function(){return false;}},doDrag:function(event){if(!this.doingDrag){return;}
var evtX=event.clientX;var evtY=event.clientY;var winSize=Richfaces.getWindowSize();if(evtX<0){evtX=0;}else if(evtX>=winSize.width){evtX=winSize.width-1;}
if(evtY<0){evtY=0;}else if(evtY>=winSize.height){evtY=winSize.height-1;}
var dx=evtX-this.dragX;var dy=evtY-this.dragY;if(dx!=0||dy!=0){var id=this.id;var diff=this.sizer.doDiff(dx,dy);var doResize;var element=$(this.modalPanel.cdiv);if(diff.deltaWidth||diff.deltaHeight){doResize=this.modalPanel.invokeEvent("resize",event,null,element);}else if(diff.deltaX||diff.deltaY){doResize=this.modalPanel.invokeEvent("move",event,null,element);}
var vetoes;if(doResize){vetoes=this.modalPanel.doResizeOrMove(diff);}
if(vetoes){if(!vetoes.x){this.dragX=evtX;}else{if(!diff.deltaX){this.dragX-=vetoes.vx||0;}else{this.dragX+=vetoes.vx||0;}}
if(!vetoes.y){this.dragY=evtY;}else{if(!diff.deltaY){this.dragY-=vetoes.vy||0;}else{this.dragY+=vetoes.vy||0;}}}}},endDrag:function(event){this.doingDrag=undefined;Event.stopObserving(document,'mousemove',this.boundDoDrag);Event.stopObserving(document,'mouseup',this.boundEndDrag);this.modalPanel.endDrag(this);this.modalPanel.doResizeOrMove(ModalPanel.Sizer.Diff.EMPTY);$(this.modalPanel.cursorDiv).style.zIndex=-200;document.onselectstart=this.onselectStartHandler;this.onselectStartHandler=null;var id=this.id;},doPosition:function(){this.sizer.doPosition(this.modalPanel,$(this.id));}};ModalPanel.Sizer=Class.create();ModalPanel.Sizer.INITIAL_MIN=4;ModalPanel.Sizer.INITIAL_MAX=40;ModalPanel.Sizer.Diff=Class.create();ModalPanel.Sizer.Diff.prototype={initialize:function(dX,dY,dWidth,dHeight){this.deltaX=dX;this.deltaY=dY;this.deltaWidth=dWidth;this.deltaHeight=dHeight;}}
ModalPanel.Sizer.Diff.EMPTY=new ModalPanel.Sizer.Diff(0,0,0,0);ModalPanel.Sizer.prototype={initialize:function(){},doSetupSize:function(modalPanel,elt){var width=0;var height=0;var reductionData=modalPanel.reductionData;if(reductionData){if(reductionData.w){width=reductionData.w/2;}
if(reductionData.h){height=reductionData.h/2;}}
if(width>0){if(elt.clientWidth>width){if(!elt.reducedWidth){elt.reducedWidth=elt.style.width;}
elt.style.width=width+'px';}else if(width<ModalPanel.Sizer.INITIAL_MAX&&elt.reducedWidth==ModalPanel.Sizer.INITIAL_MAX+'px'){elt.style.width=width+'px';}}else{if(elt.reducedWidth){elt.style.width=elt.reducedWidth;elt.reducedWidth=undefined;}}
if(height>0){if(elt.clientHeight>height){if(!elt.reducedHeight){elt.reducedHeight=elt.style.height;}
elt.style.height=height+'px';}else if(height<ModalPanel.Sizer.INITIAL_MAX&&elt.reducedHeight==ModalPanel.Sizer.INITIAL_MAX+'px'){elt.style.height=height+'px';}}else{if(elt.reducedHeight){elt.style.height=elt.reducedHeight;elt.reducedHeight=undefined;}}},doSetupPosition:function(modalPanel,elt,left,top){elt.style.left=left+'px';elt.style.top=top+'px';},doPosition:function(modalPanel,elt){},doDiff:function(dx,dy){}}
ModalPanel.Sizer.NWU=Object.extend(new ModalPanel.Sizer(),{doPosition:function(modalPanel,elt){this.doSetupSize(modalPanel,elt);this.doSetupPosition(modalPanel,elt,0,0);},doDiff:function(dx,dy){return new ModalPanel.Sizer.Diff(dx,dy,-dx,-dy);}});ModalPanel.Sizer.N=new ModalPanel.Sizer();ModalPanel.Sizer.N.doPosition=function(modalPanel,elt){elt.style.width=modalPanel.width()+'px';this.doSetupPosition(modalPanel,elt,0,0);};ModalPanel.Sizer.N.doDiff=function(dx,dy){return new ModalPanel.Sizer.Diff(0,dy,0,-dy);};ModalPanel.Sizer.NEU=new ModalPanel.Sizer();ModalPanel.Sizer.NEU.doPosition=function(modalPanel,elt){this.doSetupSize(modalPanel,elt);this.doSetupPosition(modalPanel,elt,modalPanel.width()-elt.clientWidth,0);};ModalPanel.Sizer.NEU.doDiff=function(dx,dy){return new ModalPanel.Sizer.Diff(0,dy,dx,-dy);};ModalPanel.Sizer.NEL=new ModalPanel.Sizer();ModalPanel.Sizer.NEL.doPosition=function(modalPanel,elt){this.doSetupSize(modalPanel,elt);this.doSetupPosition(modalPanel,elt,modalPanel.width()-elt.clientWidth,0);};ModalPanel.Sizer.NEL.doDiff=function(dx,dy){return new ModalPanel.Sizer.Diff(0,dy,dx,-dy);};ModalPanel.Sizer.E=new ModalPanel.Sizer();ModalPanel.Sizer.E.doPosition=function(modalPanel,elt){elt.style.height=modalPanel.height()+'px';this.doSetupPosition(modalPanel,elt,modalPanel.width()-elt.clientWidth,0);};ModalPanel.Sizer.E.doDiff=function(dx,dy){return new ModalPanel.Sizer.Diff(0,0,dx,0);};ModalPanel.Sizer.SEU=new ModalPanel.Sizer();ModalPanel.Sizer.SEU.doPosition=function(modalPanel,elt){this.doSetupSize(modalPanel,elt);this.doSetupPosition(modalPanel,elt,modalPanel.width()-elt.clientWidth,modalPanel.height()-elt.clientHeight);};ModalPanel.Sizer.SEU.doDiff=function(dx,dy){return new ModalPanel.Sizer.Diff(0,0,dx,dy);};ModalPanel.Sizer.SEL=new ModalPanel.Sizer();ModalPanel.Sizer.SEL.doPosition=function(modalPanel,elt){this.doSetupSize(modalPanel,elt);this.doSetupPosition(modalPanel,elt,modalPanel.width()-elt.clientWidth,modalPanel.height()-elt.clientHeight);};ModalPanel.Sizer.SEL.doDiff=function(dx,dy){return new ModalPanel.Sizer.Diff(0,0,dx,dy);};ModalPanel.Sizer.S=new ModalPanel.Sizer();ModalPanel.Sizer.S.doPosition=function(modalPanel,elt){elt.style.width=modalPanel.width()+'px';this.doSetupPosition(modalPanel,elt,0,modalPanel.height()-elt.clientHeight);};ModalPanel.Sizer.S.doDiff=function(dx,dy){return new ModalPanel.Sizer.Diff(0,0,0,dy);};ModalPanel.Sizer.SWL=new ModalPanel.Sizer();ModalPanel.Sizer.SWL.doPosition=function(modalPanel,elt){this.doSetupSize(modalPanel,elt);this.doSetupPosition(modalPanel,elt,0,modalPanel.height()-elt.clientHeight);};ModalPanel.Sizer.SWL.doDiff=function(dx,dy){return new ModalPanel.Sizer.Diff(dx,0,-dx,dy);};ModalPanel.Sizer.SWU=new ModalPanel.Sizer();ModalPanel.Sizer.SWU.doPosition=function(modalPanel,elt){this.doSetupSize(modalPanel,elt);this.doSetupPosition(modalPanel,elt,0,modalPanel.height()-elt.clientHeight);};ModalPanel.Sizer.SWU.doDiff=function(dx,dy){return new ModalPanel.Sizer.Diff(dx,0,-dx,dy);};ModalPanel.Sizer.W=new ModalPanel.Sizer();ModalPanel.Sizer.W.doPosition=function(modalPanel,elt){elt.style.height=modalPanel.height()+'px';this.doSetupPosition(modalPanel,elt,0,0);};ModalPanel.Sizer.W.doDiff=function(dx,dy){return new ModalPanel.Sizer.Diff(dx,0,-dx,0);};ModalPanel.Sizer.NWL=new ModalPanel.Sizer();ModalPanel.Sizer.NWL.doPosition=function(modalPanel,elt){this.doSetupSize(modalPanel,elt);this.doSetupPosition(modalPanel,elt,0,0);};ModalPanel.Sizer.NWL.doDiff=function(dx,dy){return new ModalPanel.Sizer.Diff(dx,dy,-dx,-dy);};ModalPanel.Header=new ModalPanel.Sizer();ModalPanel.Header.doPosition=function(modalPanel,elt){};ModalPanel.Header.doDiff=function(dx,dy){return new ModalPanel.Sizer.Diff(dx,dy,0,0);};(function(){var
window=this,undefined,_jQuery=window.jQuery,_$=window.$,jQuery=window.jQuery=window.j$=function(selector,context){if(arguments[0]==arguments.callee){return arguments.callee;}
return new jQuery.fn.init(selector,context);},quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,isSimple=/^.[^:#\[\.,]*$/;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;this.context=selector;return this;}
if(typeof selector==="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])
selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem&&elem.id!=match[3])
return jQuery().find(selector);var ret=jQuery(elem||[]);ret.context=document;ret.selector=selector;return ret;}}else
return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))
return jQuery(document).ready(selector);if(selector.selector&&selector.context){this.selector=selector.selector;this.context=selector.context;}
return this.setArray(jQuery.isArray(selector)?selector:jQuery.makeArray(selector));},selector:"",jquery:"1.3.2",size:function(){return this.length;},get:function(num){return num===undefined?Array.prototype.slice.call(this):this[num];},pushStack:function(elems,name,selector){var ret=jQuery(elems);ret.prevObject=this;ret.context=this.context;if(name==="find")
ret.selector=this.selector+(this.selector?" ":"")+selector;else if(name)
ret.selector=this.selector+"."+name+"("+selector+")";return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(typeof name==="string")
if(value===undefined)
return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}
return this.each(function(i){for(name in options)
jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)
value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!=="object"&&text!=null)
return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)
ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0]){var wrap=jQuery(html,this[0].ownerDocument).clone();if(this[0].parentNode)
wrap.insertBefore(this[0]);wrap.map(function(){var elem=this;while(elem.firstChild)
elem=elem.firstChild;return elem;}).append(this);}
return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType==1)
this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType==1)
this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},push:[].push,sort:[].sort,splice:[].splice,find:function(selector){if(this.length===1){var ret=this.pushStack([],"find",selector);ret.length=0;jQuery.find(selector,this[0],ret);return ret;}else{return this.pushStack(jQuery.unique(jQuery.map(this,function(elem){return jQuery.find(selector,elem);})),"find",selector);}},clone:function(events){var ret=this.map(function(){if(!jQuery.support.noCloneEvent&&!jQuery.isXMLDoc(this)){var html=this.outerHTML;if(!html){var div=this.ownerDocument.createElement("div");div.appendChild(this.cloneNode(true));html=div.innerHTML;}
return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0];}else
return this.cloneNode(true);});if(events===true){var orig=this.find("*").andSelf(),i=0;ret.find("*").andSelf().each(function(){if(this.nodeName!==orig[i].nodeName)
return;var events=jQuery.data(orig[i],"events");for(var type in events){for(var handler in events[type]){jQuery.event.add(this,type,events[type][handler],events[type][handler].data);}}
i++;});}
return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,jQuery.grep(this,function(elem){return elem.nodeType===1;})),"filter",selector);},closest:function(selector){var pos=jQuery.expr.match.POS.test(selector)?jQuery(selector):null,closer=0;return this.map(function(){var cur=this;while(cur&&cur.ownerDocument){if(pos?pos.index(cur)>-1:jQuery(cur).is(selector)){jQuery.data(cur,"closest",closer);return cur;}
cur=cur.parentNode;closer++;}});},not:function(selector){if(typeof selector==="string")
if(isSimple.test(selector))
return this.pushStack(jQuery.multiFilter(selector,this,true),"not",selector);else
selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector==="string"?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return!!selector&&this.is("."+selector);},val:function(value){if(value===undefined){var elem=this[0];if(elem){if(jQuery.nodeName(elem,'option'))
return(elem.attributes.value||{}).specified?elem.value:elem.text;if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)
return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery(option).val();if(one)
return value;values.push(value);}}
return values;}
return(elem.value||"").replace(/\r/g,"");}
return undefined;}
if(typeof value==="number")
value+='';return this.each(function(){if(this.nodeType!=1)
return;if(jQuery.isArray(value)&&/radio|checkbox/.test(this.type))
this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)
this.selectedIndex=-1;}else
this.value=value;});},html:function(value){return value===undefined?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,+i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},domManip:function(args,table,callback){if(this[0]){var fragment=(this[0].ownerDocument||this[0]).createDocumentFragment(),scripts=jQuery.clean(args,(this[0].ownerDocument||this[0]),fragment),first=fragment.firstChild;if(first)
for(var i=0,l=this.length;i<l;i++)
callback.call(root(this[i],first),this.length>1||i>0?fragment.cloneNode(true):fragment);if(scripts)
jQuery.each(scripts,evalScript);}
return this;function root(elem,cur){return table&&jQuery.nodeName(elem,"table")&&jQuery.nodeName(cur,"tr")?(elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody"))):elem;}}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)
jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)
elem.parentNode.removeChild(elem);}
function now(){return+new Date;}
jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(typeof target==="boolean"){deep=target;target=arguments[1]||{};i=2;}
if(typeof target!=="object"&&!jQuery.isFunction(target))
target={};if(length==i){target=this;--i;}
for(;i<length;i++)
if((options=arguments[i])!=null)
for(var name in options){var src=target[name],copy=options[name];if(target===copy)
continue;if(deep&&copy&&typeof copy==="object"&&!copy.nodeType)
target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)
target[name]=copy;}
return target;};var exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{},toString=Object.prototype.toString;jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)
window.jQuery=_jQuery;return jQuery;},isFunction:function(obj){return toString.call(obj)==="[object Function]";},isArray:function(obj){return toString.call(obj)==="[object Array]";},isXMLDoc:function(elem){return elem.nodeType===9&&elem.documentElement.nodeName!=="HTML"||!!elem.ownerDocument&&jQuery.isXMLDoc(elem.ownerDocument);},globalEval:function(data){if(data&&/\S/.test(data)){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.support.scriptEval)
script.appendChild(document.createTextNode(data));else
script.text=data;head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length===undefined){for(name in object)
if(callback.apply(object[name],args)===false)
break;}else
for(;i<length;)
if(callback.apply(object[i++],args)===false)
break;}else{if(length===undefined){for(name in object)
if(callback.call(object[name],name,object[name])===false)
break;}else
for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}
return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))
value=value.call(elem,i);return typeof value==="number"&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))
elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)
elem.className=classNames!==undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return elem&&jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}
callback.call(elem);for(var name in options)
elem.style[name]=old[name];},css:function(elem,name,force,extra){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;if(extra==="border")
return;jQuery.each(which,function(){if(!extra)
val-=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;if(extra==="margin")
val+=parseFloat(jQuery.curCSS(elem,"margin"+this,true))||0;else
val-=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});}
if(elem.offsetWidth!==0)
getWH();else
jQuery.swap(elem,props,getWH);return Math.max(0,Math.round(val));}
return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;if(name=="opacity"&&!jQuery.support.opacity){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}
if(name.match(/float/i))
name=styleFloat;if(!force&&style&&style[name])
ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))
name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle)
ret=computedStyle.getPropertyValue(name);if(name=="opacity"&&ret=="")
ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}
return ret;},clean:function(elems,context,fragment){context=context||document;if(typeof context.createElement==="undefined")
context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;if(!fragment&&elems.length===1&&typeof elems[0]==="string"){var match=/^<(\w+)\s*\/?>$/.exec(elems[0]);if(match)
return[context.createElement(match[1])];}
var ret=[],scripts=[],div=context.createElement("div");jQuery.each(elems,function(i,elem){if(typeof elem==="number")
elem+='';if(!elem)
return;if(typeof elem==="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=elem.replace(/^\s+/,"").substring(0,10).toLowerCase();var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!jQuery.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)
div=div.lastChild;if(!jQuery.support.tbody){var hasBody=/<tbody/i.test(elem),tbody=!tags.indexOf("<table")&&!hasBody?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&!hasBody?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)
if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)
tbody[j].parentNode.removeChild(tbody[j]);}
if(!jQuery.support.leadingWhitespace&&/^\s/.test(elem))
div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);elem=jQuery.makeArray(div.childNodes);}
if(elem.nodeType)
ret.push(elem);else
ret=jQuery.merge(ret,elem);});if(fragment){for(var i=0;ret[i];i++){if(jQuery.nodeName(ret[i],"script")&&(!ret[i].type||ret[i].type.toLowerCase()==="text/javascript")){scripts.push(ret[i].parentNode?ret[i].parentNode.removeChild(ret[i]):ret[i]);}else{if(ret[i].nodeType===1)
ret.splice.apply(ret,[i+1,0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))));fragment.appendChild(ret[i]);}}
return scripts;}
return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)
return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&elem.parentNode)
elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)
throw"type property can't be changed";elem[name]=value;}
if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))
return elem.getAttributeNode(name).nodeValue;if(name=="tabIndex"){var attributeNode=elem.getAttributeNode("tabIndex");return attributeNode&&attributeNode.specified?attributeNode.value:elem.nodeName.match(/(button|input|object|select|textarea)/i)?0:elem.nodeName.match(/^(a|area)$/i)&&elem.href?0:undefined;}
return elem[name];}
if(!jQuery.support.style&&notxml&&name=="style")
return jQuery.attr(elem.style,"cssText",value);if(set)
elem.setAttribute(name,""+value);var attr=!jQuery.support.hrefNormalized&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}
if(!jQuery.support.opacity&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+
(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}
return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}
name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)
elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||typeof array==="string"||jQuery.isFunction(array)||array.setInterval)
ret[0]=array;else
while(i)
ret[--i]=array[i];}
return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)
if(array[i]===elem)
return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(!jQuery.support.getAll){while((elem=second[i++])!=null)
if(elem.nodeType!=8)
first[pos++]=elem;}else
while((elem=second[i++])!=null)
first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}
return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)
if(!inv!=!callback(elems[i],i))
ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)
ret[ret.length]=value;}
return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,'0'])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")
ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret),name,selector);};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var ret=[],insert=jQuery(selector);for(var i=0,l=insert.length;i<l;i++){var elems=(i>0?this.clone(true):this).get();jQuery.fn[original].apply(jQuery(insert[i]),elems);ret=ret.concat(elems);}
return this.pushStack(ret,name,selector);};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)
this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames,state){if(typeof state!=="boolean")
state=!jQuery.className.has(this,classNames);jQuery.className[state?"add":"remove"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).length){jQuery("*",this).add([this]).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)
this.parentNode.removeChild(this);}},empty:function(){jQuery(this).children().remove();while(this.firstChild)
this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}
var expando=jQuery.expando="jQuery"+now(),uuid=0,windowData={};jQuery.extend({cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)
id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])
jQuery.cache[id]={};if(data!==undefined)
jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])
break;if(!name)
jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)
elem.removeAttribute(expando);}
delete jQuery.cache[id];}},queue:function(elem,type,data){if(elem){type=(type||"fx")+"queue";var q=jQuery.data(elem,type);if(!q||jQuery.isArray(data))
q=jQuery.data(elem,type,jQuery.makeArray(data));else if(data)
q.push(data);}
return q;},dequeue:function(elem,type){var queue=jQuery.queue(elem,type),fn=queue.shift();if(!type||type==="fx")
fn=queue[0];if(fn!==undefined)
fn.call(elem);}});jQuery.fn.extend({data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)
data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},queue:function(type,data){if(typeof type!=="string"){data=type;type="fx";}
if(data===undefined)
return jQuery.queue(this[0],type);return this.each(function(){var queue=jQuery.queue(this,type,data);if(type=="fx"&&queue.length==1)
queue[0].call(this);});},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type);});}});(function(){var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,done=0,toString=Object.prototype.toString;var Sizzle=function(selector,context,results,seed){results=results||[];context=context||document;if(context.nodeType!==1&&context.nodeType!==9)
return[];if(!selector||typeof selector!=="string"){return results;}
var parts=[],m,set,checkSet,check,mode,extra,prune=true;chunker.lastIndex=0;while((m=chunker.exec(selector))!==null){parts.push(m[1]);if(m[2]){extra=RegExp.rightContext;break;}}
if(parts.length>1&&origPOS.exec(selector)){if(parts.length===2&&Expr.relative[parts[0]]){set=posProcess(parts[0]+parts[1],context);}else{set=Expr.relative[parts[0]]?[context]:Sizzle(parts.shift(),context);while(parts.length){selector=parts.shift();if(Expr.relative[selector])
selector+=parts.shift();set=posProcess(selector,set);}}}else{var ret=seed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop(),parts.length===1&&context.parentNode?context.parentNode:context,isXML(context));set=Sizzle.filter(ret.expr,ret.set);if(parts.length>0){checkSet=makeArray(set);}else{prune=false;}
while(parts.length){var cur=parts.pop(),pop=cur;if(!Expr.relative[cur]){cur="";}else{pop=parts.pop();}
if(pop==null){pop=context;}
Expr.relative[cur](checkSet,pop,isXML(context));}}
if(!checkSet){checkSet=set;}
if(!checkSet){throw"Syntax error, unrecognized expression: "+(cur||selector);}
if(toString.call(checkSet)==="[object Array]"){if(!prune){results.push.apply(results,checkSet);}else if(context.nodeType===1){for(var i=0;checkSet[i]!=null;i++){if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1&&contains(context,checkSet[i]))){results.push(set[i]);}}}else{for(var i=0;checkSet[i]!=null;i++){if(checkSet[i]&&checkSet[i].nodeType===1){results.push(set[i]);}}}}else{makeArray(checkSet,results);}
if(extra){Sizzle(extra,context,results,seed);if(sortOrder){hasDuplicate=false;results.sort(sortOrder);if(hasDuplicate){for(var i=1;i<results.length;i++){if(results[i]===results[i-1]){results.splice(i--,1);}}}}}
return results;};Sizzle.matches=function(expr,set){return Sizzle(expr,null,null,set);};Sizzle.find=function(expr,context,isXML){var set,match;if(!expr){return[];}
for(var i=0,l=Expr.order.length;i<l;i++){var type=Expr.order[i],match;if((match=Expr.match[type].exec(expr))){var left=RegExp.leftContext;if(left.substr(left.length-1)!=="\\"){match[1]=(match[1]||"").replace(/\\/g,"");set=Expr.find[type](match,context,isXML);if(set!=null){expr=expr.replace(Expr.match[type],"");break;}}}}
if(!set){set=context.getElementsByTagName("*");}
return{set:set,expr:expr};};Sizzle.filter=function(expr,set,inplace,not){var old=expr,result=[],curLoop=set,match,anyFound,isXMLFilter=set&&set[0]&&isXML(set[0]);while(expr&&set.length){for(var type in Expr.filter){if((match=Expr.match[type].exec(expr))!=null){var filter=Expr.filter[type],found,item;anyFound=false;if(curLoop==result){result=[];}
if(Expr.preFilter[type]){match=Expr.preFilter[type](match,curLoop,inplace,result,not,isXMLFilter);if(!match){anyFound=found=true;}else if(match===true){continue;}}
if(match){for(var i=0;(item=curLoop[i])!=null;i++){if(item){found=filter(item,match,i,curLoop);var pass=not^!!found;if(inplace&&found!=null){if(pass){anyFound=true;}else{curLoop[i]=false;}}else if(pass){result.push(item);anyFound=true;}}}}
if(found!==undefined){if(!inplace){curLoop=result;}
expr=expr.replace(Expr.match[type],"");if(!anyFound){return[];}
break;}}}
if(expr==old){if(anyFound==null){throw"Syntax error, unrecognized expression: "+expr;}else{break;}}
old=expr;}
return curLoop;};var Expr=Sizzle.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(elem){return elem.getAttribute("href");}},relative:{"+":function(checkSet,part,isXML){var isPartStr=typeof part==="string",isTag=isPartStr&&!/\W/.test(part),isPartStrNotTag=isPartStr&&!isTag;if(isTag&&!isXML){part=part.toUpperCase();}
for(var i=0,l=checkSet.length,elem;i<l;i++){if((elem=checkSet[i])){while((elem=elem.previousSibling)&&elem.nodeType!==1){}
checkSet[i]=isPartStrNotTag||elem&&elem.nodeName===part?elem||false:elem===part;}}
if(isPartStrNotTag){Sizzle.filter(part,checkSet,true);}},">":function(checkSet,part,isXML){var isPartStr=typeof part==="string";if(isPartStr&&!/\W/.test(part)){part=isXML?part:part.toUpperCase();for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){var parent=elem.parentNode;checkSet[i]=parent.nodeName===part?parent:false;}}}else{for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){checkSet[i]=isPartStr?elem.parentNode:elem.parentNode===part;}}
if(isPartStr){Sizzle.filter(part,checkSet,true);}}},"":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck;if(!part.match(/\W/)){var nodeCheck=part=isXML?part:part.toUpperCase();checkFn=dirNodeCheck;}
checkFn("parentNode",part,doneName,checkSet,nodeCheck,isXML);},"~":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck;if(typeof part==="string"&&!part.match(/\W/)){var nodeCheck=part=isXML?part:part.toUpperCase();checkFn=dirNodeCheck;}
checkFn("previousSibling",part,doneName,checkSet,nodeCheck,isXML);}},find:{ID:function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?[m]:[];}},NAME:function(match,context,isXML){if(typeof context.getElementsByName!=="undefined"){var ret=[],results=context.getElementsByName(match[1]);for(var i=0,l=results.length;i<l;i++){if(results[i].getAttribute("name")===match[1]){ret.push(results[i]);}}
return ret.length===0?null:ret;}},TAG:function(match,context){return context.getElementsByTagName(match[1]);}},preFilter:{CLASS:function(match,curLoop,inplace,result,not,isXML){match=" "+match[1].replace(/\\/g,"")+" ";if(isXML){return match;}
for(var i=0,elem;(elem=curLoop[i])!=null;i++){if(elem){if(not^(elem.className&&(" "+elem.className+" ").indexOf(match)>=0)){if(!inplace)
result.push(elem);}else if(inplace){curLoop[i]=false;}}}
return false;},ID:function(match){return match[1].replace(/\\/g,"");},TAG:function(match,curLoop){for(var i=0;curLoop[i]===false;i++){}
return curLoop[i]&&isXML(curLoop[i])?match[1]:match[1].toUpperCase();},CHILD:function(match){if(match[1]=="nth"){var test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(match[2]=="even"&&"2n"||match[2]=="odd"&&"2n+1"||!/\D/.test(match[2])&&"0n+"+match[2]||match[2]);match[2]=(test[1]+(test[2]||1))-0;match[3]=test[3]-0;}
match[0]=done++;return match;},ATTR:function(match,curLoop,inplace,result,not,isXML){var name=match[1].replace(/\\/g,"");if(!isXML&&Expr.attrMap[name]){match[1]=Expr.attrMap[name];}
if(match[2]==="~="){match[4]=" "+match[4]+" ";}
return match;},PSEUDO:function(match,curLoop,inplace,result,not){if(match[1]==="not"){if(match[3].match(chunker).length>1||/^\w/.test(match[3])){match[3]=Sizzle(match[3],null,null,curLoop);}else{var ret=Sizzle.filter(match[3],curLoop,inplace,true^not);if(!inplace){result.push.apply(result,ret);}
return false;}}else if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match[0])){return true;}
return match;},POS:function(match){match.unshift(true);return match;}},filters:{enabled:function(elem){return elem.disabled===false&&elem.type!=="hidden";},disabled:function(elem){return elem.disabled===true;},checked:function(elem){return elem.checked===true;},selected:function(elem){elem.parentNode.selectedIndex;return elem.selected===true;},parent:function(elem){return!!elem.firstChild;},empty:function(elem){return!elem.firstChild;},has:function(elem,i,match){return!!Sizzle(match[3],elem).length;},header:function(elem){return/h\d/i.test(elem.nodeName);},text:function(elem){return"text"===elem.type;},radio:function(elem){return"radio"===elem.type;},checkbox:function(elem){return"checkbox"===elem.type;},file:function(elem){return"file"===elem.type;},password:function(elem){return"password"===elem.type;},submit:function(elem){return"submit"===elem.type;},image:function(elem){return"image"===elem.type;},reset:function(elem){return"reset"===elem.type;},button:function(elem){return"button"===elem.type||elem.nodeName.toUpperCase()==="BUTTON";},input:function(elem){return/input|select|textarea|button/i.test(elem.nodeName);}},setFilters:{first:function(elem,i){return i===0;},last:function(elem,i,match,array){return i===array.length-1;},even:function(elem,i){return i%2===0;},odd:function(elem,i){return i%2===1;},lt:function(elem,i,match){return i<match[3]-0;},gt:function(elem,i,match){return i>match[3]-0;},nth:function(elem,i,match){return match[3]-0==i;},eq:function(elem,i,match){return match[3]-0==i;}},filter:{PSEUDO:function(elem,match,i,array){var name=match[1],filter=Expr.filters[name];if(filter){return filter(elem,i,match,array);}else if(name==="contains"){return(elem.textContent||elem.innerText||"").indexOf(match[3])>=0;}else if(name==="not"){var not=match[3];for(var i=0,l=not.length;i<l;i++){if(not[i]===elem){return false;}}
return true;}},CHILD:function(elem,match){var type=match[1],node=elem;switch(type){case'only':case'first':while(node=node.previousSibling){if(node.nodeType===1)return false;}
if(type=='first')return true;node=elem;case'last':while(node=node.nextSibling){if(node.nodeType===1)return false;}
return true;case'nth':var first=match[2],last=match[3];if(first==1&&last==0){return true;}
var doneName=match[0],parent=elem.parentNode;if(parent&&(parent.sizcache!==doneName||!elem.nodeIndex)){var count=0;for(node=parent.firstChild;node;node=node.nextSibling){if(node.nodeType===1){node.nodeIndex=++count;}}
parent.sizcache=doneName;}
var diff=elem.nodeIndex-last;if(first==0){return diff==0;}else{return(diff%first==0&&diff/first>=0);}}},ID:function(elem,match){return elem.nodeType===1&&elem.getAttribute("id")===match;},TAG:function(elem,match){return(match==="*"&&elem.nodeType===1)||elem.nodeName===match;},CLASS:function(elem,match){return(" "+(elem.className||elem.getAttribute("class"))+" ").indexOf(match)>-1;},ATTR:function(elem,match){var name=match[1],result=Expr.attrHandle[name]?Expr.attrHandle[name](elem):elem[name]!=null?elem[name]:elem.getAttribute(name),value=result+"",type=match[2],check=match[4];return result==null?type==="!=":type==="="?value===check:type==="*="?value.indexOf(check)>=0:type==="~="?(" "+value+" ").indexOf(check)>=0:!check?value&&result!==false:type==="!="?value!=check:type==="^="?value.indexOf(check)===0:type==="$="?value.substr(value.length-check.length)===check:type==="|="?value===check||value.substr(0,check.length+1)===check+"-":false;},POS:function(elem,match,i,array){var name=match[2],filter=Expr.setFilters[name];if(filter){return filter(elem,i,match,array);}}}};var origPOS=Expr.match.POS;for(var type in Expr.match){Expr.match[type]=RegExp(Expr.match[type].source+/(?![^\[]*\])(?![^\(]*\))/.source);}
var makeArray=function(array,results){array=Array.prototype.slice.call(array);if(results){results.push.apply(results,array);return results;}
return array;};try{Array.prototype.slice.call(document.documentElement.childNodes);}catch(e){makeArray=function(array,results){var ret=results||[];if(toString.call(array)==="[object Array]"){Array.prototype.push.apply(ret,array);}else{if(typeof array.length==="number"){for(var i=0,l=array.length;i<l;i++){ret.push(array[i]);}}else{for(var i=0;array[i];i++){ret.push(array[i]);}}}
return ret;};}
var sortOrder;if(document.documentElement.compareDocumentPosition){sortOrder=function(a,b){var ret=a.compareDocumentPosition(b)&4?-1:a===b?0:1;if(ret===0){hasDuplicate=true;}
return ret;};}else if("sourceIndex"in document.documentElement){sortOrder=function(a,b){var ret=a.sourceIndex-b.sourceIndex;if(ret===0){hasDuplicate=true;}
return ret;};}else if(document.createRange){sortOrder=function(a,b){var aRange=a.ownerDocument.createRange(),bRange=b.ownerDocument.createRange();aRange.selectNode(a);aRange.collapse(true);bRange.selectNode(b);bRange.collapse(true);var ret=aRange.compareBoundaryPoints(Range.START_TO_END,bRange);if(ret===0){hasDuplicate=true;}
return ret;};}
(function(){var form=document.createElement("form"),id="script"+(new Date).getTime();form.innerHTML="<input name='"+id+"'/>";var root=document.documentElement;root.insertBefore(form,root.firstChild);if(!!document.getElementById(id)){Expr.find.ID=function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?m.id===match[1]||typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id").nodeValue===match[1]?[m]:undefined:[];}};Expr.filter.ID=function(elem,match){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return elem.nodeType===1&&node&&node.nodeValue===match;};}
root.removeChild(form);})();(function(){var div=document.createElement("div");div.appendChild(document.createComment(""));if(div.getElementsByTagName("*").length>0){Expr.find.TAG=function(match,context){var results=context.getElementsByTagName(match[1]);if(match[1]==="*"){var tmp=[];for(var i=0;results[i];i++){if(results[i].nodeType===1){tmp.push(results[i]);}}
results=tmp;}
return results;};}
div.innerHTML="<a href='#'></a>";if(div.firstChild&&typeof div.firstChild.getAttribute!=="undefined"&&div.firstChild.getAttribute("href")!=="#"){Expr.attrHandle.href=function(elem){return elem.getAttribute("href",2);};}})();if(document.querySelectorAll)(function(){var oldSizzle=Sizzle,div=document.createElement("div");div.innerHTML="<p class='TEST'></p>";if(div.querySelectorAll&&div.querySelectorAll(".TEST").length===0){return;}
Sizzle=function(query,context,extra,seed){context=context||document;if(!seed&&context.nodeType===9&&!isXML(context)){try{return makeArray(context.querySelectorAll(query),extra);}catch(e){}}
return oldSizzle(query,context,extra,seed);};Sizzle.find=oldSizzle.find;Sizzle.filter=oldSizzle.filter;Sizzle.selectors=oldSizzle.selectors;Sizzle.matches=oldSizzle.matches;})();if(document.getElementsByClassName&&document.documentElement.getElementsByClassName)(function(){var div=document.createElement("div");div.innerHTML="<div class='test e'></div><div class='test'></div>";if(div.getElementsByClassName("e").length===0)
return;div.lastChild.className="e";if(div.getElementsByClassName("e").length===1)
return;Expr.order.splice(1,0,"CLASS");Expr.find.CLASS=function(match,context,isXML){if(typeof context.getElementsByClassName!=="undefined"&&!isXML){return context.getElementsByClassName(match[1]);}};})();function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){var sibDir=dir=="previousSibling"&&!isXML;for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){if(sibDir&&elem.nodeType===1){elem.sizcache=doneName;elem.sizset=i;}
elem=elem[dir];var match=false;while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break;}
if(elem.nodeType===1&&!isXML){elem.sizcache=doneName;elem.sizset=i;}
if(elem.nodeName===cur){match=elem;break;}
elem=elem[dir];}
checkSet[i]=match;}}}
function dirCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){var sibDir=dir=="previousSibling"&&!isXML;for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){if(sibDir&&elem.nodeType===1){elem.sizcache=doneName;elem.sizset=i;}
elem=elem[dir];var match=false;while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break;}
if(elem.nodeType===1){if(!isXML){elem.sizcache=doneName;elem.sizset=i;}
if(typeof cur!=="string"){if(elem===cur){match=true;break;}}else if(Sizzle.filter(cur,[elem]).length>0){match=elem;break;}}
elem=elem[dir];}
checkSet[i]=match;}}}
var contains=document.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)&16;}:function(a,b){return a!==b&&(a.contains?a.contains(b):true);};var isXML=function(elem){return elem.nodeType===9&&elem.documentElement.nodeName!=="HTML"||!!elem.ownerDocument&&isXML(elem.ownerDocument);};var posProcess=function(selector,context){var tmpSet=[],later="",match,root=context.nodeType?[context]:context;while((match=Expr.match.PSEUDO.exec(selector))){later+=match[0];selector=selector.replace(Expr.match.PSEUDO,"");}
selector=Expr.relative[selector]?selector+"*":selector;for(var i=0,l=root.length;i<l;i++){Sizzle(selector,root[i],tmpSet);}
return Sizzle.filter(later,tmpSet);};jQuery.find=Sizzle;jQuery.filter=Sizzle.filter;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.filters;Sizzle.selectors.filters.hidden=function(elem){return elem.offsetWidth===0||elem.offsetHeight===0;};Sizzle.selectors.filters.visible=function(elem){return elem.offsetWidth>0||elem.offsetHeight>0;};Sizzle.selectors.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem;}).length;};jQuery.multiFilter=function(expr,elems,not){if(not){expr=":not("+expr+")";}
return Sizzle.matches(expr,elems);};jQuery.dir=function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)
matched.push(cur);cur=cur[dir];}
return matched;};jQuery.nth=function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])
if(cur.nodeType==1&&++num==result)
break;return cur;};jQuery.sibling=function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)
r.push(n);}
return r;};return;window.Sizzle=Sizzle;})();jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)
return;if(elem.setInterval&&elem!=window)
elem=window;if(!handler.guid)
handler.guid=this.guid++;if(data!==undefined){var fn=handler;handler=this.proxy(fn);handler.data=data;}
var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){return typeof jQuery!=="undefined"&&!jQuery.event.triggered?jQuery.event.handle.apply(arguments.callee.elem,arguments):undefined;});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var namespaces=type.split(".");type=namespaces.shift();handler.type=namespaces.slice().sort().join(".");var handlers=events[type];if(jQuery.event.specialAll[type])
jQuery.event.specialAll[type].setup.call(elem,data,namespaces);if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem,data,namespaces)===false){if(elem.addEventListener)
elem.addEventListener(type,handle,false);else if(elem.attachEvent)
elem.attachEvent("on"+type,handle);}}
handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)
return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types===undefined||(typeof types==="string"&&types.charAt(0)=="."))
for(var type in events)
this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}
jQuery.each(types.split(/\s+/),function(index,type){var namespaces=type.split(".");type=namespaces.shift();var namespace=RegExp("(^|\\.)"+namespaces.slice().sort().join(".*\\.")+"(\\.|$)");if(events[type]){if(handler)
delete events[type][handler.guid];else
for(var handle in events[type])
if(namespace.test(events[type][handle].type))
delete events[type][handle];if(jQuery.event.specialAll[type])
jQuery.event.specialAll[type].teardown.call(elem,namespaces);for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem,namespaces)===false){if(elem.removeEventListener)
elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)
elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}
ret=null;delete events[type];}}});}
for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(event,data,elem,bubbling){var type=event.type||event;if(!bubbling){event=typeof event==="object"?event[expando]?event:jQuery.extend(jQuery.Event(type),event):jQuery.Event(type);if(type.indexOf("!")>=0){event.type=type=type.slice(0,-1);event.exclusive=true;}
if(!elem){event.stopPropagation();if(this.global[type])
jQuery.each(jQuery.cache,function(){if(this.events&&this.events[type])
jQuery.event.trigger(event,data,this.handle.elem);});}
if(!elem||elem.nodeType==3||elem.nodeType==8)
return undefined;event.result=undefined;event.target=elem;data=jQuery.makeArray(data);data.unshift(event);}
event.currentTarget=elem;var handle=jQuery.data(elem,"handle");if(handle)
handle.apply(elem,data);if((!elem[type]||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)
event.result=false;if(!bubbling&&elem[type]&&!event.isDefaultPrevented()&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}
this.triggered=false;if(!event.isPropagationStopped()){var parent=elem.parentNode||elem.ownerDocument;if(parent)
jQuery.event.trigger(event,data,parent,true);}},handle:function(event){var all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);event.currentTarget=this;var namespaces=event.type.split(".");event.type=namespaces.shift();all=!namespaces.length&&!event.exclusive;var namespace=RegExp("(^|\\.)"+namespaces.slice().sort().join(".*\\.")+"(\\.|$)");handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||namespace.test(handler.type)){event.handler=handler;event.data=handler.data;var ret=handler.apply(this,arguments);if(ret!==undefined){event.result=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}
if(event.isImmediatePropagationStopped())
break;}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(event){if(event[expando])
return event;var originalEvent=event;event=jQuery.Event(originalEvent);for(var i=this.props.length,prop;i;){prop=this.props[--i];event[prop]=originalEvent[prop];}
if(!event.target)
event.target=event.srcElement||document;if(event.target.nodeType==3)
event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)
event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}
if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))
event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)
event.metaKey=event.ctrlKey;if(!event.which&&event.button)
event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy=proxy||function(){return fn.apply(this,arguments);};proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:bindReady,teardown:function(){}}},specialAll:{live:{setup:function(selector,namespaces){jQuery.event.add(this,namespaces[0],liveHandler);},teardown:function(namespaces){if(namespaces.length){var remove=0,name=RegExp("(^|\\.)"+namespaces[0]+"(\\.|$)");jQuery.each((jQuery.data(this,"events").live||{}),function(){if(name.test(this.type))
remove++;});if(remove<1)
jQuery.event.remove(this,namespaces[0],liveHandler);}}}}};jQuery.Event=function(src){if(!this.preventDefault)
return new jQuery.Event(src);if(src&&src.type){this.originalEvent=src;this.type=src.type;}else
this.type=src;this.timeStamp=now();this[expando]=true;};function returnFalse(){return false;}
function returnTrue(){return true;}
jQuery.Event.prototype={preventDefault:function(){this.isDefaultPrevented=returnTrue;var e=this.originalEvent;if(!e)
return;if(e.preventDefault)
e.preventDefault();e.returnValue=false;},stopPropagation:function(){this.isPropagationStopped=returnTrue;var e=this.originalEvent;if(!e)
return;if(e.stopPropagation)
e.stopPropagation();e.cancelBubble=true;},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=returnTrue;this.stopPropagation();},isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse};var withinElement=function(event){var parent=event.relatedTarget;while(parent&&parent!=this)
try{parent=parent.parentNode;}
catch(e){parent=this;}
if(parent!=this){event.type=event.data;jQuery.event.handle.apply(this,arguments);}};jQuery.each({mouseover:'mouseenter',mouseout:'mouseleave'},function(orig,fix){jQuery.event.special[fix]={setup:function(){jQuery.event.add(this,orig,withinElement,fix);},teardown:function(){jQuery.event.remove(this,orig,withinElement);}};});jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this);});},triggerHandler:function(type,data){if(this[0]){var event=jQuery.Event(type);event.preventDefault();event.stopPropagation();jQuery.event.trigger(event,data,this[0]);return event.result;}},toggle:function(fn){var args=arguments,i=1;while(i<args.length)
jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)
fn.call(document,jQuery);else
jQuery.readyList.push(fn);return this;},live:function(type,fn){var proxy=jQuery.event.proxy(fn);proxy.guid+=this.selector+type;jQuery(document).bind(liveConvert(type,this.selector),this.selector,proxy);return this;},die:function(type,fn){jQuery(document).unbind(liveConvert(type,this.selector),fn?{guid:fn.guid+this.selector+type}:null);return this;}});function liveHandler(event){var check=RegExp("(^|\\.)"+event.type+"(\\.|$)"),stop=true,elems=[];jQuery.each(jQuery.data(this,"events").live||[],function(i,fn){if(check.test(fn.type)){var elem=jQuery(event.target).closest(fn.data)[0];if(elem)
elems.push({elem:elem,fn:fn});}});elems.sort(function(a,b){return jQuery.data(a.elem,"closest")-jQuery.data(b.elem,"closest");});jQuery.each(elems,function(){if(this.fn.call(this.elem,event,this.fn.data)===false)
return(stop=false);});return stop;}
function liveConvert(type,selector){return["live",type,selector.replace(/\./g,"`").replace(/ /g,"|")].join(".");}
jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document,jQuery);});jQuery.readyList=null;}
jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);jQuery.ready();},false);}else if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);jQuery.ready();}});if(document.documentElement.doScroll&&window==window.top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}
jQuery.ready();})();}
jQuery.event.add(window,"load",jQuery.ready);}
jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,"+"change,select,submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});jQuery(window).bind('unload',function(){for(var id in jQuery.cache)
if(id!=1&&jQuery.cache[id].handle)
jQuery.event.remove(jQuery.cache[id].handle.elem);});(function(){jQuery.support={};var root=document.documentElement,script=document.createElement("script"),div=document.createElement("div"),id="script"+(new Date).getTime();div.style.display="none";div.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var all=div.getElementsByTagName("*"),a=div.getElementsByTagName("a")[0];if(!all||!all.length||!a){return;}
jQuery.support={leadingWhitespace:div.firstChild.nodeType==3,tbody:!div.getElementsByTagName("tbody").length,objectAll:!!div.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!div.getElementsByTagName("link").length,style:/red/.test(a.getAttribute("style")),hrefNormalized:a.getAttribute("href")==="/a",opacity:a.style.opacity==="0.5",cssFloat:!!a.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};script.type="text/javascript";try{script.appendChild(document.createTextNode("window."+id+"=1;"));}catch(e){}
root.insertBefore(script,root.firstChild);if(window[id]){jQuery.support.scriptEval=true;delete window[id];}
root.removeChild(script);if(div.attachEvent&&div.fireEvent){div.attachEvent("onclick",function(){jQuery.support.noCloneEvent=false;div.detachEvent("onclick",arguments.callee);});div.cloneNode(true).fireEvent("onclick");}
jQuery(function(){var div=document.createElement("div");div.style.width=div.style.paddingLeft="1px";document.body.appendChild(div);jQuery.boxModel=jQuery.support.boxModel=div.offsetWidth===2;document.body.removeChild(div).style.display='none';});})();var styleFloat=jQuery.support.cssFloat?"cssFloat":"styleFloat";jQuery.props={"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!=="string")
return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}
var type="GET";if(params)
if(jQuery.isFunction(params)){callback=params;params=null;}else if(typeof params==="object"){params=jQuery.param(params);type="POST";}
var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")
self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);if(callback)
self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return this.elements?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}
return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}
return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!=="string")
s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))
s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))
s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}
if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)
s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}
if(head)
head.removeChild(script);};}
if(s.dataType=="script"&&s.cache==null)
s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}
if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}
if(s.global&&!jQuery.active++)
jQuery.event.trigger("ajaxStart");var parts=/^(\w+:)?\/\/([^\/?#]+)/.exec(s.url);if(s.dataType=="script"&&type=="GET"&&parts&&(parts[1]&&parts[1]!=location.protocol||parts[2]!=location.host)){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)
script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();script.onload=script.onreadystatechange=null;head.removeChild(script);}};}
head.appendChild(script);return undefined;}
var requestDone=false;var xhr=s.xhr();if(s.username)
xhr.open(type,s.url,s.async,s.username,s.password);else
xhr.open(type,s.url,s.async);try{if(s.data)
xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)
xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}
if(s.beforeSend&&s.beforeSend(xhr,s)===false){if(s.global&&!--jQuery.active)
jQuery.event.trigger("ajaxStop");xhr.abort();return false;}
if(s.global)
jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(xhr.readyState==0){if(ival){clearInterval(ival);ival=null;if(s.global&&!--jQuery.active)
jQuery.event.trigger("ajaxStop");}}else if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}
status=isTimeout=="timeout"?"timeout":!jQuery.httpSuccess(xhr)?"error":s.ifModified&&jQuery.httpNotModified(xhr,s.url)?"notmodified":"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s);}catch(e){status="parsererror";}}
if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}
if(s.ifModified&&modRes)
jQuery.lastModified[s.url]=modRes;if(!jsonp)
success();}else
jQuery.handleError(s,xhr,status);complete();if(isTimeout)
xhr.abort();if(s.async)
xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)
setTimeout(function(){if(xhr&&!requestDone)
onreadystatechange("timeout");},s.timeout);}
try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}
if(!s.async)
onreadystatechange();function success(){if(s.success)
s.success(data,status);if(s.global)
jQuery.event.trigger("ajaxSuccess",[xhr,s]);}
function complete(){if(s.complete)
s.complete(xhr,status);if(s.global)
jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)
jQuery.event.trigger("ajaxStop");}
return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)
jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223;}catch(e){}
return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url];}catch(e){}
return false;},httpData:function(xhr,type,s){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")
throw"parsererror";if(s&&s.dataFilter)
data=s.dataFilter(data,type);if(typeof data==="string"){if(type=="script")
jQuery.globalEval(data);if(type=="json")
data=window["eval"]("("+data+")");}
return data;},param:function(a){var s=[];function add(key,value){s[s.length]=encodeURIComponent(key)+'='+encodeURIComponent(value);};if(jQuery.isArray(a)||a.jquery)
jQuery.each(a,function(){add(this.name,this.value);});else
for(var j in a)
if(jQuery.isArray(a[j]))
jQuery.each(a[j],function(){add(j,this);});else
add(j,jQuery.isFunction(a[j])?a[j]():a[j]);return s.join("&").replace(/%20/g,"+");}});var elemdisplay={},timerId,fxAttrs=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function genFx(type,num){var obj={};jQuery.each(fxAttrs.concat.apply([],fxAttrs.slice(0,num)),function(){obj[this]=type;});return obj;}
jQuery.fn.extend({show:function(speed,callback){if(speed){return this.animate(genFx("show",3),speed,callback);}else{for(var i=0,l=this.length;i<l;i++){var old=jQuery.data(this[i],"olddisplay");this[i].style.display=old||"";if(jQuery.css(this[i],"display")==="none"){var tagName=this[i].tagName,display;if(elemdisplay[tagName]){display=elemdisplay[tagName];}else{var elem=jQuery("<"+tagName+" />").appendTo("body");display=elem.css("display");if(display==="none")
display="block";elem.remove();elemdisplay[tagName]=display;}
jQuery.data(this[i],"olddisplay",display);}}
for(var i=0,l=this.length;i<l;i++){this[i].style.display=jQuery.data(this[i],"olddisplay")||"";}
return this;}},hide:function(speed,callback){if(speed){return this.animate(genFx("hide",3),speed,callback);}else{for(var i=0,l=this.length;i<l;i++){var old=jQuery.data(this[i],"olddisplay");if(!old&&old!=="none")
jQuery.data(this[i],"olddisplay",jQuery.css(this[i],"display"));}
for(var i=0,l=this.length;i<l;i++){this[i].style.display="none";}
return this;}},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){var bool=typeof fn==="boolean";return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn==null||bool?this.each(function(){var state=bool?fn:jQuery(this).is(":hidden");jQuery(this)[state?"show":"hide"]();}):this.animate(genFx("toggle",3),fn,fn2);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){var opt=jQuery.extend({},optall),p,hidden=this.nodeType==1&&jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)
return opt.complete.call(this);if((p=="height"||p=="width")&&this.style){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}
if(opt.overflow!=null)
this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))
e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}
if(parts[1])
end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
e.custom(start,val,"");}});return true;});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)
this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)
if(timers[i].elem==this){if(gotoEnd)
timers[i](true);timers.splice(i,1);}});if(!gotoEnd)
this.dequeue();return this;}});jQuery.each({slideDown:genFx("show",1),slideUp:genFx("hide",1),slideToggle:genFx("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(name,props){jQuery.fn[name]=function(speed,callback){return this.animate(props,speed,callback);};});jQuery.extend({speed:function(speed,easing,fn){var opt=typeof speed==="object"?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:jQuery.fx.speeds[opt.duration]||jQuery.fx.speeds._default;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)
jQuery(this).dequeue();if(jQuery.isFunction(opt.old))
opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)
options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)
this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style)
this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))
return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;var self=this;function t(gotoEnd){return self.step(gotoEnd);}
t.elem=this.elem;if(t()&&jQuery.timers.push(t)&&!timerId){timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)
if(!timers[i]())
timers.splice(i--,1);if(!timers.length){clearInterval(timerId);timerId=undefined;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)
if(this.options.curAnim[i]!==true)
done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")
this.elem.style.display="block";}
if(this.options.hide)
jQuery(this.elem).hide();if(this.options.hide||this.options.show)
for(var p in this.options.curAnim)
jQuery.attr(this.elem.style,p,this.options.orig[p]);this.options.complete.call(this.elem);}
return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}
return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){if(fx.elem.style&&fx.elem.style[fx.prop]!=null)
fx.elem.style[fx.prop]=fx.now+fx.unit;else
fx.elem[fx.prop]=fx.now;}}});if(document.documentElement["getBoundingClientRect"])
jQuery.fn.offset=function(){if(!this[0])return{top:0,left:0};if(this[0]===this[0].ownerDocument.body)return jQuery.offset.bodyOffset(this[0]);var box=this[0].getBoundingClientRect(),doc=this[0].ownerDocument,body=doc.body,docElem=doc.documentElement,clientTop=docElem.clientTop||body.clientTop||0,clientLeft=docElem.clientLeft||body.clientLeft||0,top=box.top+(self.pageYOffset||jQuery.boxModel&&docElem.scrollTop||body.scrollTop)-clientTop,left=box.left+(self.pageXOffset||jQuery.boxModel&&docElem.scrollLeft||body.scrollLeft)-clientLeft;return{top:top,left:left};};else
jQuery.fn.offset=function(){if(!this[0])return{top:0,left:0};if(this[0]===this[0].ownerDocument.body)return jQuery.offset.bodyOffset(this[0]);jQuery.offset.initialized||jQuery.offset.initialize();var elem=this[0],offsetParent=elem.offsetParent,prevOffsetParent=elem,doc=elem.ownerDocument,computedStyle,docElem=doc.documentElement,body=doc.body,defaultView=doc.defaultView,prevComputedStyle=defaultView.getComputedStyle(elem,null),top=elem.offsetTop,left=elem.offsetLeft,isAbsolute=prevComputedStyle.position==="absolute";while((elem=elem.parentNode)&&elem!==body&&elem!==docElem&&prevComputedStyle.position!=="fixed"){computedStyle=defaultView.getComputedStyle(elem,null);if((!isAbsolute&&prevComputedStyle.position==="static")||prevComputedStyle.position==="relative"||elem===offsetParent){top-=elem.scrollTop,left-=elem.scrollLeft;isAbsolute=prevComputedStyle.position==="absolute";}
if(elem===offsetParent){top+=elem.offsetTop,left+=elem.offsetLeft;if(jQuery.offset.doesNotAddBorder&&!(jQuery.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(elem.tagName)))
top+=parseInt(computedStyle.borderTopWidth,10)||0,left+=parseInt(computedStyle.borderLeftWidth,10)||0;prevOffsetParent=offsetParent,offsetParent=elem.offsetParent;}
if(jQuery.offset.subtractsBorderForOverflowNotVisible&&computedStyle.overflow!=="visible")
top+=parseInt(computedStyle.borderTopWidth,10)||0,left+=parseInt(computedStyle.borderLeftWidth,10)||0;prevComputedStyle=computedStyle;}
if(prevComputedStyle.position==="relative"||prevComputedStyle.position==="static")
top+=body.offsetTop,left+=body.offsetLeft;if(prevComputedStyle.position==="fixed")
top+=Math.max(docElem.scrollTop,body.scrollTop),left+=Math.max(docElem.scrollLeft,body.scrollLeft);return{top:top,left:left};};jQuery.offset={initialize:function(){if(this.initialized)return;var body=document.body,container=document.createElement('div'),innerDiv,checkDiv,table,td,rules,prop,bodyMarginTop=body.style.marginTop,html='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';rules={position:'absolute',top:0,left:0,margin:0,border:0,width:'1px',height:'1px',visibility:'hidden'};for(prop in rules)container.style[prop]=rules[prop];container.innerHTML=html;body.insertBefore(container,body.firstChild);innerDiv=container.firstChild,checkDiv=innerDiv.firstChild,td=innerDiv.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(checkDiv.offsetTop!==5);this.doesAddBorderForTableAndCells=(td.offsetTop===5);innerDiv.style.overflow='hidden',innerDiv.style.position='relative';this.subtractsBorderForOverflowNotVisible=(checkDiv.offsetTop===-5);body.style.marginTop='1px';this.doesNotIncludeMarginInBodyOffset=(body.offsetTop===0);body.style.marginTop=bodyMarginTop;body.removeChild(container);this.initialized=true;},bodyOffset:function(body){jQuery.offset.initialized||jQuery.offset.initialize();var top=body.offsetTop,left=body.offsetLeft;if(jQuery.offset.doesNotIncludeMarginInBodyOffset)
top+=parseInt(jQuery.curCSS(body,'marginTop',true),10)||0,left+=parseInt(jQuery.curCSS(body,'marginLeft',true),10)||0;return{top:top,left:left};}};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}
return results;},offsetParent:function(){var offsetParent=this[0].offsetParent||document.body;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))
offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return null;return val!==undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});(function(){var safariCompatMode;var getCompatMode=function(){var compatMode=document.compatMode;if(!compatMode&&jQuery.browser.safari){if(!safariCompatMode){var width=jQuery(document.createElement("div")).attr('style','position:absolute;width:0;height:0;width:1').css('width');safariCompatMode=compatMode=(width=='1px'?'BackCompat':'CSS1Compat');}else{compatMode=safariCompatMode;}}
return compatMode;};jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom",lower=name.toLowerCase();jQuery.fn["inner"+name]=function(){return this[0]?jQuery.css(this[0],lower,false,"padding"):null;};jQuery.fn["outer"+name]=function(margin){return this[0]?jQuery.css(this[0],lower,false,margin?"margin":"border"):null;};var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?getCompatMode()=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(document.documentElement["client"+name],document.body["scroll"+name],document.documentElement["scroll"+name],document.body["offset"+name],document.documentElement["offset"+name]):size===undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,typeof size==="string"?size:size+"px");};});}());})();if(!window.RichFaces){window.RichFaces={};}
if(!window.RichFaces.Memory){window.RichFaces.Memory={nodeCleaners:{},componentCleaners:{},addCleaner:function(name,cleaner){this.nodeCleaners[name]=cleaner;},addComponentCleaner:function(name,cleaner,checker){this.componentCleaners[name]={cleaner:cleaner,checker:checker};},applyCleaners:function(node,isAjax,componentNodes){for(var name in this.nodeCleaners){this.nodeCleaners[name](node,isAjax);}
for(var name in this.componentCleaners){if(this.componentCleaners[name].checker(node,isAjax))
componentNodes.push(node);}},_clean:function(oldNode,isAjax,componentNodes){if(oldNode){this.applyCleaners(oldNode,isAjax,componentNodes);var all=oldNode.all;if(all){var counter=0;var length=all.length;for(var counter=0;counter<length;counter++){this.applyCleaners(all[counter],isAjax,componentNodes);}}else{var node=oldNode.firstChild;while(node){this._clean(node,isAjax,componentNodes);node=node.nextSibling;}}}},_cleanComponentNodes:function(oldNodes,isAjax){for(var i=0;i<oldNodes.length;i++){var node=oldNodes[i];for(var name in this.componentCleaners){this.componentCleaners[name].cleaner(node,isAjax);}}},clean:function(oldNode,isAjax){var componentNodes=[];this._clean(oldNode,isAjax,componentNodes);this._cleanComponentNodes(componentNodes,isAjax);componentNodes=null;}};window.RichFaces.Memory.addComponentCleaner("richfaces",function(node,isAjax){var component=node.component;if(component){var destructorName=component["rich:destructor"];if(destructorName){var destructor=component[destructorName];if(destructor){destructor.call(component,isAjax);}}}},function(node,isAjax){return(node.component&&node.component["rich:destructor"]);});if(window.attachEvent){window.attachEvent("onunload",function(){var memory=window.RichFaces.Memory;memory.clean(document);memory.clean(window);});}}
if(!window.RichFaces){window.RichFaces={};}
if(!window.RichFaces.isJQueryWrapped){var oldJQuery=jQuery;if(window.RichFaces&&window.RichFaces.Memory){window.RichFaces.Memory.addCleaner("jquery",function(node,isAjax){if(node&&node[oldJQuery.expando]){oldJQuery.event.remove(node);oldJQuery.removeData(node);}});}
window.RichFaces.isJQueryWrapped=true;};if(!window.Richfaces){window.Richfaces={};}
Richfaces.ToolTip={};ToolTip=Class.create();ToolTip.prototype={initialize:function(events,functions,id,parentId,mode,disabled,direction,followMouse,horizontalOffset,verticalOffset,ajaxFunction,ajaxOptions){this["rich:destructor"]="destroy";this.showEvent=events.showEvent;this.hideEvent=events.hideEvent!=""?events.hideEvent:null;this.onshow=functions.onshow;this.oncomplete=functions.oncomplete;this.onhide=functions.onhide;this.delay=events.delay;this.hideDelay=events.hideDelay;this.id=id;this.parentId=parentId;this.parent=$(this.parentId);this.mode=mode;this.direction=direction;this.disabled=disabled;this.followMouse=followMouse;this.horizontalOffset=horizontalOffset;this.verticalOffset=verticalOffset;if(ajaxFunction)this.ajaxExecuteFunction=(ajaxFunction)?ajaxFunction:function(){};this.ajaxOptions=ajaxOptions;this.clientAjaxParams={};this.toolTip=$(id);this.toolTip.component=this;this.toolTipContent=$(id+'content');this.toolTipDefaultContent=$(id+'defaultContent');this.toolTip.style.visibility='hidden';this.toolTip.style.display='block';this.toolTipOffsetW=this.toolTip.offsetWidth;this.toolTipOffsetH=this.toolTip.offsetHeight;this.toolTipW=this.toolTip.getWidth();this.toolTipH=this.toolTip.getHeight();this.toolTipBorderHeight=(this.toolTipOffsetH-this.toolTipH)/2;this.toolTipBorderWidth=(this.toolTipOffsetW-this.toolTipW)/2;this.toolTip.style.visibility='visible';this.toolTip.style.display="none";this.parentAttached=false;this.hintParentElement=null;this.isMouseOvered=false;if(Richfaces.browser.isIE6){var toolTipZindex=parseInt(this.toolTip.style.zIndex);new Insertion.Before(this.toolTip,"<iframe src=\"javascript:''\" frameborder=\"0\" scrolling=\"no\" id=\""+this.id+"iframe\""+"style=\"position: absolute; width: "+this.toolTipOffsetW+"px; height: "+this.toolTipOffsetH+"px; display: none;background-color:black; z-index: "+
(toolTipZindex-1)+";\">"+"</iframe>");this.iframe=$(this.id+'iframe');}
this.attachOnLoadEventsListner=this.attachOnLoadEvents.bindAsEventListener(this);this.setToolTipPositionListner=this.setToolTipPosition.bindAsEventListener(this);this.leaveToolTipListner=this.leaveToolTip.bindAsEventListener(this);if(!this.disabled)Event.observe(document,"mousemove",this.attachOnLoadEventsListner,true);},destroy:function()
{if(!this.parentAttached&&!this.disabled){Event.stopObserving(document,"mousemove",this.attachOnLoadEventsListner,true);}
if(this.toolTip){this.toolTip.component=null;}
this.doDisable();this.hintParentElement=null;this.parent=null;this.toolTip=null;this.toolTipContent=null;this.toolTipDefaultContent=null;this.iframe=null;this.eventCopy=null;this.showEvent=null;this.hideEvent=null;},attachOnLoadEvents:function(){if(!this.parentAttached){if(!this.parent){this.parent=$(this.parentId);}
if(this.parent!=null&&!this.disabled){this.attachParentEvents();this.parentAttached=true;}
Event.stopObserving(document,"mousemove",this.attachOnLoadEventsListner,true);}},attachParentEvents:function(){if(this.followMouse){Event.observe(this.parent,'mousemove',this.setToolTipPositionListner,false);}
this.doShowListner=this.doShow.bindAsEventListener(this);this.doHideListner=this.doHide.bindAsEventListener(this);Event.observe(this.parent,this.showEvent,this.doShowListner,false);if(this.showEvent!="focus"){if(this.hideEvent!=null){Event.observe(this.parent,this.hideEvent,this.doHideListner,false);Event.observe(this.toolTip,this.hideEvent,this.leaveToolTipListner,false);}else{Event.observe(this.parent,"mouseout",this.doHideListner,false);Event.observe(this.toolTip,"mouseout",this.leaveToolTipListner,false);}}else{if(this.hideEvent!=null){Event.observe(this.parent,this.hideEvent,this.doHideListner,false);}else{Event.observe(this.parent,"blur",this.doHideListner,false);}}},detectAncestorNode:function(leaf,element){var node=leaf;while(node!=null&&node!=element)
{node=node.parentNode;}
return(node!=null);},ffcheck:function(relTarg)
{var parentTagName=this.parent.tagName.toLowerCase();if((parentTagName=="input"||parentTagName=="textarea")&&relTarg){var className;try{className=relTarg.className;if(className=="anonymous-div")return true;}catch(e)
{return true;}
if(relTarg==this.parent)return true;}else{while(relTarg){if(relTarg==this.parent){return true;}
relTarg=relTarg.parentNode;}}
return false;},leaveToolTip:function(e){var hintNotLeft=false;var relTarg=e.relatedTarget||e.toElement;var className;if(relTarg)
{try{className=relTarg.className;if(className!="anonymous-div");hintNotLeft=this.detectAncestorNode(relTarg,this.hintParentElement);}catch(e){;}}
if(!hintNotLeft){this.doHide(e);this.isMouseOvered=false;}},doShow:function(e){if(this.disabled){return;}
if(this.activationTimerHandle)return;var obj;if(!e)var e=window.event;var relTarg=e.relatedTarget||e.fromElement;if(this.ffcheck(relTarg))return;var className;if(relTarg)
{try{className=relTarg.className;if(className!="anonymous-div");if(this.detectAncestorNode(relTarg,this.toolTip))return;}catch(e){;}}
this.isMouseOvered=true;if(e.target)
this.hintParentElement=e.target;if(e.srcElement)
this.hintParentElement=e.srcElement;if(this.hidingTimerHandle)
{window.clearTimeout(this.hidingTimerHandle);this.hidingTimerHandle=undefined;}
if(this.mode=='ajax'){if(this.toolTipDefaultContent){this.toolTipContent.innerHTML=this.toolTipDefaultContent.innerHTML;this.toolTip.style.visibility="hidden";this.toolTip.style.display='block';this.setToolTipPosition(e);}else{this.toolTipContent.innerHTML="";}
var event=A4J.AJAX.CloneObject(e,false);var ajaxOptions=this.ajaxOptions;if(this.clientAjaxParams){if(e.clientX){this.clientAjaxParams['clientX']=e.clientX;this.clientAjaxParams['clientY']=e.clientY;}else{this.clientAjaxParams['event.pageX']=e.pageX;this.clientAjaxParams['event.pageY']=e.pageY;}
Object.extend(ajaxOptions['parameters'],this.clientAjaxParams);}
if(this.delay>0)
{this.setToolTipPosition(e);this.activationTimerHandle=window.setTimeout(function()
{if(this.toolTipDefaultContent)
{this.setToolTipVisible(false);}
this.ajaxExecuteFunction(event,ajaxOptions);}.bind(this),this.delay);}
else
{this.setToolTipVisible(false);this.ajaxExecuteFunction(event,ajaxOptions);}}else{this.setToolTipPosition(e);if(this.delay>0)
{this.activationTimerHandle=window.setTimeout(function()
{this.displayDiv();}.bind(this),this.delay);}
else this.displayDiv();}},hideDiv:function(e)
{this.isMouseOvered=false;this.toolTip.style.visibility="hidden";this.toolTip.style.display="none";if(this.iframe){this.iframe.style.display="none";}
this.hintParentElement=null;this.isMouseOvered=false;if(this.onhide!=null)
{this.onhide(e);}},doHide:function(e){if(this.hidingTimerHandle)return;this.eventCopy=null;if(!e)var e=window.event;var relTarg=e.relatedTarget||e.toElement;if(this.ffcheck(relTarg))return;var className;if(relTarg)
{try{className=relTarg.className;if(className!="anonymous-div");if(this.detectAncestorNode(relTarg,this.toolTip))return;}catch(e){;}}
if(this.activationTimerHandle)
{window.clearTimeout(this.activationTimerHandle);this.activationTimerHandle=undefined;}
if(this.hideDelay>0)
{var event=A4J.AJAX.CloneObject(e,false);this.hidingTimerHandle=window.setTimeout(function()
{this.hideDiv(event);if(this.hidingTimerHandle)
{window.clearTimeout(this.hidingTimerHandle);this.hidingTimerHandle=undefined;}}.bindAsEventListener(this),this.hideDelay);}
else this.hideDiv();},doEnable:function(){if(!this.parentAttached){Event.observe(document,"mousemove",this.attachOnLoadEventsListner,true);}
this.disabled=false;},doDisable:function(){if(!this.parentAttached){if(!this.disabled){Event.stopObserving(document,"mousemove",this.attachOnLoadEventsListner,true);}}else{if(this.followMouse){Event.stopObserving(this.parent,'mousemove',this.setToolTipPositionListner,false);}
Event.stopObserving(this.parent,this.event,this.doShowListner,false);if(this.showEvent!="focus"){if(this.hideEvent!=null){Event.stopObserving(this.parent,this.hideEvent,this.doHideListner,false);Event.stopObserving(this.toolTip,this.hideEvent,this.leaveToolTipListner,false);}else{Event.stopObserving(this.parent,"mouseout",this.doHideListner,false);Event.stopObserving(this.toolTip,"mouseout",this.leaveToolTipListner,false);}}else{if(this.hideEvent!=null){Event.stopObserving(this.parent,this.hideEvent,this.doHideListner,false);}else{Event.stopObserving(this.parent,"blur",this.doHideListner,false);}}
this.parentAttached=false;}
this.disabled=true;},show:function(e){this.doShow(e);},hide:function(e){this.doHide(e);},enable:function(e){this.doEnable(e);},disable:function(e){this.doDisable(e);},PX_REGEX:/px$/,parseToPx:function(value){if(value){var v=value.strip();if(this.PX_REGEX.test(v)){try{return parseInt(v.replace(this.PX_REGEX,""),10);}catch(e){}}}
return NaN;},setToolTipPosition:function(e){var elementDim=Richfaces.Position.getOffsetDimensions(this.toolTip);var tooltipStyle=this.toolTip.style;var _display=tooltipStyle.display;var _visibility=tooltipStyle.visibility;tooltipStyle.visibility="hidden";tooltipStyle.display="block";var oldLeft=this.parseToPx(tooltipStyle.left);if(isNaN(oldLeft)){oldLeft=0;tooltipStyle.left='0px';}
var oldTop=this.parseToPx(tooltipStyle.top);if(isNaN(oldTop)){oldTop=0;tooltipStyle.top='0px';}
var event=jQuery.event.fix(e);var offsetWidth=this.toolTip.offsetWidth;var offsetHeight=this.toolTip.offsetHeight;var regExpression=/^(top|bottom)-(left|right)$/;var match=this.direction.match(regExpression);var horizontalDirection=match[2];var verticalDirection=match[1];var coords=this.fitToolTip(e.clientX,e.clientY,elementDim,horizontalDirection,verticalDirection,{'x':this.horizontalOffset,'y':this.verticalOffset});var offsets=jQuery(this.toolTip).offset();var x=coords.x-offsets.left+(event.pageX-event.clientX)+oldLeft;var y=coords.y-offsets.top+(event.pageY-event.clientY)+oldTop;Element.setStyle(this.toolTip,{"left":x+"px","top":y+"px"});if(this.iframe)
{this.iframe.style.top=(y-this.toolTipBorderHeight)+'px';this.iframe.style.left=(x-this.toolTipBorderWidth)+'px';this.iframe.style.width=offsetWidth+'px';this.iframe.style.height=offsetHeight+'px';}
tooltipStyle.visibility=_visibility;tooltipStyle.display=_display;this.eventCopy=A4J.AJAX.CloneObject(e,false);},prePosition:function(x,y,elementDim,horizontalDirection,verticalDirection,offset){var returnX,returnY;returnX=horizontalDirection=='left'?x-elementDim.width-offset.x:x+offset.x;returnY=verticalDirection=='top'?y-elementDim.height-offset.y:y+offset.y;return{'x':returnX,'y':returnY};},fitToolTip:function(clientX,clientY,elementDim,horizontalDirection,verticalDirection,offset){var winDim=Richfaces.Position.getWindowDimensions();var deltaLeft=clientX-offset.x-elementDim.width;var deltaRight=winDim.width-(clientX+offset.x+elementDim.width);var deltaTop=clientY-offset.y-elementDim.height;var deltaBottom=winDim.height-(clientY+offset.y+elementDim.height);if(deltaLeft<0){var newDeltaRight=winDim.width-(clientX+offset.x+elementDim.width);if(newDeltaRight>0){horizontalDirection='right';}else{if(newDeltaRight>deltaLeft){horizontalDirection='right';}}}else if(deltaRight<0){var newDeltaLeft=clientX-offset.x-elementDim.width;if(newDeltaLeft>0){horizontalDirection='left';}else{if(newDeltaLeft>deltaRight){horizontalDirection='left';}}}
if(deltaTop<0){var newDeltaBottom=winDim.height-(clientY+offset.y+elementDim.height);if(newDeltaBottom>0){verticalDirection='bottom';}else{if(newDeltaBottom>deltaTop){verticalDirection='bottom';}}}else if(deltaBottom<0){var newDeltaTop=clientY-offset.y-elementDim.height;if(newDeltaTop>0){verticalDirection='top';}else{if(newDeltaTop>deltaBottom){verticalDirection='top';}}}
var coords=this.prePosition(clientX,clientY,elementDim,horizontalDirection,verticalDirection,offset);return coords;},displayDiv:function(){if(this.isMouseOvered){if(this.mode=='ajax'){this.toolTip.style.display='none';if(this.clientAjaxParams){var xVarName;if(this.clientAjaxParams.clientX){xVarName='clientX';}else{xVarName='pageX';}
var yVarName;if(this.clientAjaxParams.clientY){yVarName='clientY';}else{yVarName='pageY';}
var obj={};obj[xVarName]=this.clientAjaxParams[xVarName];obj[yVarName]=this.clientAjaxParams[yVarName];this.toolTip.style.visibility="hidden";this.toolTip.style.display='block';this.setToolTipPosition((this.eventCopy?this.eventCopy:obj));}}
if(this.onshow!=null)
{this.onshow(this.eventCopy);}
this.setToolTipVisible(true);}},setToolTipVisible:function(runOnComplete){this.activationTimerHandle=undefined;this.toolTip.style.display="block";this.toolTip.style.visibility="visible";if(this.iframe)
{this.iframe.style.display="block";}
if(runOnComplete){if(this.oncomplete!=null)
{this.oncomplete(window.event);}}}}
if(!window.Richfaces){window.Richfaces={};}
Richfaces.SYNTHETIC_EVENT="Richfaces.SYNTHETIC_EVENT";Richfaces.createEvent=function(type,component,baseEvent,props){var eventObj;if(document.createEventObject){if(baseEvent){eventObj=document.createEventObject(baseEvent);}else{eventObj=document.createEventObject();}}else{var bubbles=baseEvent&&baseEvent.bubbles||false;var cancelable=baseEvent&&baseEvent.cancelable||true;switch(type){case'abort':case'blur':case'change':case'error':case'focus':case'load':case'reset':case'resize':case'scroll':case'select':case'submit':case'unload':eventObj=document.createEvent('HTMLEvents');eventObj.initEvent(type,bubbles,cancelable);break;case'DOMActivate':case'DOMFocusIn':case'DOMFocusOut':case'keydown':case'keypress':case'keyup':eventObj=document.createEvent('UIEvents');if(baseEvent){eventObj.initUIEvent(type,bubbles,cancelable,baseEvent.windowObject,baseEvent.detail);}else{eventObj.initEvent(type,bubbles,cancelable);}
break;case'click':case'mousedown':case'mousemove':case'mouseout':case'mouseover':case'mouseup':eventObj=document.createEvent('MouseEvents');if(baseEvent){eventObj.initMouseEvent(type,bubbles,cancelable,baseEvent.windowObject,baseEvent.detail,baseEvent.screenX,baseEvent.screenY,baseEvent.clientX,baseEvent.clientY,baseEvent.ctrlKey,baseEvent.altKey,baseEvent.shiftKey,baseEvent.metaKey,baseEvent.button,baseEvent.relatedTarget);}else{eventObj.initEvent(type,bubbles,cancelable)}
break;case'DOMAttrModified':case'DOMNodeInserted':case'DOMNodeRemoved':case'DOMCharacterDataModified':case'DOMNodeInsertedIntoDocument':case'DOMNodeRemovedFromDocument':case'DOMSubtreeModified':eventObj=document.createEvent('MutationEvents');if(baseEvent){eventObj.initMutationEvent(type,bubbles,cancelable,baseEvent.relatedNode,baseEvent.prevValue,baseEvent.newValue,baseEvent.attrName,baseEvent.attrChange);}else{eventObj.initEvent(type,bubbles,cancelable)}
break;default:eventObj=document.createEvent('Events');eventObj.initEvent(type,bubbles,cancelable);}}
if(props){Object.extend(eventObj,props);}
eventObj[Richfaces.SYNTHETIC_EVENT]=true;return{event:eventObj,fire:function(){if(component.fireEvent){component.fireEvent("on"+type,this.event);}else{component.dispatchEvent(this.event);}},destroy:function(){if(props){for(var name in props){this.event[name]=undefined;}}}};}
Richfaces.eventIsSynthetic=function(event){if(event){return new Boolean(event[Richfaces.SYNTHETIC_EVENT]).valueOf();}
return false;}
JSNode=function(){};JSNode.prototype={tag:null,attrs:{},childs:[],value:"",_symbols:{'&':"&amp;",'<':"&lt;",'>':"&gt;",'"':"&quot;",'\'':"&apos;",'\u00A0':"&nbsp;"},getInnerHTML:function(context){var children=[];for(var i=0;i<this.childs.length;i++)
{children.push(this.childs[i].getContent(context));}
return children.join('');},xmlEscape:function(value){var text=value?value.toString():"";return text.escapeHTML();}};E=function(tagname,attributes,childnodes){this.tag=tagname;if(attributes)this.attrs=attributes;if(childnodes)this.childs=childnodes;};E.prototype=new JSNode();E.prototype.getContent=function(context){var html="<"+this.tag;var inner=this.getInnerHTML(context);if(inner=='')this.isEmpty=true;else this.isEmpty=false;for(var i in this.attrs){if(!this.attrs.hasOwnProperty(i)){continue;}
var attrValue=this.attrs[i];if(typeof attrValue=="function")
attrValue=attrValue.call(this,context);if(attrValue)
html+=" "+(i=='className'?'class':i)+'="'+this.xmlEscape(attrValue)+'"';}
html+=">"+inner+"</"+this.tag+">";return html;};ET=function(text){this.value=text;};ET.prototype.getContent=function(context){var value=this.value;if(typeof value=="function")value=value(context);if(value&&value.getContent){value=value.getContent(context);}
if(value)return value;return"";};T=function(text){this.value=text;};T.prototype=new JSNode();T.prototype.getContent=function(context){var value=this.value;if(typeof value=="function")value=value(context);if(value)return this.xmlEscape(value);return"";};C=function(text){this.value=text;};C.prototype.getContent=function(context){return"<!--"+this.value+"-->";};D=function(text){this.value=text;};D.prototype.getContent=function(context){return"<![CDATA["+this.value+"]]>";};String.prototype.parseColor=function(){var color='#';if(this.slice(0,4)=='rgb('){var cols=this.slice(4,this.length-1).split(',');var i=0;do{color+=parseInt(cols[i]).toColorPart()}while(++i<3);}else{if(this.slice(0,1)=='#'){if(this.length==4)for(var i=1;i<4;i++)color+=(this.charAt(i)+this.charAt(i)).toLowerCase();if(this.length==7)color=this.toLowerCase();}}
return(color.length==7?color:(arguments[0]||this));};Element.collectTextNodes=function(element){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:(node.hasChildNodes()?Element.collectTextNodes(node):''));}).flatten().join('');};Element.collectTextNodesIgnoreClass=function(element,className){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:((node.hasChildNodes()&&!Element.hasClassName(node,className))?Element.collectTextNodesIgnoreClass(node,className):''));}).flatten().join('');};Element.setContentZoom=function(element,percent){element=$(element);element.setStyle({fontSize:(percent/100)+'em'});if(Prototype.Browser.WebKit)window.scrollBy(0,0);return element;};Element.getInlineOpacity=function(element){return $(element).style.opacity||'';};Element.forceRerendering=function(element){try{element=$(element);var n=document.createTextNode(' ');element.appendChild(n);element.removeChild(n);}catch(e){}};var Effect={_elementDoesNotExistError:{name:'ElementDoesNotExistError',message:'The specified DOM element does not exist, but is required for this effect to operate'},Transitions:{linear:Prototype.K,sinoidal:function(pos){return(-Math.cos(pos*Math.PI)/2)+.5;},reverse:function(pos){return 1-pos;},flicker:function(pos){var pos=((-Math.cos(pos*Math.PI)/4)+.75)+Math.random()/4;return pos>1?1:pos;},wobble:function(pos){return(-Math.cos(pos*Math.PI*(9*pos))/2)+.5;},pulse:function(pos,pulses){return(-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2)+.5;},spring:function(pos){return 1-(Math.cos(pos*4.5*Math.PI)*Math.exp(-pos*6));},none:function(pos){return 0;},full:function(pos){return 1;}},DefaultOptions:{duration:1.0,fps:100,sync:false,from:0.0,to:1.0,delay:0.0,queue:'parallel'},tagifyText:function(element){var tagifyStyle='position:relative';if(Prototype.Browser.IE)tagifyStyle+=';zoom:1';element=$(element);$A(element.childNodes).each(function(child){if(child.nodeType==3){child.nodeValue.toArray().each(function(character){element.insertBefore(new Element('span',{style:tagifyStyle}).update(character==' '?String.fromCharCode(160):character),child);});Element.remove(child);}});},multiple:function(element,effect){var elements;if(((typeof element=='object')||Object.isFunction(element))&&(element.length))
elements=element;else
elements=$(element).childNodes;var options=Object.extend({speed:0.1,delay:0.0},arguments[2]||{});var masterDelay=options.delay;$A(elements).each(function(element,index){new effect(element,Object.extend(options,{delay:index*options.speed+masterDelay}));});},PAIRS:{'slide':['SlideDown','SlideUp'],'blind':['BlindDown','BlindUp'],'appear':['Appear','Fade']},toggle:function(element,effect){element=$(element);effect=(effect||'appear').toLowerCase();var options=Object.extend({queue:{position:'end',scope:(element.id||'global'),limit:1}},arguments[2]||{});Effect[element.visible()?Effect.PAIRS[effect][1]:Effect.PAIRS[effect][0]](element,options);}};Effect.DefaultOptions.transition=Effect.Transitions.sinoidal;Effect.ScopedQueue=Class.create(Enumerable,{initialize:function(){this.effects=[];this.interval=null;},_each:function(iterator){this.effects._each(iterator);},add:function(effect){var timestamp=new Date().getTime();var position=Object.isString(effect.options.queue)?effect.options.queue:effect.options.queue.position;switch(position){case'front':this.effects.findAll(function(e){return e.state=='idle'}).each(function(e){e.startOn+=effect.finishOn;e.finishOn+=effect.finishOn;});break;case'with-last':timestamp=this.effects.pluck('startOn').max()||timestamp;break;case'end':timestamp=this.effects.pluck('finishOn').max()||timestamp;break;}
effect.startOn+=timestamp;effect.finishOn+=timestamp;if(!effect.options.queue.limit||(this.effects.length<effect.options.queue.limit))
this.effects.push(effect);if(!this.interval)
this.interval=setInterval(this.loop.bind(this),15);},remove:function(effect){this.effects=this.effects.reject(function(e){return e==effect});if(this.effects.length==0){clearInterval(this.interval);this.interval=null;}},loop:function(){var timePos=new Date().getTime();for(var i=0,len=this.effects.length;i<len;i++)
this.effects[i]&&this.effects[i].loop(timePos);}});Effect.Queues={instances:$H(),get:function(queueName){if(!Object.isString(queueName))return queueName;return this.instances.get(queueName)||this.instances.set(queueName,new Effect.ScopedQueue());}};Effect.Queue=Effect.Queues.get('global');Effect.Base=Class.create({position:null,start:function(options){function codeForEvent(options,eventName){return((options[eventName+'Internal']?'this.options.'+eventName+'Internal(this);':'')+
(options[eventName]?'this.options.'+eventName+'(this);':''));}
if(options&&options.transition===false)options.transition=Effect.Transitions.linear;this.options=Object.extend(Object.extend({},Effect.DefaultOptions),options||{});this.currentFrame=0;this.state='idle';this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.fromToDelta=this.options.to-this.options.from;this.totalTime=this.finishOn-this.startOn;this.totalFrames=this.options.fps*this.options.duration;this.render=(function(){function dispatch(effect,eventName){if(effect.options[eventName+'Internal'])
effect.options[eventName+'Internal'](effect);if(effect.options[eventName])
effect.options[eventName](effect);}
return function(pos){if(this.state==="idle"){this.state="running";dispatch(this,'beforeSetup');if(this.setup)this.setup();dispatch(this,'afterSetup');}
if(this.state==="running"){pos=(this.options.transition(pos)*this.fromToDelta)+this.options.from;this.position=pos;dispatch(this,'beforeUpdate');if(this.update)this.update(pos);dispatch(this,'afterUpdate');}};})();this.event('beforeStart');if(!this.options.sync)
Effect.Queues.get(Object.isString(this.options.queue)?'global':this.options.queue.scope).add(this);},loop:function(timePos){if(timePos>=this.startOn){if(timePos>=this.finishOn){this.render(1.0);this.cancel();this.event('beforeFinish');if(this.finish)this.finish();this.event('afterFinish');return;}
var pos=(timePos-this.startOn)/this.totalTime,frame=(pos*this.totalFrames).round();if(frame>this.currentFrame){this.render(pos);this.currentFrame=frame;}}},cancel:function(){if(!this.options.sync)
Effect.Queues.get(Object.isString(this.options.queue)?'global':this.options.queue.scope).remove(this);this.state='finished';},event:function(eventName){if(this.options[eventName+'Internal'])this.options[eventName+'Internal'](this);if(this.options[eventName])this.options[eventName](this);},inspect:function(){var data=$H();for(property in this)
if(!Object.isFunction(this[property]))data.set(property,this[property]);return'#<Effect:'+data.inspect()+',options:'+$H(this.options).inspect()+'>';}});Effect.Parallel=Class.create(Effect.Base,{initialize:function(effects){this.effects=effects||[];this.start(arguments[1]);},update:function(position){this.effects.invoke('render',position);},finish:function(position){this.effects.each(function(effect){effect.render(1.0);effect.cancel();effect.event('beforeFinish');if(effect.finish)effect.finish(position);effect.event('afterFinish');});}});Effect.Tween=Class.create(Effect.Base,{initialize:function(object,from,to){object=Object.isString(object)?$(object):object;var args=$A(arguments),method=args.last(),options=args.length==5?args[3]:null;this.method=Object.isFunction(method)?method.bind(object):Object.isFunction(object[method])?object[method].bind(object):function(value){object[method]=value};this.start(Object.extend({from:from,to:to},options||{}));},update:function(position){this.method(position);}});Effect.Event=Class.create(Effect.Base,{initialize:function(){this.start(Object.extend({duration:0},arguments[0]||{}));},update:Prototype.emptyFunction});Effect.Opacity=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout))
this.element.setStyle({zoom:1});var options=Object.extend({from:this.element.getOpacity()||0.0,to:1.0},arguments[1]||{});this.start(options);},update:function(position){this.element.setOpacity(position);}});Effect.Move=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({x:0,y:0,mode:'relative'},arguments[1]||{});this.start(options);},setup:function(){this.element.makePositioned();this.originalLeft=parseFloat(this.element.getStyle('left')||'0');this.originalTop=parseFloat(this.element.getStyle('top')||'0');if(this.options.mode=='absolute'){this.options.x=this.options.x-this.originalLeft;this.options.y=this.options.y-this.originalTop;}},update:function(position){this.element.setStyle({left:(this.options.x*position+this.originalLeft).round()+'px',top:(this.options.y*position+this.originalTop).round()+'px'});}});Effect.MoveBy=function(element,toTop,toLeft){return new Effect.Move(element,Object.extend({x:toLeft,y:toTop},arguments[3]||{}));};Effect.Scale=Class.create(Effect.Base,{initialize:function(element,percent){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:'box',scaleFrom:100.0,scaleTo:percent},arguments[2]||{});this.start(options);},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle('position');this.originalStyle={};['top','left','width','height','fontSize'].each(function(k){this.originalStyle[k]=this.element.style[k];}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var fontSize=this.element.getStyle('font-size')||'100%';['em','px','%','pt'].each(function(fontSizeType){if(fontSize.indexOf(fontSizeType)>0){this.fontSize=parseFloat(fontSize);this.fontSizeType=fontSizeType;}}.bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;this.dims=null;if(this.options.scaleMode=='box')
this.dims=[this.element.offsetHeight,this.element.offsetWidth];if(/^content/.test(this.options.scaleMode))
this.dims=[this.element.scrollHeight,this.element.scrollWidth];if(!this.dims)
this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth];},update:function(position){var currentScale=(this.options.scaleFrom/100.0)+(this.factor*position);if(this.options.scaleContent&&this.fontSize)
this.element.setStyle({fontSize:this.fontSize*currentScale+this.fontSizeType});this.setDimensions(this.dims[0]*currentScale,this.dims[1]*currentScale);},finish:function(position){if(this.restoreAfterFinish)this.element.setStyle(this.originalStyle);},setDimensions:function(height,width){var d={};if(this.options.scaleX)d.width=width.round()+'px';if(this.options.scaleY)d.height=height.round()+'px';if(this.options.scaleFromCenter){var topd=(height-this.dims[0])/2;var leftd=(width-this.dims[1])/2;if(this.elementPositioning=='absolute'){if(this.options.scaleY)d.top=this.originalTop-topd+'px';if(this.options.scaleX)d.left=this.originalLeft-leftd+'px';}else{if(this.options.scaleY)d.top=-topd+'px';if(this.options.scaleX)d.left=-leftd+'px';}}
this.element.setStyle(d);}});Effect.Highlight=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({startcolor:'#ffff99'},arguments[1]||{});this.start(options);},setup:function(){if(this.element.getStyle('display')=='none'){this.cancel();return;}
this.oldStyle={};if(!this.options.keepBackgroundImage){this.oldStyle.backgroundImage=this.element.getStyle('background-image');this.element.setStyle({backgroundImage:'none'});}
if(!this.options.endcolor)
this.options.endcolor=this.element.getStyle('background-color').parseColor('#ffffff');if(!this.options.restorecolor)
this.options.restorecolor=this.element.getStyle('background-color');this._base=$R(0,2).map(function(i){return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16)}.bind(this));this._delta=$R(0,2).map(function(i){return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i]}.bind(this));},update:function(position){this.element.setStyle({backgroundColor:$R(0,2).inject('#',function(m,v,i){return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart());}.bind(this))});},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}));}});Effect.ScrollTo=function(element){var options=arguments[1]||{},scrollOffsets=document.viewport.getScrollOffsets(),elementOffsets=$(element).cumulativeOffset();if(options.offset)elementOffsets[1]+=options.offset;return new Effect.Tween(null,scrollOffsets.top,elementOffsets[1],options,function(p){scrollTo(scrollOffsets.left,p.round());});};Effect.Fade=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();var options=Object.extend({from:element.getOpacity()||1.0,to:0.0,afterFinishInternal:function(effect){if(effect.options.to!=0)return;effect.element.hide().setStyle({opacity:oldOpacity});}},arguments[1]||{});return new Effect.Opacity(element,options);};Effect.Appear=function(element){element=$(element);var options=Object.extend({from:(element.getStyle('display')=='none'?0.0:element.getOpacity()||0.0),to:1.0,afterFinishInternal:function(effect){effect.element.forceRerendering();},beforeSetup:function(effect){effect.element.setOpacity(effect.options.from).show();}},arguments[1]||{});return new Effect.Opacity(element,options);};Effect.Puff=function(element){element=$(element);var oldStyle={opacity:element.getInlineOpacity(),position:element.getStyle('position'),top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};return new Effect.Parallel([new Effect.Scale(element,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:1.0,beforeSetupInternal:function(effect){Position.absolutize(effect.effects[0].element);},afterFinishInternal:function(effect){effect.effects[0].element.hide().setStyle(oldStyle);}},arguments[1]||{}));};Effect.BlindUp=function(element){element=$(element);element.makeClipping();return new Effect.Scale(element,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(effect){effect.element.hide().undoClipping();}},arguments[1]||{}));};Effect.BlindDown=function(element){element=$(element);var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makeClipping().setStyle({height:'0px'}).show();},afterFinishInternal:function(effect){effect.element.undoClipping();}},arguments[1]||{}));};Effect.SwitchOff=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();return new Effect.Appear(element,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(effect){new Effect.Scale(effect.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(effect){effect.element.makePositioned().makeClipping();},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned().setStyle({opacity:oldOpacity});}});}},arguments[1]||{}));};Effect.DropOut=function(element){element=$(element);var oldStyle={top:element.getStyle('top'),left:element.getStyle('left'),opacity:element.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(element,{x:0,y:100,sync:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:0.5,beforeSetup:function(effect){effect.effects[0].element.makePositioned();},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);}},arguments[1]||{}));};Effect.Shake=function(element){element=$(element);var options=Object.extend({distance:20,duration:0.5},arguments[1]||{});var distance=parseFloat(options.distance);var split=parseFloat(options.duration)/10.0;var oldStyle={top:element.getStyle('top'),left:element.getStyle('left')};return new Effect.Move(element,{x:distance,y:0,duration:split,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance,y:0,duration:split,afterFinishInternal:function(effect){effect.element.undoPositioned().setStyle(oldStyle);}});}});}});}});}});}});};Effect.SlideDown=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera)effect.element.setStyle({top:''});effect.element.makeClipping().setStyle({height:'0px'}).show();},afterUpdateInternal:function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'});},afterFinishInternal:function(effect){effect.element.undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom});}},arguments[1]||{}));};Effect.SlideUp=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');var elementDimensions=element.getDimensions();return new Effect.Scale(element,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:'box',scaleFrom:100,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera)effect.element.setStyle({top:''});effect.element.makeClipping().show();},afterUpdateInternal:function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'});},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom});}},arguments[1]||{}));};Effect.Squish=function(element){return new Effect.Scale(element,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(effect){effect.element.makeClipping();},afterFinishInternal:function(effect){effect.element.hide().undoClipping();}});};Effect.Grow=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var initialMoveX,initialMoveY;var moveX,moveY;switch(options.direction){case'top-left':initialMoveX=initialMoveY=moveX=moveY=0;break;case'top-right':initialMoveX=dims.width;initialMoveY=moveY=0;moveX=-dims.width;break;case'bottom-left':initialMoveX=moveX=0;initialMoveY=dims.height;moveY=-dims.height;break;case'bottom-right':initialMoveX=dims.width;initialMoveY=dims.height;moveX=-dims.width;moveY=-dims.height;break;case'center':initialMoveX=dims.width/2;initialMoveY=dims.height/2;moveX=-dims.width/2;moveY=-dims.height/2;break;}
return new Effect.Move(element,{x:initialMoveX,y:initialMoveY,duration:0.01,beforeSetup:function(effect){effect.element.hide().makeClipping().makePositioned();},afterFinishInternal:function(effect){new Effect.Parallel([new Effect.Opacity(effect.element,{sync:true,to:1.0,from:0.0,transition:options.opacityTransition}),new Effect.Move(effect.element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition}),new Effect.Scale(effect.element,100,{scaleMode:{originalHeight:dims.height,originalWidth:dims.width},sync:true,scaleFrom:window.opera?1:0,transition:options.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(effect){effect.effects[0].element.setStyle({height:'0px'}).show();},afterFinishInternal:function(effect){effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle);}},options));}});};Effect.Shrink=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var moveX,moveY;switch(options.direction){case'top-left':moveX=moveY=0;break;case'top-right':moveX=dims.width;moveY=0;break;case'bottom-left':moveX=0;moveY=dims.height;break;case'bottom-right':moveX=dims.width;moveY=dims.height;break;case'center':moveX=dims.width/2;moveY=dims.height/2;break;}
return new Effect.Parallel([new Effect.Opacity(element,{sync:true,to:0.0,from:1.0,transition:options.opacityTransition}),new Effect.Scale(element,window.opera?1:0,{sync:true,transition:options.scaleTransition,restoreAfterFinish:true}),new Effect.Move(element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition})],Object.extend({beforeStartInternal:function(effect){effect.effects[0].element.makePositioned().makeClipping();},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle);}},options));};Effect.Pulsate=function(element){element=$(element);var options=arguments[1]||{},oldOpacity=element.getInlineOpacity(),transition=options.transition||Effect.Transitions.linear,reverser=function(pos){return 1-transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2)+.5);};return new Effect.Opacity(element,Object.extend(Object.extend({duration:2.0,from:0,afterFinishInternal:function(effect){effect.element.setStyle({opacity:oldOpacity});}},options),{transition:reverser}));};Effect.Fold=function(element){element=$(element);var oldStyle={top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};element.makeClipping();return new Effect.Scale(element,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(effect){new Effect.Scale(element,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(effect){effect.element.hide().undoClipping().setStyle(oldStyle);}});}},arguments[1]||{}));};Effect.Morph=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({style:{}},arguments[1]||{});if(!Object.isString(options.style))this.style=$H(options.style);else{if(options.style.include(':'))
this.style=options.style.parseStyle();else{this.element.addClassName(options.style);this.style=$H(this.element.getStyles());this.element.removeClassName(options.style);var css=this.element.getStyles();this.style=this.style.reject(function(style){return style.value==css[style.key];});options.afterFinishInternal=function(effect){effect.element.addClassName(effect.options.style);effect.transforms.each(function(transform){effect.element.style[transform.style]='';});};}}
this.start(options);},setup:function(){function parseColor(color){if(!color||['rgba(0, 0, 0, 0)','transparent'].include(color))color='#ffffff';color=color.parseColor();return $R(0,2).map(function(i){return parseInt(color.slice(i*2+1,i*2+3),16);});}
this.transforms=this.style.map(function(pair){var property=pair[0],value=pair[1],unit=null;if(value.parseColor('#zzzzzz')!='#zzzzzz'){value=value.parseColor();unit='color';}else if(property=='opacity'){value=parseFloat(value);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout))
this.element.setStyle({zoom:1});}else if(Element.CSS_LENGTH.test(value)){var components=value.match(/^([\+\-]?[0-9\.]+)(.*)$/);value=parseFloat(components[1]);unit=(components.length==3)?components[2]:null;}
var originalValue=this.element.getStyle(property);return{style:property.camelize(),originalValue:unit=='color'?parseColor(originalValue):parseFloat(originalValue||0),targetValue:unit=='color'?parseColor(value):value,unit:unit};}.bind(this)).reject(function(transform){return((transform.originalValue==transform.targetValue)||(transform.unit!='color'&&(isNaN(transform.originalValue)||isNaN(transform.targetValue))));});},update:function(position){var style={},transform,i=this.transforms.length;while(i--)
style[(transform=this.transforms[i]).style]=transform.unit=='color'?'#'+
(Math.round(transform.originalValue[0]+
(transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart()+
(Math.round(transform.originalValue[1]+
(transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart()+
(Math.round(transform.originalValue[2]+
(transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart():(transform.originalValue+
(transform.targetValue-transform.originalValue)*position).toFixed(3)+
(transform.unit===null?'':transform.unit);this.element.setStyle(style,true);}});Effect.Transform=Class.create({initialize:function(tracks){this.tracks=[];this.options=arguments[1]||{};this.addTracks(tracks);},addTracks:function(tracks){tracks.each(function(track){track=$H(track);var data=track.values().first();this.tracks.push($H({ids:track.keys().first(),effect:Effect.Morph,options:{style:data}}));}.bind(this));return this;},play:function(){return new Effect.Parallel(this.tracks.map(function(track){var ids=track.get('ids'),effect=track.get('effect'),options=track.get('options');var elements=[$(ids)||$$(ids)].flatten();return elements.map(function(e){return new effect(e,Object.extend({sync:true},options))});}).flatten(),this.options);}});Element.CSS_PROPERTIES=$w('backgroundColor backgroundPosition borderBottomColor borderBottomStyle '+'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth '+'borderRightColor borderRightStyle borderRightWidth borderSpacing '+'borderTopColor borderTopStyle borderTopWidth bottom clip color '+'fontSize fontWeight height left letterSpacing lineHeight '+'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+'maxWidth minHeight minWidth opacity outlineColor outlineOffset '+'outlineWidth paddingBottom paddingLeft paddingRight paddingTop '+'right textIndent top width wordSpacing zIndex');Element.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;String.__parseStyleElement=document.createElement('div');String.prototype.parseStyle=function(){var style,styleRules=$H();if(Prototype.Browser.WebKit)
style=new Element('div',{style:this}).style;else{String.__parseStyleElement.innerHTML='<div style="'+this+'"></div>';style=String.__parseStyleElement.childNodes[0].style;}
Element.CSS_PROPERTIES.each(function(property){if(style[property])styleRules.set(property,style[property]);});if(Prototype.Browser.IE&&this.include('opacity'))
styleRules.set('opacity',this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);return styleRules;};if(document.defaultView&&document.defaultView.getComputedStyle){Element.getStyles=function(element){var css=document.defaultView.getComputedStyle($(element),null);return Element.CSS_PROPERTIES.inject({},function(styles,property){styles[property]=css[property];return styles;});};}else{Element.getStyles=function(element){element=$(element);var css=element.currentStyle,styles;styles=Element.CSS_PROPERTIES.inject({},function(results,property){results[property]=css[property];return results;});if(!styles.opacity)styles.opacity=element.getOpacity();return styles;};}
Effect.Methods={morph:function(element,style){element=$(element);new Effect.Morph(element,Object.extend({style:style},arguments[2]||{}));return element;},visualEffect:function(element,effect,options){element=$(element);var s=effect.dasherize().camelize(),klass=s.charAt(0).toUpperCase()+s.substring(1);new Effect[klass](element,options);return element;},highlight:function(element,options){element=$(element);new Effect.Highlight(element,options);return element;}};$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+'pulsate shake puff squish switchOff dropOut').each(function(effect){Effect.Methods[effect]=function(element,options){element=$(element);Effect[effect.charAt(0).toUpperCase()+effect.substring(1)](element,options);return element;};});$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each(function(f){Effect.Methods[f]=Element[f];});Element.addMethods(Effect.Methods);var sbjQuery=oldJQuery;sbjQuery.fn.SpinButton=function(cfg){return this.each(function(){this.spinCfg={min:cfg&&!isNaN(parseFloat(cfg.min))?Number(cfg.min):null,max:cfg&&!isNaN(parseFloat(cfg.max))?Number(cfg.max):null,step:cfg&&cfg.step?Number(cfg.step):1,page:cfg&&cfg.page?Number(cfg.page):10,upClass:cfg&&cfg.upClass?cfg.upClass:'up',downClass:cfg&&cfg.downClass?cfg.downClass:'down',reset:cfg&&cfg.reset?cfg.reset:this.value,delay:cfg&&cfg.delay?Number(cfg.delay):500,interval:cfg&&cfg.interval?Number(cfg.interval):100,_btn_width:20,_btn_height:12,_direction:null,_delay:null,_repeat:null,digits:cfg&&cfg.digits?Number(cfg.digits):1};this.adjustValue=function(i){var v=this.value.toLowerCase();if(v=="am")
{this.value="PM";return;}
else if(v=="pm"){this.value="AM";return;}
v=(isNaN(this.value)?this.spinCfg.reset:Number(this.value))+Number(i);if(this.spinCfg.min!==null)v=(v<this.spinCfg.min?(this.spinCfg.max!=null?this.spinCfg.max:this.spinCfg.min):v);if(this.spinCfg.max!==null)v=(v>this.spinCfg.max?(this.spinCfg.min!=null?this.spinCfg.min:this.spinCfg.max):v);var value=String(v);while(value.length<this.spinCfg.digits)value="0"+value;this.value=value;};sbjQuery(this).keydown(function(e){switch(e.keyCode){case 38:this.adjustValue(this.spinCfg.step);break;case 40:this.adjustValue(-this.spinCfg.step);break;case 33:this.adjustValue(this.spinCfg.page);break;case 34:this.adjustValue(-this.spinCfg.page);break;}}).bind("mousewheel",function(e){if(e.wheelDelta>=120)
this.adjustValue(this.spinCfg.step);else if(e.wheelDelta<=-120)
this.adjustValue(-this.spinCfg.step);e.preventDefault();}).change(function(e){this.adjustValue(0);});var self=this;var btnUp=$(this.id+'BtnUp');sbjQuery(btnUp).mousedown(function(e){var adjust=function(){self.adjustValue(self.spinCfg.step);};adjust();self.spinCfg._delay=window.setTimeout(function(){adjust();self.spinCfg._repeat=window.setInterval(adjust,self.spinCfg.interval);},self.spinCfg.delay);self.spinCfg._repeater=true;return false;}).mouseup(function(e){self.spinCfg._repeater=false;window.clearInterval(self.spinCfg._repeat);window.clearTimeout(self.spinCfg._delay);}).dblclick(function(e){if(sbjQuery.browser.msie)
self.adjustValue(self.spinCfg.step);}).mouseout(function(e){if(self.spinCfg._repeater)
{self.spinCfg._repeater=false
window.clearInterval(self.spinCfg._repeat);window.clearTimeout(self.spinCfg._delay);}});var btnDown=$(this.id+'BtnDown');sbjQuery(btnDown).mousedown(function(e){var adjust=function(){self.adjustValue(-self.spinCfg.step);};adjust();self.spinCfg._delay=window.setTimeout(function(){adjust();self.spinCfg._repeat=window.setInterval(adjust,self.spinCfg.interval);},self.spinCfg.delay);self.spinCfg._repeater=true;return false;}).mouseup(function(e){self.spinCfg._repeater=false;window.clearInterval(self.spinCfg._repeat);window.clearTimeout(self.spinCfg._delay);}).dblclick(function(e){if(sbjQuery.browser.msie)
self.adjustValue(-self.spinCfg.step);}).mouseout(function(e){if(self.spinCfg._repeater)
{self.spinCfg._repeater=false
window.clearInterval(self.spinCfg._repeat);window.clearTimeout(self.spinCfg._delay);}});if(this.addEventListener){this.addEventListener('DOMMouseScroll',function(e){if(e.detail>0)
this.adjustValue(-this.spinCfg.step);else if(e.detail<0)
this.adjustValue(this.spinCfg.step);e.preventDefault();},false);}});function coord(el,prop){var c=el[prop],b=document.body;while((el=el.offsetParent)&&(el!=b)){if(!sbjQuery.browser.msie||(el.currentStyle.position!='relative'))
c+=el[prop];}
return c;}};if(!window.LOG){window.LOG={warn:function(){}};}
if(!window.Richfaces)window.Richfaces={};Richfaces.Calendar={};Richfaces.Calendar.setElementPosition=function(element,baseElement,jointPoint,direction,offset)
{if(!offset)offset={dx:0,dy:0};var elementDim=Richfaces.Calendar.getOffsetDimensions(element);var baseElementDim;var baseOffset;if(baseElement.left!=undefined)
{baseElementDim={width:baseElement.width,height:baseElement.height};baseOffset=[baseElement.left,baseElement.top];}else
{baseElementDim=Richfaces.Calendar.getOffsetDimensions(baseElement);baseOffset=Position.cumulativeOffset(baseElement);}
var windowRect=Richfaces.Calendar.getWindowViewport();var ox=baseOffset[0];var oy=baseOffset[1];var re=/^(top|bottom)-(left|right)$/;var match;if(typeof jointPoint=='object'){ox=jointPoint.x;oy=jointPoint.y}
else if(jointPoint&&(match=jointPoint.toLowerCase().match(re))!=null)
{if(match[2]=='right')ox+=baseElementDim.width;if(match[1]=='bottom')oy+=baseElementDim.height;}else
{}
if(direction&&(match=direction.toLowerCase().match(re))!=null)
{var d=direction.toLowerCase().split('-');if(match[2]=='left')ox-=elementDim.width+offset.dx;else if(match[2]=='right')ox+=offset.dx;if(match[1]=='top')oy-=elementDim.height+offset.dy;else if(match[1]=='bottom')oy+=offset.dy;}else
{var theBest={square:0};var basex=baseOffset[0]-offset.dx;var basey=baseOffset[1]+offset.dy;var rect={right:basex+baseElementDim.width,top:basey+baseElementDim.height};rect.left=rect.right-elementDim.width;rect.bottom=rect.top+elementDim.height;ox=rect.left;oy=rect.top;var s=Richfaces.Calendar.checkCollision(rect,windowRect);if(s!=0)
{if(ox>=0&&oy>=0&&theBest.square<s)theBest={x:ox,y:oy,square:s};basex=baseOffset[0]-offset.dx;basey=baseOffset[1]-offset.dy;rect={right:basex+baseElementDim.width,bottom:basey};rect.left=rect.right-elementDim.width;rect.top=rect.bottom-elementDim.height;ox=rect.left;oy=rect.top;s=Richfaces.Calendar.checkCollision(rect,windowRect);if(s!=0)
{if(ox>=0&&oy>=0&&theBest.square<s)theBest={x:ox,y:oy,square:s};basex=baseOffset[0]+offset.dx;basey=baseOffset[1]+offset.dy;rect={left:basex,top:basey+baseElementDim.height};rect.right=rect.left+elementDim.width;rect.bottom=rect.top+elementDim.height;ox=rect.left;oy=rect.top;s=Richfaces.Calendar.checkCollision(rect,windowRect);if(s!=0)
{if(ox>=0&&oy>=0&&theBest.square<s)theBest={x:ox,y:oy,square:s};basex=baseOffset[0]+offset.dx;basey=baseOffset[1]-offset.dy;rect={left:basex,bottom:basey};rect.right=rect.left+elementDim.width;rect.top=rect.bottom-elementDim.height;ox=rect.left;oy=rect.top;s=Richfaces.Calendar.checkCollision(rect,windowRect);if(s!=0)
{if(ox<0||oy<0||theBest.square>s){ox=theBest.x;oy=theBest.y}}}}}}
var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';els.position='absolute';els.display='';if(!window.opera)
{var parentOffset=element.getOffsetParent().viewportOffset();ox-=parentOffset[0];oy-=parentOffset[1];}else if(element.offsetParent)
{if(element.offsetParent!=document.body)
{var parentOffset=Position.cumulativeOffset(element.offsetParent);ox-=parentOffset[0];oy-=parentOffset[1];ox+=element.offsetParent.scrollLeft;oy+=element.offsetParent.scrollTop;}else{var parentOffset=Richfaces.Calendar.cumulativeScrollOffset(element);ox+=parentOffset[0];oy+=parentOffset[1];}}
els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;element.style.left=ox+'px';element.style.top=oy+'px';};Richfaces.Calendar.cumulativeScrollOffset=function(element){var valueT=0,valueL=0;do{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode;}while(element&&element!=document.body);return Element._returnOffset(valueL,valueT);};Richfaces.Calendar.getOffsetDimensions=function(element){element=$(element);var display=$(element).getStyle('display');if(display!='none'&&display!=null)
return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';els.position='absolute';els.display='block';var originalWidth=element.offsetWidth;var originalHeight=element.offsetHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};};Richfaces.Calendar.checkCollision=function(elementRect,windowRect,windowOffset)
{if(elementRect.left>=windowRect.left&&elementRect.top>=windowRect.top&&elementRect.right<=windowRect.right&&elementRect.bottom<=windowRect.bottom)
return 0;var rect={left:(elementRect.left>windowRect.left?elementRect.left:windowRect.left),top:(elementRect.top>windowRect.top?elementRect.top:windowRect.top),right:(elementRect.right<windowRect.right?elementRect.right:windowRect.right),bottom:(elementRect.bottom<windowRect.bottom?elementRect.bottom:windowRect.bottom)};return(rect.right-rect.left)*(rect.bottom-rect.top);};Richfaces.Calendar.getWindowDimensions=function(){var w=self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0;var h=self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;return{width:w,height:h};};Richfaces.Calendar.getWindowScrollOffset=function(){var dx=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;var dy=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;return{left:dx,top:dy};};Richfaces.Calendar.getWindowViewport=function(){var windowDim=Richfaces.Calendar.getWindowDimensions();var windowOffset=Richfaces.Calendar.getWindowScrollOffset();return{left:windowOffset.left,top:windowOffset.top,right:windowDim.width+windowOffset.left,bottom:windowDim.height+windowOffset.top};};Richfaces.Calendar.clonePosition=function(elements,source)
{if(!elements.length)elements=[elements];var offset=Position.cumulativeOffset(source);offset={left:offset[0],top:offset[1]};var offsetTemp;if(source.style.position!='absolute')
{offsetTemp=Position.realOffset(source);offset.left-=offsetTemp.left;offset.top-=offsetTemp.top;offsetTemp=Richfaces.Calendar.getWindowScrollOffset();offset.left+=offsetTemp.left;offset.top+=offsetTemp.top;}
for(var i=0;i<elements.length;i++)
{offsetTemp=Richfaces.Calendar.getParentOffset(elements[i]);elements[i].style.left=(offset.left-offsetTemp.left)+'px';elements[i].style.top=(offset.top-offsetTemp.top)+'px';}
return offset;};Richfaces.Calendar.getParentOffset=function(element)
{var offset={left:0,top:0};var els=element.style;if(els.display!='none')
{if(element.offsetParent&&element.offsetParent!=document.body)
offset=Position.cumulativeOffset(element.offsetParent);}
else
{var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';els.position='absolute';els.display='';if(element.offsetParent&&element.offsetParent!=document.body)
offset=Position.cumulativeOffset(element.offsetParent);els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;}
return offset;};Richfaces.Calendar.joinArray=function(array,begin,end,separator)
{var value='';if(array.length!=0)value=begin+array.pop()+end;while(array.length)
value=begin+array.pop()+end+separator+value;return value;};Richfaces.Calendar.getMonthByLabel=function(monthLabel,monthNames)
{var i=0;while(i<monthNames.length)if(monthNames[i]==monthLabel)return i;else i++;};Object.extend(Event,{findElementByAttr:function(event,tagName,attribute,value,flag){var element=Event.findElement(event,tagName);while(!element[attribute]||(flag?element[attribute].indexOf(value)!=0:element[attribute]!=value))
{element=element.parentNode;}
return element;}});Object.extend(Element,{replaceClassName:function(element,whichClassName,toClassName){if(!(element=$(element)))return;var e=Element.classNames(element);e.remove(whichClassName);e.add(toClassName);return element;}});Richfaces.Calendar.getDefaultMonthNames=function(shortNames)
{return(shortNames?['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']:['January','February','March','April','May','June','July','August','September','October','November','December']);};Richfaces.Calendar.parseDate=function(dateString,pattern,monthNames,monthNamesShort)
{var re=/([.*+?^<>=!:${}()[\]\/\\])/g;var monthNamesStr
var monthNamesShortStr;if(!monthNames)
{monthNames=Richfaces.Calendar.getDefaultMonthNames();monthNamesStr=monthNames.join('|');}
else
{monthNamesStr=monthNames.join('|').replace(re,'\\$1');}
if(!monthNamesShort)
{monthNamesShort=Richfaces.Calendar.getDefaultMonthNames(true);monthNamesShortStr=monthNamesShort.join('|');}
else
{monthNamesShortStr=monthNamesShort.join('|').replace(re,'\\$1');}
var counter=1;var y,m,d;var a,h,min;var shortLabel=false;pattern=pattern.replace(/([.*+?^<>=!:${}()|[\]\/\\])/g,'\\$1');pattern=pattern.replace(/(y+|M+|d+|a|H{1,2}|h{1,2}|m{2})/g,function($1){switch($1){case'y':case'yy':y=counter;counter++;return'(\\d{2})';case'MM':m=counter;counter++;return'(\\d{2})';case'M':m=counter;counter++;return'(\\d{1,2})';case'd':d=counter;counter++;return'(\\d{1,2})';case'MMM':m=counter;counter++;shortLabel=true;return'('+monthNamesShortStr+')';case'a':a=counter;counter++;return'(AM|am|PM|pm)?';case'HH':case'hh':h=counter;counter++;return'(\\d{2})?';case'H':case'h':h=counter;counter++;return'(\\d{1,2})?';case'mm':min=counter;counter++;return'(\\d{2})?';}
var ch=$1.charAt(0);if(ch=='y'){y=counter;counter++;return'(\\d{3,4})'};if(ch=='M'){m=counter;counter++;return'('+monthNamesStr+')'};if(ch=='d'){d=counter;counter++;return'(\\d{2})'};});var re=new RegExp(pattern,'i');var match=dateString.match(re);if(match!=null)
{var yy=parseInt(match[y],10);if(isNaN(yy))return null;else if(yy<70)yy+=2000;else if(yy<100)yy+=1900;var mm=parseInt(match[m],10);if(isNaN(mm))mm=Richfaces.Calendar.getMonthByLabel(match[m],shortLabel?monthNamesShort:monthNames);else if(--mm<0||mm>11)return null;var dd=parseInt(match[d],10);if(isNaN(dd)||dd<1||dd>daysInMonth(yy,mm))return null;if(min!=undefined&&h!=undefined)
{var hh,mmin,aa;mmin=parseInt(match[min],10);if(isNaN(mmin)||mmin<0||mmin>59)return null;hh=parseInt(match[h],10);if(isNaN(hh))return null;if(a!=undefined)
{aa=match[a];if(!aa)return null;aa=aa.toLowerCase();if((aa!='am'&&aa!='pm')||hh<1||hh>12)return null;if(aa=='pm')
{if(hh!=12)hh+=12;}else if(hh==12)hh=0;}
else if(hh<0||hh>23)return null;return new Date(yy,mm,dd,hh,mmin,0);}
return new Date(yy,mm,dd);}
return null;};Richfaces.Calendar.formatDate=function(date,pattern,monthNames,monthNamesShort){if(!monthNames)monthNames=Richfaces.Calendar.getDefaultMonthNames();if(!monthNamesShort)monthNamesShort=Richfaces.Calendar.getDefaultMonthNames(true);var mm;var dd;var hh;var min;var result=pattern.replace(/(\\\\|\\[yMdaHhm])|(y+|M+|d+|a|H{1,2}|h{1,2}|m{2})/g,function($1,$2,$3){if($2)return $2.charAt(1);switch($3){case'y':case'yy':return date.getYear().toString().slice(-2);case'M':return(date.getMonth()+1);case'MM':return((mm=date.getMonth()+1)<10?'0'+mm:mm);case'MMM':return monthNamesShort[date.getMonth()];case'd':return date.getDate();case'a':return(date.getHours()<12?'AM':'PM');case'HH':return((hh=date.getHours())<10?'0'+hh:hh);case'H':return date.getHours();case'hh':return((hh=date.getHours())==0?'12':(hh<10?'0'+hh:(hh>21?hh-12:(hh>12)?'0'+(hh-12):hh)));case'h':return((hh=date.getHours())==0?'12':(hh>12?hh-12:hh));case'mm':return((min=date.getMinutes())<10?'0'+min:min);}
var ch=$3.charAt(0);if(ch=='y')return date.getFullYear();if(ch=='M')return monthNames[date.getMonth()];if(ch=='d')return((dd=date.getDate())<10?'0'+dd:dd);});return result;};Richfaces.Calendar.escape=function(str)
{return str.replace(/([yMdaHhm\\])/g,"\\$1");};Richfaces.Calendar.unescape=function(str)
{return str.replace(/\\([yMdaHhm\\])/g,"$1");};function isLeapYear(year){return new Date(year,1,29).getDate()==29;}
function daysInMonth(year,month){return 32-new Date(year,month,32).getDate();}
function daysInMonthByDate(date){return 32-new Date(date.getFullYear(),date.getMonth(),32).getDate();}
function getDay(date,firstWeekDay){var value=date.getDay()-firstWeekDay;if(value<0)value=7+value;return value;}
function getFirstWeek(year,mdifw,fdow){var date=new Date(year,0,1);var firstday=getDay(date,fdow);var weeknumber=(7-firstday<mdifw)?0:1;return{date:date,firstDay:firstday,weekNumber:weeknumber,mdifw:mdifw,fdow:fdow};}
function getLastWeekOfPrevYear(o){var year=o.date.getFullYear()-1;var days=(isLeapYear(year)?366:365);var obj=getFirstWeek(year,o.mdifw,o.fdow);days=(days-7+o.firstDay);var weeks=Math.floor(days/7)+1;return weeks+obj.weekNumber;}
function weekNumber(year,month,mdifw,fdow){var o=getFirstWeek(year,mdifw,fdow);if(month==0)
{if(o.weekNumber==1)return 1;return getLastWeekOfPrevYear(o);}
var oneweek=604800000;var d=new Date(year,month,1);d.setDate(1+o.firstDay+(getDay(d,fdow)==0?1:0));weeknumber=o.weekNumber+Math.floor((d.getTime()-o.date.getTime())/oneweek);return weeknumber;}
Calendar=Class.create();Object.extend(Calendar.prototype,{initialize:function(id,parameters){this.id=id;this.params=parameters;this.showApplyButton=(!this.params.popup)?false:this.params.showApplyButton;if(this.params.showWeekDaysBar==undefined)this.params.showWeekDaysBar=true;if(this.params.showWeeksBar==undefined)this.params.showWeeksBar=true;if(!this.params.datePattern)this.params.datePattern="MMM d, y";this.setTimeProperties();if(!this.params.dayListMarkup)
{this.params.dayListMarkup=CalendarView.dayList;this.customDayListMarkup=false;}
else
{this.customDayListMarkup=true;}
if(!this.params.weekNumberMarkup)this.params.weekNumberMarkup=CalendarView.weekNumber;if(!this.params.weekDayMarkup)this.params.weekDayMarkup=CalendarView.weekDay;if(!this.params.headerMarkup)this.params.headerMarkup=CalendarView.header;if(!this.params.footerMarkup)this.params.footerMarkup=CalendarView.footer;this.popupOffset={dx:(isNaN(this.params.horizontalOffset)?0:parseInt(this.params.horizontalOffset,10)),dy:(isNaN(this.params.verticalOffset)?0:parseInt(this.params.verticalOffset,10))};this.currentDate=this.params.currentDate?this.params.currentDate:(this.params.selectedDate?this.params.selectedDate:new Date());this.currentDate.setDate(1);this.selectedDate=this.params.selectedDate;if(typeof this.params.boundaryDatesMode=="string")this.params.boundaryDatesMode=this.params.boundaryDatesMode.toLowerCase();if(typeof this.params.todayControlMode=="string")this.todayControlMode=this.params.todayControlMode.toLowerCase();if(typeof this.params.isDayEnabled!="function")this.params.isDayEnabled=function(context){return true;};if(typeof this.params.dayStyleClass!="function")this.params.dayStyleClass=function(context){return"";};this.todayDate=new Date();this.firstWeekendDayNumber=6-this.params.firstWeekDay;this.secondWeekendDayNumber=(this.params.firstWeekDay>0?7-this.params.firstWeekDay:0);this.calendarContext=new CalendarContext(this);this.DATE_ELEMENT_ID=this.params.dayListTableId+'Cell';this.WEEKNUMBER_ELEMENT_ID=this.params.weekNumberBarId+'Cell';this.WEEKDAY_ELEMENT_ID=this.params.weekDayBarId+'Cell';this.POPUP_ID=this.id+'Popup';this.POPUP_BUTTON_ID=this.id+'PopupButton';this.INPUT_DATE_ID=this.id+'InputDate';this.IFRAME_ID=this.id+'IFrame';this.EDITOR_ID=this.id+'Editor';this.EDITOR_SHADOW_ID=this.id+'EditorShadow';this.TIME_EDITOR_LAYOUT_ID=this.id+'TimeEditorLayout';this.DATE_EDITOR_LAYOUT_ID=this.id+'DateEditorLayout';this.EDITOR_LAYOUT_SHADOW_ID=this.id+'EditorLayoutShadow';this.TIME_EDITOR_BUTTON_OK=this.id+'TimeEditorButtonOk';this.TIME_EDITOR_BUTTON_CANCEL=this.id+'TimeEditorButtonCancel';this.DATE_EDITOR_BUTTON_OK=this.id+'DateEditorButtonOk';this.DATE_EDITOR_BUTTON_CANCEL=this.id+'DateEditorButtonCancel';this.firstDateIndex=0;this.daysData={startDate:null,days:[]};this.days=[];this.todayCellId=null;this.todayCellColor="";this.selectedDateCellId=null;this.selectedDateCellColor="";var popupStyles="";this.isVisible=true;if(this.params.popup==true)
{popupStyles="display:none; position:absolute;"
this.isVisible=false;}
var tempStr="$('"+this.id+"').component.";var htmlTextHeader='<table id="'+this.id+'" border="0" cellpadding="0" cellspacing="0" class="rich-calendar-exterior rich-calendar-popup'+(this.params.className?' '+this.params.className:'')+'" style="'+popupStyles+this.params.style+'" onclick="'+tempStr+'skipEventOnCollapse=true;"><tbody>';var colspan=(this.params.showWeeksBar?"8":"7");var htmlHeaderOptional=(this.params.optionalHeaderMarkup)?'<tr><td class="rich-calendar-header-optional" colspan="'+colspan+'" id="'+this.id+'HeaderOptional"></td></tr>':'';var htmlFooterOptional=(this.params.optionalFooterMarkup)?'<tr><td class="rich-calendar-footer-optional" colspan="'+colspan+'" id="'+this.id+'FooterOptional"></td></tr>':'';var htmlControlsHeader=(this.params.showHeader?'<tr><td class="rich-calendar-header" colspan="'+colspan+'" id="'+this.id+'Header"></td></tr>':'');var htmlControlsFooter=(this.params.showFooter?'<tr><td class="rich-calendar-footer" colspan="'+colspan+'" id="'+this.id+'Footer"></td></tr>':'');var htmlTextFooter='</tbody></table>'
var htmlTextIFrame='<iframe src="javascript:\'\'" frameborder="0" scrolling="no" id="'+this.IFRAME_ID+'" style="display:none; position: absolute; width: 1px; height: 1px; background-color:white;">'+'</iframe>';var styleClass;var bottomStyleClass;var htmlTextWeekDayBar=[];var context;var eventsStr=this.params.disabled||this.params.readonly?'':'onclick="'+tempStr+'eventCellOnClick(event, this);" onmouseover="'+tempStr+'eventCellOnMouseOver(event, this);" onmouseout="'+tempStr+'eventCellOnMouseOut(event, this);"';if(this.params.showWeekDaysBar)
{htmlTextWeekDayBar.push('<tr id="'+this.params.weekDayBarId+'">');if(this.params.showWeeksBar)htmlTextWeekDayBar.push('<td class="rich-calendar-days"><br/></td>');var weekDayCounter=this.params.firstWeekDay;for(var i=0;i<7;i++)
{context={weekDayLabel:this.params.weekDayLabels[weekDayCounter],weekDayLabelShort:this.params.weekDayLabelsShort[weekDayCounter],weekDayNumber:weekDayCounter,isWeekend:this.isWeekend(i),elementId:this.WEEKDAY_ELEMENT_ID+i,component:this};var weekDayHtml=this.evaluateMarkup(this.params.weekDayMarkup,context);if(weekDayCounter==6)weekDayCounter=0;else weekDayCounter++;styleClass="rich-calendar-days";if(context.isWeekend)
{styleClass+=" rich-calendar-weekends";}
if(i==6)styleClass+=" rich-right-cell";htmlTextWeekDayBar.push('<td class="'+styleClass+'" id="'+context.elementId+'">'+weekDayHtml+'</td>');}
htmlTextWeekDayBar.push('</tr>\n');}
var htmlTextWeek=[];var p=0;this.dayCellClassName=[];for(k=1;k<7;k++)
{bottomStyleClass=(k==6?"rich-bottom-cell ":"");htmlTextWeek.push('<tr id="'+this.params.weekNumberBarId+k+'">');if(this.params.showWeeksBar)
{context={weekNumber:k,elementId:this.WEEKNUMBER_ELEMENT_ID+k,component:this};var weekNumberHtml=this.evaluateMarkup(this.params.weekNumberMarkup,context);htmlTextWeek.push('<td class="rich-calendar-week '+bottomStyleClass+'" id="'+context.elementId+'">'+weekNumberHtml+'</td>');}
for(var i=0;i<7;i++)
{styleClass=bottomStyleClass+(!this.params.dayCellClass?"rich-calendar-cell-size":(!this.customDayListMarkup?this.params.dayCellClass:""))+" rich-calendar-cell";if(i==this.firstWeekendDayNumber||i==this.secondWeekendDayNumber)styleClass+=" rich-calendar-holly";if(i==6)styleClass+=" rich-right-cell";this.dayCellClassName.push(styleClass);htmlTextWeek.push('<td class="'+styleClass+'" id="'+this.DATE_ELEMENT_ID+p+'" '+
eventsStr+'>'+(this.customDayListMarkup?'<div class="rich-calendar-cell-div'+(this.params.dayCellClass?' '+this.params.dayCellClass:'')+'"></div>':'')+'</td>');p++;}
htmlTextWeek.push('</tr>');}
var obj=$(this.POPUP_ID).nextSibling;if(this.params.popup&&Richfaces.browser.isIE6)
{do{if(obj.id==this.IFRAME_ID)
{var iframe=obj;obj=obj.nextSibling;Element.replace(iframe,htmlTextIFrame);break;}}while(obj=obj.nextSibling);}
do{if(obj.id==id)
{var div=obj;obj=obj.previousSibling;Element.replace(div,htmlTextHeader+htmlHeaderOptional+htmlControlsHeader+htmlTextWeekDayBar.join('')+htmlTextWeek.join('')+htmlControlsFooter+htmlFooterOptional+htmlTextFooter);break;}}while(obj=obj.nextSibling);obj=obj.nextSibling;obj.component=this;obj.richfacesComponent="richfaces:calendar";this["rich:destructor"]="destructor";obj=null;if(this.params.submitFunction)this.submitFunction=this.params.submitFunction.bind(this);this.prepareEvents();if(this.params.popup&&!this.params.disabled)
{var handler=new Function('event',"$('"+this.id+"').component.doSwitch();").bindAsEventListener();Event.observe(this.POPUP_BUTTON_ID,"click",handler,false);if(!this.params.enableManualInput)
{Event.observe(this.INPUT_DATE_ID,"click",handler,false);}}
this.scrollElements=null;},destructor:function()
{if(this.params.popup&&this.isVisible)
{Richfaces.removeScrollEventHandlers(this.scrollElements,this.eventOnScroll);Event.stopObserving(window.document,"click",this.eventOnCollapse,false);}},dateEditorSelectYear:function(value)
{if(this.dateEditorYearID)
{Element.removeClassName(this.dateEditorYearID,'rich-calendar-editor-btn-selected');}
this.dateEditorYear=this.dateEditorStartYear+value;this.dateEditorYearID=this.DATE_EDITOR_LAYOUT_ID+'Y'+value;Element.addClassName(this.dateEditorYearID,'rich-calendar-editor-btn-selected');},dateEditorSelectMonth:function(value)
{this.dateEditorMonth=value;Element.removeClassName(this.dateEditorMonthID,'rich-calendar-editor-btn-selected');this.dateEditorMonthID=this.DATE_EDITOR_LAYOUT_ID+'M'+value;Element.addClassName(this.dateEditorMonthID,'rich-calendar-editor-btn-selected');},scrollEditorYear:function(value)
{var element=$(this.DATE_EDITOR_LAYOUT_ID+'TR');if(this.dateEditorYearID)
{Element.removeClassName(this.dateEditorYearID,'rich-calendar-editor-btn-selected');this.dateEditorYearID='';}
if(!value)
{if(this.dateEditorMonth!=this.getCurrentMonth())
{this.dateEditorMonth=this.getCurrentMonth();Element.removeClassName(this.dateEditorMonthID,'rich-calendar-editor-btn-selected');this.dateEditorMonthID=this.DATE_EDITOR_LAYOUT_ID+'M'+this.dateEditorMonth;Element.addClassName(this.dateEditorMonthID,'rich-calendar-editor-btn-selected');}}
if(element)
{var div;var year=this.dateEditorStartYear=this.dateEditorStartYear+value*10;for(var i=0;i<5;i++)
{element=element.nextSibling;div=element.firstChild.nextSibling.nextSibling;div.firstChild.innerHTML=year;if(year==this.dateEditorYear)
{Element.addClassName(div.firstChild,'rich-calendar-editor-btn-selected');this.dateEditorYearID=div.firstChild.id;}
div=div.nextSibling;div.firstChild.innerHTML=year+5;if(year+5==this.dateEditorYear)
{Element.addClassName(div.firstChild,'rich-calendar-editor-btn-selected');this.dateEditorYearID=div.firstChild.id;}
year++;}}},updateDateEditor:function()
{this.dateEditorYear=this.getCurrentYear();this.dateEditorStartYear=this.getCurrentYear()-4;this.scrollEditorYear(0);},updateTimeEditor:function()
{var th=$(this.id+'TimeHours');var ts=$(this.id+'TimeSign');var tm=$(this.id+'TimeMinutes');var h=this.selectedDate.getHours();var m=this.selectedDate.getMinutes();if(this.timeType==2)
{var a=(h<12?'AM':'PM');ts.value=a;h=(h==0?'12':(h>12?h-12:h));}
th.value=(this.timeHoursDigits==2&&h<10?'0'+h:h);tm.value=(m<10?'0'+m:m);},createEditor:function()
{var element=$(this.id);var htmlBegin='<div id="'+this.EDITOR_SHADOW_ID+'" class="rich-calendar-editor-shadow" style="position:absolute; display:none;"></div><table border="0" cellpadding="0" cellspacing="0" id="'+this.EDITOR_ID+'" style="position:absolute; display:none;" onclick="$(\''+this.id+'\').component.skipEventOnCollapse=true;"><tbody><tr><td class="rich-calendar-editor-container" align="center"><div style="position:relative; width:100%">';var htmlContent='<div id="'+this.EDITOR_LAYOUT_SHADOW_ID+'" class="rich-calendar-editor-layout-shadow"></div>';var htmlEnd='</div></td></tr></tbody></table>';new Insertion.After(element,htmlBegin+htmlContent+htmlEnd);var editor_shadow=$(this.EDITOR_SHADOW_ID);var editor=$(this.EDITOR_ID);var zindex=element.getStyle('z-index');editor_shadow.style.zIndex=zindex;editor.style.zIndex=parseInt(zindex,10)+1;this.isEditorCreated=true;return editor;},createTimeEditorLayout:function(editor)
{Element.insert(this.EDITOR_LAYOUT_SHADOW_ID,{after:this.evaluateMarkup(this.calendarContext.timeEditorLayout,this.calendarContext)});var th=$(this.id+'TimeHours');var ts;var tm=$(this.id+'TimeMinutes');if(this.timeType==1)
{sbjQuery(th).SpinButton({digits:this.timeHoursDigits,min:0,max:23});}
else
{sbjQuery(th).SpinButton({digits:this.timeHoursDigits,min:1,max:12});ts=$(this.id+'TimeSign');sbjQuery(ts).SpinButton({});}
sbjQuery(tm).SpinButton({digits:2,min:0,max:59});this.correctEditorButtons(editor,this.TIME_EDITOR_BUTTON_OK,this.TIME_EDITOR_BUTTON_CANCEL);this.isTimeEditorLayoutCreated=true;},correctEditorButtons:function(editor,buttonID1,buttonID2)
{var button1=$(buttonID1);var button2=$(buttonID2);editor.style.visibility="hidden";editor.style.display="";var width1=Richfaces.Calendar.getOffsetDimensions(button1.firstChild).width;var width2=Richfaces.Calendar.getOffsetDimensions(button2.firstChild).width;editor.style.display="none";editor.style.visibility="";var styleWidth=Richfaces.getComputedStyleSize(button1,'width')
if(width1>styleWidth||width2>styleWidth)
{button1.style.width=button2.style.width=(width1>width2?width1:width2)+"px";}},createDECell:function(id,value,buttonType,param,className)
{if(buttonType==0)
{return'<div id="'+id+'" class="rich-calendar-editor-btn'+(className?' '+className:'')+'" onmouseover="this.className=\'rich-calendar-editor-btn rich-calendar-editor-tool-over\';" onmouseout="this.className=\'rich-calendar-editor-btn\';" onmousedown="this.className=\'rich-calendar-editor-btn rich-calendar-editor-tool-press\';" onmouseup="this.className=\'rich-calendar-editor-btn rich-calendar-editor-tool-over\';" onclick="$(\''+this.id+'\').component.scrollEditorYear('+param+');">'+value+'</div>';}
else
{var onclick=(buttonType==1?'$(\''+this.id+'\').component.dateEditorSelectMonth('+param+');':'$(\''+this.id+'\').component.dateEditorSelectYear('+param+');');return'<div id="'+id+'" class="rich-calendar-editor-btn'+(className?' '+className:'')+'" onmouseover="Element.addClassName(this, \'rich-calendar-editor-btn-over\');" onmouseout="Element.removeClassName(this,\'rich-calendar-editor-btn-over\');" onclick="'+onclick+'">'+value+'</div>';}},createDateEditorLayout:function(editor)
{var htmlBegin='<table id="'+this.DATE_EDITOR_LAYOUT_ID+'" class="rich-calendar-date-layout" border="0" cellpadding="0" cellspacing="0"><tbody><tr id="'+this.DATE_EDITOR_LAYOUT_ID+'TR">';var htmlEnd='</tr></tbody></table>';var month=0;this.dateEditorYear=this.getCurrentYear();var year=this.dateEditorStartYear=this.dateEditorYear-4;var htmlContent='<td align="center">'+this.createDECell(this.DATE_EDITOR_LAYOUT_ID+'M'+month,this.params.monthLabelsShort[month],1,month)+'</td>'
+'<td align="center" class="rich-calendar-date-layout-split">'+this.createDECell(this.DATE_EDITOR_LAYOUT_ID+'M'+(month+6),this.params.monthLabelsShort[month+6],1,month+6)+'</td>'
+'<td align="center">'+this.createDECell('','&lt;',0,-1)+'</td>'
+'<td align="center">'+this.createDECell('','&gt;',0,1)+'</td>';month++;for(var i=0;i<5;i++)
{htmlContent+='</tr><tr><td align="center">'+this.createDECell(this.DATE_EDITOR_LAYOUT_ID+'M'+month,this.params.monthLabelsShort[month],1,month)+'</td>'
+'<td align="center" class="rich-calendar-date-layout-split">'+this.createDECell(this.DATE_EDITOR_LAYOUT_ID+'M'+(month+6),this.params.monthLabelsShort[month+6],1,month+6)+'</td>'
+'<td align="center">'+this.createDECell(this.DATE_EDITOR_LAYOUT_ID+'Y'+i,year,2,i,(i==4?'rich-calendar-editor-btn-selected':''))+'</td>'
+'<td align="center">'+this.createDECell(this.DATE_EDITOR_LAYOUT_ID+'Y'+(i+5),year+5,2,i+5)+'</td>';month++;year++;}
this.dateEditorYearID=this.DATE_EDITOR_LAYOUT_ID+'Y4';this.dateEditorMonth=this.getCurrentMonth();this.dateEditorMonthID=this.DATE_EDITOR_LAYOUT_ID+'M'+this.dateEditorMonth;htmlContent+='</tr><tr><td colspan="2" class="rich-calendar-date-layout-ok">'+'<div id="'+this.DATE_EDITOR_BUTTON_OK+'" class="rich-calendar-time-btn" style="float:right;" onmousedown="Element.addClassName(this, \'rich-calendar-time-btn-press\');" onmouseout="Element.removeClassName(this, \'rich-calendar-time-btn-press\');" onmouseup="Element.removeClassName(this, \'rich-calendar-time-btn-press\');" onclick="$(\''+this.id+'\').component.hideDateEditor(true);"><span>'+this.params.labels.ok+'</span></div>'+'</td><td colspan="2" class="rich-calendar-date-layout-cancel">'+'<div id="'+this.DATE_EDITOR_BUTTON_CANCEL+'" class="rich-calendar-time-btn" style="float:left;" onmousedown="Element.addClassName(this, \'rich-calendar-time-btn-press\');" onmouseout="Element.removeClassName(this, \'rich-calendar-time-btn-press\');" onmouseup="Element.removeClassName(this, \'rich-calendar-time-btn-press\');" onclick="$(\''+this.id+'\').component.hideDateEditor(false);"><span>'+this.params.labels.cancel+'</span></div>'+'</td>';Element.insert(this.EDITOR_LAYOUT_SHADOW_ID,{after:htmlBegin+htmlContent+htmlEnd});Element.addClassName(this.dateEditorMonthID,'rich-calendar-editor-btn-selected');this.correctEditorButtons(editor,this.DATE_EDITOR_BUTTON_OK,this.DATE_EDITOR_BUTTON_CANCEL);this.isDateEditorLayoutCreated=true;},createSpinnerTable:function(id){return'<table cellspacing="0" cellpadding="0" border="0"><tbody><tr>'+'<td class="rich-calendar-spinner-input-container">'+'<input id="'+id+'" name="'+id+'" class="rich-calendar-spinner-input" type="text" />'+'</td>'+'<td class="rich-calendar-spinner-buttons">'+'<table border="0" cellspacing="0" cellpadding="0"><tbody>'+'<tr><td>'+'<div id="'+id+'BtnUp" class="rich-calendar-spinner-up"'+' onmousedown="this.className=\'rich-calendar-spinner-up rich-calendar-spinner-pressed\'"'+' onmouseup="this.className=\'rich-calendar-spinner-up\'"'+' onmouseout="this.className=\'rich-calendar-spinner-up\'"><span></span></div>'+'</td></tr>'+'<tr><td>'+'<div id="'+id+'BtnDown" class="rich-calendar-spinner-down"'+' onmousedown="this.className=\'rich-calendar-spinner-down rich-calendar-spinner-pressed\'"'+' onmouseup="this.className=\'rich-calendar-spinner-down\'"'+' onmouseout="this.className=\'rich-calendar-spinner-down\'"><span></span></div>'+'</td></tr>'+'</tbody></table>'+'</td>'+'</tr></tbody></table>';},setTimeProperties:function(){this.timeType=0;var dateTimePattern=this.params.datePattern;var pattern=[];var re=/(\\\\|\\[yMdaHhm])|(y+|M+|d+|a|H{1,2}|h{1,2}|m{2})/g;var r;while(r=re.exec(dateTimePattern))
if(!r[1])
pattern.push({str:r[0],marker:r[2],idx:r.index});var datePattern="";var timePattern="";var digits,h,hh,m,a;var id=this.id;var getString=function(p){return(p.length==0?obj.marker:dateTimePattern.substring(pattern[i-1].str.length+pattern[i-1].idx,obj.idx+obj.str.length));};for(var i=0;i<pattern.length;i++)
{var obj=pattern[i];var ch=obj.marker.charAt(0);if(ch=='y'||ch=='M'||ch=='d')datePattern+=getString(datePattern);else if(ch=='a')
{a=true;timePattern+=getString(timePattern);}
else if(ch=='H')
{h=true;digits=obj.marker.length;timePattern+=getString(timePattern);}
else if(ch=='h')
{hh=true;digits=obj.marker.length;timePattern+=getString(timePattern);}
else if(ch=='m')
{m=true;timePattern+=getString(timePattern);}}
this.datePattern=datePattern;this.timePattern=timePattern;var calendar=this;this.timePatternHtml=timePattern.replace(/(\\\\|\\[yMdaHhm])|(H{1,2}|h{1,2}|m{2}|a)/g,function($1,$2,$3){if($2)return $2.charAt(1);switch($3){case'a':return'</td><td>'+calendar.createSpinnerTable(id+'TimeSign')+'</td><td>';case'H':case'HH':case'h':case'hh':return'</td><td>'+calendar.createSpinnerTable(id+'TimeHours')+'</td><td>';case'mm':return'</td><td>'+calendar.createSpinnerTable(id+'TimeMinutes')+'</td><td>';}});this.timePatternHtml='<table border="0" cellpadding="0"><tbody><tr><td>'+this.timePatternHtml+'</td></tr></tbody></table>';if(m&&h)
{this.timeType=1;}
else if(m&&hh&&a)
{this.timeType=2;}
this.timeHoursDigits=digits;},eventOnScroll:function(e){this.doCollapse();},doCollapse:function(){if(!this.params.popup||!this.isVisible)return;if(this.isEditorVisible)this.hideEditor();var element=$(this.id);if(this.invokeEvent("collapse",element))
{Richfaces.removeScrollEventHandlers(this.scrollElements,this.eventOnScroll);Event.stopObserving(window.document,"click",this.eventOnCollapse,false);var iframe=null;if(Richfaces.browser.isIE6)iframe=$(this.IFRAME_ID);if(iframe)Element.hide(iframe);Element.hide(element);this.isVisible=false;}},collapse:function(){this.doCollapse();},doExpand:function(e){if(!this.isRendered){this.isRendered=true;this.render();}
this.skipEventOnCollapse=false;if(e&&e.type=='click')this.skipEventOnCollapse=true;if(!this.params.popup||this.isVisible)return;var element=$(this.id);if(this.invokeEvent("expand",element,e))
{var iframe=null;if(Richfaces.browser.isIE6)iframe=$(this.IFRAME_ID);var base=$(this.POPUP_ID)
var baseInput=base.firstChild;var baseButton=baseInput.nextSibling;if(baseInput&&baseInput.value!=undefined)
{this.selectDate(baseInput.value,false,{event:e,element:element});}
var offsetBase=Position.cumulativeOffset(baseButton);if(this.params.showInput)
{var offsetBase1=Position.cumulativeOffset(baseInput);offsetBase=[offsetBase[0]<offsetBase1[0]?offsetBase[0]:offsetBase1[0],offsetBase[1]<offsetBase1[1]?offsetBase[1]:offsetBase1[1]];var offsetDimInput=Richfaces.Calendar.getOffsetDimensions(baseInput);}
var offsetDimBase=Richfaces.Calendar.getOffsetDimensions(base);var offsetDimButton=Richfaces.Calendar.getOffsetDimensions(baseButton);var offsetTemp=(window.opera?[0,0]:Position.realOffset(baseButton));var o={left:offsetBase[0]-offsetTemp[0],top:offsetBase[1]-offsetTemp[1],width:offsetDimBase.width,height:(offsetDimInput&&offsetDimInput.height>offsetDimButton.height?offsetDimInput.height:offsetDimButton.height)};Richfaces.Calendar.setElementPosition(element,o,this.params.jointPoint,this.params.direction,this.popupOffset);if(iframe)
{iframe.style.left=element.style.left;iframe.style.top=element.style.top;var edim=Richfaces.Calendar.getOffsetDimensions(element);iframe.style.width=edim.width+'px';iframe.style.height=edim.height+'px';Element.show(iframe);}
Element.show(element);this.isVisible=true;Event.observe(window.document,"click",this.eventOnCollapse,false);Richfaces.removeScrollEventHandlers(this.scrollElements,this.eventOnScroll);this.scrollElements=Richfaces.setupScrollEventHandlers(element,this.eventOnScroll);}},expand:function(e){this.doExpand(e);},doSwitch:function(e){this.isVisible?this.doCollapse():this.doExpand(e);},switchState:function(e){this.doSwitch(e);},eventOnCollapse:function(e){if(this.skipEventOnCollapse)
{this.skipEventOnCollapse=false;return true;}
if(Event.element(e).id==this.POPUP_BUTTON_ID||(!this.params.enableManualInput&&Event.element(e).id==this.INPUT_DATE_ID))return true;if(Position.within($(this.id),Event.pointerX(e),Event.pointerY(e)))return true;this.doCollapse();return true;},setInputField:function(dateStr,event)
{var field=$(this.INPUT_DATE_ID);if(field.value!=dateStr)
{field.value=dateStr;this.invokeEvent("changed",field,event,this.selectedDate);}},getCurrentDate:function(){return this.currentDate;},getSelectedDate:function(){if(!this.selectedDate)return null;else return this.selectedDate;},getSelectedDateString:function(pattern){if(!this.selectedDate)return"";if(!pattern)pattern=this.params.datePattern;return Richfaces.Calendar.formatDate(this.selectedDate,pattern,this.params.monthLabels,this.params.monthLabelsShort);},getPrevYear:function(){var value=this.currentDate.getFullYear()-1;if(value<0)value=0;return value;},getPrevMonth:function(asMonthLabel){var value=this.currentDate.getMonth()-1;if(value<0)value=11;if(asMonthLabel)
{return this.params.monthLabels[value];}else return value;},getCurrentYear:function(){return this.currentDate.getFullYear();},getCurrentMonth:function(asMonthLabel){var value=this.currentDate.getMonth();if(asMonthLabel)
{return this.params.monthLabels[value];}else return value;},getNextYear:function(){return this.currentDate.getFullYear()+1;},getNextMonth:function(asMonthLabel){var value=this.currentDate.getMonth()+1;if(value>11)value=0;if(asMonthLabel)
{return this.params.monthLabels[value];}else return value;},isWeekend:function(weekday){return(weekday==this.firstWeekendDayNumber||weekday==this.secondWeekendDayNumber);},prepareEvents:function(){this.eventOnCollapse=this.eventOnCollapse.bindAsEventListener(this);this.eventOnScroll=this.eventOnScroll.bindAsEventListener(this);},invokeEvent:function(eventName,element,event,date){var eventFunction=this.params['on'+eventName];var result;if(eventFunction)
{var eventObj;if(event)
{eventObj=event;}
else if(document.createEventObject)
{eventObj=document.createEventObject();}
else if(document.createEvent)
{eventObj=document.createEvent('Events');eventObj.initEvent(eventName,true,false);}
eventObj.rich={component:this};eventObj.rich.date=date;try
{result=eventFunction.call(element,eventObj);}
catch(e){LOG.warn("Exception: "+e.Message+"\n[on"+eventName+"]");}}
if(result!=false)result=true;return result;},setupTimeForDate:function(date){if(this.selectedDate&&(!this.params.resetTimeOnDateSelect||(this.selectedDate.getFullYear()==date.getFullYear()&&this.selectedDate.getMonth()==date.getMonth()&&this.selectedDate.getDate()==date.getDate())))
{date.setHours(this.selectedDate.getHours());date.setMinutes(this.selectedDate.getMinutes());}else
{date.setHours(this.params.defaultTime.hours);date.setMinutes(this.params.defaultTime.minutes);}},eventCellOnClick:function(e,obj){var daydata=this.days[parseInt(obj.id.substr(this.DATE_ELEMENT_ID.length),10)];if(daydata.enabled&&daydata._month==0)
{var date=new Date(this.currentDate);date.setDate(daydata.day);if(this.timeType)
{this.setupTimeForDate(date);}
if(this.selectDate(date,true,{event:e,element:obj})&&!this.showApplyButton)
{this.doCollapse();}}else if(daydata._month!=0){if(this.params.boundaryDatesMode=="scroll")
if(daydata._month==-1)this.prevMonth();else this.nextMonth();else if(this.params.boundaryDatesMode=="select")
{var date=new Date(daydata.date);if(this.timeType)
{this.setupTimeForDate(date);}
if(this.selectDate(date,false,{event:e,element:obj})&&!this.showApplyButton)
{this.doCollapse();}}}},eventCellOnMouseOver:function(e,obj){var daydata=this.days[parseInt(obj.id.substr(this.DATE_ELEMENT_ID.length),10)];if(this.invokeEvent("datemouseover",obj,e,daydata.date)&&daydata.enabled)
{if(daydata._month==0&&obj.id!=this.selectedDateCellId&&obj.id!=this.todayCellId)Element.addClassName(obj,'rich-calendar-hover');}},eventCellOnMouseOut:function(e,obj){var daydata=this.days[parseInt(obj.id.substr(this.DATE_ELEMENT_ID.length),10)];if(this.invokeEvent("datemouseout",obj,e,daydata.date)&&daydata.enabled)
{if(daydata._month==0&&obj.id!=this.selectedDateCellId&&obj.id!=this.todayCellId)Element.removeClassName(obj,'rich-calendar-hover');}},load:function(daysData,isAjaxMode){if(daysData){this.daysData=this.indexData(daysData,isAjaxMode);}else{this.daysData=null;}
this.isRendered=false;if(this.isVisible){this.render();};if(typeof this.afterLoad=='function')
{this.afterLoad();this.afterLoad=null;}},indexData:function(daysData,isAjaxMode){var dateYear=daysData.startDate.getFullYear();var dateMonth=daysData.startDate.getMonth();daysData.index=[];daysData.index[dateYear+'-'+dateMonth]=0;if(isAjaxMode)
{this.currentDate=daysData.startDate;this.currentDate.setDate(1);return daysData;}
var idx=daysInMonthByDate(daysData.startDate)-daysData.startDate.getDate()+1;while(daysData.days[idx])
{if(dateMonth==11){dateYear++;dateMonth=0;}else dateMonth++;daysData.index[dateYear+'-'+dateMonth]=idx;idx+=(32-new Date(dateYear,dateMonth,32).getDate());}
return daysData;},getCellBackgroundColor:function(element)
{var result;if(Richfaces.browser.isSafari&&this.params.popup&&!this.isVisible)
{var els=$(this.id).style;var originalVisibility=els.visibility;var originalDisplay=els.display;els.visibility='hidden';els.display='';result=Element.getStyle(element,'background-color').parseColor();els.display=originalDisplay;els.visibility=originalVisibility;}else
{result=Element.getStyle(element,'background-color').parseColor();}
return result;},clearEffect:function(element_id,effect,className,className1)
{if(effect)
{effect.cancel();effect=null;}
if(element_id)
{var e=$(element_id);e.style['backgroundColor']='';if(className)Element.removeClassName(e,className);if(className1)Element.addClassName(e,className1);}
return null;},render:function(){this.isRendered=true;this.todayDate=new Date();var currentYear=this.getCurrentYear();var currentMonth=this.getCurrentMonth();var todayflag=(currentYear==this.todayDate.getFullYear()&&currentMonth==this.todayDate.getMonth());var todaydate=this.todayDate.getDate();var selectedflag=this.selectedDate&&(currentYear==this.selectedDate.getFullYear()&&currentMonth==this.selectedDate.getMonth())
var selecteddate=this.selectedDate&&this.selectedDate.getDate();var wd=getDay(this.currentDate,this.params.firstWeekDay);var currentMonthDays=daysInMonthByDate(this.currentDate);var previousMonthDays=daysInMonth(currentYear,currentMonth-1);var p=0;var month=-1;this.days=[];var dayCounter=previousMonthDays-wd+1;if(wd>0)while(dayCounter<=previousMonthDays)
{this.days.push({day:dayCounter,isWeekend:this.isWeekend(p),_month:month});dayCounter++;p++;}
dayCounter=1;month=0;this.firstDateIndex=p;if(this.daysData&&this.daysData.index[currentYear+'-'+currentMonth]!=undefined)
{var idx=this.daysData.index[currentYear+'-'+currentMonth];if(this.daysData.startDate.getFullYear()==currentYear&&this.daysData.startDate.getMonth()==currentMonth)
{var firstDay=firstDay=(this.daysData.days[idx].day?this.daysData.days[idx].day:this.daysData.startDate.getDate());while(dayCounter<firstDay)
{this.days.push({day:dayCounter,isWeekend:this.isWeekend(p%7),_month:month});dayCounter++;p++;}}
var len=this.daysData.days.length;var obj;var flag;while(idx<len&&dayCounter<=currentMonthDays)
{flag=this.isWeekend(p%7);obj=this.daysData.days[idx];obj.day=dayCounter;obj.isWeekend=flag;obj._month=month;this.days.push(obj);idx++;dayCounter++;p++;}}
while(p<42)
{if(dayCounter>currentMonthDays){dayCounter=1;month=1;}
this.days.push({day:dayCounter,isWeekend:this.isWeekend(p%7),_month:month});dayCounter++;p++;}
this.renderHF();p=0;var element;var dataobj;var wn;if(this.params.showWeeksBar)wn=weekNumber(currentYear,currentMonth,this.params.minDaysInFirstWeek,this.params.firstWeekDay);this.selectedDayElement=null;var weekflag=true;var e;var boundaryDatesModeFlag=(this.params.boundaryDatesMode=="scroll"||this.params.boundaryDatesMode=="select");this.todayCellId=this.clearEffect(this.todayCellId,this.highlightEffect);this.selectedDateCellId=this.clearEffect(this.selectedDateCellId,this.highlightEffect2);var obj=$(this.params.weekNumberBarId+"1");for(var k=1;k<7;k++)
{dataobj=this.days[p];element=obj.firstChild;var weeknumber;if(this.params.showWeeksBar)
{if(weekflag&&currentMonth==11&&(k==5||k==6)&&(dataobj._month==1||(currentMonthDays-dataobj.day+1)<this.params.minDaysInFirstWeek))
{wn=1;weekflag=false;}
weeknumber=wn;element.innerHTML=this.evaluateMarkup(this.params.weekNumberMarkup,{weekNumber:wn++,elementId:element.id,component:this});if(k==1&&wn>52)wn=1;element=element.nextSibling;}
var weekdaycounter=this.params.firstWeekDay;var contentElement=null;while(element)
{dataobj.elementId=element.id;dataobj.date=new Date(currentYear,currentMonth+dataobj._month,dataobj.day);dataobj.weekNumber=weeknumber;dataobj.component=this;dataobj.isCurrentMonth=(dataobj._month==0);dataobj.weekDayNumber=weekdaycounter;if(dataobj.enabled!=false)dataobj.enabled=this.params.isDayEnabled(dataobj);if(!dataobj.styleClass)dataobj.customStyleClass=this.params.dayStyleClass(dataobj);else
{var styleclass=this.params.dayStyleClass(dataobj);dataobj.customStyleClass=dataobj.styleClass;if(styleclass)dataobj.customStyleClass+=" "+styleclass;}
contentElement=(this.customDayListMarkup?element.firstChild:element);contentElement.innerHTML=this.evaluateMarkup(this.params.dayListMarkup,dataobj);if(weekdaycounter==6)weekdaycounter=0;else weekdaycounter++;var classNames=this.dayCellClassName[p];if(dataobj._month!=0)
{classNames+=' rich-calendar-boundary-dates';if(!this.params.disabled&&!this.params.readonly&&boundaryDatesModeFlag)
{classNames+=' rich-calendar-btn';}}
else
{if(todayflag&&dataobj.day==todaydate)
{this.todayCellId=element.id;this.todayCellColor=this.getCellBackgroundColor(element);classNames+=" rich-calendar-today";}
if(selectedflag&&dataobj.day==selecteddate)
{this.selectedDateCellId=element.id;this.selectedDateCellColor=this.getCellBackgroundColor(element);classNames+=" rich-calendar-select";}
else if(!this.params.disabled&&!this.params.readonly&&dataobj.enabled)classNames+=' rich-calendar-btn';if(dataobj.customStyleClass)
{classNames+=' '+dataobj.customStyleClass;}}
element.className=classNames;p++;dataobj=this.days[p];element=element.nextSibling;}
obj=obj.nextSibling;}},renderHF:function()
{if(this.params.showHeader)this.renderMarkup(this.params.headerMarkup,this.id+"Header",this.calendarContext);if(this.params.showFooter)this.renderMarkup(this.params.footerMarkup,this.id+"Footer",this.calendarContext);this.renderHeaderOptional();this.renderFooterOptional();},renderHeaderOptional:function()
{this.renderMarkup(this.params.optionalHeaderMarkup,this.id+"HeaderOptional",this.calendarContext);},renderFooterOptional:function()
{this.renderMarkup(this.params.optionalFooterMarkup,this.id+"FooterOptional",this.calendarContext);},renderMarkup:function(markup,elementId,context)
{if(!markup)return;var e=$(elementId);if(!e)return;e.innerHTML=markup.invoke('getContent',context).join('');},evaluateMarkup:function(markup,context)
{if(!markup)return"";return markup.invoke('getContent',context).join('');},onUpdate:function()
{var formattedDate=Richfaces.Calendar.formatDate(this.getCurrentDate(),"MM/yyyy");$(this.id+'InputCurrentDate').value=formattedDate;if(this.submitFunction)
this.submitFunction(formattedDate);else
this.render();},nextMonth:function(){this.changeCurrentDateOffset(0,1);},prevMonth:function(){this.changeCurrentDateOffset(0,-1);},nextYear:function(){this.changeCurrentDateOffset(1,0);},prevYear:function(){this.changeCurrentDateOffset(-1,0);},changeCurrentDate:function(year,month,noUpdate){if(this.getCurrentMonth()!=month||this.getCurrentYear()!=year)
{var date=new Date(year,month,1);if(this.invokeEvent("currentdateselect",$(this.id),null,date))
{this.currentDate=date;if(noUpdate)this.render();else this.onUpdate();this.invokeEvent("currentdateselected",$(this.id),null,date);return true;}}
return false;},changeCurrentDateOffset:function(yearOffset,monthOffset){var date=new Date(this.currentDate.getFullYear()+yearOffset,this.currentDate.getMonth()+monthOffset,1);if(this.invokeEvent("currentdateselect",$(this.id),null,date))
{this.currentDate=date;this.onUpdate();this.invokeEvent("currentdateselected",$(this.id),null,date);}},today:function(noUpdate,noHighlight){var now=new Date();var nowyear=now.getFullYear();var nowmonth=now.getMonth();var nowdate=now.getDate();var updateflag=false;if(nowdate!=this.todayDate.getDate()){updateflag=true;this.todayDate=now;}
if(nowyear!=this.currentDate.getFullYear()||nowmonth!=this.currentDate.getMonth())
{updateflag=true;this.currentDate=new Date(nowyear,nowmonth,1);}
if(this.todayControlMode=='select')
{noHighlight=true;}
if(updateflag)
{if(noUpdate)this.render();else this.onUpdate();}
else
{if(this.isVisible&&this.todayCellId&&!noHighlight)
{this.clearEffect(this.todayCellId,this.highlightEffect);if(this.todayCellColor!="transparent")
{this.highlightEffect=new Effect.Highlight($(this.todayCellId),{startcolor:this.todayCellColor,duration:0.3,transition:Effect.Transitions.sinoidal,afterFinish:this.onHighlightFinish});}}}
if(this.todayControlMode=='select'&&!this.params.disabled&&!this.params.readonly)
if(updateflag&&!noUpdate&&this.submitFunction)
{this.afterLoad=this.selectToday;}
else this.selectToday();},selectToday:function()
{if(this.todayCellId)
{var daydata=this.days[parseInt($(this.todayCellId).id.substr(this.DATE_ELEMENT_ID.length),10)];var today=new Date();var date=new Date(today.getFullYear(),today.getMonth(),today.getDate());if(this.timeType)
{this.setupTimeForDate(date);}
if(daydata.enabled&&this.selectDate(date,true)&&!this.showApplyButton)
{this.doCollapse();}}},onHighlightFinish:function(object)
{object.element.style['backgroundColor']='';},selectDate:function(date,noUpdate,eventData){if(!eventData)
{eventData={event:null,element:null};}
var oldSelectedDate=this.selectedDate;var newSelectedDate;if(date)
{if(typeof date=='string')
{date=Richfaces.Calendar.parseDate(date,this.params.datePattern,this.params.monthLabels,this.params.monthLabelsShort);}
newSelectedDate=date;}
else
{newSelectedDate=null;}
var flag=true;var isDateChange=false;if((oldSelectedDate-newSelectedDate)&&(oldSelectedDate!=null||newSelectedDate!=null))
{isDateChange=true;flag=this.invokeEvent("dateselect",eventData.element,eventData.event,date);}
if(flag)
{if(newSelectedDate!=null)
{if(newSelectedDate.getMonth()==this.currentDate.getMonth()&&newSelectedDate.getFullYear()==this.currentDate.getFullYear())
{this.selectedDate=newSelectedDate;if(!oldSelectedDate||(oldSelectedDate-this.selectedDate))
{var e=$(this.DATE_ELEMENT_ID+(this.firstDateIndex+this.selectedDate.getDate()-1));this.clearEffect(this.selectedDateCellId,this.highlightEffect2,"rich-calendar-select",(this.params.disabled||this.params.readonly?null:"rich-calendar-btn"));this.selectedDateCellId=e.id;this.selectedDateCellColor=this.getCellBackgroundColor(e);Element.removeClassName(e,"rich-calendar-btn");Element.removeClassName(e,"rich-calendar-hover");Element.addClassName(e,"rich-calendar-select");this.renderHF();}
else if(this.timeType!=0)this.renderHF();}
else
{this.selectedDate=newSelectedDate;if(this.changeCurrentDate(newSelectedDate.getFullYear(),newSelectedDate.getMonth(),noUpdate))
{}else{this.selectedDate=oldSelectedDate;isDateChange=false;}}}
else
{this.selectedDate=null;this.clearEffect(this.selectedDateCellId,this.highlightEffect2,"rich-calendar-select",(this.params.disabled||this.params.readonly?null:"rich-calendar-btn"));if(this.selectedDateCellId)
{this.selectedDateCellId=null;this.renderHF();}
var date=new Date();if(this.currentDate.getMonth()==date.getMonth()&&this.currentDate.getFullYear()==date.getFullYear())
{this.renderHF();}
var todayControlMode=this.todayControlMode;this.todayControlMode='';this.today(noUpdate,true);this.todayControlMode=todayControlMode;}
if(isDateChange)
{this.invokeEvent("dateselected",eventData.element,eventData.event,this.selectedDate);if(!this.showApplyButton)
{this.setInputField(this.selectedDate!=null?this.getSelectedDateString(this.params.datePattern):"",eventData.event);}}}
return isDateChange;},resetSelectedDate:function()
{if(!this.selectedDate)return;if(this.invokeEvent("dateselect",null,null,null))
{this.selectedDate=null;this.invokeEvent("dateselected",null,null,null);this.selectedDateCellId=this.clearEffect(this.selectedDateCellId,this.highlightEffect2,"rich-calendar-select",(this.params.disabled||this.params.readonly?null:"rich-calendar-btn"));this.renderHF();if(!this.showApplyButton)
{this.setInputField("",null);this.doCollapse();}}},showSelectedDate:function()
{if(!this.selectedDate)return;if(this.currentDate.getMonth()!=this.selectedDate.getMonth()||this.currentDate.getFullYear()!=this.selectedDate.getFullYear())
{this.currentDate=new Date(this.selectedDate);this.currentDate.setDate(1);this.onUpdate();}
else
{if(this.isVisible&&this.selectedDateCellId)
{this.clearEffect(this.selectedDateCellId,this.highlightEffect2);if(this.selectedDateCellColor!="transparent")
{this.highlightEffect2=new Effect.Highlight($(this.selectedDateCellId),{startcolor:this.selectedDateCellColor,duration:0.3,transition:Effect.Transitions.sinoidal,afterFinish:this.onHighlightFinish});}}}},close:function(updateDate)
{if(updateDate)
{this.setInputField(this.getSelectedDateString(this.params.datePattern),null);}
this.doCollapse();},setEditorPosition:function(element,editor,shadow)
{element;var dim=Richfaces.Calendar.getOffsetDimensions(element);editor.style.width=shadow.style.width=dim.width+'px';editor.style.height=shadow.style.height=dim.height+'px';Richfaces.Calendar.clonePosition([editor,shadow],element);},showTimeEditor:function()
{var editor;if(this.timeType==0)return;if(!this.isEditorCreated)editor=this.createEditor();else editor=$(this.EDITOR_ID);if(!this.isTimeEditorLayoutCreated)this.createTimeEditorLayout(editor);$(this.TIME_EDITOR_LAYOUT_ID).show();var editor_shadow=$(this.EDITOR_SHADOW_ID);this.setEditorPosition($(this.id),editor,editor_shadow);this.updateTimeEditor();editor_shadow.show();editor.show();Element.clonePosition(this.EDITOR_LAYOUT_SHADOW_ID,this.TIME_EDITOR_LAYOUT_ID,{offsetLeft:3,offsetTop:3});this.isEditorVisible=true;},hideEditor:function()
{if(this.isTimeEditorLayoutCreated)$(this.TIME_EDITOR_LAYOUT_ID).hide();if(this.isDateEditorLayoutCreated)$(this.DATE_EDITOR_LAYOUT_ID).hide();$(this.EDITOR_ID).hide();$(this.EDITOR_SHADOW_ID).hide();this.isEditorVisible=false;},hideTimeEditor:function(updateTime)
{this.hideEditor();if(updateTime&&this.selectedDate)
{var m=parseInt($(this.id+'TimeMinutes').value,10);var h=parseInt($(this.id+'TimeHours').value,10);if(this.timeType==2)
{if($(this.id+'TimeSign').value.toLowerCase()=="am")
{if(h==12)h=0;}
else
{if(h!=12)h+=12;}}
var date=new Date(this.selectedDate.getFullYear(),this.selectedDate.getMonth(),this.selectedDate.getDate(),h,m,0);if(date-this.selectedDate&&this.invokeEvent("timeselect",null,null,date))
{this.selectedDate=date;this.renderHF();if(!this.params.popup||!this.showApplyButton)this.setInputField(this.getSelectedDateString(this.params.datePattern),null);this.invokeEvent("timeselected",null,null,this.selectedDate);}}
if(this.params.popup&&!this.showApplyButton)this.close(false);},showDateEditor:function()
{var editor;if(!this.isEditorCreated)editor=this.createEditor();else editor=$(this.EDITOR_ID);if(!this.isDateEditorLayoutCreated)this.createDateEditorLayout(editor);else this.updateDateEditor();$(this.DATE_EDITOR_LAYOUT_ID).show();var editor_shadow=$(this.EDITOR_SHADOW_ID);this.setEditorPosition($(this.id),editor,editor_shadow);editor_shadow.show();editor.show();Element.clonePosition(this.EDITOR_LAYOUT_SHADOW_ID,this.DATE_EDITOR_LAYOUT_ID,{offsetLeft:3,offsetTop:3});this.isEditorVisible=true;},hideDateEditor:function(updateCurrentDate)
{this.hideEditor();if(updateCurrentDate)
{this.changeCurrentDate(this.dateEditorYear,this.dateEditorMonth);}}});CalendarView={};CalendarView.getControl=function(text,attributes,functionName,paramsStr){var attr=Object.extend({onclick:(functionName?"Richfaces.getComponent('calendar',this)."+functionName+"("+(paramsStr?paramsStr:"")+");":"")+"return true;"},attributes);return new E('div',attr,[new T(text)]);};CalendarView.getSelectedDateControl=function(calendar){if(!calendar.selectedDate||calendar.showApplyButton)return"";var text=Richfaces.Calendar.formatDate(calendar.selectedDate,(calendar.timeType?calendar.datePattern:calendar.params.datePattern),calendar.params.monthLabels,calendar.params.monthLabelsShort);var onclick="Richfaces.getComponent('calendar',this).showSelectedDate(); return true;"
var markup=(calendar.params.disabled?new E('div',{'class':'rich-calendar-tool-btn-disabled'},[new ET(text)]):new E('div',{'class':'rich-calendar-tool-btn','onclick':onclick},[new ET(text)]));return markup;};CalendarView.getTimeControl=function(calendar){if(!calendar.selectedDate||!calendar.timeType)return"";var text=Richfaces.Calendar.formatDate(calendar.selectedDate,calendar.timePattern,calendar.params.monthLabels,calendar.params.monthLabelsShort);var onmouseover="Element.removeClassName(this, 'rich-calendar-tool-btn-press');";var onmouseout="Element.addClassName(this, 'rich-calendar-tool-btn-press');";var onclick="Richfaces.getComponent('calendar',this).showTimeEditor();return true;";var markup=calendar.params.disabled||calendar.params.readonly?new E('div',{'class':'rich-calendar-tool-btn-disabled'},[new ET(text)]):new E('div',{'class':'rich-calendar-tool-btn rich-calendar-tool-btn-hover rich-calendar-tool-btn-press','onclick':onclick,'onmouseover':+onmouseover,'onmouseout':+onmouseout},[new ET(text)]);return markup;};CalendarView.toolButtonAttributes={className:"rich-calendar-tool-btn",onmouseover:"this.className='rich-calendar-tool-btn rich-calendar-tool-btn-hover'",onmouseout:"this.className='rich-calendar-tool-btn'",onmousedown:"this.className='rich-calendar-tool-btn rich-calendar-tool-btn-hover rich-calendar-tool-btn-press'",onmouseup:"this.className='rich-calendar-tool-btn rich-calendar-tool-btn-hover'"};CalendarView.nextYearControl=function(context){return(!context.calendar.params.disabled?CalendarView.getControl(">>",CalendarView.toolButtonAttributes,"nextYear"):"");};CalendarView.previousYearControl=function(context){return(!context.calendar.params.disabled?CalendarView.getControl("<<",CalendarView.toolButtonAttributes,"prevYear"):"");};CalendarView.nextMonthControl=function(context){return(!context.calendar.params.disabled?CalendarView.getControl(">",CalendarView.toolButtonAttributes,"nextMonth"):"");};CalendarView.previousMonthControl=function(context){return(!context.calendar.params.disabled?CalendarView.getControl("<",CalendarView.toolButtonAttributes,"prevMonth"):"");};CalendarView.currentMonthControl=function(context){var text=Richfaces.Calendar.formatDate(context.calendar.getCurrentDate(),"MMMM, yyyy",context.monthLabels,context.monthLabelsShort);var markup=context.calendar.params.disabled?new E('div',{className:"rich-calendar-tool-btn-disabled"},[new T(text)]):CalendarView.getControl(text,CalendarView.toolButtonAttributes,"showDateEditor");return markup;};CalendarView.todayControl=function(context){return(!context.calendar.params.disabled&&context.calendar.todayControlMode!='hidden'?CalendarView.getControl(context.controlLabels.today,CalendarView.toolButtonAttributes,"today"):"");};CalendarView.closeControl=function(context){return(context.calendar.params.popup?CalendarView.getControl(context.controlLabels.close,CalendarView.toolButtonAttributes,"close","false"):"");};CalendarView.applyControl=function(context){return(!context.calendar.params.disabled&&!context.calendar.params.readonly&&context.calendar.showApplyButton?CalendarView.getControl(context.controlLabels.apply,CalendarView.toolButtonAttributes,"close","true"):"");};CalendarView.cleanControl=function(context){return(!context.calendar.params.disabled&&!context.calendar.params.readonly&&context.calendar.selectedDate?CalendarView.getControl(context.controlLabels.clean,CalendarView.toolButtonAttributes,"resetSelectedDate"):"");};CalendarView.selectedDateControl=function(context){return CalendarView.getSelectedDateControl(context.calendar);};CalendarView.timeControl=function(context){return CalendarView.getTimeControl(context.calendar);};CalendarView.timeEditorFields=function(context){return context.calendar.timePatternHtml;};CalendarView.header=[new E('table',{'border':'0','cellpadding':'0','cellspacing':'0','width':'100%'},[new E('tbody',{},[new E('tr',{},[new E('td',{'class':'rich-calendar-tool'},[new ET(function(context){return Richfaces.evalMacro("previousYearControl",context)})]),new E('td',{'class':'rich-calendar-tool'},[new ET(function(context){return Richfaces.evalMacro("previousMonthControl",context)})]),new E('td',{'class':'rich-calendar-month'},[new ET(function(context){return Richfaces.evalMacro("currentMonthControl",context)})]),new E('td',{'class':'rich-calendar-tool'},[new ET(function(context){return Richfaces.evalMacro("nextMonthControl",context)})]),new E('td',{'class':'rich-calendar-tool'},[new ET(function(context){return Richfaces.evalMacro("nextYearControl",context)})]),new E('td',{'class':'rich-calendar-tool rich-calendar-tool-close','style':function(context){return(this.isEmpty?'display:none;':'');}},[new ET(function(context){return Richfaces.evalMacro("closeControl",context)})])])])])];CalendarView.footer=[new E('table',{'border':'0','cellpadding':'0','cellspacing':'0','width':'100%'},[new E('tbody',{},[new E('tr',{},[new E('td',{'class':'rich-calendar-toolfooter','style':function(context){return(this.isEmpty?'display:none;':'');}},[new ET(function(context){return Richfaces.evalMacro("selectedDateControl",context)})]),new E('td',{'class':'rich-calendar-toolfooter','style':function(context){return(this.isEmpty?'display:none;':'');}},[new ET(function(context){return Richfaces.evalMacro("cleanControl",context)})]),new E('td',{'class':'rich-calendar-toolfooter','style':function(context){return(this.isEmpty?'display:none;':'');}},[new ET(function(context){return Richfaces.evalMacro("timeControl",context)})]),new E('td',{'class':'rich-calendar-toolfooter','style':'background-image:none;','width':'100%'},[]),new E('td',{'class':'rich-calendar-toolfooter','style':function(context){return(this.isEmpty?'display:none;':'')+(context.calendar.params.disabled||context.calendar.params.readonly||!context.calendar.showApplyButton?'background-image:none;':'');}},[new ET(function(context){return Richfaces.evalMacro("todayControl",context)})]),new E('td',{'class':'rich-calendar-toolfooter','style':function(context){return(this.isEmpty?'display:none;':'')+'background-image:none;';}},[new ET(function(context){return Richfaces.evalMacro("applyControl",context)})])])])])];CalendarView.timeEditorLayout=[new E('table',{'id':function(context){return context.calendar.TIME_EDITOR_LAYOUT_ID},'border':'0','cellpadding':'0','cellspacing':'0','class':'rich-calendar-time-layout'},[new E('tbody',{},[new E('tr',{},[new E('td',{'class':'rich-calendar-time-layout-fields','colspan':'2','align':'center'},[new ET(function(context){return Richfaces.evalMacro("timeEditorFields",context)})])]),new E('tr',{},[new E('td',{'class':'rich-calendar-time-layout-ok'},[new E('div',{'id':function(context){return context.calendar.TIME_EDITOR_BUTTON_OK},'class':'rich-calendar-time-btn','style':'float:right;','onmousedown':"Element.addClassName(this, 'rich-calendar-time-btn-press');",'onmouseout':"Element.removeClassName(this, 'rich-calendar-time-btn-press');",'onmouseup':"Element.removeClassName(this, 'rich-calendar-time-btn-press');",'onclick':function(context){return"$('"+context.calendar.id+"').component.hideTimeEditor(true)";}},[new E('span',{},[new ET(function(context){return context.controlLabels.ok;})])])]),new E('td',{'class':'rich-calendar-time-layout-cancel'},[new E('div',{'id':function(context){return context.calendar.TIME_EDITOR_BUTTON_CANCEL},'class':'rich-calendar-time-btn','style':'float:left;','onmousedown':"Element.addClassName(this, 'rich-calendar-time-btn-press');",'onmouseout':"Element.removeClassName(this, 'rich-calendar-time-btn-press');",'onmouseup':"Element.removeClassName(this, 'rich-calendar-time-btn-press');",'onclick':function(context){return"$('"+context.calendar.id+"').component.hideTimeEditor(false)";}},[new E('span',{},[new ET(function(context){return context.controlLabels.cancel;})])])])])])])];CalendarView.dayList=[new ET(function(context){return context.day})];CalendarView.weekNumber=[new ET(function(context){return context.weekNumber})];CalendarView.weekDay=[new ET(function(context){return context.weekDayLabelShort})];CalendarContext=Class.create();Object.extend(CalendarContext.prototype,{initialize:function(calendar){this.calendar=calendar;this.monthLabels=calendar.params.monthLabels;this.monthLabelsShort=calendar.params.monthLabelsShort;this.weekDayLabels=calendar.params.weekDayLabels;this.weekDayLabelsShort=calendar.params.weekDayLabelsShort;this.controlLabels=calendar.params.labels;},nextYearControl:CalendarView.nextYearControl,previousYearControl:CalendarView.previousYearControl,nextMonthControl:CalendarView.nextMonthControl,previousMonthControl:CalendarView.previousMonthControl,currentMonthControl:CalendarView.currentMonthControl,selectedDateControl:CalendarView.selectedDateControl,cleanControl:CalendarView.cleanControl,timeControl:CalendarView.timeControl,todayControl:CalendarView.todayControl,closeControl:CalendarView.closeControl,applyControl:CalendarView.applyControl,timeEditorFields:CalendarView.timeEditorFields,timeEditorLayout:CalendarView.timeEditorLayout});if(!window.A4J){window.A4J={};}
if(!A4J.findForm){function _JSFFormSubmit(linkId,formName,target,parameters){var form=(typeof formName=='string'?document.getElementById(formName):formName);if(form){var paramNames=[];var oldTarget=form.target;if(target){form.target=target;}
if(parameters){for(var param in parameters){paramNames.push(param);if(form.elements[param]){form.elements[param].value=parameters[param];}else{var input=document.createElement("input");input.type="hidden";input.id=param;input.name=param;input.value=parameters[param];if(param==="javax.faces.portletbridge.STATE_ID"&&form.firstChild){form.insertBefore(input,form.firstChild);}else{form.appendChild(input);}}}}
var onsubmitResult;if(form.fireEvent){onsubmitResult=form.fireEvent("onsubmit");}else{var event=document.createEvent("HTMLEvents");event.initEvent("submit",true,true)
onsubmitResult=form.dispatchEvent(event);}
if(onsubmitResult){form.submit();}
_clearJSFFormParameters(formName,oldTarget,paramNames);}else{alert("Form "+formName+" not found in document");}
return false;};function _clearJSFFormParameters(formName,target,fields){var form=(typeof formName=='string'?document.getElementById(formName):formName);if(form){if(target){form.target=target;}else{form.target='';}
if(fields){for(var i=0;i<fields.length;i++){var field=form.elements[fields[i]];if(field){var pNode=field.parentNode;if(pNode){pNode.removeChild(field);}}}}}}
function clearFormHiddenParams(formName,target,fields){_clearJSFFormParameters(formName,target,fields);}
A4J.findForm=function(element){var parent=element;do{parent=parent.parentNode;}while(parent&&parent.nodeName.toLowerCase()!='form');if(!parent){parent={reset:function(){},submit:function(){}};}
return parent;}
A4J._formInput=null;A4J.setupForm=function(id){var element=(typeof id=='string'?window.document.getElementById(id):id);var name="click";if(element.addEventListener){element.addEventListener(name,A4J._observer,false);}else if(element.attachEvent){element.attachEvent('on'+name,A4J._observer);}}
A4J._observer=function(evt){var src=evt.target||evt.srcElement;if(src&&src.nodeName.toUpperCase()=='INPUT'&&src.type.toUpperCase()=='SUBMIT'){A4J._formInput=src;}else{A4J._formInput=null;}}}