
String.prototype.ucFirst=function(){return this.substr(0,1).toUpperCase()+this.substr(1,this.length);};String.prototype.trim=function(){return this.replace(/^\s+/,'').replace(/\s+$/,'');}
Array.prototype.implode=function(delimiter){var value="";this.each(function(e){value=value+e+delimiter;}.bind(this));return value.substring(0,value.length-1);}
if(!Array.indexOf){Array.prototype.indexOf=function(obj){for(var i=0;i<this.length;i++){if(this[i]==obj)return i;}
return-1;}}
document.getScrollLeft=function(){var x=0;if(self.pageXOffset){x=self.pageXOffset;}else if(document.documentElement&&document.documentElement.scrollLeft){x=document.documentElement.scrollLeft;}else if(document.body){x=document.body.scrollLeft;}
return x;}
function clone(e){var newObj=(e instanceof Array)?[]:{};for(i in e){if(i=='clone')continue;if(e[i]&&typeof e[i]=="object"){newObj[i]=clone(e[i]);}else newObj[i]=e[i]}return newObj;};function serialize(mixed_value){var _getType=function(inp){var type=typeof inp,match;var key;if(type=='object'&&!inp)return'null';if(type=="object"){if(!inp.constructor)return'object';var cons=inp.constructor.toString();match=cons.match(/(\w+)\(/);if(match)cons=match[1].toLowerCase();var types=["boolean","number","string","array"];for(key in types){if(cons==types[key]){type=types[key];break;}}}
return type;};var type=_getType(mixed_value);var val,ktype='';switch(type){case"function":val="";break;case"boolean":val="b:"+(mixed_value?"1":"0");break;case"number":val=(Math.round(mixed_value)==mixed_value?"i":"d")+":"+mixed_value;break;case"string":mixed_value=mixed_value;val="s:"+encodeURIComponent(mixed_value).replace(/%../g,'x').length+":\""+mixed_value+"\"";break;case"array":case"object":val="a";var count=0;var vals="";var okey;var key;for(key in mixed_value){ktype=_getType(mixed_value[key]);if(ktype=="function"){continue;}
okey=(key.match(/^[0-9]+$/)?parseInt(key,10):key);vals+=this.serialize(okey)+this.serialize(mixed_value[key]);count++;}
val+=":"+count+":{"+vals+"}";break;case"undefined":default:val="N";break;}
if(type!="object"&&type!="array")val+=";";return val;}
function extendClass(class1,class2){try{eval(class1+".prototype = new "+class2+"();");eval(class1+".prototype.super = '"+class1+"';");return true;}catch(e){return false;}}
function disableSelection(target){if(typeof target.onselectstart!="undefined"){target.onselectstart=function(){return false}}else if(typeof target.style.MozUserSelect!="undefined"){target.style.MozUserSelect="none";}else{target.onmousedown=function(){return false}}
target.style.cursor="default";}
Object.extend(Event,{KEY_STRG:17,KEY_SHIFT:16});Prototype.Browser.Konqueror=navigator.userAgent.indexOf('Konqueror/')>-1;Prototype.Browser.IE8=navigator.userAgent.indexOf('MSIE 8.')>-1;Array.prototype.observe=function(event,callback){this.each(function(e){e.observe(event,callback);}.bind(this));}
Array.prototype.draggable=function(options){this.each(function(e){new Draggable(e.id,options);}.bind(this));}
Array.prototype.show=function(){this.each(function(e){e.show();}.bind(this));}
Array.prototype.hide=function(){this.each(function(e){e.hide();}.bind(this));}
Array.prototype.remove=function(){this.each(function(e){e.remove();}.bind(this));}
function form2object(formular){var result={};$(formular).select("input").each(function(input){if(input.name){result[input.name]=input.value;}});$(formular).select("select").each(function(input){if(input.name){result[input.name]=$F(input);}});$(formular).select("textarea").each(function(textarea){if(textarea.name){var resultvar=textarea.value.replace(/\n/g,"").replace(/\t/g,"");result[textarea.name]=resultvar;}});return result;}
function object2table(table_json){var myTable=new Element("table");var myThead=new Element("thead");var myTBody=new Element("tbody");if(table_json.attributes.id)myTable.id=table_json.attributes.id;if(table_json.attributes.border)myTable.border=table_json.attributes.border;table_json.thead.each(function(tr){var container=new Element("tr");tr.childs.each(function(td){if(td.type=="td")var innerContainer=new Element("td").update(td.value?td.value.evalJSON():'');if(td.type=="th")var innerContainer=new Element("th").update(td.value?td.value.evalJSON():'');innerContainer.addClassName(td["class"]);container.appendChild(innerContainer);});myThead.appendChild(container);});table_json.tbody.each(function(tr){var container=new Element("tr");tr.childs.each(function(td){if(td.type=="td")var innerContainer=new Element("td").update(td.value?td.value.evalJSON():'');if(td.type=="th")var innerContainer=new Element("th").update(td.value?td.value.evalJSON():'');innerContainer.addClassName(td["class"]);container.appendChild(innerContainer);});myTBody.appendChild(container);});myTable.appendChild(myThead);myTable.appendChild(myTBody);return myTable;}
function table2object(table){var result={'attributes':{},'thead':[],'tbody':[]};if(table.id)result.attributes.id=table.id;if(table.border)result.attributes.border=table.border;table.select("thead tr").each(function(tr){var mytr=[];var found=false;tr.select("*").each(function(td){if((td.nodeName.toLowerCase()=="td")||(td.nodeName.toLowerCase()=="th")){found=true;mytr.push({'value':td.innerHTML.toJSON(),'type':td.nodeName.toLowerCase(),'class':td.className});}});if(found){result.thead.push({'type':'tr','childs':mytr});}});table.select("tbody tr").each(function(tr){var mytr=[];var found=false;tr.select("*").each(function(td){if((td.nodeName.toLowerCase()=="td")||(td.nodeName.toLowerCase()=="th")){found=true;mytr.push({'value':td.innerHTML.toJSON(),'type':td.nodeName.toLowerCase(),'class':td.className});}});if(found){result.tbody.push({'type':'tr','childs':mytr});}});return result;}
function isStringAUrl(myString){var myString=myString.toLowerCase();if(myString.indexOf("http://")!=-1){return true;}else if(myString.indexOf("www.")!=-1){return true;}else{return false;}}
var EXCEPTION_ERROR=1;var EXCEPTION_WARNING=2;var EXCEPTION_NOTIFICATION=3;function Camao_Exception(){var infos={collection:[]};this.throwException=function(myType,myString){if(Prototype.Browser.Gecko){eval("infos.className = this.super");if(DEVELOPER){if(myType==EXCEPTION_ERROR){console.error(infos.className+" => "+myString);}else if(myType==EXCEPTION_WARNING){console.warn(infos.className+" => "+myString);}else if(myType==EXCEPTION_NOTIFICATION){this.collectInformations(myString);}}else{}}else{if(DEVELOPER){alert(myString);}}}
this.collectInformations=function(myString){infos.collection.push(myString);if(infos.timeout)window.clearTimeout(infos.timeout);infos.timeout=this.fireException.bind(this).delay(1);}
this.fireException=function(){if(typeof console!="undefined"){console.groupCollapsed(infos.className+" Informations");infos.collection.each(function(e){console.info(e);});console.groupEnd();infos.collection=[];}}}
function Camao_Autocompletion(){var infos={};this.__construct=function(param){if(param)this.init(param);}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){infos.target.observe("keyup",this.keyUpEvent.bind(this));infos.target.observe("focus",this.focusEntryEvent.bind(this));infos.target.observe("blur",this.blurEntryEvent.bind(this));}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.getPossibleOptions=function(){return{'target':'[Dom Element] of the Input field','request_url':'[STRING] the Post url','request_param':'[OBJECT] params for the post'};}
this.validateOptions=function(){status=true;if(!infos.target){this.throwException(EXCEPTION_ERROR,"options.target is undefined!");status=false;}
if(!infos.request_url){this.throwException(EXCEPTION_ERROR,"options.request_url is undefined!");status=false;}
if(!infos.request_param)infos.request_param={};return status;}
this.keyUpEvent=function(){if(infos.timeout)window.clearTimeout(infos.timeout);infos.timeout=this.doAutocompletion.bind(this).delay(0.5);}
this.doAutocompletion=function(){if(infos.hasFocus==false)return false;if(infos.target.value=="")return false;Object.extend(infos.request_param,{'value':infos.target.value});new Ajax.Request(infos.request_url,{method:'post',parameters:infos.request_param,onSuccess:function(transport){this.onReciveEntries(transport);}.bind(this),onFailure:function(response){if(response.status==404){this.throwException(EXCEPTION_ERROR,"Action doesnt Exist!");}else{this.throwException(EXCEPTION_ERROR,"Ajax request failed!");}}.bind(this)});}
this.focusEntryEvent=function(){infos.hasFocus=true;this.onFocusEntry(infos.target);}
this.blurEntryEvent=function(){infos.hasFocus=false;}
this.onReciveEntries=function(transport){this.throwException(EXCEPTION_NOTIFICATION,"You should overload this.onReciveEntries ;)!");}
this.onFocusEntry=function(entry){}}
extendClass("Camao_Autocompletion","Camao_Exception");function Include_Base(){var extend='Include_Base_';var Exception={};this.__construct=function(options){}
this.get=function(instance,instanceAs,options,cunstructName){if(!instance){if(DEVELOPER)console.log("missed parameter 'instance'");return false;}
try{var construct=false;if(instanceAs&&typeof instanceAs=='boolean'){construct=true;if(this.isInstance(instance)){var loadedInstance=eval('new '+instance+'();');}}else if(instanceAs){construct=true;if(this.isInstance(instance)){eval(extend+instanceAs+' = new '+instance+'();');var loadedInstance=eval(extend+instanceAs);}}else{var check=eval('typeof '+extend+instance);if(check=="undefined"&&this.isInstance(instance)){construct=true;eval(extend+instance+' = new '+instance+'();');}
var loadedInstance=eval(extend+instance);}}catch(e){alert(e.description);}
if(!cunstructName)
constructName='__construct';if(construct)
Base.call(constructName,options,loadedInstance,true);return loadedInstance;}
this.isInstance=function(instance)
{if(eval('typeof ('+instance+') != "object"')&&eval('typeof ('+instance+') != "function"')){if(DEVELOPER)console.log("instance is not a valid JavaScript function/Object! Code not includet ? "+instance);return false;}
return true;}
this.call=function(func,options,loadedInstance){if(!func&&!arguments[3]){console.log('missing parameter func');return false;}
try{eval("loadedFunction = loadedInstance."+func+".bind(loadedInstance)");if(options){return loadedFunction(options);}else{return loadedFunction();}
return true;}catch(e){if(!arguments[3]){console.log(e);return false;}}}}
var CAMAO_CRON_CANCEL_AFTER=20;function Camao_Cron(){var infos={q:[],count:0};this.__construct=function(param){this.init(param);}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){this.checkNow();}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.checkNow=function(){var response=false;if(infos.rule.onDifferents){response=this.checkOnDifferents();}else if(infos.rule.onElementExists){response=this.checkOnElementExists();}else{response=true;}
if(response==false){infos.count++;if(infos.count<=CAMAO_CRON_CANCEL_AFTER){this.checkNow.bind(this).delay(0.5);}else{this.throwException(EXCEPTION_ERROR,"stop interval! After "+CAMAO_CRON_CANCEL_AFTER+" tries! "+infos.target);}}}
this.checkOnDifferents=function(){var diffarray=infos.rule.onDifferents;if(eval(diffarray[0])!=eval(diffarray[1])){infos.count=0;infos.callback();return true;}else{return false;}}
this.checkOnElementExists=function(){if($(infos.target)){infos.count=0;infos.callback();return true;}else{return false;}}
this.getPossibleOptions=function(){return{};}
this.validateOptions=function(){var status=true;if(!infos.target){this.throwException(EXCEPTION_ERROR,"options.target is undefined!");status=false;}
if(!infos.rule){this.throwException(EXCEPTION_ERROR,"options.rule is undefined!");status=false;}
if(!infos.callback){this.throwException(EXCEPTION_ERROR,"options.callback is undefined!");status=false;}
return status;}}
extendClass("Camao_Cron","Camao_Exception");var CAMAO_COOKIE_DEFAULT_EXPIRE=60*60*24*30*12;function Camao_Cookie(){var infos={};this.__construct=function(options){this.init(options);}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.getPossibleOptions=function(){return{'expire':'[Int] cookie expire time'};}
this.validateOptions=function(){var status=true;if(!infos.expire){infos.expire=CAMAO_COOKIE_DEFAULT_EXPIRE;this.throwException(EXCEPTION_NOTIFICATION,"options.expire is undefined, we use "+CAMAO_COOKIE_DEFAULT_EXPIRE);}
return status;}
this.setCookie=function(cname,cvalue){var exp=new Date();exp.setTime(exp.getTime()+infos.expire);document.cookie=cname+"="+escape(cvalue)+"; path=/; expires="+exp.toGMTString();}
this.getCookie=function(name){var found=false;var cookies=document.cookie.split(";");cookies.each(function(cookie){var parts=cookie.split("=");if((parts[0].replace(/^\s+|\s+$/g,'')==name)&&(parts[1].replace(/^\s+|\s+$/g,'')))found=parts[1];}.bind(this));return found;}
this.deleteCookie=function(name){this.getCookie(name)?this.setCookie(name,''):this.throwException(EXCEPTION_NOTIFICATION,"Cant delete cookie ("+name+"), cookie not found!");}
this.removeCookie=function(name){this.deleteCookie(name);}
this.clearCookie=function(){document.cookie="";}}
extendClass("Camao_Cookie","Camao_Exception");function Camao_Content(){var infos={};this.__construct=function(param){}
this.init=function(){}
this.getPossibleOptions=function(){return{};}
this.doing=function(options){if(this.validateOptions(options)){if(options.doing.toLowerCase()=="insert"){options.target.insert(options.content);}else if(options.doing.toLowerCase()=="update"){options.target.update(options.content);}}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.isElementInInvisibleContainer=function(element){var returnval=false;var start=element;while(start.tagName.toLowerCase()!="body"){start=$(start).up();if(!start.visible())returnval=true;}
return returnval;}
this.isElementInContainer=function(element,container){var returnval=false;var start=element;if(start.tagName.toLowerCase()=="html")return false;while(start.tagName.toLowerCase()!="body"){if(start==container)returnval=true;start=$(start).up();}
return returnval;}
this.validateOptions=function(options){var status=true;if(!options.doing){this.throwException(EXCEPTION_ERROR,"options.do is undefined!");status=false;}
if(!options.content){this.throwException(EXCEPTION_ERROR,"options.content is undefined!");status=false;}
if(!options.target){this.throwException(EXCEPTION_ERROR,"options.target is undefined!");status=false;}
return status;}}
extendClass("Camao_Content","Camao_Exception");var CAMAO_DROPDOWN_DEFAULT_TEMPLATE_LABEL_CLASSNAME="dropDownLabel";var CAMAO_DROPDOWN_DEFAULT_TEMPLATE_OPENED_CLASSNAME="dropDownOpen";var CAMAO_DROPDOWN_DEFAULT_TEMPLATE_LABELTEXT_CLASSNAME="labelText";var CAMAO_DROPDOWN_DEFAULT_TEMPLATE_LIST_CLASSNAME="list";var CAMAO_DROPDOWN_DEFAULT_TEMPLATE_ENTRY_CLASSNAME="entry";var CAMAO_DROPDOWN_LIST_CLOSE_CHAR=Event.KEY_ESC;function Camao_Dropdown(){var infos={};this.__construct=function(param){if(typeof param!="undefined")this.init(param);}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){this.createEvents();this.replaceDropdown();}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.getPossibleOptions=function(){return{};}
this.validateOptions=function(){var status=true;if(!infos.target){this.throwException(EXCEPTION_ERROR,"options.target is undefined!");status=false;}else{if(infos.target.nodeName.toLowerCase()!="select"){this.throwException(EXCEPTION_ERROR,"options.target is not a 'select'-Tag!");status=false;}}
if(!infos.template){this.throwException(EXCEPTION_NOTIFICATION,"options.template is undefined! We create a default template!");infos.template=this.createFallbackDropdown();}else{if(infos.template.select("."+CAMAO_DROPDOWN_DEFAULT_TEMPLATE_LABEL_CLASSNAME).length!=1){this.throwException(EXCEPTION_ERROR,"We cant find the label element with the '"+CAMAO_DROPDOWN_DEFAULT_TEMPLATE_LABEL_CLASSNAME+"' classname!");status=false;}else if(infos.template.select("."+CAMAO_DROPDOWN_DEFAULT_TEMPLATE_LIST_CLASSNAME).length!=1){this.throwException(EXCEPTION_ERROR,"We cant find the list element with the '"+CAMAO_DROPDOWN_DEFAULT_TEMPLATE_LIST_CLASSNAME+"' classname!");status=false;}else if(infos.template.select("."+CAMAO_DROPDOWN_DEFAULT_TEMPLATE_ENTRY_CLASSNAME).length!=1){this.throwException(EXCEPTION_ERROR,"We cant find the entry element with the '"+CAMAO_DROPDOWN_DEFAULT_TEMPLATE_ENTRY_CLASSNAME+"' classname!");status=false;}}
return status;}
this.createEvents=function(){infos.observe_document_click=function(e){var contentObj=Base.get("Camao_Content");if(!contentObj.isElementInContainer(e.target,infos.usedTemplate)){this.closeList();}}.bind(this);document.observe("click",infos.observe_document_click);infos.observe_document_keyup=function(e){if(e.keyCode==CAMAO_DROPDOWN_LIST_CLOSE_CHAR){this.closeList();}}.bind(this);document.observe("keyup",infos.observe_document_keyup);}
this.destroy=function(){document.stopObserving("click",infos.observe_document_click);document.stopObserving("keyup",infos.observe_document_keyup);infos.target.show();infos.target.name=infos.target.name.replace("_CAMAO_DROPDOWN_TEMP","");infos.usedTemplate.remove();}
this.getInformations=function(){var results=[];infos.target.select("option").each(function(option){results.push({'value':option.value,'name':option.innerHTML.trim(),'selected':option.selected});});return results;}
this.createFallbackDropdown=function(){var tempDiv=new Element("div").update(''+'<div class="dropdown" style="display:none">'+'<div class="'+CAMAO_DROPDOWN_DEFAULT_TEMPLATE_LABEL_CLASSNAME+'"></div>'+'<div>'+'<ul class="'+CAMAO_DROPDOWN_DEFAULT_TEMPLATE_LIST_CLASSNAME+'">'+'<li class="'+CAMAO_DROPDOWN_DEFAULT_TEMPLATE_ENTRY_CLASSNAME+'"></li>'+'</ul>'+'</div>'+'</div>');tempDiv.hide();$$("body")[0].appendChild(tempDiv);return tempDiv.down(".dropdown");}
this.createDropdown=function(){var foundSelectedEntry=false;infos.usedTemplate=infos.template.cloneNode(true);infos.listTemplate=infos.usedTemplate.select("."+CAMAO_DROPDOWN_DEFAULT_TEMPLATE_LIST_CLASSNAME)[0];infos.labelTemplate=infos.usedTemplate.select("."+CAMAO_DROPDOWN_DEFAULT_TEMPLATE_LABEL_CLASSNAME)[0];infos.labelText=infos.usedTemplate.select("."+CAMAO_DROPDOWN_DEFAULT_TEMPLATE_LABELTEXT_CLASSNAME)[0];infos.usedTemplate.appendChild(new Element("input",{'type':'hidden','name':infos.target.name}));infos.target.name+="_CAMAO_DROPDOWN_TEMP";infos.usedTemplate.id="";var dropdownInfos=this.getInformations();var entryTemplate=infos.usedTemplate.select("."+CAMAO_DROPDOWN_DEFAULT_TEMPLATE_ENTRY_CLASSNAME)[0];infos.listTemplate.hide();dropdownInfos.each(function(option){var usedEntryTemplate=entryTemplate.cloneNode(true);if(option.value.toLowerCase().indexOf("http://")!=-1){if(usedEntryTemplate.select("a").length==0){usedEntryTemplate.appendChild(new Element("a"));}
usedEntryTemplate.select("a")[0].href=option.value;if(usedEntryTemplate.select("a span").length==0){usedEntryTemplate.select("a")[0].update(option.name);}else{usedEntryTemplate.select("a span")[0].update(option.name);}}else{if(usedEntryTemplate.select("span").length==0){usedEntryTemplate.update(option.name);}else{usedEntryTemplate.select("span")[0].update(option.name);}}
infos.listTemplate.appendChild(usedEntryTemplate);usedEntryTemplate.appendChild(new Element("div",{'className':'valueHolder','style':'display:none;'}).update(option.value));if(option.selected){infos.labelText.update(option.name);infos.usedTemplate.select("input")[0].value=option.value;foundSelectedEntry=true;}});if(dropdownInfos.length>0)
infos.listTemplate.lastChild.addClassName("last");if(foundSelectedEntry==false){infos.labelText.update(dropdownInfos[0].name);infos.usedTemplate.select("input")[0].value=dropdownInfos[0].value;}
entryTemplate.hide();}
this.createDropdownEvents=function(){infos.labelTemplate.observe("click",this.labelClickEvent.bind(this));infos.listTemplate.observe("click",this.listClickEvent.bind(this));}
this.replaceDropdown=function(){this.createDropdown();this.createDropdownEvents();infos.usedTemplate.show();infos.target.hide();new Insertion.After(infos.target,infos.usedTemplate);}
this.labelClickEvent=function(){this.onLabelClickEvent();infos.listTemplate.toggle();infos.labelTemplate.addClassName(CAMAO_DROPDOWN_DEFAULT_TEMPLATE_OPENED_CLASSNAME);}
this.listClickEvent=function(e){this.onEntryClickEvent(e.target);var usedElement=e.target;if(usedElement.nodeName.toLowerCase()!="a"){var foundHolder=false;while(foundHolder==false){if(usedElement.select(".valueHolder").length==0){usedElement=usedElement.up();if(typeof usedElement=="undefined"){break;}}else{foundHolder=true;}}
if(foundHolder==false){this.throwException(EXCEPTION_ERROR,"We cant find the valueHolder element!");return false;}
if(usedElement.down("a")){window.location.href=usedElement.down("a").href;return true;}
var myvalue=usedElement.select(".valueHolder")[0].innerHTML.trim();infos.usedTemplate.select("input")[0].value=myvalue;}
infos.labelText.update(e.target.innerHTML.trim());this.closeList();}
this.closeList=function(){infos.listTemplate.hide();infos.labelTemplate.removeClassName(CAMAO_DROPDOWN_DEFAULT_TEMPLATE_OPENED_CLASSNAME);}
this.onLabelClickEvent=function(){}
this.onEntryClickEvent=function(entry){}}
extendClass("Camao_Dropdown","Camao_Exception");var CAMAO_EDITABLE_DEFAULT_END_EDIT_CHAR=Event.KEY_ESC;var CAMAO_EDITABLE_DEFAULT_CREATE_NEW_LIST_ENTRY=Event.KEY_TAB;function Camao_Editable(){var infos={};this.__construct=function(options){if(typeof options!="undefined")this.init(options);}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){this.setTargetToEdit();this.createEvents();}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.getPossibleOptions=function(){return{};}
this.createEvents=function(){infos.keyDownEvent=this.keyDownEvent.bind(this);document.observe("keydown",infos.keyDownEvent);}
this.destroy=function(){document.stopObserving("keydown",infos.keyDownEvent);if(infos.mode=="edit"){this.setTargetToView();}}
this.validateOptions=function(){var status=true;if(!infos.target){this.throwException(EXCEPTION_ERROR,"options.target is undefined!");status=false;}
return status;}
this.setTargetToEdit=function(){infos.mode="edit";if(infos.target.hasClassName("list")){this.setListFieldToEdit();}else if(infos.target.hasClassName("upload")){this.onUploadFieldToEditEvent(infos.target);}else{this.setTextFieldToEdit();}}
this.setTargetToView=function(){infos.mode="view";if((infos.target.hasClassName("list"))&&(infos.target.select("input").length>0)){infos.target.select("li").each(function(li){if(li.select("input")[0].value!=""){li.update(li.select("input")[0].value);}else{li.remove();}});}else if(infos.target.hasClassName("text")){if(infos.target.select("input").length>0){infos.target.update(infos.target.select("input")[0].value);}}
this.onTargetToViewEvent();}
this.setTextFieldToEdit=function(){var myInput=new Element("input",{'value':infos.target.innerHTML});infos.target.update(" ");infos.target.appendChild(myInput);myInput.focus();}
this.setListFieldToEdit=function(){if(infos.target.down("li")){infos.target.select("li").each(function(li){var myInput=new Element("input",{'value':li.innerHTML});li.update(" ");li.appendChild(myInput);});}else{var myUl=new Element("ul").update("<li><input value='"+infos.target.innerHTML+"' /></li>");infos.target.update(" ");infos.target.appendChild(myUl);myUl.select("input")[0].focus();}}
this.createNewListEntry=function(){var myLi=new Element("li").update("<input value='' />");infos.target.select("ul")[0].appendChild(myLi);myLi.select("input")[0].focus();}
this.keyDownEvent=function(e){switch(e.which){case CAMAO_EDITABLE_DEFAULT_END_EDIT_CHAR:Event.stop(e);this.setTargetToView();break;case CAMAO_EDITABLE_DEFAULT_CREATE_NEW_LIST_ENTRY:var inContainer=Base.get("Camao_Content").isElementInContainer(e.target,infos.target);if(inContainer){if(infos.target.hasClassName("list")){if(infos.mode=="edit"){this.createNewListEntry();Event.stop(e);}}}
break;}}
this.onTargetToViewEvent=function(){}
this.onUploadFieldToEditEvent=function(node){this.throwException(EXCEPTION_ERROR,"You must overload this function to get Upload handling!!");}}
extendClass("Camao_Editable","Camao_Exception");function Camao_Expandable(){this.infos={};var infos={};this.__construct=function(options){if(options)this.init(options);}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.getPossibleOptions=function(){return{};}
this.validateOptions=function(){var status=true;if(!infos.target){this.throwException(EXCEPTION_ERROR,"options.target is undefined!");status=false;}
return status;}
this.destroy=function(){}
this.expand=function(){infos.target.up().insert(infos.target.cloneNode(true),{'after':infos.target});}}
extendClass("Camao_Expandable","Camao_Exception");function Camao_Formular(){var infos={'visit_fields':new Array(),'preselect_values':new Array(),'form_elements':new Array(),'validation_class':Base.get("Camao_Validation").getValidClasses()};this.__construct=function(param){if(param)this.init(param);}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){this.collectInformations();this.createFakePasswordFields();this.createEvents();if(infos.autofocus){var firstElement=this.findFirstInputElementInCollectionByType("text");if(firstElement!=false){this.setFirstElementFocusDelay.delay(1.5,firstElement.element);}}}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.getPossibleOptions=function(){return{'target':'[Dom Element] from the Formular','do_validation':'[BOOL] to de/activate the validation','error_class':'[String] will added to the element if validation failed','preselect_fields':'[BOOL] to de/activate the preselection','use_ajax':'[BOOL] to de/activate the ajax transporter','custom_submit_button':'[Dom Element] set a custom submit button','autofocus':'[BOOL] to de/activate the auto focus for the firs element','crypt_password':'[BOOL / String] crypt the password before submiting, valid options false, md5, sha1'};}
this.validateOptions=function(){var status=true;if(!infos.target){this.throwException(EXCEPTION_ERROR,"options.target is undefined!");status=false;}
if(!infos.do_validation){infos.do_validation=false;}else if(infos.do_validation==true){if(!infos.error_class){infos.error_class="error";}
if(!infos.validation_behavior)infos.validation_behavior="onsubmit";}
if(typeof infos.use_ajax=="undefined")infos.use_ajax=false;if(typeof infos.crypt_password=="undefined")infos.crypt_password=false;if(typeof infos.autofocus=="undefined"){infos.autofocus=true;this.throwException(EXCEPTION_NOTIFICATION,"options.autofocus is undefined, we use 'true'");}
if(!infos.custom_submit_button)infos.custom_submit_button=false;return status;}
this.createFakePasswordFields=function(){infos.target.select("input").each(function(original){if(original.type=="password"){original.hide();var fake=new Element("input",{'name':'fake_'+original.name,'value':original.value,'type':'text'});original.insert({before:fake});fake.observe("focus",function(original,fake){original.show();fake.hide();original.focus();}.bind(this,original,fake))
original.observe("blur",function(original,fake){if(original.value==""){original.hide();fake.show();}}.bind(this,original,fake))}}.bind(this));}
this.collectInformations=function(){infos.target.select("input").each(function(e){infos.form_elements.push({'element':e,'start_value':$F(e)});}.bind(this));infos.target.select("select").each(function(e){infos.form_elements.push({'element':e,'start_value':$F(e)});}.bind(this));infos.target.select("textarea").each(function(e){infos.form_elements.push({'element':e,'start_value':$F(e)});}.bind(this));}
this.findFirstInputElementInCollectionByType=function(type){var Camao_ContentObj=Base.get("Camao_Content");for(var i=0;i<infos.form_elements.length;i++){var element=infos.form_elements[i]
if(element.element.type==type){if(!Camao_ContentObj.isElementInInvisibleContainer(element.element))
return infos.form_elements[i];}}
return false;}
this.findLastInputElementInCollection=function(){var Camao_ContentObj=Base.get("Camao_Content");for(var i=infos.form_elements.length-1;i>=0;i--){var element=infos.form_elements[i];if(!Camao_ContentObj.isElementInInvisibleContainer(element.element))
return infos.form_elements[i];}
return false;}
this.createEvents=function(){if(infos.custom_submit_button){if((infos.custom_submit_button.href==window.location)||(infos.custom_submit_button.href=="")){infos.custom_submit_button.href="javascript:;";}
infos.custom_submit_button.observe("click",this.linkSubmitFormular.bind(this));var lastElement=this.findLastInputElementInCollection();if(lastElement)lastElement.element.observe("keydown",this.lastInputFieldKeyDownEvent.bind(this,lastElement));}else{infos.target.onsubmit=function(){return this.submitFormular();}.bind(this);}
infos.form_elements.each(function(elementObj){elementObj.element.observe("focus",this.elementGotFocus.bind(this,elementObj));elementObj.element.observe("blur",this.elementLeaveFocus.bind(this,elementObj));}.bind(this));}
this.lastInputFieldKeyDownEvent=function(lastElement,e){if(e.which==Event.KEY_RETURN){this.elementLeaveFocus(lastElement);Event.stop(e);this.linkSubmitFormular();}}
this.setElementAsInvalide=function(element){element.addClassName(infos.error_class);}
this.setElementAsValide=function(element){element.removeClassName(infos.error_class);}
this.elementGotFocus=function(elementObj){if(infos.visit_fields.indexOf(elementObj.element)==-1)infos.visit_fields.push(elementObj.element);if(infos.preselect_fields){if((elementObj.element.type!="button")&&(elementObj.element.type!="submit")){if(elementObj.element.value==elementObj.start_value)elementObj.element.value="";}}}
this.elementLeaveFocus=function(elementObj){if(infos.preselect_fields){if(elementObj.element.value==""){if(elementObj.element.type!="password"){elementObj.element.value=elementObj.start_value;}}}
if(infos.crypt_password){if(elementObj.element.type=="password"){elementObj.element.value=Base.get("Camao_Crypt").crypt(elementObj.element.value,infos.crypt_password);}}
if(infos.do_validation&&infos.validation_behavior=="direct"){this.onValidationStart();infos.validation_class.each(function(myclass){if(elementObj.element.className.indexOf(myclass)!=-1){this.validateEntry(elementObj,myclass);}}.bind(this));}}
this.linkSubmitFormular=function(){this.onSubmitFormular();if(this.doOnSubmitFormular()){if(infos.use_ajax){infos.target.request({method:'post',onSuccess:function(response){if(response.responseJSON){this.onJSONResponse(response.responseJSON);}else{this.onTextResponse(response.responseText);}}.bind(this)});return false;}
infos.target.submit();return true;}else{return false;}}
this.submitFormular=function(){this.onSubmitFormular();if(this.doOnSubmitFormular()){if(infos.use_ajax){infos.target.request({method:'post',onSuccess:function(response){if(response.responseJSON){this.onJSONResponse(response.responseJSON);}else{this.onTextResponse(response.responseText);}}.bind(this)});return false;}
return true;}else{return false;}}
this.doOnSubmitFormular=function(){var status=true;if(infos.do_validation){this.onValidationStart();infos.form_elements.each(function(elementObj){infos.validation_class.each(function(myclass){if(elementObj.element.hasClassName(myclass)==true){var retstatus=this.validateEntry(elementObj,myclass);if(retstatus==false)status=false;}}.bind(this));}.bind(this));}
return status;}
this.validateEntry=function(elementObj,myclass){var status=true;var doValidation=true;validation_options={};if(elementObj.element.className.indexOf("(")!=-1){var param_part1=elementObj.element.className.split("(");var param_part2=param_part1[1].split(")");var param=param_part2[0];if(param.indexOf("-")!=-1){var param_options_part=param.split("-");if(param_options_part.length==2){Object.extend(validation_options,{"type":"range","min":param_options_part[0],"max":param_options_part[1]});}else{this.throwException(EXCEPTION_ERROR,"cant interpret the condition -> "+param);}}else if(param.indexOf(">")!=-1){var param_options_part=param.split(">");var param_value=param_options_part[1];if(!isNaN(param_value)){Object.extend(validation_options,{"type":"greater","value":param_value});}else{this.throwException(EXCEPTION_ERROR,"cant interpret the condition -> "+param);}}else if(param.indexOf("<")!=-1){var param_options_part=param.split("<");var param_value=param_options_part[1];if(!isNaN(param_value)){Object.extend(validation_options,{"type":"lower","value":param_value});}else{this.throwException(EXCEPTION_ERROR,"cant interpret the condition -> "+param);}}else{this.throwException(EXCEPTION_ERROR,"cant interpret the condition -> "+param);}}
var used_value=$F(elementObj.element);if(elementObj.element.type=="checkbox")doValidation=false;if((myclass=="numbers")&&(used_value!="")){used_value=parseInt(used_value);}
if((doValidation==true)&&(used_value!="")&&(myclass!="*")){var validation_status=Base.get("Camao_Validation").validate(used_value,myclass,validation_options);if(validation_status!=true){this.onValidationError(elementObj.element,myclass,validation_status);status=false;}else{this.onValidationSuccess(elementObj.element,myclass);}}else{if(elementObj.element.className.indexOf("*")!=-1){if(elementObj.element.type=="checkbox"){status=elementObj.element.checked;if(status==true){this.onValidationSuccess(elementObj.element,myclass);}else{this.onValidationError(elementObj.element,myclass,CAMAO_VALIDATION_ERROR_NOT_CHECKED);}}else{if($F(elementObj.element)==""){this.onValidationError(elementObj.element,myclass);status=false;}}}}
return status;}
this.setFirstElementFocusDelay=function(element){element.focus();}
this.onSubmitFormular=function(){}
this.onJSONResponse=function(responseJSON){}
this.onTextResponse=function(responseText){eval(responseText);}
this.onValidationStart=function(){}
this.onValidationError=function(element,myclass,validation_status){element.addClassName(infos.error_class);}
this.onValidationSuccess=function(element,myclass){element.removeClassName(infos.error_class);}}
extendClass("Camao_Formular","Camao_Exception");function Camao_MouseEvent(){var infos={'x':0,'y':0};this.__construct=function(){}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){document.observe("mousemove",this.mouseMoveEvent.bind(this));}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.getPossibleOptions=function(){return{'x':'[x] x'};}
this.validateOptions=function(){var status=true;return status;}
this.mouseMoveEvent=function(e){this.onMouseMoveEvent(e);infos.event=e;infos.y=Event.pointerY(e);infos.x=Event.pointerX(e);}
this.getEvent=function(){return infos.event;}
this.getPosition=function(){return{'x':infos.x,'y':infos.y};}
this.onMouseMoveEvent=function(e){}}
extendClass("Camao_MouseEvent","Camao_Exception");var CAMAO_NAVIGATION_SELECTION_CLASS="selected";var CAMAO_NAVIGATION_DEFAULT_BEHAVIOR="list";function Camao_Navigation(){this.infos={};var infos={'observer':{},'childs':[],KEY_SHIFT:false,first_KEY_SHIFT:true,KEY_STRG:false};this.__construct=function(options){if(options)this.init(options);}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){this.infos.target=infos.target;Base.get("Camao_Navigation_Focus").addNavigationObj(this);this.createEvents();if(infos.behavior=="table"){infos.childs=infos.target.select("tbody "+infos.child_tag_name);infos.active=infos.childs[0].select("td")[0];}else{infos.childs=infos.target.select(infos.child_tag_name);infos.active=infos.childs[0];}}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.reinit=function(){var options=(typeof arguments[0]!="undefined")?arguments[0]:{};if(options.target){infos.target=options.target;this.infos.target=options.target;}
if(infos.behavior=="table"){infos.childs=infos.target.select("tbody "+infos.child_tag_name);}else{infos.childs=infos.target.select(infos.child_tag_name);}
if(options.target){infos.active=infos.childs[0];infos.active=infos.childs[0].select("td")[0];infos.target.observe("click",infos.observer.target_click);infos.target.observe("dblclick",infos.observer.target_dblclick);}}
this.getPossibleOptions=function(){return{'target':'[Dom Element] Contains the content to navigate','child_tag_name':'[String] define the child name, default is autodetect','classname':'[String] define the class name for the selected element','wrap':'[BOOL] activate / deactivate the wrap selection','behavior':'[String] behavior for the object, possible : list, autocompletion','multiselection':'[BOOL] activate / deactivate multiselection'};}
this.validateOptions=function(){var status=true;if(!infos.target){this.throwException(EXCEPTION_ERROR,"options.target is undefined!");status=false;}
if(!infos.classname){infos.classname=CAMAO_NAVIGATION_SELECTION_CLASS;this.throwException(EXCEPTION_NOTIFICATION,"options.classname is undefined, we use '"+infos.classname+"'");}
if(typeof infos.header_selection_allowed=="undefined"){infos.header_selection_allowed=false;this.throwException(EXCEPTION_NOTIFICATION,"options.header_selection_allowed is undefined, we use 'false'");}
if(typeof infos.wrap=="undefined"){infos.wrap=true;this.throwException(EXCEPTION_NOTIFICATION,"options.wrap is undefined, we use 'true'");}
if(typeof infos.navigation_active=="undefined"){infos.navigation_active=true;this.throwException(EXCEPTION_NOTIFICATION,"options.navigation_active is undefined, we use 'true'");}
if(typeof infos.multiselection=="undefined"){infos.multiselection=false;this.throwException(EXCEPTION_NOTIFICATION,"options.multiselection is undefined, we use 'false'");}else{disableSelection(infos.target);this.throwException(EXCEPTION_NOTIFICATION,"We disable the selection for this element to fix some browser selection bugs...");}
if(!infos.behavior){if(infos.target.tagName.toLowerCase()=="table"){infos.behavior="table";}else{infos.behavior=CAMAO_NAVIGATION_DEFAULT_BEHAVIOR;}
this.throwException(EXCEPTION_NOTIFICATION,"options.behavior is undefined, we use '"+infos.behavior+"'");}
if(!infos.child_tag_name){if(infos.behavior=="table"){infos.child_tag_name="tr";}else{var firstElement=infos.target.down();infos.child_tag_name=firstElement.tagName.toLowerCase();}
if(infos.child_tag_name){this.throwException(EXCEPTION_NOTIFICATION,"options.child_tag_name is undefined, we use '"+infos.child_tag_name+"'");}else{this.throwException(EXCEPTION_ERROR,"try to locate options.child_tag_name failed, no childs found for options.target!'");status=false;}}
return status;}
this.destroy=function(){document.stopObserving("keydown",infos.observer.keydown);document.stopObserving("keydown",infos.observer.keyup);infos.target.stopObserving("click",infos.observer.target_click);Base.get("Camao_Navigation_Focus").removeNavigationObj(this);}
this.createEvents=function(){infos.observer.keydown=this.documentKeyDownEvent.bind(this);document.observe("keydown",infos.observer.keydown);infos.observer.keyup=this.documentKeyUpEvent.bind(this);document.observe("keyup",infos.observer.keyup);infos.observer.target_click=this.targetClickEvent.bind(this);infos.target.observe("click",infos.observer.target_click);infos.observer.target_dblclick=function(){this.entryDblClickEvent(infos.active);}.bind(this);infos.target.observe("dblclick",infos.observer.target_dblclick);}
this.documentKeyDownEvent=function(event){if(infos.navigation_active){if(infos.multiselection)this.handleHoldedKey(event,"pressed");if(event.keyCode==Event.KEY_UP){this.selectPreviousEntry();Event.stop(event);}else if(event.keyCode==Event.KEY_DOWN){this.selectNextEntry();Event.stop(event);}else if(event.keyCode==Event.KEY_RETURN){this.entryEnterClickEvent(infos.active);}
if(infos.behavior=="table"){if(event.keyCode==Event.KEY_RIGHT){this.selectRightEntry();}else if(event.keyCode==Event.KEY_LEFT){this.selectLeftEntry();}}else if(infos.behavior=="list"){if(event.keyCode==Event.KEY_RIGHT){this.selectNextEntry();}else if(event.keyCode==Event.KEY_LEFT){this.selectPreviousEntry();}}else if(infos.behavior=="level"){if(event.keyCode==Event.KEY_RIGHT){this.selectNextChildEntry();}else if(event.keyCode==Event.KEY_LEFT){this.selectParentEntry();}}}}
this.documentKeyUpEvent=function(event){if(infos.multiselection){this.handleHoldedKey(event,"release");}}
this.handleHoldedKey=function(event,status){if(event.keyCode==Event.KEY_SHIFT){if(status=="pressed"){infos.KEY_SHIFT=true;}else{infos.KEY_SHIFT=false;infos.first_KEY_SHIFT=true;}}else if(event.keyCode==Event.KEY_STRG){if(status=="pressed"){infos.KEY_STRG=true;}else{infos.KEY_STRG=false;}}}
this.targetClickEvent=function(event){if(infos.navigation_active){var target=event.target;var childName=infos.child_tag_name;if(infos.behavior=="table")childName="td";if(target.nodeName.toLowerCase()!=childName){if(childName=="td"&&infos.header_selection_allowed){if(target.nodeName.toLowerCase()!="th"){target=target.up(childName);}}else{target=target.up(childName);}}
if((target&&target.nodeName.toLowerCase()==childName)||(target&&infos.header_selection_allowed&&childName=="td"&&target.nodeName.toLowerCase()=="th"))
{if(infos.multiselection&&infos.KEY_STRG==true){this.selectEntry(target,false);}else if(infos.multiselection&&infos.KEY_SHIFT==true){this.selectRange(target);}else{this.selectEntry(target,true);}
if(infos.behavior=="autocompletion"){this.entryClickEvent(target);}}}}
this.activateNavigation=function(){infos.navigation_active=true;}
this.deActivateNavigation=function(){infos.navigation_active=false;}
this.selectParentEntry=function(){if(infos.active&&infos.active.up(infos.child_tag_name)){if(infos.active.up(infos.child_tag_name)){infos.active=infos.active.up(infos.child_tag_name);this.selectEntry(infos.active,true);}}}
this.selectNextChildEntry=function(){if(infos.active&&infos.active.down(infos.child_tag_name)){infos.active=infos.active.down(infos.child_tag_name);if(infos.active)this.selectEntry(infos.active,true);}}
this.selectRange=function(target){if(infos.first_KEY_SHIFT){this.resetSelection();infos.first_KEY_SHIFT=false;}
var startEntry=infos.active;var endEntry=target;if(infos.behavior=="table"){if(startEntry.up()==endEntry.up()){var startEntry_childs=startEntry.up().select("td");if(startEntry_childs.indexOf(startEntry)>startEntry_childs.indexOf(endEntry)){var tmp=startEntry;startEntry=endEntry;endEntry=tmp;}}else{if(infos.childs.indexOf(startEntry.up())>infos.childs.indexOf(endEntry.up())){var tmp=startEntry;startEntry=endEntry;endEntry=tmp;}}
var startTrFound=false;var startTrs=[];infos.childs.each(function(tr){if(tr==startEntry.up())startTrFound=true;if(startTrFound)startTrs.push(tr);if(tr==endEntry.up())startTrFound=false;}.bind(this));var foundStart=false;startTrs.each(function(tr){var childs=tr.select("td");childs.each(function(e){if(e==startEntry)foundStart=true;if(foundStart){this.selectEntry(e,false);if(e==endEntry)foundStart=false;}}.bind(this));}.bind(this));}else{var childs=startEntry.up().select(infos.child_tag_name);if(childs.indexOf(startEntry)>childs.indexOf(endEntry)){var tmp=startEntry;startEntry=endEntry;endEntry=tmp;}
var startfound=false;infos.childs.each(function(e){if(e==startEntry)startfound=true;if(startfound){this.selectEntry(e,false);if(e==endEntry)startfound=false;}}.bind(this));}
infos.active=target;}
this.selectRightEntry=function(){var nextElement=infos.active.next();if(infos.behavior="table")var nextElement=infos.active.next("td");if(nextElement){if(infos.multiselection&&infos.KEY_SHIFT){this.selectRange(infos.active.next());}else{this.selectEntry(infos.active.next(),true);}}else{if(infos.wrap)this.selectEntry(infos.active.up().select("td")[0],true);}}
this.selectLeftEntry=function(){var previousElement=infos.active.previous();if(infos.behavior="table")var previousElement=infos.active.previous("td");if(previousElement){if(infos.multiselection&&infos.KEY_SHIFT){this.selectRange(infos.active.previous());}else{this.selectEntry(infos.active.previous(),true);}}else{if(infos.wrap)this.selectEntry(infos.active.up().select("td").last(),true);}}
this.selectNextEntry=function(){if(infos.behavior=="table"){var tr=infos.active.up();if(tr.next()){tr=tr.next();var td=tr.select("td")[infos.active.up().select("td").indexOf(infos.active)];if(infos.multiselection&&infos.KEY_SHIFT){this.selectRange(td);}else{this.selectEntry(td,true);}}else{if(infos.wrap){var first_tr=infos.target.select("tbody tr")[0];var td=first_tr.select("td")[infos.active.up().select("td").indexOf(infos.active)];if(infos.multiselection&&infos.KEY_SHIFT){this.selectEntry(td,false);}else{this.selectEntry(td,true);}}}}else{if(infos.active.next()){if(infos.multiselection&&infos.KEY_SHIFT){this.selectRange(infos.active.next());}else{this.selectEntry(infos.active.next(),true);}}else{if(infos.wrap){if(infos.multiselection&&infos.KEY_SHIFT){this.selectEntry(infos.active.up().down(),false);}else{this.selectEntry(infos.active.up().down(),true);}}}}}
this.selectPreviousEntry=function(){if(infos.behavior=="table"){var tr=infos.active.up();if(tr.previous()){tr=tr.previous();var td=tr.select("td")[infos.active.up().select("td").indexOf(infos.active)];if(infos.multiselection&&infos.KEY_SHIFT){this.selectRange(td);}else{this.selectEntry(td,true);}}else{if(infos.wrap){var last_tr=infos.target.select("tbody tr")[infos.target.select("tbody tr").length-1];var td=last_tr.select("td")[infos.active.up().select("td").indexOf(infos.active)];this.selectEntry(td,true);}}}else{if(infos.active.previous()){if(infos.multiselection&&infos.KEY_SHIFT){this.selectRange(infos.active.previous());}else{this.selectEntry(infos.active.previous(),true);}}else{if(infos.wrap){if(infos.multiselection&&infos.KEY_SHIFT){this.selectEntry(infos.childs[infos.childs.length-1],false);}else{this.selectEntry(infos.childs[infos.childs.length-1],true);}}}}}
this.selectEntry=function(node,resetSelection){this.onSelectEntryEvent(node);if(resetSelection==true){this.resetSelection();infos.active=node;infos.active.addClassName(infos.classname);}else{infos.active=node;if(infos.multiselection&&infos.KEY_STRG){if(infos.active.hasClassName(infos.classname)){infos.active.removeClassName(infos.classname);}else{infos.active.addClassName(infos.classname);}}else{infos.active.addClassName(infos.classname);}}}
this.resetSelection=function(){infos.target.select("."+infos.classname).each(function(e){e.removeClassName(infos.classname);}.bind(this));}
this.entryClickEvent=function(node){this.onEntryClickEvent(node);}
this.entryDblClickEvent=function(node){if(infos.multiselection){this.onEntryDblClickEvent(infos.target.select("."+infos.classname));}else{this.onEntryDblClickEvent(node);}}
this.entryEnterClickEvent=function(node){if(infos.multiselection){this.onEntryEnterClickEvent(infos.target.select("."+infos.classname));}else{this.onEntryEnterClickEvent(node);}}
this.onEntryClickEvent=function(node){this.throwException(EXCEPTION_NOTIFICATION,"you should overload this.onEntryClickEvent function to handle the click / enter event!");}
this.onEntryDblClickEvent=function(node){this.throwException(EXCEPTION_NOTIFICATION,"you should overload this.onEntryDblClickEvent function to handle the click / enter event!");}
this.onEntryEnterClickEvent=function(node){this.throwException(EXCEPTION_NOTIFICATION,"you should overload this.onEntryEnterClickEvent function to handle the click / enter event!");}
this.onSelectEntryEvent=function(node){}}
extendClass("Camao_Navigation","Camao_Exception");function Camao_Navigation_Focus(){var infos={Camao_NavigationObjs:[]};this.__construct=function(){}
this.init=function(options){}
this.getPossibleOptions=function(){return{};}
this.validateOptions=function(){return true;}
this.addNavigationObj=function(Camao_NavigationObj){infos.Camao_NavigationObjs.push(Camao_NavigationObj);this.createEvents(Camao_NavigationObj);if(infos.autoInitTimeout)window.clearTimeout(infos.autoInitTimeout);infos.autoInitTimeout=this.autoInit.bind(this).delay(0.1);}
this.removeNavigationObj=function(Camao_NavigationObj){infos.Camao_NavigationObjs[infos.Camao_NavigationObjs.indexOf(Camao_NavigationObj)]="";infos.Camao_NavigationObjs=infos.Camao_NavigationObjs.without("");}
this.autoInit=function(){this.deactivateAllNavigations();infos.Camao_NavigationObjs[0].activateNavigation();}
this.createEvents=function(Camao_NavigationObj){Camao_NavigationObj.infos.target.observe("click",this.navigationGotFocus.bind(this,Camao_NavigationObj));}
this.navigationGotFocus=function(Camao_NavigationObj){this.deactivateAllNavigations();Camao_NavigationObj.activateNavigation();}
this.deactivateAllNavigations=function(){infos.Camao_NavigationObjs.each(function(Camao_NavigationObj){Camao_NavigationObj.deActivateNavigation();}.bind(this));}}
extendClass("Camao_Navigation_Focus","Camao_Exception");function Camao_Position(){var infos={};this.__construct=function(){}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.setElementToScreenMiddle=function(element){Base.get("Camao_Cron",true,{'target':$(element),'rule':{'onDifferents':['$(infos.target).getDimensions().height',0]},'callback':this.setElementToScreenMiddleDelay.bind(this,element)});}
this.setElementToScreenMiddleDelay=function(element){var dimensions=$(element).getDimensions();var viewport=document.viewport;if((dimensions.height==0)&&(dimensions.height==0)){this.throwException(EXCEPTION_ERROR,"Element cant set to middle! No dimensions found (widthXheight), inspect the target !");}else{var middleTop=(viewport.getHeight()/2)-(dimensions.height/2)+document.viewport.getScrollOffsets()[1];var middleLeft=(viewport.getWidth()/2)-(dimensions.width/2)+document.getScrollLeft();if(document.viewport.getHeight()<dimensions.height){middleTop=middleTop+(document.viewport.getScrollOffsets()[1]-middleTop);}
if(middleTop<0)middleTop=0;$(element).setStyle({'top':middleTop+'px','left':middleLeft+'px'});}
this.onElementToScreenMiddle();}
this.setElementToMousePosition=function(element){var position=Base.get("Camao_MouseEvent").getPosition();element.setStyle({'top':position.y+10+'px','left':position.x+10+'px'});}
this.getPossibleOptions=function(){return{'x':'[x] x'};}
this.validateOptions=function(){var status=true;return status;}
this.onElementToScreenMiddle=function(){}}
extendClass("Camao_Position","Camao_Exception");var CAMAO_SCROLLABLEELEMENT_DEFAULT_CLICK_BEHAVIOUR="smooth";var CAMAO_SCROLLABLEELEMENT_DEFAULT_END_BEHAVIOUR="stop";function Camao_ScrollableElement(){var infos={'observe':{},'dimensions':{}};this.__construct=function(options){this.init(options);}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){this.createEvents();}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.getPossibleOptions=function(){return{};}
this.validateOptions=function(){var status=true;if(!infos.target){this.throwException(EXCEPTION_ERROR,"options.target is undefined!");status=false;}else{if(infos.target.select(".previous").length==0){this.throwException(EXCEPTION_ERROR,"we cant find the 'previous'-Button class inside options.target!");status=false;}
if(infos.target.select(".next").length==0){this.throwException(EXCEPTION_ERROR,"we cant find the 'next'-Button class inside options.target!");status=false;}
if(infos.target.select(".image").length==0){this.throwException(EXCEPTION_ERROR,"we cant find a image with 'image'-Class inside options.target!");status=false;}}
if(typeof infos.clickBehaviour=="undefined"){infos.clickBehaviour=CAMAO_SCROLLABLEELEMENT_DEFAULT_CLICK_BEHAVIOUR;this.throwException(EXCEPTION_NOTIFICATION,"options.clickBehaviour is undefined! We use '"+CAMAO_SCROLLABLEELEMENT_DEFAULT_CLICK_BEHAVIOUR+"' ");}
if(typeof infos.endBehaviour=="undefined"){infos.endBehaviour=CAMAO_SCROLLABLEELEMENT_DEFAULT_END_BEHAVIOUR;this.throwException(EXCEPTION_NOTIFICATION,"options.endBehaviour is undefined! We use '"+CAMAO_SCROLLABLEELEMENT_DEFAULT_END_BEHAVIOUR+"' ");}
infos.scrollableContainer=infos.target.select(".image")[0].up();infos.visibleContainer=infos.scrollableContainer.up();infos.scrollableContainer.setStyle({'position':'relative'});infos.dimensions.scrollableContainer=infos.scrollableContainer.getDimensions();infos.dimensions.visibleContainer=infos.visibleContainer.getDimensions();infos.dimensions.realScrollableContainer=0;infos.target.select(".image").each(function(image){infos.dimensions.realScrollableContainer+=image.getDimensions().width;});return status;}
this.createEvents=function(){var onEvent="click";if(infos.clickBehaviour=="smooth")onEvent="mousedown";infos.observe.gotoPrevious=this.moveEvent.bind(this,"left");infos.observe.gotoNext=this.moveEvent.bind(this,"right");infos.target.select(".previous")[0].observe(onEvent,infos.observe.gotoPrevious);infos.target.select(".next")[0].observe(onEvent,infos.observe.gotoNext);if(infos.clickBehaviour=="smooth"){infos.observe.keyup=this.keyupEvent.bind(this);document.observe("mouseup",infos.observe.keyup);}}
this.keyupEvent=function(){infos.moveStatus="inactive";}
this.moveEvent=function(direction){this.onMoveEvent(direction);if(infos.clickBehaviour=="smooth"){infos.moveStatus="active";this.moveContainer(direction);}else if(infos.clickBehaviour=="jump"){this.moveContainer(direction);}}
this.moveContainer=function(direction){var activeLeft=infos.scrollableContainer.getStyle("left")?infos.scrollableContainer.getStyle("left"):0;if((infos.clickBehaviour=="smooth")&&(infos.moveStatus=="active")){if(direction=="right"){var newLeft=(parseInt(activeLeft)+10)+"px";}else{var newLeft=(parseInt(activeLeft)-10)+"px";}
if(this.isPositionInRange(newLeft)==true){infos.scrollableContainer.setStyle({'left':newLeft});this.moveContainer.bind(this).delay(0.06,direction);}}else if(infos.clickBehaviour=="jump"){}}
this.isPositionInRange=function(newLeft){var posCalc=infos.dimensions.visibleContainer.width-parseInt(newLeft);var setNewPosition=true;if(posCalc>=parseInt(infos.dimensions.realScrollableContainer)){if(infos.endBehaviour=="stop")setNewPosition=false;}else if(parseInt(newLeft)>=0){if(infos.endBehaviour=="stop")setNewPosition=false;}
return setNewPosition;}
this.destroy=function(){var onEvent="click";if(infos.behaviour=="smooth")onEvent="keydown";infos.target.select(".previous")[0].observe(onEvent,infos.observe.gotoPrevious);infos.target.select(".next")[0].observe(onEvent,infos.observe.gotoNext);if(infos.behaviour=="smooth"){infos.target.select(".next")[0].stopObserve("keyup",infos.observe.keyup);infos.target.select(".previous")[0].stopObserve("keyup",infos.observe.keyup);}}
this.onMoveEvent=function(direction){}}
extendClass("Camao_ScrollableElement","Camao_Exception");var CAMAO_LIGHTBOX_DEFAULT_CLOSE_BUTTON_CLASS="camao_lightbox_close";var CAMAO_LIGHTBOX_DEFAULT_CLOSE_CHAR=Event.KEY_ESC;var CAMAO_LIGHTBOX_DEFAULT_SHAPE_BACKGROUND="#ccc";var CAMAO_LIGHTBOX_DEFAULT_OPACITY=0.5;var CAMAO_LIGHTBOX_USE_SHAPE=true;var CAMAO_LIGHTBOX_ELEMENT_ID="lightbox";var CAMAO_LIGHTBOX_SHAPE_ID="shape";var CAMAO_LIGHTBOX_POSITION="middle";function Camao_Lightbox(){var infos={'observe':{}};this.__construct=function(param){if(param)this.init(param);}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){this.createElements();this.setContent();this.createDoucmentEvents();this.resizeEvent();}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.getPossibleOptions=function(){return{'use_shape':'[Bool] de/activate the shape, default is true','lightbox_id':'[String] lightbox id, default is '+CAMAO_LIGHTBOX_ELEMENT_ID,'shape_id':'[String] shape id, default is '+CAMAO_LIGHTBOX_SHAPE_ID,'position':'[String] lightbox position, default is '+CAMAO_LIGHTBOX_POSITION+', possible [middle. mouse]','content':'[Dyn] accept HTML code, Request URI or DOM element','params':'[Dyn] params for the request'};}
this.validateOptions=function(){var status=true;if(typeof infos.use_shape=="undefined"){infos.use_shape=CAMAO_LIGHTBOX_USE_SHAPE
this.throwException(EXCEPTION_NOTIFICATION,"options.use_shape is undefined, we use '"+CAMAO_LIGHTBOX_USE_SHAPE+"'");}
if(!infos.lightbox_id){infos.lightbox_id=CAMAO_LIGHTBOX_ELEMENT_ID
this.throwException(EXCEPTION_NOTIFICATION,"options.lighbox_id is undefined, we use '"+CAMAO_LIGHTBOX_ELEMENT_ID+"'");}
if($(infos.lighbox_id)){this.throwException(EXCEPTION_ERROR,"options.lighbox_id '"+infos.lighbox_id+"' already in use!");status=false;}
if(infos.use_shape){if($(infos.shape_id)){this.throwException(EXCEPTION_ERROR,"options.shape_id '"+infos.lighbox_id+"' already in use!");status=false;}
if(!infos.shape_id){infos.shape_id=CAMAO_LIGHTBOX_SHAPE_ID
this.throwException(EXCEPTION_NOTIFICATION,"options.shape_id is undefined, we use '"+CAMAO_LIGHTBOX_SHAPE_ID+"'");}}
if(!infos.position){infos.position=CAMAO_LIGHTBOX_POSITION
this.throwException(EXCEPTION_NOTIFICATION,"options.position is undefined, we use '"+CAMAO_LIGHTBOX_POSITION+"'");}
if(typeof infos.opacity=="undefined"){infos.opacity=CAMAO_LIGHTBOX_DEFAULT_OPACITY
this.throwException(EXCEPTION_NOTIFICATION,"options.opacity is undefined, we use '"+CAMAO_LIGHTBOX_DEFAULT_OPACITY+"'");}
if(!infos.content){this.throwException(EXCEPTION_ERROR,"options.content is undefined!");status=false;}else{if(typeof infos.content=="string"){if((infos.content.indexOf("<")!=-1)&&(infos.content.indexOf(">")!=-1)){infos.content_type="html";this.throwException(EXCEPTION_NOTIFICATION,"options.content is identify as HTML Content");}else if(infos.content.indexOf("/")!=-1){infos.content_type="url";this.throwException(EXCEPTION_NOTIFICATION,"options.content is identify as Request URL");}else{infos.content_type="html";this.throwException(EXCEPTION_NOTIFICATION,"options.content is identify as Request html");}}else if(typeof infos.content=="object"){infos.content_type="dom";this.throwException(EXCEPTION_NOTIFICATION,"options.content is identify as Dom Element");}else{this.throwException(EXCEPTION_ERROR,"cant identify options.content!");status=false;}}
return status;}
this.createElements=function(){var body=$$("body")[0];infos.element_lightbox=new Element("div",{'id':infos.lightbox_id}).setStyle({'position':'absolute','zIndex':1});infos.element_lightbox.hide();body.appendChild(infos.element_lightbox);if(infos.use_shape){var usedHeight=typeof document.height=="undefined"?document.viewport.getHeight():document.height;if(usedHeight==1){usedHeight=document.viewport.getHeight()}
infos.element_shape=new Element("div",{'id':infos.shape_id}).setStyle({'width':document.viewport.getWidth()+'px','height':usedHeight+'px','top':'0px','left':'0px','position':'absolute'}).setOpacity(infos.opacity);if(infos.element_shape.getStyle("backgroundColor")=="transparent"){this.throwException(EXCEPTION_NOTIFICATION,"the shape is transparent! we use "+CAMAO_LIGHTBOX_DEFAULT_SHAPE_BACKGROUND+" as background color!");infos.element_shape.setStyle({'background':CAMAO_LIGHTBOX_DEFAULT_SHAPE_BACKGROUND});}
body.appendChild(infos.element_shape);}}
this.createDoucmentEvents=function(){infos.observe.keydown=this.keyDownEvent.bind(this);document.observe("keydown",infos.observe.keydown);infos.observe.resize=this.resizeEvent.bind(this);Event.observe(document.onresize?document:window,"resize",infos.observe.resize);infos.observe.scroll=this.scrollEvent.bind(this);document.observe("scroll",infos.observe.scroll);if(!infos.use_shape){infos.observe.mousedown=this.mouseDownEvent.bind(this);document.observe("mousedown",infos.observe.mousedown);}else{infos.element_shape.observe("click",this.destroy.bind(this));}}
this.setPosition=function(){var position=infos.position;if((position!="middle")&&(position!="mouse")){this.throwException(EXCEPTION_NOTIFICATION,"unknown position, use fallback to "+CAMAO_LIGHTBOX_POSITION);position=CAMAO_LIGHTBOX_POSITION;}
if(position=="middle"){Base.get("Camao_Position").onElementToScreenMiddle=function(){infos.element_lightbox.show();}.bind(this);Base.get("Camao_Position").setElementToScreenMiddle(infos.element_lightbox);}else if(position=="mouse"){Base.get("Camao_Position").setElementToMousePosition(infos.element_lightbox);}}
this.setContent=function(){if(infos.content_type=="html"){infos.element_lightbox.update(infos.content);this.createEvents();}else if(infos.content_type=="dom"){var newElement=infos.content;if(!newElement.visible())newElement.show();infos.element_lightbox.insert(newElement);this.createEvents();}else if(infos.content_type=="url"){new Ajax.Request(infos.content,{'parameters':infos.params||{},'method':'post','evalJS':true,'onSuccess':function(r){if(r.responseJSON){var json=r.responseJSON;if(!json.content){this.throwException(EXCEPTION_NOTIFICATION,"cant find content part in JSON response!");}else{infos.element_lightbox.update(json.content);}}else{infos.element_lightbox.update(r.responseText);}
this.createEvents();}.bind(this)});}}
this.createEvents=function(){infos.element_lightbox.select("."+CAMAO_LIGHTBOX_DEFAULT_CLOSE_BUTTON_CLASS).each(function(e){e.observe("click",this.destroy.bind(this));}.bind(this));this.onLightboxLoaded();}
this.keyDownEvent=function(e){if(e.which==CAMAO_LIGHTBOX_DEFAULT_CLOSE_CHAR){Event.stop(e);this.destroy();}}
this.resizeEvent=function(){this.setPosition();if(infos.use_shape){var usedHeight=typeof document.height=="undefined"?document.viewport.getHeight():document.height;if(usedHeight==1){usedHeight=document.viewport.getHeight()}
infos.element_shape.setStyle({'width':document.viewport.getWidth()+document.getScrollLeft()+'px','height':usedHeight+document.viewport.getScrollOffsets()[1]+'px'});}}
this.scrollEvent=function(){if(infos.resizedelay)window.clearTimeout(infos.resizedelay);infos.resizedelay=this.resizeEvent.bind(this).delay(0.2);}
this.mouseDownEvent=function(e){if(!$(e.target).up("#"+infos.lightbox_id))this.destroy();}
this.destroy=function(){if(infos.element_lightbox)infos.element_lightbox.hide();if(infos.element_shape)infos.element_shape.remove();document.stopObserving("keydown",infos.observe.keydown);document.stopObserving("scroll",infos.observe.scroll);Event.stopObserving(document.onresize?document:window,"resize",infos.observe.resize);if(infos.observ_mousedown)document.stopObserving("mousedown",infos.observe.mousedown);this.onLightboxDestroy();}
this.onLightboxLoaded=function(){}
this.onLightboxDestroy=function(){}}
extendClass("Camao_Lightbox","Camao_Exception");var FLASH_UPLOAD_URL="/upload";var FLASH_UPLOAD_SIZE_LIMIT="5 MB";function Camao_Upload(){var infos={'entries':new Array()};this.infos=infos;this.__construct=function(){}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){infos.dummy=new Element("img");infos.dummy.onerror=function(){this.throwException(EXCEPTION_ERROR,"options.upload_infos.button_image_url doesnt exists!");}.bind(this);if(typeof infos.upload_infos.button_width=="undefined"){infos.dummy.onload=function(){if((infos.dummy.width==0)||(infos.dummy.height==0)){this.throwException(EXCEPTION_ERROR,"cant get upload button image size, bug?!");}else{infos.upload_infos.button_width=infos.dummy.width;infos.upload_infos.button_height=infos.dummy.height;this.loadFlashUploader();}}.bind(this);}else{this.loadFlashUploader();}
infos.dummy.src=infos.upload_infos.button_image_url;}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.getPossibleOptions=function(){return{'use_queue':'[BOOL] de/activate the queue','target':'[Dom Element] from the queue','template':'[Dom Element] from the queue template','session_id':'[INT] PHP SessionID to handel the Upload correct','button_placeholder_id':'[Dom Element] the upload button placeholder','post_params':'[Object] define some post valiablen','upload_infos':{'upload_url':'[STRING] Upload URL','size_limit':'[INT] Maximum upload size / per file','allowed_file_types':'[STRING] allowed filetypes , sample *.jpg;*.png','button_image_url':'[STRING] url to the upload button'}};}
this.validateOptions=function(){var status=true;if(typeof infos.use_queue!="undefined"){if(!infos.target){this.throwException(EXCEPTION_ERROR,"options.target is undefined!");status=false;}
if(!infos.template){this.throwException(EXCEPTION_ERROR,"options.template is undefined!");status=false;}}else{infos.use_queue=false;}
if(!infos.session_id){this.throwException(EXCEPTION_ERROR,"options.session_id is undefined!");status=false;}
if(!infos.post_params){infos.post_params={}}
if(!infos.upload_infos){this.throwException(EXCEPTION_ERROR,"options.upload_infos is undefined!");status=false;}else{if(!infos.upload_infos.upload_url){infos.upload_infos.upload_url=FLASH_UPLOAD_URL;this.throwException(EXCEPTION_NOTIFICATION,"options.upload_infos.upload_url is undefined, we use "+FLASH_UPLOAD_URL);}
if(!infos.upload_infos.size_limit){infos.upload_infos.size_limit=FLASH_UPLOAD_SIZE_LIMIT;this.throwException(EXCEPTION_NOTIFICATION,"options.upload_infos.size_limit is undefined, we use "+FLASH_UPLOAD_SIZE_LIMIT);}
if(!infos.upload_infos.allowed_file_types){this.throwException(EXCEPTION_ERROR,"options.upload_infos.allowed_file_types is undefined!");status=false;}
if(!infos.upload_infos.button_image_url){this.throwException(EXCEPTION_ERROR,"options.upload_infos.button_image_url is undefined!");status=false;}
if(!infos.button_placeholder_id){this.throwException(EXCEPTION_ERROR,"options.button_placeholder_id is undefined!");status=false;}}
return status;}
this.loadFlashUploader=function(){Object.extend(infos.post_params,{"PHPSESSID":infos.session_id});infos.uploader=new SWFUpload({file_post_name:"flash_upload",post_params:infos.post_params,upload_url:infos.upload_infos.upload_url,flash_url:ROOT_JS+"/Camao/Ressources/Upload/swfupload.swf",file_size_limit:infos.upload_infos.size_limit,file_types:infos.upload_infos.allowed_file_types,file_types_description:"Upload",file_upload_limit:"100",file_queue_limit:"50",button_image_url:infos.upload_infos.button_image_url,button_placeholder_id:infos.button_placeholder_id,button_width:infos.upload_infos.button_width,button_height:infos.upload_infos.button_height,file_queued_handler:this.newFileQueued.bind(this),upload_start_handler:this.uploadStartEventHandler.bind(this),upload_success_handler:this.uploadSuccessEventHandler.bind(this),upload_progress_handler:this.uploadProgress.bind(this),upload_error_handler:this.uploadError.bind(this)});}
this.cleanup=function(){infos.target.update(" ");}
this.startUploadNow=function(){infos.uploader.startUpload();}
this.newFileQueued=function(fileObj){if(infos.use_queue){cloned=infos.template.cloneNode(true);cloned.id="upload_"+fileObj.index;cloned.select(".filename")[0].update(fileObj.name);cloned.select(".filesize")[0].update(fileObj.size);infos.target.appendChild(cloned);}
infos.entries.push(fileObj.index);this.onNewFileQueued(fileObj);}
this.uploadProgress=function(fileObj,bytesLoaded,bytesTotal){var percent=(100*bytesLoaded)/bytesTotal;percent=(percent>=100)?100:percent;this.onUploadProgess(fileObj,percent);}
this.uploadSuccessEventHandler=function(fileObj,response){this.onUploadSuccess(fileObj,response);infos.entries[infos.entries.indexOf(fileObj.index)]=" ";infos.entries=infos.entries.without(" ");if(infos.entries[0])this.startUploadNow();}
this.uploadStartEventHandler=function(fileObj){this.onUploadStartEventHandler();}
this.uploadError=function(file,errorCode,message){this.onUploadError(file,errorCode,message);switch(errorCode){case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:this.throwException(EXCEPTION_ERROR,"HTTP Error, maybe you have forgott to set the sessionID!");break;case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:this.throwException(EXCEPTION_ERROR,"Wrong Upload Url defined or wrong answer.");break;case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:this.throwException(EXCEPTION_ERROR,"Upload Failed.");break;case SWFUpload.UPLOAD_ERROR.IO_ERROR:this.throwException(EXCEPTION_ERROR,"I/O Error, source broken?!");break;case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:this.throwException(EXCEPTION_ERROR,"Security Error");break;case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:this.throwException(EXCEPTION_ERROR,"Upload limit exceeded");break;case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND:this.throwException(EXCEPTION_ERROR,"The file was not found");break;case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:this.throwException(EXCEPTION_ERROR,"File Validation Failed");break;case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:this.throwException(EXCEPTION_WARNING,"File upload stopped!");break;default:this.throwException(EXCEPTION_WARNING,"Unhandled Error: "+error_code);break;}}
this.onUploadSuccess=function(fileObj,response){}
this.onNewFileQueued=function(fileObj){if(!infos.use_queue){this.startUploadNow();}}
this.onUploadProgess=function(fileObj,percentDone){}
this.onUploadError=function(file,errorCode,message){}
this.onUploadStartEventHandler=function(){}}
extendClass("Camao_Upload","Camao_Exception");var SWFUpload;if(SWFUpload==undefined){SWFUpload=function(settings){this.initSWFUpload(settings);};}
SWFUpload.prototype.initSWFUpload=function(settings){try{this.customSettings={};this.settings=settings;this.eventQueue=[];this.movieName="SWFUpload_"+SWFUpload.movieCount++;this.movieElement=null;SWFUpload.instances[this.movieName]=this;this.initSettings();this.loadFlash();this.displayDebugInfo();}catch(ex){delete SWFUpload.instances[this.movieName];throw ex;}};SWFUpload.instances={};SWFUpload.movieCount=0;SWFUpload.version="2.2.0 2009-03-25";SWFUpload.QUEUE_ERROR={QUEUE_LIMIT_EXCEEDED:-100,FILE_EXCEEDS_SIZE_LIMIT:-110,ZERO_BYTE_FILE:-120,INVALID_FILETYPE:-130};SWFUpload.UPLOAD_ERROR={HTTP_ERROR:-200,MISSING_UPLOAD_URL:-210,IO_ERROR:-220,SECURITY_ERROR:-230,UPLOAD_LIMIT_EXCEEDED:-240,UPLOAD_FAILED:-250,SPECIFIED_FILE_ID_NOT_FOUND:-260,FILE_VALIDATION_FAILED:-270,FILE_CANCELLED:-280,UPLOAD_STOPPED:-290};SWFUpload.FILE_STATUS={QUEUED:-1,IN_PROGRESS:-2,ERROR:-3,COMPLETE:-4,CANCELLED:-5};SWFUpload.BUTTON_ACTION={SELECT_FILE:-100,SELECT_FILES:-110,START_UPLOAD:-120};SWFUpload.CURSOR={ARROW:-1,HAND:-2};SWFUpload.WINDOW_MODE={WINDOW:"window",TRANSPARENT:"transparent",OPAQUE:"opaque"};SWFUpload.completeURL=function(url){if(typeof(url)!=="string"||url.match(/^https?:\/\//i)||url.match(/^\//)){return url;}
var currentURL=window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:"");var indexSlash=window.location.pathname.lastIndexOf("/");if(indexSlash<=0){path="/";}else{path=window.location.pathname.substr(0,indexSlash)+"/";}
return path+url;};SWFUpload.prototype.initSettings=function(){this.ensureDefault=function(settingName,defaultValue){this.settings[settingName]=(this.settings[settingName]==undefined)?defaultValue:this.settings[settingName];};this.ensureDefault("upload_url","");this.ensureDefault("preserve_relative_urls",false);this.ensureDefault("file_post_name","Filedata");this.ensureDefault("post_params",{});this.ensureDefault("use_query_string",false);this.ensureDefault("requeue_on_error",false);this.ensureDefault("http_success",[]);this.ensureDefault("assume_success_timeout",0);this.ensureDefault("file_types","*.*");this.ensureDefault("file_types_description","All Files");this.ensureDefault("file_size_limit",0);this.ensureDefault("file_upload_limit",0);this.ensureDefault("file_queue_limit",0);this.ensureDefault("flash_url","swfupload.swf");this.ensureDefault("prevent_swf_caching",true);this.ensureDefault("button_image_url","");this.ensureDefault("button_width",1);this.ensureDefault("button_height",1);this.ensureDefault("button_text","");this.ensureDefault("button_text_style","color: #000000; font-size: 16pt;");this.ensureDefault("button_text_top_padding",0);this.ensureDefault("button_text_left_padding",0);this.ensureDefault("button_action",SWFUpload.BUTTON_ACTION.SELECT_FILES);this.ensureDefault("button_disabled",false);this.ensureDefault("button_placeholder_id","");this.ensureDefault("button_placeholder",null);this.ensureDefault("button_cursor",SWFUpload.CURSOR.ARROW);this.ensureDefault("button_window_mode",SWFUpload.WINDOW_MODE.WINDOW);this.ensureDefault("debug",false);this.settings.debug_enabled=this.settings.debug;this.settings.return_upload_start_handler=this.returnUploadStart;this.ensureDefault("swfupload_loaded_handler",null);this.ensureDefault("file_dialog_start_handler",null);this.ensureDefault("file_queued_handler",null);this.ensureDefault("file_queue_error_handler",null);this.ensureDefault("file_dialog_complete_handler",null);this.ensureDefault("upload_start_handler",null);this.ensureDefault("upload_progress_handler",null);this.ensureDefault("upload_error_handler",null);this.ensureDefault("upload_success_handler",null);this.ensureDefault("upload_complete_handler",null);this.ensureDefault("debug_handler",this.debugMessage);this.ensureDefault("custom_settings",{});this.customSettings=this.settings.custom_settings;if(!!this.settings.prevent_swf_caching){this.settings.flash_url=this.settings.flash_url+(this.settings.flash_url.indexOf("?")<0?"?":"&")+"preventswfcaching="+new Date().getTime();}
if(!this.settings.preserve_relative_urls){this.settings.upload_url=SWFUpload.completeURL(this.settings.upload_url);this.settings.button_image_url=SWFUpload.completeURL(this.settings.button_image_url);}
delete this.ensureDefault;};SWFUpload.prototype.loadFlash=function(){var targetElement,tempParent;if(document.getElementById(this.movieName)!==null){throw"ID "+this.movieName+" is already in use. The Flash Object could not be added";}
targetElement=document.getElementById(this.settings.button_placeholder_id)||this.settings.button_placeholder;if(targetElement==undefined){throw"Could not find the placeholder element: "+this.settings.button_placeholder_id;}
tempParent=document.createElement("div");tempParent.innerHTML=this.getFlashHTML();targetElement.parentNode.replaceChild(tempParent.firstChild,targetElement);if(window[this.movieName]==undefined){window[this.movieName]=this.getMovieElement();}};SWFUpload.prototype.getFlashHTML=function(){return['<object id="',this.movieName,'" type="application/x-shockwave-flash" data="',this.settings.flash_url,'" width="',this.settings.button_width,'" height="',this.settings.button_height,'" class="swfupload">','<param name="wmode" value="',this.settings.button_window_mode,'" />','<param name="movie" value="',this.settings.flash_url,'" />','<param name="quality" value="high" />','<param name="menu" value="false" />','<param name="allowScriptAccess" value="always" />','<param name="flashvars" value="'+this.getFlashVars()+'" />','</object>'].join("");};SWFUpload.prototype.getFlashVars=function(){var paramString=this.buildParamString();var httpSuccessString=this.settings.http_success.join(",");return["movieName=",encodeURIComponent(this.movieName),"&amp;uploadURL=",encodeURIComponent(this.settings.upload_url),"&amp;useQueryString=",encodeURIComponent(this.settings.use_query_string),"&amp;requeueOnError=",encodeURIComponent(this.settings.requeue_on_error),"&amp;httpSuccess=",encodeURIComponent(httpSuccessString),"&amp;assumeSuccessTimeout=",encodeURIComponent(this.settings.assume_success_timeout),"&amp;params=",encodeURIComponent(paramString),"&amp;filePostName=",encodeURIComponent(this.settings.file_post_name),"&amp;fileTypes=",encodeURIComponent(this.settings.file_types),"&amp;fileTypesDescription=",encodeURIComponent(this.settings.file_types_description),"&amp;fileSizeLimit=",encodeURIComponent(this.settings.file_size_limit),"&amp;fileUploadLimit=",encodeURIComponent(this.settings.file_upload_limit),"&amp;fileQueueLimit=",encodeURIComponent(this.settings.file_queue_limit),"&amp;debugEnabled=",encodeURIComponent(this.settings.debug_enabled),"&amp;buttonImageURL=",encodeURIComponent(this.settings.button_image_url),"&amp;buttonWidth=",encodeURIComponent(this.settings.button_width),"&amp;buttonHeight=",encodeURIComponent(this.settings.button_height),"&amp;buttonText=",encodeURIComponent(this.settings.button_text),"&amp;buttonTextTopPadding=",encodeURIComponent(this.settings.button_text_top_padding),"&amp;buttonTextLeftPadding=",encodeURIComponent(this.settings.button_text_left_padding),"&amp;buttonTextStyle=",encodeURIComponent(this.settings.button_text_style),"&amp;buttonAction=",encodeURIComponent(this.settings.button_action),"&amp;buttonDisabled=",encodeURIComponent(this.settings.button_disabled),"&amp;buttonCursor=",encodeURIComponent(this.settings.button_cursor)].join("");};SWFUpload.prototype.getMovieElement=function(){if(this.movieElement==undefined){this.movieElement=document.getElementById(this.movieName);}
if(this.movieElement===null){throw"Could not find Flash element";}
return this.movieElement;};SWFUpload.prototype.buildParamString=function(){var postParams=this.settings.post_params;var paramStringPairs=[];if(typeof(postParams)==="object"){for(var name in postParams){if(postParams.hasOwnProperty(name)){paramStringPairs.push(encodeURIComponent(name.toString())+"="+encodeURIComponent(postParams[name].toString()));}}}
return paramStringPairs.join("&amp;");};SWFUpload.prototype.destroy=function(){try{this.cancelUpload(null,false);var movieElement=null;movieElement=this.getMovieElement();if(movieElement&&typeof(movieElement.CallFunction)==="unknown"){for(var i in movieElement){try{if(typeof(movieElement[i])==="function"){movieElement[i]=null;}}catch(ex1){}}
try{movieElement.parentNode.removeChild(movieElement);}catch(ex){}}
window[this.movieName]=null;SWFUpload.instances[this.movieName]=null;delete SWFUpload.instances[this.movieName];this.movieElement=null;this.settings=null;this.customSettings=null;this.eventQueue=null;this.movieName=null;return true;}catch(ex2){return false;}};SWFUpload.prototype.displayDebugInfo=function(){this.debug(["---SWFUpload Instance Info---\n","Version: ",SWFUpload.version,"\n","Movie Name: ",this.movieName,"\n","Settings:\n","\t","upload_url:               ",this.settings.upload_url,"\n","\t","flash_url:                ",this.settings.flash_url,"\n","\t","use_query_string:         ",this.settings.use_query_string.toString(),"\n","\t","requeue_on_error:         ",this.settings.requeue_on_error.toString(),"\n","\t","http_success:             ",this.settings.http_success.join(", "),"\n","\t","assume_success_timeout:   ",this.settings.assume_success_timeout,"\n","\t","file_post_name:           ",this.settings.file_post_name,"\n","\t","post_params:              ",this.settings.post_params.toString(),"\n","\t","file_types:               ",this.settings.file_types,"\n","\t","file_types_description:   ",this.settings.file_types_description,"\n","\t","file_size_limit:          ",this.settings.file_size_limit,"\n","\t","file_upload_limit:        ",this.settings.file_upload_limit,"\n","\t","file_queue_limit:         ",this.settings.file_queue_limit,"\n","\t","debug:                    ",this.settings.debug.toString(),"\n","\t","prevent_swf_caching:      ",this.settings.prevent_swf_caching.toString(),"\n","\t","button_placeholder_id:    ",this.settings.button_placeholder_id.toString(),"\n","\t","button_placeholder:       ",(this.settings.button_placeholder?"Set":"Not Set"),"\n","\t","button_image_url:         ",this.settings.button_image_url.toString(),"\n","\t","button_width:             ",this.settings.button_width.toString(),"\n","\t","button_height:            ",this.settings.button_height.toString(),"\n","\t","button_text:              ",this.settings.button_text.toString(),"\n","\t","button_text_style:        ",this.settings.button_text_style.toString(),"\n","\t","button_text_top_padding:  ",this.settings.button_text_top_padding.toString(),"\n","\t","button_text_left_padding: ",this.settings.button_text_left_padding.toString(),"\n","\t","button_action:            ",this.settings.button_action.toString(),"\n","\t","button_disabled:          ",this.settings.button_disabled.toString(),"\n","\t","custom_settings:          ",this.settings.custom_settings.toString(),"\n","Event Handlers:\n","\t","swfupload_loaded_handler assigned:  ",(typeof this.settings.swfupload_loaded_handler==="function").toString(),"\n","\t","file_dialog_start_handler assigned: ",(typeof this.settings.file_dialog_start_handler==="function").toString(),"\n","\t","file_queued_handler assigned:       ",(typeof this.settings.file_queued_handler==="function").toString(),"\n","\t","file_queue_error_handler assigned:  ",(typeof this.settings.file_queue_error_handler==="function").toString(),"\n","\t","upload_start_handler assigned:      ",(typeof this.settings.upload_start_handler==="function").toString(),"\n","\t","upload_progress_handler assigned:   ",(typeof this.settings.upload_progress_handler==="function").toString(),"\n","\t","upload_error_handler assigned:      ",(typeof this.settings.upload_error_handler==="function").toString(),"\n","\t","upload_success_handler assigned:    ",(typeof this.settings.upload_success_handler==="function").toString(),"\n","\t","upload_complete_handler assigned:   ",(typeof this.settings.upload_complete_handler==="function").toString(),"\n","\t","debug_handler assigned:             ",(typeof this.settings.debug_handler==="function").toString(),"\n"].join(""));};SWFUpload.prototype.addSetting=function(name,value,default_value){if(value==undefined){return(this.settings[name]=default_value);}else{return(this.settings[name]=value);}};SWFUpload.prototype.getSetting=function(name){if(this.settings[name]!=undefined){return this.settings[name];}
return"";};SWFUpload.prototype.callFlash=function(functionName,argumentArray){argumentArray=argumentArray||[];var movieElement=this.getMovieElement();var returnValue,returnString;try{returnString=movieElement.CallFunction('<invoke name="'+functionName+'" returntype="javascript">'+__flash__argumentsToXML(argumentArray,0)+'</invoke>');returnValue=eval(returnString);}catch(ex){throw"Call to "+functionName+" failed";}
if(returnValue!=undefined&&typeof returnValue.post==="object"){returnValue=this.unescapeFilePostParams(returnValue);}
return returnValue;};SWFUpload.prototype.selectFile=function(){this.callFlash("SelectFile");};SWFUpload.prototype.selectFiles=function(){this.callFlash("SelectFiles");};SWFUpload.prototype.startUpload=function(fileID){this.callFlash("StartUpload",[fileID]);};SWFUpload.prototype.cancelUpload=function(fileID,triggerErrorEvent){if(triggerErrorEvent!==false){triggerErrorEvent=true;}
this.callFlash("CancelUpload",[fileID,triggerErrorEvent]);};SWFUpload.prototype.stopUpload=function(){this.callFlash("StopUpload");};SWFUpload.prototype.getStats=function(){return this.callFlash("GetStats");};SWFUpload.prototype.setStats=function(statsObject){this.callFlash("SetStats",[statsObject]);};SWFUpload.prototype.getFile=function(fileID){if(typeof(fileID)==="number"){return this.callFlash("GetFileByIndex",[fileID]);}else{return this.callFlash("GetFile",[fileID]);}};SWFUpload.prototype.addFileParam=function(fileID,name,value){return this.callFlash("AddFileParam",[fileID,name,value]);};SWFUpload.prototype.removeFileParam=function(fileID,name){this.callFlash("RemoveFileParam",[fileID,name]);};SWFUpload.prototype.setUploadURL=function(url){this.settings.upload_url=url.toString();this.callFlash("SetUploadURL",[url]);};SWFUpload.prototype.setPostParams=function(paramsObject){this.settings.post_params=paramsObject;this.callFlash("SetPostParams",[paramsObject]);};SWFUpload.prototype.addPostParam=function(name,value){this.settings.post_params[name]=value;this.callFlash("SetPostParams",[this.settings.post_params]);};SWFUpload.prototype.removePostParam=function(name){delete this.settings.post_params[name];this.callFlash("SetPostParams",[this.settings.post_params]);};SWFUpload.prototype.setFileTypes=function(types,description){this.settings.file_types=types;this.settings.file_types_description=description;this.callFlash("SetFileTypes",[types,description]);};SWFUpload.prototype.setFileSizeLimit=function(fileSizeLimit){this.settings.file_size_limit=fileSizeLimit;this.callFlash("SetFileSizeLimit",[fileSizeLimit]);};SWFUpload.prototype.setFileUploadLimit=function(fileUploadLimit){this.settings.file_upload_limit=fileUploadLimit;this.callFlash("SetFileUploadLimit",[fileUploadLimit]);};SWFUpload.prototype.setFileQueueLimit=function(fileQueueLimit){this.settings.file_queue_limit=fileQueueLimit;this.callFlash("SetFileQueueLimit",[fileQueueLimit]);};SWFUpload.prototype.setFilePostName=function(filePostName){this.settings.file_post_name=filePostName;this.callFlash("SetFilePostName",[filePostName]);};SWFUpload.prototype.setUseQueryString=function(useQueryString){this.settings.use_query_string=useQueryString;this.callFlash("SetUseQueryString",[useQueryString]);};SWFUpload.prototype.setRequeueOnError=function(requeueOnError){this.settings.requeue_on_error=requeueOnError;this.callFlash("SetRequeueOnError",[requeueOnError]);};SWFUpload.prototype.setHTTPSuccess=function(http_status_codes){if(typeof http_status_codes==="string"){http_status_codes=http_status_codes.replace(" ","").split(",");}
this.settings.http_success=http_status_codes;this.callFlash("SetHTTPSuccess",[http_status_codes]);};SWFUpload.prototype.setAssumeSuccessTimeout=function(timeout_seconds){this.settings.assume_success_timeout=timeout_seconds;this.callFlash("SetAssumeSuccessTimeout",[timeout_seconds]);};SWFUpload.prototype.setDebugEnabled=function(debugEnabled){this.settings.debug_enabled=debugEnabled;this.callFlash("SetDebugEnabled",[debugEnabled]);};SWFUpload.prototype.setButtonImageURL=function(buttonImageURL){if(buttonImageURL==undefined){buttonImageURL="";}
this.settings.button_image_url=buttonImageURL;this.callFlash("SetButtonImageURL",[buttonImageURL]);};SWFUpload.prototype.setButtonDimensions=function(width,height){this.settings.button_width=width;this.settings.button_height=height;var movie=this.getMovieElement();if(movie!=undefined){movie.style.width=width+"px";movie.style.height=height+"px";}
this.callFlash("SetButtonDimensions",[width,height]);};SWFUpload.prototype.setButtonText=function(html){this.settings.button_text=html;this.callFlash("SetButtonText",[html]);};SWFUpload.prototype.setButtonTextPadding=function(left,top){this.settings.button_text_top_padding=top;this.settings.button_text_left_padding=left;this.callFlash("SetButtonTextPadding",[left,top]);};SWFUpload.prototype.setButtonTextStyle=function(css){this.settings.button_text_style=css;this.callFlash("SetButtonTextStyle",[css]);};SWFUpload.prototype.setButtonDisabled=function(isDisabled){this.settings.button_disabled=isDisabled;this.callFlash("SetButtonDisabled",[isDisabled]);};SWFUpload.prototype.setButtonAction=function(buttonAction){this.settings.button_action=buttonAction;this.callFlash("SetButtonAction",[buttonAction]);};SWFUpload.prototype.setButtonCursor=function(cursor){this.settings.button_cursor=cursor;this.callFlash("SetButtonCursor",[cursor]);};SWFUpload.prototype.queueEvent=function(handlerName,argumentArray){if(argumentArray==undefined){argumentArray=[];}else if(!(argumentArray instanceof Array)){argumentArray=[argumentArray];}
var self=this;if(typeof this.settings[handlerName]==="function"){this.eventQueue.push(function(){this.settings[handlerName].apply(this,argumentArray);});setTimeout(function(){self.executeNextEvent();},0);}else if(this.settings[handlerName]!==null){throw"Event handler "+handlerName+" is unknown or is not a function";}};SWFUpload.prototype.executeNextEvent=function(){var f=this.eventQueue?this.eventQueue.shift():null;if(typeof(f)==="function"){f.apply(this);}};SWFUpload.prototype.unescapeFilePostParams=function(file){var reg=/[$]([0-9a-f]{4})/i;var unescapedPost={};var uk;if(file!=undefined){for(var k in file.post){if(file.post.hasOwnProperty(k)){uk=k;var match;while((match=reg.exec(uk))!==null){uk=uk.replace(match[0],String.fromCharCode(parseInt("0x"+match[1],16)));}
unescapedPost[uk]=file.post[k];}}
file.post=unescapedPost;}
return file;};SWFUpload.prototype.testExternalInterface=function(){try{return this.callFlash("TestExternalInterface");}catch(ex){return false;}};SWFUpload.prototype.flashReady=function(){var movieElement=this.getMovieElement();if(!movieElement){this.debug("Flash called back ready but the flash movie can't be found.");return;}
this.cleanUp(movieElement);this.queueEvent("swfupload_loaded_handler");};SWFUpload.prototype.cleanUp=function(movieElement){try{if(this.movieElement&&typeof(movieElement.CallFunction)==="unknown"){this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)");for(var key in movieElement){try{if(typeof(movieElement[key])==="function"){movieElement[key]=null;}}catch(ex){}}}}catch(ex1){}
window["__flash__removeCallback"]=function(instance,name){try{if(instance){instance[name]=null;}}catch(flashEx){}};};SWFUpload.prototype.fileDialogStart=function(){this.queueEvent("file_dialog_start_handler");};SWFUpload.prototype.fileQueued=function(file){file=this.unescapeFilePostParams(file);this.queueEvent("file_queued_handler",file);};SWFUpload.prototype.fileQueueError=function(file,errorCode,message){file=this.unescapeFilePostParams(file);this.queueEvent("file_queue_error_handler",[file,errorCode,message]);};SWFUpload.prototype.fileDialogComplete=function(numFilesSelected,numFilesQueued,numFilesInQueue){this.queueEvent("file_dialog_complete_handler",[numFilesSelected,numFilesQueued,numFilesInQueue]);};SWFUpload.prototype.uploadStart=function(file){file=this.unescapeFilePostParams(file);this.queueEvent("return_upload_start_handler",file);};SWFUpload.prototype.returnUploadStart=function(file){var returnValue;if(typeof this.settings.upload_start_handler==="function"){file=this.unescapeFilePostParams(file);returnValue=this.settings.upload_start_handler.call(this,file);}else if(this.settings.upload_start_handler!=undefined){throw"upload_start_handler must be a function";}
if(returnValue===undefined){returnValue=true;}
returnValue=!!returnValue;this.callFlash("ReturnUploadStart",[returnValue]);};SWFUpload.prototype.uploadProgress=function(file,bytesComplete,bytesTotal){file=this.unescapeFilePostParams(file);this.queueEvent("upload_progress_handler",[file,bytesComplete,bytesTotal]);};SWFUpload.prototype.uploadError=function(file,errorCode,message){file=this.unescapeFilePostParams(file);this.queueEvent("upload_error_handler",[file,errorCode,message]);};SWFUpload.prototype.uploadSuccess=function(file,serverData,responseReceived){file=this.unescapeFilePostParams(file);this.queueEvent("upload_success_handler",[file,serverData,responseReceived]);};SWFUpload.prototype.uploadComplete=function(file){file=this.unescapeFilePostParams(file);this.queueEvent("upload_complete_handler",file);};SWFUpload.prototype.debug=function(message){this.queueEvent("debug_handler",message);};SWFUpload.prototype.debugMessage=function(message){if(this.settings.debug){var exceptionMessage,exceptionValues=[];if(typeof message==="object"&&typeof message.name==="string"&&typeof message.message==="string"){for(var key in message){if(message.hasOwnProperty(key)){exceptionValues.push(key+": "+message[key]);}}
exceptionMessage=exceptionValues.join("\n")||"";exceptionValues=exceptionMessage.split("\n");exceptionMessage="EXCEPTION: "+exceptionValues.join("\nEXCEPTION: ");SWFUpload.Console.writeLine(exceptionMessage);}else{SWFUpload.Console.writeLine(message);}}};SWFUpload.Console={};SWFUpload.Console.writeLine=function(message){var console,documentForm;try{console=document.getElementById("SWFUpload_Console");if(!console){documentForm=document.createElement("form");document.getElementsByTagName("body")[0].appendChild(documentForm);console=document.createElement("textarea");console.id="SWFUpload_Console";console.style.fontFamily="monospace";console.setAttribute("wrap","off");console.wrap="off";console.style.overflow="auto";console.style.width="700px";console.style.height="350px";console.style.margin="5px";documentForm.appendChild(console);}
console.value+=message+"\n";console.scrollTop=console.scrollHeight-console.clientHeight;}catch(ex){alert("Exception: "+ex.name+" Message: "+ex.message);}};function Camao_Table(){var infos={};this.__construct=function(options){this.init(options);}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){if(infos.use_navigation){infos.Camao_NavigationObj=Base.get("Camao_Navigation",true,{'target':infos.target,'header_selection_allowed':true});}
this.createEvents();}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.reinit=function(){if(infos.use_navigation){infos.Camao_NavigationObj.reinit({'target':infos.target});}}
this.createEvents=function(){if(infos.use_navigation){infos.Camao_NavigationObj.onSelectEntryEvent=function(node){this.onSelectEntryEvent(node);}.bind(this);infos.Camao_NavigationObj.onEntryDblClickEvent=function(node){this.onEntryDblClickEvent(node);}.bind(this);infos.Camao_NavigationObj.onEntryEnterClickEvent=function(node){this.onEntryEnterClickEvent(node);}.bind(this);}}
this.destroy=function(){infos.Camao_NavigationObj.destroy();}
this.getPossibleOptions=function(){return{};}
this.validateOptions=function(){var status=true;if(!infos.target){this.throwException(EXCEPTION_ERROR,"options.target is undefined!");status=false;}
if(typeof infos.use_navigation=="undefined"){this.throwException(EXCEPTION_ERROR,"options.use_navigation is undefined, we set it to false!");infos.use_navigation=false;}
if(typeof infos.alternate=="undefined"){this.throwException(EXCEPTION_NOTIFICATION,"options.alternate is undefined, we set it to false!");}
if(typeof infos.mark_first_row=="undefined"){this.throwException(EXCEPTION_NOTIFICATION,"options.mark_first_row is undefined, we set it to false!");}
if(typeof infos.mark_last_row=="undefined"){this.throwException(EXCEPTION_NOTIFICATION,"options.mark_last_row is undefined, we set it to false!");}
return status;}
this.addRow=function(){var options=(typeof arguments[0]!="undefined")?arguments[0]:{};var tr=new Element("tr");var row_count=infos.target.select("tr")[0].select("td,th").length;for(var i=0;i<row_count;i++){var td=new Element(options.head?"th":"td");if((typeof options.content!="undefined")&&(typeof options.content[i]!="undefined")){td.update(options.content[i]);}else{td.update("&nbsp;");}
td.addClassName(options.type||"text");tr.appendChild(td);}
if(typeof options.position!="undefined"){infos.target.select("tbody tr")[options.position].insert({after:tr});}else{infos.target.select("tbody")[0].appendChild(tr);}
infos.Camao_NavigationObj.reinit();this.onAddRow(tr);}
this.removeRow=function(tr){this.onRemoveRow(tr);tr.remove();}
this.moveRowUp=function(tr){tr.previous().insert({'before':tr});}
this.moveRowDown=function(tr){tr.next().insert({'after':tr});}
this.addColumn=function(){var options=(typeof arguments[0]!="undefined")?arguments[0]:{};var i=0;infos.target.select("tr").each(function(tr){var td=new Element(options.head?"th":"td");if((typeof options.content!="undefined")&&(typeof options.content[i]!="undefined")){td.update(options.content[i]);}else{td.update("&nbsp;");}
td.addClassName(options.type||"text");if(typeof options.position!="undefined"){tr.select("td,th")[options.position].insert({before:td});}else{tr.appendChild(td);}
i++;});infos.Camao_NavigationObj.reinit();this.onAddColumn();}
this.removeColumn=function(number){this.onRemoveColumn(number);infos.target.select("tr").each(function(tr){tr.select("td,th")[number].remove();});}
this.setRowAsHeader=function(options){if(typeof options.position=="undefined"){this.throwException(EXCEPTION_ERROR,"options.position is undefined, we cant set the header!");}else{var tr=infos.target.select("tr")[options.position];var values=[];tr.select("td").each(function(td){values.push({'html':td.innerHTML}).addClassName(td.className);td.remove();}.bind(this));values.each(function(html){tr.appendChild(new Element("th",{'class':eval("html.class")}).update(html.html));}.bind(this));}}
this.setColumnAsHeader=function(options){if(typeof options.position=="undefined"){this.throwException(EXCEPTION_ERROR,"options.position is undefined, we cant set the header!");}else{infos.target.select("tr").each(function(tr){var td=tr.select("th,td")[options.position];td.up().replaceChild(new Element("th").addClassName(td.className).update(td.innerHTML),td);});}}
this.toJSON=function(){return Object.toJSON(table2object(infos.target));}
this.setJSON=function(json){var mytable=object2table(json.evalJSON());if(infos.alternate){var trs=mytable.select("tr");var setOdd=false;for(var i=0;i<trs.length;i++){if(setOdd==false){trs[i].addClassName("even");setOdd=true;}else{trs[i].addClassName("odd");setOdd=false;}}}
if(infos.mark_first_row){var trs=mytable.select("tr");if(trs.length>0)
trs[0].addClassName("first");}
if(infos.mark_last_row){var trs=mytable.select("tr");if(trs.length>0)
trs[trs.length-1].addClassName("last");}
mytable.border=0;var a=$(infos.target).up();infos.target.up().replaceChild(mytable,infos.target);infos.target=mytable;this.reinit();}
this.onAddRow=function(tr){}
this.onAddColumn=function(){}
this.onRemoveRow=function(tr){}
this.onRemoveColumn=function(number){}
this.onEditEvent=function(node){}
this.onEntryDblClickEvent=function(node){}
this.onEntryEnterClickEvent=function(node){}
this.onSelectEntryEvent=function(node){}}
extendClass("Camao_Table","Camao_Exception");var CAMAO_VALIDATION_ERROR_TO_SHORT=0;var CAMAO_VALIDATION_ERROR_TO_LONG=1;var CAMAO_VALIDATION_ERROR_TO_LOWER=2;var CAMAO_VALIDATION_ERROR_TO_GREATER=3;var CAMAO_VALIDATION_ERROR_INVALID_CHARS=4;var CAMAO_VALIDATION_ERROR_NOT_CHECKED=5;function Camao_Validation(){var infos={valid:{'text':/^[a-zA-ZÄÖÜäöüß.,\-:/\n_]+$/,'numbers':/^[0-9.,]+$/,'time':/^[0-9:]+$/,'textNumbers':/^[a-zA-Z0-9ÄÖÜäöüß.,\-:/\n_]+$/,'email':/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/,'phone':/^[0-9\\ /+-]+$/}};this.__construct=function(param){}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.getValidClasses=function(){var result=[];for(var i in infos.valid){result.push(i);}
result.push("*");return result;}
this.getPossibleOptions=function(){return{'void':'[void] this class doesnt need any options'};}
this.validateOptions=function(){var status=true;return status;}
this.validate=function(string,type,validation_options){if(validation_options.type){if(validation_options.type=="range"){if(typeof string=="string"){if(validation_options.min&&string.length<parseInt(validation_options.min))return CAMAO_VALIDATION_ERROR_TO_SHORT;if(validation_options.max&&string.length>parseInt(validation_options.max))return CAMAO_VALIDATION_ERROR_TO_LONG;}else{if(validation_options.min&&parseInt(string)<parseInt(validation_options.min))return CAMAO_VALIDATION_ERROR_TO_LOWER;if(validation_options.max&&parseInt(string)>parseInt(validation_options.max))return CAMAO_VALIDATION_ERROR_TO_GREATER;}}else if(validation_options.type=="greater"){if(typeof string=="string"){if(validation_options.value&&string.length<parseInt(validation_options.value))return CAMAO_VALIDATION_ERROR_TO_SHORT;}else{if(validation_options.value&&parseInt(string)<parseInt(validation_options.value))return CAMAO_VALIDATION_ERROR_TO_LOWER;}}else if(validation_options.type=="lower"){if(typeof string=="string"){if(validation_options.value&&string.length>parseInt(validation_options.value))return CAMAO_VALIDATION_ERROR_TO_LONG;}else{if(validation_options.value&&parseInt(string)>parseInt(validation_options.value))return CAMAO_VALIDATION_ERROR_TO_GREATER;}}}
if(eval("typeof infos.valid."+type)=="undefined"){this.throwException(EXCEPTION_ERROR,"Invalid type requested ! "+type);return false;}else{if(eval("infos.valid."+type+".test(string)")){return true;}else{return CAMAO_VALIDATION_ERROR_INVALID_CHARS;}}}}
extendClass("Camao_Validation","Camao_Exception");var ACTIVE_WYSIWYG=[];var CAMAO_API_REQUEST_URL="/sitepannel/handler";var CAMAO_API_DEFAULT_LANGUAGE="de_DE";var VIEW_MODE="live";function Camao_Api(){var infos={};this.__construct=function(param){infos.structure={messages:{},options:{},data:{},inline:{elements:[],containers:[]},sitepannels:[]}
infos.structure.options.document_id=param.document_id||0;infos.structure.options.language=param.language||CAMAO_API_DEFAULT_LANGUAGE;infos.response=clone(infos.structure);this.addSitepannelRequest("root",{'options':{'action':'load','id':'sitepannel'}});infos.way_to_tree=param.way_to_tree;this.sendRequest();Base.get("Camao_Elements");Base.get("Camao_Containers");}
this.getDocumentId=function(){return infos.response.options.document_id;}
this.getLanguage=function(){return infos.response.options.language;}
this.wayToTree=function(){return infos.way_to_tree;}
this.handleResponse=function(response){var json=response.responseText.evalJSON();try{if(json["sitepannels"])Base.get("Camao_Sitepannel").handleResponse(json["sitepannels"]);if(json["options"]){if(json["options"].action=="reload"){window.location.href=(json["options"].url)?(json["options"].url):window.location.href.replace("#","");}}}catch(e){console.log(e);}}
this.startRequestTimeout=function(){if(infos.requestTimeout)window.clearTimeout(infos.requestTimeout);infos.requestTimeout=this.sendRequest.delay(1);}
this.addContainerRequest=function(options){infos.response.inline.containers.push(options);this.sendRequest();}
this.addElementRequest=function(options){infos.response.inline.elements.push(options);this.sendRequest();}
this.addModulRequest=function(sitepannelId,options){var sitepannel=this.getSitepannelByIdOrCreateIt(sitepannelId);sitepannel.content.push(options);this.sendRequest();}
this.addSitepannelRequest=function(target,data){if(target=="root"){infos.response.sitepannels.push(data);}else{var sitepannel=this.getSitepannelByIdOrCreateIt(target);sitepannel.content.push(data);}
this.sendRequest();}
this.getSitepannelByIdOrCreateIt=function(sitepannelId){for(var i=0;i<infos.response.sitepannels.length;i++){var sitepannel=infos.response.sitepannels[i];if((sitepannel.options)&&(sitepannel.options.id)){if(sitepannel.options.id==sitepannelId)return sitepannel;}}
this.addSitepannelRequest("root",{'options':{'id':sitepannelId},'content':[]});return this.getSitepannelByIdOrCreateIt(sitepannelId);}
this.sendRequest=function(){if(infos.sendTimeout)window.clearTimeout(infos.sendTimeout);infos.sendTimeout=this.sendRequestDelay.bind(this).delay(0.1);}
this.sendRequestDelay=function(){new Ajax.Request(CAMAO_API_REQUEST_URL,{'parameters':{'data':Object.toJSON(infos.response)},'method':'post','evalJS':true,'onCreate':function(){this.showShape();}.bind(this),'onSuccess':function(transport){this.hideShape();this.handleResponse(transport);}.bind(this)});infos.response=clone(infos.structure);}
this.showShape=function(){if(typeof infos.element_shape=="undefined"){infos.element_shape=new Element("div").setStyle({'width':'50px','height':'50px','top':'-100px','left':'-100px','position':'absolute','background':"url('/system/Wait_small.gif') 100% 100% no-repeat",'zIndex':1000});$$("body")[0].appendChild(infos.element_shape);var Camao_MouseEventObj=Base.get("Camao_MouseEvent");Camao_MouseEventObj.init();Camao_MouseEventObj.onMouseMoveEvent=function(e){if(infos.element_shape.visible()){infos.element_shape.setStyle({'top':Base.get("Camao_MouseEvent").getPosition().y-15+"px",'left':Base.get("Camao_MouseEvent").getPosition().x-15+"px"});}}.bind(this)}
infos.element_shape.show();}
this.hideShape=function(){infos.element_shape.hide();}}
var CAMAO_TREE_SELECTED_NODE_CLASS="selected";function Camao_Tree(){var infos={};this.__construct=function(options){this.init(options);}
this.init=function(options){Object.extend(infos,options);if(this.validateOptions()){this.getTree(0);}else{this.throwException(EXCEPTION_ERROR,"Function stops here. The options are not valid");}}
this.getPossibleOptions=function(){return{};}
this.validateOptions=function(){var status=true;if(!infos.target){this.throwException(EXCEPTION_ERROR,"options.target is undefined!");status=false;}
if(!infos.sitepannelId){this.throwException(EXCEPTION_ERROR,"options.sitepannelId is undefined!");status=false;}
if(!infos.modulId){this.throwException(EXCEPTION_ERROR,"options.modulId is undefined!");status=false;}
return status;}
this.getTree=function(rootId){Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'get_tree','tree_root_id':rootId,'id':infos.modulId}});}
this.createNode=function(parent_node_id,after_node_id){Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'create_node','id':infos.modulId,'parent_node_id':parent_node_id,'after_node_id':after_node_id}});}
this.duplicateNode=function(){Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'duplicate_node','node_id':infos.active_node.node_id,'id':infos.modulId}});}
this.deleteNode=function(){Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'delete_node','node_id':infos.active_node.node_id,'id':infos.modulId}});}
this.moveNode=function(parent_node_id,after_node_id){Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'move_node','id':"Sitemap",'node_id':infos.active_node.node_id,'parent_node_id':parent_node_id,'after_node_id':after_node_id}});}
this.createTree=function(sitepannelId,modul){var way=Base.get("Camao_Api").wayToTree();var ul=new Element("ul").addClassName("documentTree");modul.data.content.each(function(node){var li=new Element("li",{'id':'node_'+node.node_id}).addClassName((node.childCount>0)?'button folder':'button page');var nodeName=new Element("span").update(node.node_name||"Unknown");if(way.indexOf(node.node_id)!=-1){infos.active_node=node;if(node.childCount>0)this.getTree(node.node_id);}
if(node.childCount>0){var handler=new Element("span").addClassName("icon_hasChild").update("+");li.appendChild(handler);handler.observe("click",this.handleClickEvents.bind(this,node.node_id));handler.setStyle({'cursor':'pointer'});}
li.appendChild(nodeName);nodeName.observe("click",this.openDocumentEvent.bind(this,node.node_url));nodeName.setStyle({'cursor':'pointer'});ul.appendChild(li);}.bind(this));if(MODUL_SITEMAP_MODE=="move"){Base.get("Camao_Modul_Sitemap").setUlAsTargetForMove(ul,true);}else if(MODUL_SITEMAP_MODE=="new"){Base.get("Camao_Modul_Sitemap").setUlAsTargetForNew(ul,true);}
if($('node_'+modul.data.options.parent_node_id)){$('node_'+modul.data.options.parent_node_id).appendChild(ul);}else if(modul.data.options.parent_node_id==0){infos.target.appendChild(ul);}}
this.selectActiveNode=function(){var way=Base.get("Camao_Api").wayToTree();var last=way.last();if($("node_"+last))$("node_"+last).addClassName(CAMAO_TREE_SELECTED_NODE_CLASS);}
this.handleClickEvents=function(node_id){var node=$("node_"+node_id);if(node.select("li").length>0){node.select("ul")[0].toggle();}else{this.getTree(node_id);}}
this.openDocumentEvent=function(node_url){window.location=node_url;}}
extendClass("Camao_Hover","Camao_Exception");var CAMAO_SITEPANNEL_DEFAULT_WIDTH=300;function Camao_Sitepannel(){var infos={};this.__contruct=function(){}
this.handleResponse=function(response){for(var i in response){var sitepannel=response[i];if(typeof sitepannel=="object"){if(sitepannel.options&&sitepannel.options.action=="load"){if(sitepannel.template){this.createSitepannel(sitepannel);}}
if((sitepannel.content)&&(sitepannel.content.length>0)){Base.get("Camao_Modul").handleResponse(sitepannel.options.id,sitepannel.content);}}}}
this.createSitepannel=function(sitepannel){var sitepannelContainer=new Element("div");sitepannelContainer.id=sitepannel.options.id;sitepannelContainer.update(sitepannel.template);$$("body")[0].appendChild(sitepannelContainer);sitepannelContainer.setStyle({'width':(sitepannel.options.width||CAMAO_SITEPANNEL_DEFAULT_WIDTH)+"px"});}}
extendClass("Camao_Sitepannel","Camao_Exception");function Camao_Elements(){var infos={};this.__construct=function(){this.createEvents();}
this.createEvents=function(){$$(".element-menu-layer").observe("click",this.menuLayerClickHandler.bind(this));$$(".element").draggable({ghosting:true,revert:true,handle:'drag',onStart:function(){if(VIEW_MODE=="live")Base.get("Camao_Modul_Mode").setViewAsEdit();$$("div.dropzone_element").show();},onEnd:function(){$$("div.dropzone_element").hide();}});}
this.edit=function(modul){var node=$("element_"+modul.options.node_id);node.down(".content").update(modul.data.template);node.down(".normal-mode").hide();node.down(".edit-mode").show();for(var i in modul.data.content){var foundNodes=node.select('[name="'+i+'"]');if(foundNodes.length>0){if(foundNodes[0].type=="checkbox"){if(modul.data.content[i]=="on"){foundNodes[0].checked=true;}else{foundNodes[0].checked=false;}}else{foundNodes[0].value=modul.data.content[i];}}}
node.select(".camaoUploadField").each(function(e){var Camao_UploadObj=Base.get("Camao_Upload",true);Camao_UploadObj.init({'container':node,'session_id':Base.get("Camao_Cookie").getCookie("mSID"),'button_placeholder_id':e.id,'post_params':{'attribute_name':e.up().className,'node_id':modul.options.node_id},'upload_infos':{'button_width':40,'button_height':20,'allowed_file_types':"*",'button_image_url':'/system/dummy/upload.jpg','upload_url':"/site/upload"}});Camao_UploadObj.onUploadSuccess=function(fileObj,response){response=response.evalJSON();if(this.infos.button_placeholder_id=="camaoUploadField_element_head_headline"){$(this.infos.container).select(".camaoUploadField_element_headline_image")[0].src="/thumb_BinaryStorage_"+response[0]+"_not_100x.jpg";$(this.infos.container).select('input[name="asset_id_headline"]')[0].value=response[0];}else if(this.infos.button_placeholder_id=="camaoUploadField_element_head_keyvisual"){$(this.infos.container).select(".camaoUploadField_element_keyvisual_image")[0].src="/thumb_BinaryStorage_"+response[0]+"_not_100.jpg";$(this.infos.container).select('input[name="asset_id_keyvisual"]')[0].value=response[0];}else if(this.infos.button_placeholder_id=="camaoUploadField_element_image_slider"){window.newImageUploaded(response[0]);}else if(this.infos.button_placeholder_id=="camaoUploadField_element_custom_width_image"){$(this.infos.container).select(".camaoUploadField_element_image")[0].src="/thumb_BinaryStorage_"+response[0]+"_fcp_200x.jpg";$(this.infos.container).select('input[name="asset_id"]')[0].value=response[0];}else{var mywidth=$(this.infos.container).up(".layoutColumnInner").getDimensions().width;$(this.infos.container).select(".camaoUploadField_element_image")[0].src="/thumb_BinaryStorage_"+response[0]+"_fcp_"+mywidth+"x.jpg";$(this.infos.container).select('input[name="asset_id"]')[0].value=response[0];}}});}
this.rerender=function(modul){var temp_node=new Element("div").update(modul.data.content);$$("body")[0].appendChild(temp_node);var node=$("element_"+modul.options.node_id);node.up().replaceChild(temp_node,node);temp_node.select(".element-menu-layer").observe("click",this.menuLayerClickHandler.bind(this));if(VIEW_MODE!="live"){temp_node.select(".element-menu-layer").show();temp_node.down(".normal-mode").show();temp_node.down(".edit-mode").hide();}}
this.menuLayerClickHandler=function(myEvent){var target=$(myEvent.target);var node_id=(typeof target.up!="undefined")?target.up(".element").id.replace("element_",""):false;switch(target.className){case'edit':Base.get("Camao_Api").addModulRequest("sitepannel_1",{'options':{'action':'edit','id':"Element",'node_id':node_id}});break;case'delete':$("popup-warning").select(".content")[0].update(dic_sitepanel_modul_element_delete_confirm);$("popup-warning").select(".button-ok")[0].stopObserving("click");$("popup-warning").select(".button-ok")[0].observe("click",function(node_id){Base.get("Camao_Api").addModulRequest("sitepannel_1",{'options':{'action':'delete','id':"Element",'node_id':node_id}});$("element_"+node_id).previous(".dropzone").remove();$("element_"+node_id).remove();if(Prototype.Browser.IE){window.setTimeout("window.location.href = window.location.href",100);}}.bind(this,node_id));Base.get("Camao_Lightbox",true,{"content":$("popup-warning"),"use_shape":true,"lightbox_id":"control_lightbox","shape_id":"control_shape","opacity":.3});break;case'save':if(ACTIVE_WYSIWYG.length>0){ACTIVE_WYSIWYG.each(function(e){if($("element_"+node_id).select('textarea[name="node_content"]')[0]==e.content){e.content.value=e.editor.getData();e.editor.destroy();}});}
if(typeof save_table!="undefined"&&save_table==true){var table_json=Camao_TableObj.toJSON();$("element_"+node_id).select('input[name="table_json"]')[0].value=table_json;Camao_TableObj.destroy();}
var formdata=form2object(target.up(".element").select("form")[0]);Base.get("Camao_Api").addModulRequest("sitepannel_1",{'options':{'action':'save','id':"Element",'node_id':node_id},'content':formdata});if(typeof save_table!="undefined"&&save_table==true){window.setTimeout("window.location.href = window.location.href",1000);}
break;case'cancel':window.location=window.location;break;}}}
extendClass("Camao_Elements","Camao_Exception");function Camao_Containers(){var infos={};this.__construct=function(){this.createEvents();}
this.createEvents=function(){$$(".container-menu-layer").observe("click",this.menuLayerClickHandler.bind(this));$$(".container").draggable({revert:true,handle:'drag',onStart:function(){if(VIEW_MODE=="live")Base.get("Camao_Modul_Mode").setViewAsEdit();$$("div.dropzone_container").show();$$("div.dropzone_column").show();},onEnd:function(){$$("div.dropzone_container").hide();$$("div.dropzone_column").hide();}});}
this.menuLayerClickHandler=function(myEvent){var target=$(myEvent.target);var node_id=target.up(".container").id.replace("container_","");switch(target.className){case'delete':$("popup-warning").select(".content")[0].update(dic_sitepanel_modul_container_delete_confirm);$("popup-warning").select(".button-ok")[0].stopObserving("click");$("popup-warning").select(".button-ok")[0].observe("click",function(node_id){Base.get("Camao_Api").addModulRequest("sitepannel_1",{'options':{'action':'delete','id':"Container",'node_id':node_id}});$("container_"+node_id).previous(".dropzone").remove();$("container_"+node_id).remove();if(Prototype.Browser.IE){window.setTimeout("window.location.href = window.location.href",100);}}.bind(this,node_id));Base.get("Camao_Lightbox",true,{"content":$("popup-warning"),"use_shape":true,"lightbox_id":"control_lightbox","shape_id":"control_shape","opacity":.3});break;}}}
extendClass("Camao_Elements","Camao_Exception");var CAMAO_MODUL_TOGGLE_HANDLER="toggle";var CAMAO_MODUL_TOGGLE_CLOSED_CLASS="closed";function Camao_Modul(){var infos={};this.__contruct=function(){}
this.handleResponse=function(sitepannelId,response){response.each(function(modul){Base.get("Camao_Modul_"+modul.options.id).handleResponse(sitepannelId,modul);}.bind(this));}
this.createModul=function(sitepannelID,modul){var sitepannelModul=new Element("div",{'id':"Modul_"+modul.options.id}).update(modul.data.template);sitepannelModul.addClassName("modul");$(sitepannelID).select(".module")[0].appendChild(sitepannelModul);if(modul.data.content){for(var i in modul.data.content){var element=sitepannelModul.select("."+i);if(element.length==1){var target=element[0];if(target.tagName.toLowerCase()=="input"){target.value=modul.data.content[i];}else if(target.tagName.toLowerCase()=="select"){if((typeof modul.data.content[i]!="undefined")&&(target.select('option[value="'+modul.data.content[i]+'"]')[0])){target.select('option[value="'+modul.data.content[i]+'"]')[0].selected=true;}}else{target.update(modul.data.content[i]);}}else{if(typeof modul.data.content[i]!="object"){this.throwException(EXCEPTION_ERROR,"Unique element with class '"+i+"' cant be found!");}}}}
if(modul.options.open==false){var content=sitepannelModul.select(".content")[0];var handler=sitepannelModul.select("."+CAMAO_MODUL_TOGGLE_HANDLER)[0];if(content){content.hide();handler.addClassName(CAMAO_MODUL_TOGGLE_CLOSED_CLASS);}else{this.throwException(EXCEPTION_ERROR,"Cant find content part for modul "+modul.options.id+"!");}}
this.createDefaultEvents(sitepannelID,sitepannelModul);}
this.createDefaultEvents=function(sitepannelId,sitepannelModul){var handler=sitepannelModul.select("."+CAMAO_MODUL_TOGGLE_HANDLER)[0];if(handler){handler.observe("click",this.toggleModulEvent.bind(this,sitepannelId,sitepannelModul));}else{this.throwException(EXCEPTION_ERROR,"Toggle handler cant be found for modul !"+sitepannelModul.id);}}
this.toggleModulEvent=function(sitepannelId,sitepannelModul){var content=sitepannelModul.select(".content")[0];content.toggle();var handler=sitepannelModul.select("."+CAMAO_MODUL_TOGGLE_HANDLER)[0];if(content.visible())
handler.removeClassName(CAMAO_MODUL_TOGGLE_CLOSED_CLASS);else
handler.addClassName(CAMAO_MODUL_TOGGLE_CLOSED_CLASS);Base.get("Camao_Api").addModulRequest(sitepannelId,{'options':{'action':'update','open':content.visible(),'id':sitepannelModul.id.replace("Modul_","")}});Base.get("Camao_Api").sendRequest();}}
extendClass("Camao_Modul","Camao_Exception");var DRAG_STATUS=false;function Camao_Modul_Container(){var infos={};this.__construct=function(){Base.get("Camao_Cron",true,{'target':"Modul_Container",'rule':{'onElementExists':true},'callback':this.createEvents.bind(this)});}
this.handleResponse=function(sitepannelId,modul){infos.sitepannelId=sitepannelId;if(modul.data.options.action=="render"){this.createModul(sitepannelId,modul);}
if(modul.data.options.action=="dropzones"){if(modul.data.content=="all"){if(DRAG_STATUS==true){$$("div.dropzone_container, div.dropzone_column").show();}}}
if(modul.data.content&&modul.data.content.containers){var target=$("Modul_Container").select(".ModulContainer_containers")[0];modul.data.content.containers.each(function(container){var listitem=new Element("li");var element=new Element("img");element.src="/icon/set/layout/container_"+container+".png";element.id="drag_"+container;element.addClassName("drag_container");listitem.appendChild(element);var text=new Element("span");text.update(container.gsub('_','/'));listitem.appendChild(text);target.appendChild(listitem);new Draggable(element.id,{ghosting:true,revert:true,onStart:function(){if(VIEW_MODE=="live")Base.get("Camao_Modul_Mode").setViewAsEdit();DRAG_STATUS=true;Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'get_dropzone','id':"Container"}});},onEnd:function(myElement){DRAG_STATUS=false;$$("div.dropzone_container, div.dropzone_column").hide();}});});}}
this.createEvents=function(){$$(".dropzone_container").each(function(dropzone){Droppables.add(dropzone,{accept:"drag_container",onDrop:this.handleDropEvent.bind(this),hoverclass:"hover"});}.bind(this));$$(".dropzone_column").each(function(dropzone){Droppables.add(dropzone,{accept:"drag_container",onDrop:this.handleDropEvent.bind(this),hoverclass:"hover"});}.bind(this));$$(".dropzone_container").each(function(dropzone){Droppables.add(dropzone,{accept:"container",onDrop:this.handleDropEvent.bind(this),hoverclass:"hover"});}.bind(this));$$(".dropzone_column").each(function(dropzone){Droppables.add(dropzone,{accept:"container",onDrop:this.handleDropEvent.bind(this),hoverclass:"hover"});}.bind(this));}
this.handleDropEvent=function(dragElement,dropElement){var parent_node_id=false;var parent_node=dropElement.up();while(!parent_node.id)parent_node=parent_node.up();if(parent_node.hasClassName('layoutColumn')){parent_node_id=parent_node.id.replace("column_","");}else{parent_node_id=parent_node.id;}
var drag_node_id=false;var drag_element_id=false;if(dragElement.id.indexOf("drag_")!=-1){drag_element_id=dragElement.id.replace("drag_","");}else if(dragElement.id.indexOf("container_")!=-1){drag_node_id=dragElement.id.replace("container_","").trim();parent_node_id=parent_node_id.replace("document_","");}
var previousElement=dropElement.previous(".nestedNode");if(typeof previousElement=="undefined"){inser_after_node_id=false;}else{inser_after_node_id=previousElement.id.split("_");inser_after_node_id=inser_after_node_id[1];}
Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'insert','id':"Container",'parent_node_id':parent_node_id,'inser_after_node_id':inser_after_node_id,'element_name':drag_element_id,'drag_node_id':drag_node_id}});}}
extendClass("Camao_Modul_Container","Camao_Modul");function Camao_Modul_Element(){var infos={};this.__construct=function(){Base.get("Camao_Cron",true,{'target':"Modul_Element",'rule':{'onElementExists':true},'callback':this.createEvents.bind(this)});}
this.handleResponse=function(sitepannelId,modul){infos.sitepannelId=sitepannelId;if(modul.data.options.action=="render"){this.createModul(sitepannelId,modul);}
if(modul.data.options.action=="dropzones"){if(modul.data.content=="all"){$$("div.dropzone_element").show();}}
if(modul.data.options.action=="edit"){Base.get("Camao_Elements").edit(modul);}
if(modul.data.options.action=="rerender"){Base.get("Camao_Elements").rerender(modul);}
if(modul.data.content&&modul.data.content.elements){var target=$("Modul_Element").select(".ModulElement_elements")[0];modul.data.content.elements.each(function(element){var newLi=new Element("li");var icon=new Element("img").addClassName('icon');icon.src="/icon/set/layout/element_"+element+".png";icon.alt="";icon.width=20;icon.height=15;newLi.appendChild(icon);var text=new Element("span").update(" "+eval("dic_sitepanel_modul_element_element_"+element));newLi.appendChild(text);newLi.id="drag_"+element;newLi.addClassName("drag_element");target.appendChild(newLi);new Draggable(newLi.id,{ghosting:true,revert:true,onStart:function(){if(VIEW_MODE=="live")Base.get("Camao_Modul_Mode").setViewAsEdit();Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'get_dropzone','id':"Element"}});},onEnd:function(element){$$("div.dropzone_element").hide();}});});}}
this.createEvents=function(){$$(".dropzone_element").each(function(dropzone){Droppables.add(dropzone,{accept:"drag_element",onDrop:this.handleDropEvent.bind(this),hoverclass:"hover"});}.bind(this));$$(".dropzone_element").each(function(dropzone){Droppables.add(dropzone,{accept:"element",onDrop:this.handleDropEvent.bind(this),hoverclass:"hover"});}.bind(this));}
this.handleDropEvent=function(dragElement,dropElement){var parent_node=dropElement.up();while(!parent_node.id)parent_node=parent_node.up();if(typeof parent_node=="undefined"){parent_node_id=false;}else{parent_node_id=parent_node.id.replace("column_","");}
var before_node_id=false;var afterElement=dropElement.previous(".nestedNode");if(afterElement){before_node_id=afterElement.id.split("_");before_node_id=before_node_id[1];}
drag_element_id=false;drag_node_id=false;if(dragElement.id.indexOf("drag_")!=-1){drag_element_id=dragElement.id.replace("drag_","element_");}else if(dragElement.id.indexOf("element_")!=-1){drag_node_id=dragElement.id.replace("element_","").trim();}
Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'insert','id':"Element",'parent_node_id':parent_node_id,'before_node_id':before_node_id,'element_name':drag_element_id,'drag_node_id':drag_node_id}});}}
extendClass("Camao_Modul_Element","Camao_Modul");function Camao_Modul_Language(){var infos={};this.__construct=function(){Base.get("Camao_Cron",true,{'target':"Modul_Language",'rule':{'onElementExists':true},'callback':this.createEvents.bind(this)});}
this.handleResponse=function(sitepannelId,modul){infos.sitepannelId=sitepannelId;if(modul.data.options.action=="render"){this.createModul(sitepannelId,modul);}
if(modul.data.content&&modul.data.content.languages){var target=$("Modul_Language").select(".ModulLanguages_languages")[0];var template=$("Modul_Language").select(".ModulLanguages_templates .ModulLanguages_template_language")[0];languages=modul.data.content.languages;languages.each(function(e){var language=$(template.cloneNode(true));language.removeClassName("ModulLanguages_template_language");language.select(".language_key")[0].update(e.key);language.select(".language_name")[0].update(e.name);language.select("a")[0].href=e.url;if(e.key==Base.get("Camao_Api").getLanguage()){language.addClassName("active");$("Modul_Language").select(".headline")[0].update($("Modul_Language").select(".headline")[0].innerHTML+" / "+e.key);}
target.appendChild(language);}.bind(this));}}
this.createEvents=function(){$("Modul_Language").select(".ModulLanguages_empty_language").observe("click",this.doLanguageEmptyEvent.bind(this))
$("Modul_Language").select(".ModulLanguages_copy_language_to_all").observe("click",this.doCopyLanguageToAllEvent.bind(this))
$("Modul_Language").select(".ModulLanguages_empty_content").observe("click",this.doEmptContentEvent.bind(this))
$("Modul_Language").select(".ModulLanguages_go_live").observe("click",this.doGoLiveEvent.bind(this))
$("Modul_Language").select(".ModulLanguages_reset").observe("click",this.doResetEvent.bind(this))
$("Modul_Language").select(".ModulLanguages_set_default").observe("click",this.doSetStatus.bind(this,"default"));$("Modul_Language").select(".ModulLanguages_set_ok").observe("click",this.doSetStatus.bind(this,"ok"));}
this.doLanguageEmptyEvent=function(){Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'clear_language','id':"Language"}});}
this.doCopyLanguageToAllEvent=function(){Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'copy_language_to_all','id':"Language"}});}
this.doEmptContentEvent=function(){Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'empty_content','id':"Language"}});}
this.doGoLiveEvent=function(){Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'go_live','id':"Language"}});}
this.doResetEvent=function(){Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'reset','id':"Language"}});}
this.doSetStatus=function(status){Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'change_status','id':"Language",'status':status}});}}
extendClass("Camao_Modul_Language","Camao_Modul");function Camao_Modul_Metadaten(){var infos={};this.__construct=function(){Base.get("Camao_Cron",true,{'target':"Modul_Metadaten",'rule':{'onElementExists':true},'callback':this.createEvents.bind(this)});}
this.handleResponse=function(sitepannelId,modul){this.createModul(sitepannelId,modul);infos.sitepannelId=sitepannelId;if(modul.data.options.action=="exist_url"){$("popup-warning").select(".content")[0].update(dic_sitepanel_global_modul_metadaten_url_warning);$("popup-warning").select(".button-ok")[0].stopObserving("click");Base.get("Camao_Lightbox",true,{"content":$("popup-warning"),"use_shape":true,"lightbox_id":"control_lightbox","shape_id":"control_shape","opacity":.3});}else if(modul.data.options.action=="url_corrupt"){$("popup-warning").select(".content")[0].update(dic_sitepanel_global_modul_metadaten_url_corrupt);$("popup-warning").select(".button-ok")[0].stopObserving("click");Base.get("Camao_Lightbox",true,{"content":$("popup-warning"),"use_shape":true,"lightbox_id":"control_lightbox","shape_id":"control_shape","opacity":.3});}}
this.createEvents=function(){$("Modul_Metadaten").select(".ModulMetadaten_save")[0].observe("click",this.saveChanges.bind(this));}
this.saveChanges=function(){var formdata=form2object($("Modul_Metadaten").select("form")[0]);Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'update','id':"Metadaten",'document_id':Base.get("Camao_Api").getDocumentId()},'data':{'content':formdata}});}}
extendClass("Camao_Modul_Metadaten","Camao_Modul");function Camao_Modul_Mode(){var infos={};this.__construct=function(){Base.get("Camao_Cron",true,{'target':"Modul_Mode",'rule':{'onElementExists':true},'callback':this.createEvents.bind(this)});}
this.handleResponse=function(sitepannelId,modul){}
this.createEvents=function(){$("Modul_Mode").select("input[name=mode]").observe("click",this.modeChangeEvent.bind(this));this.setView();}
this.setView=function(){if(VIEW_MODE=="edit"){this.setViewAsEdit();}else{this.setViewAsLive();}}
this.modeChangeEvent=function(event){if(event.target.value=="live")this.setViewAsLive();if(event.target.value=="edit")this.setViewAsEdit();}
this.setViewAsLive=function(){var cancelSwitch=false;$$(".element .edit-mode").each(function(e){if(e.visible()){if(confirm(e.up(".element").className+dic_sitepanel_global_modul_edit_mode_warning)){Base.get("Camao_Elements").menuLayerClickHandler({'target':e.down(".save")});}else{cancelSwitch=true;}}});if(cancelSwitch==false){VIEW_MODE="live";$$(".element-menu-layer").hide();$$(".container-menu-layer").hide();$$("body")[0].removeClassName('edit');$("Modul_Mode").select("input[name=mode][value=live]")[0].checked=true;$("dropdown_styler").update("");}else{$("Modul_Mode").select('input[value="edit"]')[0].checked=true;}
Base.get("Camao_Api").addModulRequest(1,{'options':{'action':'update','view':"live",'id':"Mode"}});Base.get("Camao_Api").sendRequest();}
this.setViewAsEdit=function(){VIEW_MODE="edit";$$(".element-menu-layer").show();$$(".container-menu-layer").show();$$("body")[0].addClassName('edit');$("Modul_Mode").select("input[name=mode][value=edit]")[0].checked=true;try{if($("dropdown_styler"))$("dropdown_styler").update(" ");}catch(e){}
Base.get("Camao_Api").addModulRequest(1,{'options':{'action':'update','view':"edit",'id':"Mode"}});Base.get("Camao_Api").sendRequest();}}
extendClass("Camao_Modul_Mode","Camao_Modul");function Camao_Modul_Settings(){var infos={};this.__contruct=function(){}
this.handleResponse=function(sitepannelId,modul){this.createModul(sitepannelId,modul);}
this.createEvents=function(){}}
extendClass("Camao_Modul_Settings","Camao_Modul");var MODUL_SITEMAP_MODE="view";function Camao_Modul_Sitemap(){var infos={};this.__construct=function(){Base.get("Camao_Cron",true,{'target':"Modul_Sitemap",'rule':{'onElementExists':true},'callback':this.createEvents.bind(this)});}
this.handleResponse=function(sitepannelId,modul){infos.sitepannelId=sitepannelId;if(modul.data.options.action=="render"){this.createModul(sitepannelId,modul);this.loadTree(sitepannelId);}else if(modul.data.options.action=="build"){var Camao_TreeObj=Base.get("Camao_Tree");Camao_TreeObj.createTree(sitepannelId,modul);Camao_TreeObj.selectActiveNode();}else if(modul.data.options.action=="insert_places"){if(modul.data.content=="all"){if(MODUL_SITEMAP_MODE=="move"){this.createTargetsForMove();}else if(MODUL_SITEMAP_MODE=="new"){this.createTargetsForNew();}}}}
this.loadTree=function(sitepannelId){Base.get("Camao_Tree",false,{'target':$("Modul_Sitemap").select(".ModulSitemap_sitemap")[0],'sitepannelId':sitepannelId,'modulId':'sitemap'});}
this.createEvents=function(){$("Modul_Sitemap").select(".ModulSitemap_new_page")[0].observe("click",this.createNewNode.bind(this));$("Modul_Sitemap").select(".ModulSitemap_cancel_new_page")[0].observe("click",this.cancelCreateNewNode.bind(this));$("Modul_Sitemap").select(".ModulSitemap_move_page")[0].observe("click",this.moveNode.bind(this));$("Modul_Sitemap").select(".ModulSitemap_cancel_move_page")[0].observe("click",this.cancelMoveNode.bind(this));$("Modul_Sitemap").select(".ModulSitemap_duplicate_page")[0].observe("click",this.dublicateNode.bind(this));$("Modul_Sitemap").select(".ModulSitemap_delete_page")[0].observe("click",this.deleteNode.bind(this));$("Modul_Sitemap").select(".ModulSitemap_expand_tree")[0].observe("click",this.expandTree.bind(this));}
this.createNewNode=function(){if(MODUL_SITEMAP_MODE!="new"){$("Modul_Sitemap").select(".ModulSitemap_new_page")[0].hide();$("Modul_Sitemap").select(".ModulSitemap_cancel_new_page")[0].show();MODUL_SITEMAP_MODE="new";Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'get_insert_places','id':"Sitemap"}});}}
this.dublicateNode=function(){Base.get("Camao_Tree").duplicateNode();}
this.deleteNode=function(){if(!confirm("sure"))return false;Base.get("Camao_Tree").deleteNode();}
this.expandTree=function(){}
this.cancelCreateNewNode=function(){MODUL_SITEMAP_MODE="view";var masterUl=$("Modul_Sitemap").select(".ModulSitemap_sitemap ul")[0];masterUl.stopObserving("click",infos.observeNewClickEvent);$("Modul_Sitemap").select(".ModulSitemap_sitemap li.insertHere").remove();$("Modul_Sitemap").select(".ModulSitemap_new_page")[0].show();$("Modul_Sitemap").select(".ModulSitemap_cancel_new_page")[0].hide();}
this.cancelMoveNode=function(){MODUL_SITEMAP_MODE="view";var masterUl=$("Modul_Sitemap").select(".ModulSitemap_sitemap ul")[0];masterUl.stopObserving("click",infos.observeMoveClickEvent);$("Modul_Sitemap").select(".ModulSitemap_sitemap li.insertHere").remove();$("Modul_Sitemap").select(".ModulSitemap_move_page")[0].show();$("Modul_Sitemap").select(".ModulSitemap_cancel_move_page")[0].hide();}
this.moveNode=function(){if(MODUL_SITEMAP_MODE!="move"){$("Modul_Sitemap").select(".ModulSitemap_move_page")[0].hide();$("Modul_Sitemap").select(".ModulSitemap_cancel_move_page")[0].show();MODUL_SITEMAP_MODE="move";Base.get("Camao_Api").addModulRequest(infos.sitepannelId,{'options':{'action':'get_insert_places','id':"Sitemap"}});}}
this.createTargetsForMove=function(){var masterUl=$("Modul_Sitemap").select(".ModulSitemap_sitemap ul")[0];this.setUlAsTargetForMove(masterUl);infos.observeMoveClickEvent=this.moveTargetClickEvent.bind(this);masterUl.observe("click",infos.observeMoveClickEvent);$("Modul_Sitemap").select(".ModulSitemap_sitemap ul").each(function(myul){var insertHere=new Element("li").addClassName("insertHere").update("insert here");myul.appendChild(insertHere);});}
this.moveTargetClickEvent=function(e){if(MODUL_SITEMAP_MODE=="move"){if($(e.target).hasClassName("insertHere")){var parent_node_id=$(e.target).up("li")?$(e.target).up("li").id.replace("node_",""):false;var after_node_id=$(e.target).previous("li")?$(e.target).previous("li").id.replace("node_",""):false;if(!confirm(dic_sitepanel_global_move_node_confirm))return false;Base.get("Camao_Tree").moveNode(parent_node_id,after_node_id);}}}
this.setUlAsTargetForMove=function(ul){if(typeof arguments[1]!="undefined"){var insertHere=new Element("li").addClassName("insertHere").update("insert here");ul.appendChild(insertHere);}
var i=0;ul.select("li").each(function(myLi){if(i>0){var insertHere=new Element("li").addClassName("insertHere").update("insert here");myLi.insert({before:insertHere});}
if(myLi.select(".icon_hasChild").length==0){var insertHere=new Element("li").addClassName("insertHere").addClassName("newSubNode").update("|_insert here");myLi.appendChild(insertHere);}
i++;});}
this.createTargetsForNew=function(){var masterUl=$("Modul_Sitemap").select(".ModulSitemap_sitemap ul")[0];this.setUlAsTargetForNew(masterUl);infos.observeNewClickEvent=this.createTargetClickEvent.bind(this);masterUl.observe("click",infos.observeNewClickEvent);$("Modul_Sitemap").select(".ModulSitemap_sitemap ul").each(function(myul){var insertHere=new Element("li").addClassName("insertHere").update("insert here");myul.appendChild(insertHere);});}
this.createTargetClickEvent=function(e){if(MODUL_SITEMAP_MODE=="new"){if($(e.target).hasClassName("insertHere")){var parent_node_id=$(e.target).up("li")?$(e.target).up("li").id.replace("node_",""):false;var after_node_id=$(e.target).previous("li")?$(e.target).previous("li").id.replace("node_",""):false;if(!confirm("sure"))return false;Base.get("Camao_Tree").createNode(parent_node_id,after_node_id);}}}
this.setUlAsTargetForNew=function(ul){if(typeof arguments[1]!="undefined"){var insertHere=new Element("li").addClassName("insertHere").update("insert here");ul.appendChild(insertHere);}
var i=0;ul.select("li").each(function(myLi){if(i>0){var insertHere=new Element("li").addClassName("insertHere").update("insert here");myLi.insert({before:insertHere});}
if(myLi.select(".icon_hasChild").length==0){var insertHere=new Element("li").addClassName("insertHere").addClassName("newSubNode").update("|_insert here");myLi.appendChild(insertHere);}
i++;});}}
extendClass("Camao_Modul_Sitemap","Camao_Modul");function Camao_Modul_Warnings(){var infos={messageCount:0};this.__contruct=function(){}
this.handleResponse=function(sitepannelId,modul){this.createModul(sitepannelId,modul);}
this.createMessage=function(message){infos.messageCount++;var container=$("Modul_Warnings").select(".ModulWarnings_output_"+message.type)[0];if(container){var li=new Element("li").update(message.content);li.observe("click",this.removeMessage.bind(this,li));container.appendChild(li);$("Modul_Warnings").select(".count")[0].update(infos.messageCount);}else{this.throwException(EXCEPTION_ERROR,"Unknown message type!! ("+message.type+")");}}
this.removeMessage=function(element){element.remove();infos.messageCount--;if(infos.messageCount==0){$("Modul_Warnings").select(".count")[0].update("");}else{$("Modul_Warnings").select(".count")[0].update(infos.messageCount);}}
this.createEvents=function(){}}
extendClass("Camao_Modul_Warnings","Camao_Modul");if(typeof(Prototype)=="undefined"){alert("You need to Include Prototype !");}else{if((window.location.host.indexOf("springfield")!=-1)&&(Prototype.Browser.Gecko)){var DEVELOPER=true;}else{var DEVELOPER=false;}
var ROOT_JS=typeof _ROOT_JS!="undefined"?_ROOT_JS:"/media/js";if(navigator.userAgent.indexOf('Konqueror/')!=-1){Event.observe(window,"load",function(){__boot.delay(1);});}else{document.observe("dom:loaded",function(){if(Prototype.Browser.WebKit){__boot.delay(1);}else{__boot();}});}
if(typeof Include_Base!="undefined"){__boot();}}
function __boot(){Base=new Include_Base();Base.__construct();if(typeof startUp=="function")startUp();document.fire("cms:loaded");}
function include(filename){var include_file="/"+filename.replace(/_/g,"/");var script=new Element('script',{'src':ROOT_JS+include_file+".js",'type':'text/javascript'});script.observe("error",function(){if(DEVELOPER)console.log(filename+" cant find file!");}.bind(this));$$("head")[0].appendChild(script);}
