
/* Merged Plone Javascript file
 * This file is dynamically assembled from separate parts.
 * Some of these parts have 3rd party licenses or copyright information attached
 * Such information is valid for that section,
 * not for the entire composite file
 * originating files are separated by ----- filename.js -----
 */

/* ----- cookie_functions.js ----- */
// http://www.csa.com.br/portal_javascripts/cookie_functions.js?original=1
function createCookie(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString()} else{expires=""}
document.cookie=name+"="+escape(value)+expires+"; path=/;"};
function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' '){c=c.substring(1,c.length)}
if(c.indexOf(nameEQ)==0){return unescape(c.substring(nameEQ.length,c.length))}}
return null};

/* ----- calendar_formfield.js ----- */
// http://www.csa.com.br/portal_javascripts/calendar_formfield.js?original=1
function onJsCalendarDateUpdate(cal){var year=cal.params.input_id_year;var month=cal.params.input_id_month;var day=cal.params.input_id_day;var daystr=''+cal.date.getDate();if(daystr.length==1)
daystr='0'+daystr;var monthstr=''+(cal.date.getMonth()+1);if(monthstr.length==1)
monthstr='0'+monthstr;cal.params.inputField.value=''+cal.date.getFullYear()+'/'+monthstr+'/'+daystr
year.value=cal.params.inputField.value.substring(0,4);month.value=cal.params.inputField.value.substring(5,7);day.value=cal.params.inputField.value.substring(8,10)}
function showJsCalendar(input_id_anchor,input_id,input_id_year,input_id_month,input_id_day,input_id_hour,input_id_minute,yearStart,yearEnd){var input_id_anchor=document.getElementById(input_id_anchor);var input_id=document.getElementById(input_id);var input_id_year=document.getElementById(input_id_year);var input_id_month=document.getElementById(input_id_month);var input_id_day=document.getElementById(input_id_day);var format='y/mm/dd';var dateEl=input_id;var mustCreate=false;var cal=window.calendar;var params={'range':[yearStart,yearEnd],inputField:input_id,input_id_year:input_id_year,input_id_month:input_id_month,input_id_day:input_id_day};
function param_default(pname,def){if(typeof params[pname]=="undefined"){params[pname]=def}};param_default("inputField",null);param_default("displayArea",null);param_default("button",null);param_default("eventName","click");param_default("ifFormat","%Y/%m/%d");param_default("daFormat","%Y/%m/%d");param_default("singleClick",true);param_default("disableFunc",null);param_default("dateStatusFunc",params["disableFunc"]);param_default("dateText",null);param_default("firstDay",1);param_default("align","Bl");param_default("range",[1900,2999]);param_default("weekNumbers",true);param_default("flat",null);param_default("flatCallback",null);param_default("onSelect",null);param_default("onClose",null);param_default("onUpdate",null);param_default("date",null);param_default("showsTime",false);param_default("timeFormat","24");param_default("electric",true);param_default("step",2);param_default("position",null);param_default("cache",false);param_default("showOthers",false);param_default("multiple",null);if(!(cal&&params.cache)){window.calendar=cal=new Calendar(params.firstDay,null,onJsCalendarDateUpdate,
function(cal){cal.hide()});cal.time24=true;cal.weekNumbers=true;mustCreate=true} else{cal.hide()}
cal.showsOtherMonths=false;cal.yearStep=2;cal.setRange(yearStart,yearEnd);cal.params=params;cal.setDateStatusHandler(null);cal.getDateText=null;cal.setDateFormat(format);if(mustCreate)
cal.create();cal.refresh();if(!params.position)
cal.showAtElement(input_id_anchor,null);else
cal.showAt(params.position[0],params.position[1]);return false}
function update_date_field(field,year,month,day,hour,minute,ampm){var field=document.getElementById(field)
var date=document.getElementById(date)
var year=document.getElementById(year)
var month=document.getElementById(month)
var day=document.getElementById(day)
var hour=document.getElementById(hour)
var minute=document.getElementById(minute)
var ampm=document.getElementById(ampm)
if(0<year.value){field.value=year.value+"-"+month.value+"-"+day.value+" "+hour.value+":"+minute.value
if(ampm&&ampm.value)
field.value=field.value+" "+ampm.value}
else{field.value=''
month.options[0].selected=1
day.options[0].selected=1
hour.options[0].selected=1
minute.options[0].selected=1
if(ampm&&ampm.options)
ampm.options[0].selected=1}}


/* ----- plonebooking.js ----- */
// http://www.csa.com.br/portal_javascripts/plonebooking.js?original=1
function $(id){return document.getElementById(id)}
function getXmlHttpRequest(){var ajaxobject=null;if(window.XMLHttpRequest){ajaxobject=new XMLHttpRequest()} else if(window.ActiveXObject){ajaxobject=new ActiveXObject('Microsoft.XMLHTTP')} else{ajaxobject=null}
return ajaxobject}
var xhReq=getXmlHttpRequest();
function showPeriodicityResult(url,alt_url,target_id,form_id,waiting_text){ajaxobject=getXmlHttpRequest();form=document.getElementById(form_id);periodicity_type=getPeriodicityType(form);periodicity_end_date=form['periodicity_end_date'].value;periodicity_variable=form['periodicity2_x'].value;query=getPeriodicityQuery(periodicity_type,periodicity_end_date,periodicity_variable);url=url+query+"&d="+(new Date()).getTime();alt_url=alt_url+query;if(ajaxobject==null){window.location=alt_url} else{var node=document.getElementById(target_id);node.innerHTML=waiting_text;ajaxobject.open('GET',url,true);ajaxobject.onreadystatechange=function(){CallBackGenerateAjaxHTML(ajaxobject,target_id)}
ajaxobject.send(null)}}
function getPeriodicityQuery(periodicity_type,periodicity_end_date,periodicity_variable){query='&periodicity_type='+periodicity_type_value+'&periodicity_end_date='+periodicity_end_date
if(periodicity_variable!=null){query=query+'&periodicity_variable='+periodicity_variable}
return query}
function getPeriodicityType(form){periodicity_type=form['periodicity_type'];periodicity_type_value=null;for(i=0;i<periodicity_type.length;i++){obj=periodicity_type[i];if(obj.checked==true){periodicity_type_value=obj.value}}
return periodicity_type}
function CallBackGenerateAjaxHTML(ajaxobject,target_id){if(ajaxobject.readyState==4){if(ajaxobject.status>299||ajaxobject.status<200){return}
elem=document.getElementById(target_id);elem.innerHTML=ajaxobject.responseText}}
function gotoBookingUrl(base_url,ts,dmode,dview,btype,bcategory){var url=base_url+'?ts='+ts+'&dmode='+dmode+'&dview='+dview;if(btype){url+='&btype='+btype}
if(bcategory){url+='&bcategory='+bcategory}
window.location=url}
function createThoseBookings(url){var progressBar=document.getElementById("bookingProgressbar");var lstBookings=document.getElementById("lstBookings");var bookings=lstBookings.getElementsByTagName("input");var createBookings=document.getElementById("createBookings");lstBookings.style.display="none";createBookings.style.display="none";progressBar.parentNode.style.display="block";document.location.href=document.URL.split('#')[0]+"#secondStep";var xhReq;var index=0;var nbBooked=0;var nbAlreadyBooked=0;var getResponse=function(){if(xhReq.readyState!=4)
return null;if(xhReq.responseText=="OK")++nbBooked;if(xhReq.responseText=="NOK")++nbAlreadyBooked;var percentage=Math.round(100 *++index/bookings.length)+"%";progressBar.firstChild.style.width=percentage;progressBar.lastChild.firstChild.data=percentage;if(index==bookings.length){var doneButton=document.getElementById("goto-booking");var bookingsDone=document.getElementById("bookingsDone");var txt=bookingsDone.firstChild.data;txt=txt.replace('%created%',nbBooked);txt=txt.replace('%already_booked%',(nbAlreadyBooked));txt=txt.replace('%errors%',(bookings.length-(nbBooked+nbAlreadyBooked)))
bookingsDone.firstChild.data=txt;bookingsDone.style.display="block";doneButton.style.display="block";return null}
sendRequest(index)}
var sendRequest=function(){var ts=bookings[index].value.split("_");var parameters="start_ts="+ts[0]+"&end_ts="+ts[1]+"&d="+(new Date()).getTime();xhReq=getXmlHttpRequest();xhReq.open('GET',url+"?"+parameters,true);xhReq.onreadystatechange=getResponse;xhReq.send(null)}
sendRequest()}
function modifyStatusOnThoseBookings(container_url,here_id,action,all){var progressBar=document.getElementById("bookingProgressbar");var lstBookings=document.getElementById("lstBookings");var bookings=lstBookings.getElementsByTagName("input");lstBookings.parentNode.parentNode.style.display="none";progressBar.parentNode.style.display="block";document.location.href=document.URL.split('#')[0]+"#progressBarAnchor";var booking_ids=new Array();for(var i=0;i<bookings.length;i++)
if(bookings[i].name=='ids:list'){booking_id=bookings[i].value;booking_checked=bookings[i].checked?true:false;if(all||booking_checked){booking_ids.push(booking_id)}}
if(all){booking_ids.push(here_id)}
var xhReq;var index=0;var nbProcessed=0;var nbTotal=booking_ids.length;var getResponse=function(){if(xhReq.readyState!=4)
return null;if(xhReq.status==200)++nbProcessed;var percentage=Math.round(100 *++index/nbTotal)+"%";progressBar.firstChild.style.width=percentage;progressBar.lastChild.firstChild.data=percentage;if(index==nbTotal){var doneButton=document.getElementById("goto-booking");if(all&&action=='cancel'){doneButton=document.getElementById("goto-bookableobject")}
var bookingsDone=document.getElementById("bookings-done");var txt=bookingsDone.firstChild.data;txt=txt.replace('%processed%',nbProcessed);txt=txt.replace('%errors%',(nbTotal-nbProcessed));bookingsDone.firstChild.data=txt;bookingsDone.style.display="block";doneButton.style.display="block";return null}
sendRequest(index)}
var sendRequest=function(){var booking_id=booking_ids[index];var parameters="?d="+(new Date()).getTime();xhReq=getXmlHttpRequest();xhReq.open('GET',container_url+"/"+booking_id+"/content_status_modify?workflow_action="+action,true);xhReq.setRequestHeader("raiseError","False");xhReq.onreadystatechange=getResponse;xhReq.send(null)}
sendRequest()}
function sendAjaxRequest(query,func){if(isSendingRequest){xhReq.onreadystatechange=function(){}
xhReq.abort()}
isSendingRequest=true;xhReq.open('GET',query,true);xhReq.setRequestHeader("raiseError","False");xhReq.onreadystatechange=function(){if(xhReq.readyState!=4) return null;func();xhReq.onreadystatechange=function(){}
xhReq.abort();isSendingRequest=false};xhReq.send(null)}
var isSendingRequest=false;
function deleteBooking(booking_url){query=booking_url+'/content_status_modify?workflow_action=cancel';sendAjaxRequest(query,
function(){if(xhReq.readyState!=4) return null;applyToBooking(booking_url, function(itm){cell=itm.parentNode;if(itm.className=='BookingThumb'||cell.nodeName=='SPAN'){cell.parentNode.removeChild(cell);cell=null} else
cell.removeChild(itm);if(cell&&!cell.getElementsByTagName('A').length){var currentPath=document.location.href.match(/.*\//)[0];ts=cell.getElementsByTagName('INPUT')[0].value.split(':');link=document.createElement('A');link.innerHTML='+';link.href=currentPath+'plonebooking_add_form?start_ts='+ts[0]+'&end_ts='+ts[1];cell.appendChild(link)}})});closeBookingPopup()}
function validateBooking(booking_url){query=booking_url+'/content_status_modify?workflow_action=book';sendAjaxRequest(query,
function(){if(xhReq.readyState!=4) return null;applyToBooking(booking_url, function(itm){itm.className='booking-booked'})});closeBookingPopup()}
function applyToBooking(booking_url,func){var calendar_node=$('bookingCalendar');if(!calendar_node) return;var expected_url='javascript:popupBooking(\''+booking_url+'\')';var a_nodes=calendar_node.getElementsByTagName('a');for(var i=0;i<a_nodes.length;i++){var a_node=a_nodes[i];if(a_node.href==expected_url){func(a_node)}}}
function initializeBookingCalendarView(){var calendar_node=$('bookingCalendar');if(!calendar_node) return;var a_nodes=calendar_node.getElementsByTagName('a');for(var i=0;i<a_nodes.length;i++){var a_node=a_nodes[i];if(a_node.className=='booking-pending'||a_node.className=='booking-booked'||a_node.className=='BookingThumb'){var new_url='javascript:popupBooking(\''+a_node.href+'\')';a_node.href=new_url}}}
function popupBooking(booking_url){var booking_popup_node=$('booking-popup');if(!booking_popup_node) return;booking_popup_node.style.display='block';sendAjaxRequest(booking_url+'/booking_info_popup',
function(){booking_popup_node.style.top=document.documentElement.scrollTop+(document.documentElement.clientHeight/2)-booking_popup_node.offsetHeight+'px';booking_popup_node.innerHTML=xhReq.responseText})}
function closeBookingPopup(){var booking_popup_node=$('booking-popup');booking_popup_node.style.display='none'}

