1 2/* Merged Plone Javascript file 3 * This file is dynamically assembled from separate parts. 4 * Some of these parts have 3rd party licenses or copyright information attached 5 * Such information is valid for that section, 6 * not for the entire composite file 7 * originating files are separated by - filename.js - 8 */ 9 10/* - ++resource++plone.formwidget.recurrence/jquery.tmpl-beta1.js - */ 11// https://www.ufac.br/site/portal_javascripts/++resource++plone.formwidget.recurrence/jquery.tmpl-beta1.js?original=1 12(function(jQuery,undefined){var oldManip=jQuery.fn.domManip,tmplItmAtt="_tmplitem",htmlExpr=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,newTmplItems={},wrappedItems={},appendToTmplItems,topTmplItem={key:0,data:{}},itemKey=0,cloneIndex=0,stack=[]; 13function newTmplItem(options,parentItem,fn,data){var newItem={data:data||(parentItem?parentItem.data:{}),_wrap:parentItem?parentItem._wrap:null,tmpl:null,parent:parentItem||null,nodes:[],calls:tiCalls,nest:tiNest,wrap:tiWrap,html:tiHtml,update:tiUpdate};if(options){jQuery.extend(newItem,options,{nodes:[],parent:parentItem})} 14if(fn){newItem.tmpl=fn;newItem._ctnt=newItem._ctnt||newItem.tmpl(jQuery,newItem);newItem.key=++itemKey;(stack.length?wrappedItems:newTmplItems)[itemKey]=newItem} 15return newItem} 16jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"}, function(name,original){jQuery.fn[name]=function(selector){var ret=[],insert=jQuery(selector),elems,i,l,tmplItems,parent=this.length===1&&this[0].parentNode;appendToTmplItems=newTmplItems||{};if(parent&&parent.nodeType===11&&parent.childNodes.length===1&&insert.length===1){insert[original](this[0]);ret=this} else{for(i=0,l=insert.length;i<l;i++){cloneIndex=i;elems=(i>0?this.clone(true):this).get();jQuery.fn[original].apply(jQuery(insert[i]),elems);ret=ret.concat(elems)} 17cloneIndex=0;ret=this.pushStack(ret,name,insert.selector)} 18tmplItems=appendToTmplItems;appendToTmplItems=null;jQuery.tmpl.complete(tmplItems);return ret}});jQuery.fn.extend({tmpl: function(data,options,parentItem){return jQuery.tmpl(this[0],data,options,parentItem)},tmplItem: function(){return jQuery.tmplItem(this[0])},template: function(name){return jQuery.template(name,this[0])},domManip: function(args,table,callback,options){if(args[0]&&args[0].nodeType){var dmArgs=jQuery.makeArray(arguments),argsLength=args.length,i=0,tmplItem;while(i<argsLength&&!(tmplItem=jQuery.data(args[i++],"tmplItem"))){} 19if(argsLength>1){dmArgs[0]=[jQuery.makeArray(args)]} 20if(tmplItem&&cloneIndex){dmArgs[2]=function(fragClone){jQuery.tmpl.afterManip(this,fragClone,callback)}} 21oldManip.apply(this,dmArgs)} else{oldManip.apply(this,arguments)} 22cloneIndex=0;if(!appendToTmplItems){jQuery.tmpl.complete(newTmplItems)} 23return this}});jQuery.extend({tmpl: function(tmpl,data,options,parentItem){var ret,topLevel=!parentItem;if(topLevel){parentItem=topTmplItem;tmpl=jQuery.template[tmpl]||jQuery.template(null,tmpl);wrappedItems={}} else if(!tmpl){tmpl=parentItem.tmpl;newTmplItems[parentItem.key]=parentItem;parentItem.nodes=[];if(parentItem.wrapped){updateWrapped(parentItem,parentItem.wrapped)} 24return jQuery(build(parentItem,null,parentItem.tmpl(jQuery,parentItem)))} 25if(!tmpl){return []} 26if(typeof data==="function"){data=data.call(parentItem||{})} 27if(options&&options.wrapped){updateWrapped(options,options.wrapped)} 28ret=jQuery.isArray(data)?jQuery.map(data, function(dataItem){return dataItem?newTmplItem(options,parentItem,tmpl,dataItem):null}):[newTmplItem(options,parentItem,tmpl,data)];return topLevel?jQuery(build(parentItem,null,ret)):ret},tmplItem: function(elem){var tmplItem;if(elem instanceof jQuery){elem=elem[0]} 29while(elem&&elem.nodeType===1&&!(tmplItem=jQuery.data(elem,"tmplItem"))&&(elem=elem.parentNode)){} 30return tmplItem||topTmplItem},template: function(name,tmpl){if(tmpl){if(typeof tmpl==="string"){tmpl=buildTmplFn(tmpl)} else if(tmpl instanceof jQuery){tmpl=tmpl[0]||{}} 31if(tmpl.nodeType){tmpl=jQuery.data(tmpl,"tmpl")||jQuery.data(tmpl,"tmpl",buildTmplFn(tmpl.innerHTML))} 32return typeof name==="string"?(jQuery.template[name]=tmpl):tmpl} 33return name?(typeof name!=="string"?jQuery.template(null,name):(jQuery.template[name]||jQuery.template(null,htmlExpr.test(name)?name:jQuery(name)))):null},encode: function(text){return(""+text).split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});jQuery.extend(jQuery.tmpl,{tag:{"tmpl":{_default:{$2:"null"},open:"if($notnull_1){_=_.concat($item.nest($1,$2));}"},"wrap":{_default:{$2:"null"},open:"$item.calls(_,$1,$2);_=[];",close:"call=$item.calls();_=call._.concat($item.wrap(call,_));"},"each":{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},"html":{open:"if($notnull_1){_.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){_.push($.encode($1a));}"},"!":{open:""}},complete: function(items){newTmplItems={}},afterManip: function afterManip(elem,fragClone,callback){var content=fragClone.nodeType===11?jQuery.makeArray(fragClone.childNodes):fragClone.nodeType===1?[fragClone]:[];callback.call(elem,fragClone);
33storeTmplItems(content);cloneIndex++}}); 34function build(tmplItem,nested,content){var frag,ret=content?jQuery.map(content, function(item){return(typeof item==="string")?(tmplItem.key?item.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+tmplItmAtt+"=\""+tmplItem.key+"\" $2"):item):build(item,tmplItem,item._ctnt)}):tmplItem;if(nested){return ret} 35ret=ret.join("");ret.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/, function(all,before,middle,after){frag=jQuery(middle).get();storeTmplItems(frag);if(before){frag=unencode(before).concat(frag)} 36if(after){frag=frag.concat(unencode(after))}});return frag?frag:unencode(ret)} 37function unencode(text){var el=document.createElement("div");el.innerHTML=text;return jQuery.makeArray(el.childNodes)} 38function buildTmplFn(markup){return new Function("jQuery","$item","var $=jQuery,call,_=[],$data=$item.data;"+"with($data){_.push('"+jQuery.trim(markup).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g, 39function(all,slash,type,fnargs,target,parens,args){var tag=jQuery.tmpl.tag[type],def,expr,exprAutoFnDetect;if(!tag){throw "Template command not found: "+type} 40def=tag._default||[];if(parens&&!/\w$/.test(target)){target+=parens;parens=""} 41if(target){target=unescape(target);args=args?(","+unescape(args)+")"):(parens?")":"");expr=parens?(target.indexOf(".")>-1?target+parens:("("+target+").call($item"+args)):target;exprAutoFnDetect=parens?expr:"(typeof("+target+")==='function'?("+target+").call($item):("+target+"))"} else{exprAutoFnDetect=expr=def.$1||"null"} 42fnargs=unescape(fnargs);return "');"+tag[slash?"close":"open"].split("$notnull_1").join(target?"typeof("+target+")!=='undefined' && ("+target+")!=null":"true").split("$1a").join(exprAutoFnDetect).split("$1").join(expr).split("$2").join(fnargs?fnargs.replace(/\s*([^\(]+)\s*(\((.*?)\))?/g, function(all,name,parens,params){params=params?(","+params+")"):(parens?")":"");return params?("("+name+").call($item"+params):all}):(def.$2||""))+"_.push('"})+"');}return _;")} 43function updateWrapped(options,wrapped){options._wrap=build(options,true,jQuery.isArray(wrapped)?wrapped:[htmlExpr.test(wrapped)?wrapped:jQuery(wrapped).html()]).join("")} 44function unescape(args){return args?args.replace(/\\'/g, "'").replace(/\\\\/g, "\\"):null} 45function outerHtml(elem){var div=document.createElement("div");div.appendChild(elem.cloneNode(true));return div.innerHTML} 46function storeTmplItems(content){var keySuffix="_"+cloneIndex,elem,elems,newClonedItems={},i,l,m;for(i=0,l=content.length;i<l;i++){if((elem=content[i]).nodeType!==1){continue} 47elems=elem.getElementsByTagName("*");for(m=elems.length-1;m>=0;m--){processItemKey(elems[m])} 48processItemKey(elem)} 49function processItemKey(el){var pntKey,pntNode=el,pntItem,tmplItem,key;if((key=el.getAttribute(tmplItmAtt))){while(pntNode.parentNode&&(pntNode=pntNode.parentNode).nodeType===1&&!(pntKey=pntNode.getAttribute(tmplItmAtt))){} 50if(pntKey!==key){pntNode=pntNode.parentNode?(pntNode.nodeType===11?0:(pntNode.getAttribute(tmplItmAtt)||0)):0;if(!(tmplItem=newTmplItems[key])){tmplItem=wrappedItems[key];tmplItem=newTmplItem(tmplItem,newTmplItems[pntNode]||wrappedItems[pntNode],null,true);tmplItem.key=++itemKey;newTmplItems[itemKey]=tmplItem} 51if(cloneIndex){cloneTmplItem(key)}} 52el.removeAttribute(tmplItmAtt)} else if(cloneIndex&&(tmplItem=jQuery.data(el,"tmplItem"))){cloneTmplItem(tmplItem.key);newTmplItems[tmplItem.key]=tmplItem;pntNode=jQuery.data(el.parentNode,"tmplItem");pntNode=pntNode?pntNode.key:0} 53if(tmplItem){pntItem=tmplItem;while(pntItem&&pntItem.key!=pntNode){pntItem.nodes.push(el);pntItem=pntItem.parent} 54delete tmplItem._ctnt;delete tmplItem._wrap;jQuery.data(el,"tmplItem",tmplItem)} 55function cloneTmplItem(key){key=key+keySuffix;tmplItem=newClonedItems[key]=(newClonedItems[key]||newTmplItem(tmplItem,newTmplItems[tmplItem.parent.key+keySuffix]||tmplItem.parent,null,true))}}} 56function tiCalls(content,tmpl,data,options){if(!content){return stack.pop()} 57stack.push({_:content,tmpl:tmpl,item:this,data:data,options:options})} 58function tiNest(tmpl,data,options){return jQuery.tmpl(jQuery.template(tmpl),data,options,this)} 59function tiWrap(call,wrapped){var options=call.options||{};options.wrapped=wrapped;return jQuery.tmpl(jQuery.template(call.tmpl),call.data,options,call.item)} 60function tiHtml(filter,textOnly){var wrapped=this._wrap;return jQuery.map(jQuery(jQuery.isArray(wrapped)?wrapped.join(""):wrapped).filter(filter||"*"), 61function(e){return textOnly?e.innerText||e.textContent:e.outerHTML||outerHtml(e)}
61)} 62function tiUpdate(){var coll=this.nodes;jQuery.tmpl(null,null,null,this).insertBefore(coll[0]);jQuery(coll).remove()}})(jQuery); 63 64/* - ++resource++plone.formwidget.recurrence/jquery.recurrenceinput.js - */ 65// https://www.ufac.br/site/portal_javascripts/++resource++plone.formwidget.recurrence/jquery.recurrenceinput.js?original=1 66"use strict";(function($){$.tools=$.tools||{version:'@VERSION'};var tool;var LABELS={};tool=$.tools.recurrenceinput={conf:{lang:'en',readOnly:false,firstDay:0,startField:null,startFieldYear:null,startFieldMonth:null,startFieldDay:null,ajaxURL:null,ajaxContentType:'application/json; charset=utf8',ributtonExtraClass:'',hasRepeatForeverButton:true,formOverlay:{speed:'fast',fixed:false},template:{form:'#jquery-recurrenceinput-form-tmpl',display:'#jquery-recurrenceinput-display-tmpl'},rtemplate:{daily:{rrule:'FREQ=DAILY',fields:['ridailyinterval','rirangeoptions']},mondayfriday:{rrule:'FREQ=WEEKLY;BYDAY=MO,FR',fields:['rirangeoptions']},weekdays:{rrule:'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR',fields:['rirangeoptions']},weekly:{rrule:'FREQ=WEEKLY',fields:['riweeklyinterval','riweeklyweekdays','rirangeoptions']},monthly:{rrule:'FREQ=MONTHLY',fields:['rimonthlyinterval','rimonthlyoptions','rirangeoptions']},yearly:{rrule:'FREQ=YEARLY',fields:['riyearlyinterval','riyearlyoptions','rirangeoptions']}}},localize: function(language,labels){LABELS[language]=labels},setTemplates: function(templates,titles){var lang,template;tool.conf.rtemplate=templates;for(lang in titles){if(titles.hasOwnProperty(lang)){for(template in titles[lang]){if(titles[lang].hasOwnProperty(template)){LABELS[lang].rtemplate[template]=titles[lang][template]}}}}}};tool.localize("en",{displayUnactivate:'Does not repeat',displayActivate:'Repeats every',add_rules:'Add',edit_rules:'Edit',delete_rules:'Delete',add:'Add',refresh:'Refresh',title:'Repeat',preview:'Selected dates',addDate:'Add date',recurrenceType:'Repeats:',dailyInterval1:'Repeat every:',dailyInterval2:'days',weeklyInterval1:'Repeat every:',weeklyInterval2:'week(s)',weeklyWeekdays:'Repeat on:',weeklyWeekdaysHuman:'on:',monthlyInterval1:'Repeat every:',monthlyInterval2:'month(s)',monthlyDayOfMonth1:'Day',monthlyDayOfMonth1Human:'on day',monthlyDayOfMonth2:'of the month',monthlyDayOfMonth3:'month(s)',monthlyWeekdayOfMonth1:'The',monthlyWeekdayOfMonth1Human:'on the',monthlyWeekdayOfMonth2:'',monthlyWeekdayOfMonth3:'of the month',monthlyRepeatOn:'Repeat on:',yearlyInterval1:'Repeat every:',yearlyInterval2:'year(s)',yearlyDayOfMonth1:'Every',yearlyDayOfMonth1Human:'on',yearlyDayOfMonth2:'',yearlyDayOfMonth3:'',yearlyWeekdayOfMonth1:'The',yearlyWeekdayOfMonth1Human:'on the',yearlyWeekdayOfMonth2:'',yearlyWeekdayOfMonth3:'of',yearlyWeekdayOfMonth4:'',yearlyRepeatOn:'Repeat on:',range:'End recurrence:',rangeNoEnd:'Never',rangeByOccurrences1:'After',rangeByOccurrences1Human:'ends after',rangeByOccurrences2:'occurrence(s)',rangeByEndDate:'On',rangeByEndDateHuman:'ends on',including:', and also',except:', except for',cancel:'Cancel',save:'Save',recurrenceStart:'Start of the recurrence',additionalDate:'Additional date',include:'Include',exclude:'Exclude',remove:'Remove',orderIndexes:['first','second','third','fourth','last'],months:['January','February','March','April','May','June','July','August','September','October','November','December'],shortMonths:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],weekdays:['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],shortWeekdays:['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],longDateFormat:'mmmm dd, yyyy',shortDateFormat:'mm/dd/yyyy',unsupportedFeatures:'Warning: This event uses recurrence features not '+'supported by this widget. Saving the recurrence '+'may change the recurrence in unintended ways:',noTemplateMatch:'No matching recurrence template',multipleDayOfMonth:'This widget does not support multiple days in monthly or yearly recurrence',bysetpos:'BYSETPOS is not supported',noRule:'No RRULE in RRULE data',noRepeatEvery:'Error: The "Repeat every"-field must be between 1 and 1000',noEndDate:'Error: End date is not set. Please set a correct value',noRepeatOn:'Error: "Repeat on"-value must be selected',pastEndDate:'Error: End date cannot be before start date',noEndAfterNOccurrences:'Error: The "After N occurrences"-field must be between 1 and 1000',alreadyAdded:'This date was already added',rtemplate:{daily:'Daily',mondayfriday:'Monday and Friday',weekdays:'Week
66day',weekly:'Weekly',monthly:'Monthly',yearly:'Yearly'}});var OCCURRENCETMPL=['<div class="rioccurrences">','{{each occurrences}}','<div class="occurrence ${occurrences[$index].type}">','<span>','${occurrences[$index].formattedDate}','{{if occurrences[$index].type === "start"}}','<span class="rlabel">${i18n.recurrenceStart}</span>','{{/if}}','{{if occurrences[$index].type === "rdate"}}','<span class="rlabel">${i18n.additionalDate}</span>','{{/if}}','</span>','{{if !readOnly}}','<span class="action">','{{if occurrences[$index].type === "rrule"}}','<a date="${occurrences[$index].date}" href="#"','class="${occurrences[$index].type}" title="${i18n.exclude}">','${i18n.exclude}','</a>','{{/if}}','{{if occurrences[$index].type === "rdate"}}','<a date="${occurrences[$index].date}" href="#"','class="${occurrences[$index].type}" title="${i18n.remove}" >','${i18n.remove}','</a>','{{/if}}','{{if occurrences[$index].type === "exdate"}}','<a date="${occurrences[$index].date}" href="#"','class="${occurrences[$index].type}" title="${i18n.include}">','${i18n.include}','</a>','{{/if}}','</span>','{{/if}}','</div>','{{/each}}','<div class="batching">','{{each batch.batches}}','{{if $index === batch.currentBatch}}<span class="current">{{/if}}','<a href="#" start="${batch.batches[$index][0]}">[${batch.batches[$index][0]} - ${batch.batches[$index][1]}]</a>','{{if $index === batch.currentBatch}}</span>{{/if}}','{{/each}}','</div></div>'].join('\n');$.template('occurrenceTmpl',OCCURRENCETMPL);var DISPLAYTMPL=['<div class="ridisplay">','<div class="rimain">','{{if !readOnly}}','<a href="#" name="riedit">${i18n.add_rules}</a>','<a href="#" name="ridelete" style="display:none">${i18n.delete_rules}</a>','{{/if}}','<label class="ridisplay">${i18n.displayUnactivate}</label>','</div>','<div class="rioccurrences" style="display:none" /></div>'].join('\n');$.template('displayTmpl',DISPLAYTMPL);var FORMTMPL=['<div class="riform">','<form>','<h1>${i18n.title}</h1>','<div id="messagearea" style="display: none;">','</div>','<div id="rirtemplate">','<label for="${name}rtemplate" class="label">','${i18n.recurrenceType}','</label>','<select id="rirtemplate" name="rirtemplate" class="field">','{{each rtemplate}}','<option value="${$index}">${i18n.rtemplate[$index]}</value>','{{/each}}','</select>','<div>','<div id="riformfields">','<div id="ridailyinterval" class="rifield">','<label for="${name}dailyinterval" class="label">','${i18n.dailyInterval1}','</label>','<div class="field">','<input type="text" size="2"','value="1"','name="ridailyinterval"','i
66d="${name}dailyinterval" />','${i18n.dailyInterval2}','</div>','</div>','<div id="riweeklyinterval" class="rifield">','<label for="${name}weeklyinterval" class="label">','${i18n.weeklyInterval1}','</label>','<div class="field">','<input type="text" size="2"','value="1"','name="riweeklyinterval"','id="${name}weeklyinterval"/>','${i18n.weeklyInterval2}','</div>','</div>','<div id="riweeklyweekdays" class="rifield">','<label for="${name}weeklyinterval" class="label">${i18n.weeklyWeekdays}</label>','<div class="field">','{{each orderedWeekdays}}','<div class="riweeklyweekday">','<input type="checkbox"','name="riweeklyweekdays${weekdays[$value]}"','id="${name}weeklyWeekdays${weekdays[$value]}"','value="${weekdays[$value]}" />','<label for="${name}weeklyWeekdays${weekdays[$value]}">${i18n.shortWeekdays[$value]}</label>','</div>','{{/each}}','</div>','</div>','<div id="rimonthlyinterval" class="rifield">','<label for="rimonthlyinterval" class="label">${i18n.monthlyInterval1}</label>','<div class="field">','<input type="text" size="2"','value="1" ','name="rimonthlyinterval"/>','${i18n.monthlyInterval2}','</div>','</div>','<div id="rimonthlyoptions" class="rifield">','<label for="rimonthlytype" class="label">${i18n.monthlyRepeatOn}</label>','<div class="field">','<div>','<input','type="radio"','value="DAYOFMONTH"','name="rimonthlytype"','id="${name}monthlytype:DAYOFMONTH" />','<label for="${name}monthlytype:DAYOFMONTH">','${i18n.monthlyDayOfMonth1}','</label>','<select name="rimonthlydayofmonthday"','id="${name}monthlydayofmonthday">','{{each [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,','18,19,20,21,22,23,24,25,26,27,28,29,30,31]}}','<option value="${$value}">${$value}</option>','{{/each}}','</select>','${i18n.monthlyDayOfMonth2}','</div>','<div>','<input','type="radio"','value="WEEKDAYOFMONTH"','name="rimonthlytype"','id="${name}monthlytype:WEEKDAYOFMONTH" />','<label for="${name}monthlytype:WEEKDAYOFMONTH">','${i18n.monthlyWeekdayOfMonth1}','</label>','<select name="rimonthlyweekdayofmonthindex">','{{each i18n.orderIndexes}}','<option value="${orderIndexes[$index]}">${$value}</option>','{{/each}}','</select>','${i18n.monthlyWeekdayOfMonth2}','<select name="rimonthlyweekdayofmonth">','{{each orderedWeekdays}}','<option value="${weekdays[$value]}">${i18n.weekdays[$value]}</option>','{{/each}}','</select>','${i18n.monthlyWeekdayOfMonth3}','</div>','</div>','</div>','<div id="riyearlyinterval" class="rifield">','<label for="riyearlyinterval" class="label">${i18n.yearlyInterval1}</label>','<div class="field">','<input type="text" size="2"','value="1" ','name="riyearlyinterval"/>','${i18n.yearlyInterval2}','</div>','</div>','<div id="riyearlyoptions" class="rifield">','<label for="riyearlyType" class="label">${i18n.yearlyRepeatOn}</label>','<div class="field">','<div>','<input','type="radio"','value="DAYOFMONTH"','name="riyearlyType"','id="${name}yearlytype:DAYOFMONTH" />','<label for="${name}yearlytype:DAYOFMONTH">','${i18n.yearlyDayOfMonth1}','</label>','<select name="riyearlydayofmonthmonth">','{{each i18n.months}}','<option value="${$index+1}">${$value}</option>','{{/each}}','</select>','${i18n.yearlyDayOfMonth2}','<select name="riyearlydayofmonthday">','{{each [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,','18,19,20,21,22,23,24,25,26,27,28,29,30,31]}}','<option value="${$value}">${$value}</option>','{{/each}}','</select>','${i18n.yearlyDayOfMonth3}','</div>','<div>','<input','type="radio"','value="WEEKDAYOFMONTH"','name="riyearlyType"','id="${name}yearlytype:WEEKDAYOFMONTH"/>','<label for="${name}yearlytype:WEEKDAYOFMONTH">','${i18n.yearlyWeekdayOfMonth1}','</label>','<select name="riyearlyweekdayofmonthindex">','{{each i18n.orderIndexes}}','<option value="${orderIndexes[$index]}">${$value}</option>','{{/each}}','</select>','<label for="${name}yearlytype:WEEKDAYOFMONTH">','${i18n.yearlyWeekdayOfMonth2}','</label>','<select name="riyearlyweekdayofmonthday">','{{each orderedWeekdays}}','<option value="${weekdays[$value]}">${i18n.weekdays[$value]}</option>','{{/each}}','</select>','${i18n.yearlyWeekdayOfMonth3}','<select name="riyearlyweekdayofmonthmonth">','{{each i18n.months}}','<option value="${$index+1}">${$value}</option>','{{/each}}','</select>','${i18n.yearlyWeekdayOfMonth4}','</div>','</div>','</div>','<div id="rirangeoptions" class="rifield">','<label class="label">${i18n.range}</label>','<div class="field">','{{if hasRepeatForeverButton}}','<div>','<input','type="radio"','value="NOENDDATE"','name="rirangetype"','id="${name}rangetype:NOENDDATE"/>','<label for="${name}rangetype:NOENDDATE">','${i18n.rangeNoEnd}','</label>','</div>','{{/if}}','<div>','<input','type="radio"','checked="checked"','value="BYOCCURRENCES"','name="rirangetype"','id="${name}rangetype:BYOCCURRENCES"/>','<label for="${name}rangetype:BYOCCURRENCES">','${i18n.rangeByOccurrences1}','</label>','<input','type="text" size="3"','value="7"','name="rirangebyoccurrencesvalue" />','${i18n.rangeByOccurrences2}','</div>','<div>','<input','type="radio"','value="BYENDDATE"','name="rirangetype"','id="${name}rangetype:BYENDDATE"/>','<label for="${name}rangetype:BYENDDATE">','${i18n.rangeByEndDate}','</label>','<input','type="date"','name="rirangebyenddatecalendar" />','</div>','</div>','</div>','</div>','<div class="rioccurrencesactions">','<div class="rioccurancesheader">','<h2>${i18n.preview}</h2>','<span class="refreshbutton action">','<a class="rirefreshbutton" href="#" title="${i18n.refresh}">','${i18n.refresh}','</a>','</span>','</div>','</div>','<div class="rioccurrences">','</div>','<div class="rioccurrencesactions">','<div class="rioccurancesheader">','<h2>${i18n.addDate}</h2>','</div>','<div class="riaddoccurrence">','<div class="errorarea"></div>','<input type="date" name="adddate" id="adddate" />','<input type="button" name="addaction" id="addaction" value="${i18n.add}">','</div>','</div>','<div class="ributtons">','<input','type="submit"','class="ricancelbutton ${ributtonExtraClass}"','value="${i18n.cancel}" />','<input','type="submit"','class="risavebutton ${ributtonExtraClass}"','value="${i18n.save}" />','</div>','</form></div>'].join('\n');$.template('formTmpl',FORMTMPL);var Re=/d{1,4}|m{1,4}|yy(?:yy)?|"[^"]*"|'[^']*'/g; 67function zeropad(val,len){val=val.toString();len=len||2;while(val.length<len){val="0"+val} 68return val} 69function format(date,fmt,conf){var d=date.getDate(),D=date.getDay(),m=date.getMonth(),y=date.getFullYear(),flags={d:d,dd:zeropad(d),ddd:conf.i18n.shortWeekdays[D],dddd:conf.i18n.weekdays[D],m:m+1,mm:zeropad(m+1),mmm:conf.i18n.shortMonths[m],mmmm:conf.i18n.months[m],yy:String(y).slice(2),yyyy:y};
69var result=fmt.replace(Re, function($0){return flags.hasOwnProperty($0)?flags[$0]:$0.slice(1,$0.length-1)});return result} 70function widgetSaveToRfc5545(form,conf,tz){var value=form.find('select[name=rirtemplate]').val();var rtemplate=conf.rtemplate[value];var result=rtemplate.rrule;var human=conf.i18n.rtemplate[value];var field,input,weekdays,i18nweekdays,i,j,index,tmp;var day,month,year,interval,yearlyType,occurrences,date;for(i=0;i<rtemplate.fields.length;i++){field=form.find('#'+rtemplate.fields[i]);switch(field.attr('id')){case 'ridailyinterval':interval=field.find('input[name=ridailyinterval]').val();if(interval!=='1'){result+=';INTERVAL='+interval} 71human=interval+' '+conf.i18n.dailyInterval2;break;case 'riweeklyinterval':interval=field.find('input[name=riweeklyinterval]').val();if(interval!=='1'){result+=';INTERVAL='+interval} 72human=interval+' '+conf.i18n.weeklyInterval2;break;case 'riweeklyweekdays':weekdays='';i18nweekdays='';for(j=0;j<conf.weekdays.length;j++){input=field.find('input[name=riweeklyweekdays'+conf.weekdays[j]+']');if(input.is(':checked')){if(weekdays){weekdays+=',';i18nweekdays+=', '} 73weekdays+=conf.weekdays[j];i18nweekdays+=conf.i18n.weekdays[j]}} 74if(weekdays){result+=';BYDAY='+weekdays;human+=' '+conf.i18n.weeklyWeekdaysHuman+' '+i18nweekdays} 75break;case 'rimonthlyinterval':interval=field.find('input[name=rimonthlyinterval]').val();if(interval!=='1'){result+=';INTERVAL='+interval} 76human=interval+' '+conf.i18n.monthlyInterval2;break;case 'rimonthlyoptions':var monthlyType=$('input[name=rimonthlytype]:checked',form).val();switch(monthlyType){case 'DAYOFMONTH':day=$('select[name=rimonthlydayofmonthday]',form).val();result+=';BYMONTHDAY='+day;human+=', '+conf.i18n.monthlyDayOfMonth1Human+' '+day+' '+conf.i18n.monthlyDayOfMonth2;break;case 'WEEKDAYOFMONTH':index=$('select[name=rimonthlyweekdayofmonthindex]',form).val();day=$('select[name=rimonthlyweekdayofmonth]',form).val();if($.inArray(day,['MO','TU','WE','TH','FR','SA','SU'])>-1){result+=';BYDAY='+index+day;human+=', '+conf.i18n.monthlyWeekdayOfMonth1Human+' ';human+=' '+conf.i18n.orderIndexes[$.inArray(index,conf.orderIndexes)];human+=' '+conf.i18n.monthlyWeekdayOfMonth2;human+=' '+conf.i18n.weekdays[$.inArray(day,conf.weekdays)];human+=' '+conf.i18n.monthlyDayOfMonth2} 77break} 78break;case 'riyearlyinterval':interval=field.find('input[name=riyearlyinterval]').val();if(interval!=='1'){result+=';INTERVAL='+interval} 79human=interval+' '+conf.i18n.yearlyInterval2;break;case 'riyearlyoptions':yearlyType=$('input[name=riyearlyType]:checked',form).val();switch(yearlyType){case 'DAYOFMONTH':month=$('select[name=riyearlydayofmonthmonth]',form).val();day=$('select[name=riyearlydayofmonthday]',form).val();result+=';BYMONTH='+month;result+=';BYMONTHDAY='+day;human+=', '+conf.i18n.yearlyDayOfMonth1Human+' '+conf.i18n.months[month-1]+' '+day;break;case 'WEEKDAYOFMONTH':index=$('select[name=riyearlyweekdayofmonthindex]',form).val();day=$('select[name=riyearlyweekdayofmonthday]',form).val();month=$('select[name=riyearlyweekdayofmonthmonth]',form).val();result+=';BYMONTH='+month;if($.inArray(day,['MO','TU','WE','TH','FR','SA','SU'])>-1){result+=';BYDAY='+index+day;human+=', '+conf.i18n.yearlyWeekdayOfMonth1Human;human+=' '+conf.i18n.orderIndexes[$.inArray(index,conf.orderIndexes)];human+=' '+conf.i18n.yearlyWeekdayOfMonth2;human+=' '+conf.i18n.weekdays[$.inArray(day,conf.weekdays)];human+=' '+conf.i18n.yearlyWeekdayOfMonth3;human+=' '+conf.i18n.months[month-1];human+=' '+conf.i18n.yearlyWeekdayOfMonth4} 80break} 81break;case 'rirangeoptions':var rangeType=form.find('input[name=rirangetype]:checked').val();switch(rangeType){case 'BYOCCURRENCES':occurrences=form.find('input[name=rirangebyoccurrencesvalue]').val();result+=';COUNT='+occurrences;human+=', '+conf.i18n.rangeByOccurrences1Human;human+=' '+occurrences;human+=' '+conf.i18n.rangeByOccurrences2;break;case 'BYENDDATE':field=form.find('input[name=rirangebyenddatecalendar]');date=field.data('dateinput').getValue('yyyymmdd');result+=';UNTIL='+date+'T000000';if(tz===true){result+='Z'} 82human+=', '+conf.i18n.rangeByEndDateHuman;human+=' '+field.data('dateinput').getValue(conf.i18n.longDateFormat);break} 83break}} 84if(form.ical.RDATE!==undefined&&form.ical.RDATE.length>0){form.ical.RDATE.sort();tmp=[];for(i=0;i<form.ical.RDATE.length;i++){if(form.ical.RDATE[i]!==''){year=parseInt(form.ical.RDATE[i].substring(0,4),10);month=parseInt(form.ical.RDATE[i].substring(4,6),10)-1;day=parseInt(form.ical.RDATE[i].substring(6,8),10);tmp.push(format(new Date(year,month,day),conf.i18n.longDateFormat,conf))}} 85if(tmp.length!==0){human=human+conf.i18n.including+' '+tmp.join('; ')}} 86if(form.ical.EXDATE!==undefined&&form.ical.EXDATE.length>0){form.ical.EXDATE.sort();tmp=[];for(i=0;i<form.ical.EXDATE.length;i++){if(form.ical.EXDATE[i]!==''){year=parseInt(form.ical.EXDATE[i].substring(0,4),10);month=parseInt(form.ical.EXDATE[i].substring(4,6),10)-1;day=parseInt(form.ical.EXDATE[i].substring(6,8),10);tmp.push(format(new Date(year,month,day),conf.i18n.longDateFormat,conf))}} 87if(tmp.length!==0){human=human+conf.i18n.except+' '+tmp.join('; ')}} 88result='RRULE:'+result;if(form.ical.EXDATE!==undefined&&form.ical.EXDATE.join()!==""){tmp=$.map(form.ical.EXDATE, function(x){if(x.length===8){x+='T000000'} 89if(tz===true){x+='Z'} 90return x});result=result+'\nEXDATE:'+tmp} 91if(form.ical.RDATE!==undefined&&form.ical.RDATE.join()!==""){tmp=$.map(form.ical.RDATE, function(x){if(x.length===8){x+='T000000'} 92if(tz===true){x+='Z'} 93return x});result=result+'\nRDATE:'+tmp} 94return{result:result,description:human}} 95function parseLine(icalline){var result={};var pos=icalline.indexOf(':');var property=icalline.substring(0,pos);result.value=icalline.substring(pos+1);if(property.indexOf(';')!==-1){pos=property.indexOf(';');result.parameters=property.substring(pos+1);result.property=property.substring(0,pos)} else{result.parameters=null;result.property=property} 96return result} 97function cleanDates(dates){var result=[];var splitDates=dates.split(',');var date;for(date in splitDates){if(splitDates.hasOwnProperty(date)){if(splitDates[date].indexOf('Z')!==-1){result.push(splitDates[date].substring(0,15))} else{result.push(splitDates[date])}}} 98return result} 99function parseIcal(icaldata){var lines=[];var result={};var propAndValue=[];var line=null;var nextline;lines=icaldata.split('\n');lines.reverse();while(true){if(lines.length>0){nextline=lines.pop();if(nextline.charAt(0)===' '||nextline.charAt(0)==='\t'){line=line+nextline;continue}} else{nextline=''} 100if(line!==null){line=parseLine(line);if(line.property==='RDATE'||line.property==='EXDATE'){result[line.property]=cleanDates(line.value)} else{result[line.property]=line.value}} 101line=nextline;if(line===''){break}} 102return result} 103function widgetLoadFromRfc5545(form,conf,icaldata,force){var unsupportedFeatures=[];var i,matches,match,matchIndex,rtemplate,d,input,index;var selector,selectors,field,radiobutton,start,end;var interval,byday,bymonth,bymonthday,count,until;var day,month,year,weekday,ical;form.ical=parseIcal(icaldata);if(form.ical.RRULE===undefined){unsupportedFeatures.push(conf.i18n.noRule);if(!force){return-1}} else{matches=/INTERVAL=([0-9]+);?/.exec(form.ical.RRULE);if(matches){interval=matches[1]} else{interval='1'} 104matches=/BYDAY=([^;]+);?/.exec(form.ical.RRULE);if(matches){byday=matches[1]} else{byday=''} 105matches=/BYMONTHDAY=([^;]+);?/.exec(form.ical.RRULE);if(matches){bymonthday=matches[1].split(",")} else{bymonthday=null} 106matches=/BYMONTH=([^;]+);?/.exec(form.ical.RRULE);if(matches){bymonth=matches[1].split(",")} else{bymonth=null} 107matches=/COUNT=([0-9]+);?/.exec(form.ical.RRULE);if(matches){count=matches[1]} else{count=null} 108matches=/UNTIL=([0-9T]+);?/.exec(form.ical.RRULE);if(matches){until=matches[1]} else{until=null} 109matches=/BYSETPOS=([^;]+);?/.exec(form.ical.RRULE);if(matches){unsupportedFeatures.push(conf.i18n.bysetpos)} 110match='';matchIndex=null;for(i in conf.rtemplate){if(conf.rtemplate.hasOwnProperty(i)){rtemplate=conf.rtemplate[i];if(form.ical.RRULE.indexOf(rtemplate.rrule)===0){if(form.ical.RRULE.length>match.length){match=form.ical.RRULE;matchIndex=i}}}} 111if(match){rtemplate=conf.rtemplate[matchIndex];selector=form.find('select[name=rirtemplate]').val(matchIndex)} else{for(rtemplate in conf.rtemplate){if(conf.rtemplate.hasOwnProperty(rtemplate)){rtemplate=conf.rtemplate[rtemplate];break}} 112unsupportedFeatures.push(conf.i18n.noTemplateMatch)} 113for(i=0;i<rtemplate.fields.length;i++){field=form.find('#'+rtemplate.fields[i]);switch(field.attr('id')){case 'ridailyinterval':field.find('input[name=ridailyinterval]').val(interval);break;case 'riweeklyinterval':field.find('input[name=riweeklyinterval]').val(interval);break;case 'riweeklyweekdays':byday=byday.split(",");for(d=0;d<conf.weekdays.length;d++){day=conf.weekdays[d];input=field.find('input[name=riweeklyweekdays'+day+']');input.attr('checked',$.inArray(day,byday)!==-1)} 114break;case 'rimonthlyinterval':field.find('input[name=rimonthlyinterval]').val(interval);break;case 'rimonthlyoptions':var monthlyType='DAYOFMONTH';if(bymonthday){monthlyType='DAYOFMONTH';if(bymonthday.length>1){unsupportedFeatures.push(conf.i18n.multipleDayOfMonth);bymonthday=bymonthday[0]} 115field.find('select[name=rimonthlydayofmonthday]').val(bymonthday)} 116if(byday){monthlyType='WEEKDAYOFMONTH';if(byday.indexOf(',')!==-1){unsupportedFeatures.push(conf.i18n.multipleDayOfMonth);byday=byday.split(",")[0]} 117index=byday.slice(0,-2);if(index.charAt(0)!=='+'&&index.charAt(0)!=='-'){index='+'+index} 118weekday=byday.slice(-2);field.find('select[name=rimonthlyweekdayofmonthindex]').val(index);field.find('select[name=rimonthlyweekdayofmonth]').val(weekday)} 119selectors=field.find('input[name=rimonthlytype]');for(index=0;index<selectors.length;index++){radiobutton=selectors[index];$(radiobutton).attr('checked',radiobutton.value===monthlyType)} 120break;case 'riyearlyinterval':field.find('input[name=riyearlyinterval]').val(interval);break;case 'riyearlyoptions':var yearlyType='DAYOFMONTH';if(bymonthday){yearlyType='DAYOFMONTH';if(bymonthday.length>1){unsupportedFeatures.push(conf.i18n.multipleDayOfMonth);bymonthday=bymonthday[0]} 121field.find('select[name=riyearlydayofmonthmonth]').val(bymonth);field.find('select[name=riyearlydayofmonthday]').val(bymonthday)} 122if(byday){yearlyType='WEEKDAYOFMONTH';if(byday.indexOf(',')!==-1){unsupportedFeatures.push(conf.i18n.multipleDayOfMonth);byday=byday.split(",")[0]} 123index=byday.slice(0,-2);if(index.charAt(0)!=='+'&&index.charAt(0)!=='-'){index='+'+index} 124weekday=byday.slice(-2);field.find('select[name=riyearlyweekdayofmonthindex]').val(index);field.find('select[name=riyearlyweekdayofmonthday]').val(weekday);field.find('select[name=riyearlyweekdayofmonthmonth]').val(bymonth)} 125selectors=field.find('input[name=riyearlyType]');for(index=0;index<selectors.length;index++){radiobutton=selectors[index];$(radiobutton).attr('checked',radiobutton.value===yearlyType)} 126break;case 'rirangeoptions':var rangeType='NOENDDATE';if(count){rangeType='BYOCCURRENCES';field.find('input[name=rirangebyoccurrencesvalue]').val(count)} 127if(until){rangeType='BYENDDATE';input=field.find('input[name=rirangebyenddatecalendar]');year=until.slice(0,4);month=until.slice(4,6);month=parseInt(month,10)-1;day=until.slice(6,8);input.data('dateinput').setValue(new Date(year,month,day))} 128selectors=field.find('input[name=rirangetype]');for(index=0;index<selectors.length;index++){radiobutton=selectors[index];$(radiobutton).attr('checked',radiobutton.value===rangeType)} 129break}}} 130var messagearea=form.find('#messagearea');if(unsupportedFeatures.length!==0){messagearea.text(conf.i18n.unsupportedFeatures+' '+unsupportedFeatures.join('; '));messagearea.show();return 1} else{messagearea.text('');messagearea.hide();return 0}} 131function RecurrenceInput(conf,textarea){var self=this;var form,display;var orderedWeekdays=[];var index,i;for(i=0;i<7;i++){index=i+conf.firstDay;if(index>6){index=index-7} 132orderedWeekdays.push(index)} 133$.extend(conf,{orderIndexes:['+1','+2','+3','+4','-1'],weekdays:['SU','MO','TU','WE','TH','FR','SA'],orderedWeekdays:orderedWeekdays}); 134function displayFields(selector){var i;form.find('.rifield').hide();var value=selector.val();if(value){var rtemplate=conf.rtemplate[value];for(i=0;i<rtemplate.fields.length;i++){form.find('#'+rtemplate.fields[i]).show()}}} 135function occurrenceExclude(event){event.preventDefault();if(form.ical.EXDATE===undefined){form.ical.EXDATE=[]} 136form.ical.EXDATE.push(this.attributes.date.value);var $this=$(this);$this.attr('class','exdate');$this.parent().parent().addClass('exdate');$this.unbind(event);$this.click(occurrenceInclude)} 137function occurrenceInclude(event){event.preventDefault();form.ical.EXDATE.splice($.inArray(this.attributes.date.value,form.ical.EXDATE),1);var $this=$(this);$this.attr('class','rrule');$this.parent().parent().removeClass('exdate');$this.unbind(event);$this.click(occurrenceExclude)} 138function occurrenceDelete(event){event.preventDefault();form.ical.RDATE.splice($.inArray(this.attributes.date.value,form.ical.RDATE),1);$(this).parent().parent().hide('slow', function(){$(this).remove()})} 139function occurrenceAdd(event){event.preventDefault();var dateinput=form.find('.riaddoccurrence input#adddate').data('dateinput');var datevalue=dateinput.getValue('yyyymmddT000000');if(form.ical.RDATE===undefined){form.ical.RDATE=[]} 140var errorarea=form.find('.riaddoccurrence div.errorarea');errorarea.text('');errorarea.hide();if($.inArray(datevalue,form.ical.RDATE)===-1){form.ical.RDATE.push(datevalue);var html=['<div class="occurrence rdate" style="display: none;">','<span class="rdate">',dateinput.getValue(conf.i18n.longDateFormat),'<span class="rlabel">'+conf.i18n.additionalDate+'</span>','</span>','<span class="action">','<a date="'+datevalue+'" href="#" class="rdate" >','Include','</a>','</span>','</div>'].join('\n');form.find('div.rioccurrences').prepend(html);$(form.find('div.rioccurrences div')[0]).slideDown();$(form.find('div.rioccurrences .action a.rdate')[0]).click(occurrenceDelete)} else{errorarea.text(conf.i18n.alreadyAdded).show()}} 141function loadOccurrences(startdate,rfc5545,start,readonly){var element,occurrenceDiv;if(!readonly){element=form} else{element=display} 142occurrenceDiv=element.find('.rioccurrences');occurrenceDiv.hide();var year,month,day;year=startdate.getFullYear();month=startdate.getMonth()+1;day=startdate.getDate();var data={year:year,month:month,day:day,rrule:rfc5545,format:conf.i18n.longDateFormat,start:start};var dict={url:conf.ajaxURL,async:false,type:'post',dataType:'json',contentType:conf.ajaxContentType,cache:false,data:data,success: function(data,status,jqXHR){var result,element;if(!readonly){element=form} else{element=display} 143data.readOnly=readonly;data.i18n=conf.i18n;var occurrence,date,y,m,d,each;for(each in data.occurrences){if(data.occurrences.hasOwnProperty(each)){occurrence=data.occurrences[each];date=occurrence.date;y=parseInt(date.substring(0,4),10);m=parseInt(date.substring(4,6),10)-1;d=parseInt(date.substring(6,8),10);occurrence.formattedDate=format(new Date(y,m,d),conf.i18n.longDateFormat,conf)}} 144result=$.tmpl('occurrenceTmpl',data);occurrenceDiv=element.find('.rioccurrences');occurrenceDiv.replaceWith(result);element.find('.rioccurrences .batching a').click( 145function(event){event.preventDefault();loadOccurrences(startdate,rfc5545,this.attributes.start.value,readonly)});if(!readonly){element.find('.rioccurrences .action a.rrule').click(occurrenceExclude);element.find('.rioccurrences .action a.exdate').click(occurrenceInclude);element.find('.rioccurrences .action a.rdate').click(occurrenceDelete)} 146element.find('.rioccurrences').show()},error: function(jqXHR,textStatus,errorThrown){alert(textStatus)}};$.ajax(dict)} 147function getField(field){var realField=$(field);if(!realField.length){realField=$('#'+field)} 148if(!realField.length){realField=$("input[name='"+field+"']")} 149return realField} 150function findStartDate(){var startdate=null;var startField,startFieldYear,startFieldMonth,startFieldDay;if(conf.startField){startField=getField(conf.startField);if(!startField.length){return null} 151startdate=startField.data('dateinput');if(!startdate){startdate=startField.val();if(startdate===""){startdate=startField.text()}} else{startdate=startdate.getValue()} 152if(typeof startdate==='string'){startdate=startdate.replace(' ','T')} 153startdate=new Date(startdate)} else if(conf.startFieldYear&&conf.startFieldMont
153h&&conf.startFieldDay){startFieldYear=getField(conf.startFieldYear);startFieldMonth=getField(conf.startFieldMonth);startFieldDay=getField(conf.startFieldDay);if(!startFieldYear.length&&!startFieldMonth.length&&!startFieldDay.length){return null} 154startdate=new Date(startFieldYear.val(),startFieldMonth.val()-1,startFieldDay.val())} 155if(startdate===null){return null} 156if(isNaN(startdate)){return null} 157return startdate} 158function findEndDate(form){var endField,enddate;endField=form.find('input[name=rirangebyenddatecalendar]');enddate=endField.data('dateinput');if(!enddate){enddate=endField.val()} else{enddate=enddate.getValue()} 159enddate=new Date(enddate);if(isNaN(enddate)||endField.val()===""){return null} 160return enddate} 161function findIntField(fieldName,form){var field,num,isInt;field=form.find('input[name='+fieldName+']');num=field.val();if(isNaN(num)||(num.toString().indexOf('.')!==-1)||field.val()===""){return null} 162return num} 163function loadData(rfc5545){var selector,format,startdate,dayindex,day;if(rfc5545){widgetLoadFromRfc5545(form,conf,rfc5545,true)} 164startdate=findStartDate();if(startdate!==null){form.find('select[name=rimonthlydayofmonthday]').val(startdate.getDate());dayindex=conf.orderIndexes[Math.floor((startdate.getDate()-1)/7)];day=conf.weekdays[startdate.getDay()];form.find('select[name=rimonthlyweekdayofmonthindex]').val(dayindex);form.find('select[name=rimonthlyweekdayofmonth]').val(day);form.find('select[name=riyearlydayofmonthmonth]').val(startdate.getMonth()+1);form.find('select[name=riyearlydayofmonthday]').val(startdate.getDate());form.find('select[name=riyearlyweekdayofmonthindex]').val(dayindex);form.find('select[name=riyearlyweekdayofmonthday]').val(day);form.find('select[name=riyearlyweekdayofmonthmonth]').val(startdate.getMonth()+1);loadOccurrences(startdate,widgetSaveToRfc5545(form,conf,false).result,0,false);form.find('div.rioccurrencesactions').show()} else{form.find('div.rioccurrencesactions').hide()} 165selector=form.find('select[name=rirtemplate]');displayFields(selector)} 166function recurrenceOn(){var RFC5545=widgetSaveToRfc5545(form,conf,false);var label=display.find('label[class=ridisplay]');label.text(conf.i18n.displayActivate+' '+RFC5545.description);textarea.val(RFC5545.result).change();var startdate=findStartDate();if(startdate!==null){loadOccurrences(startdate,widgetSaveToRfc5545(form,conf,false).result,0,true)} 167display.find('a[name="riedit"]').text(conf.i18n.edit_rules);display.find('a[name="ridelete"]').show()} 168function recurrenceOff(){var label=display.find('label[class=ridisplay]');label.text(conf.i18n.displayUnactivate);textarea.val('').change();display.find('.rioccurrences').hide();display.find('a[name="riedit"]').text(conf.i18n.add_rules);display.find('a[name="ridelete"]').hide()} 169function checkFields(form){var startDate,endDate,num,messagearea;startDate=findStartDate();messagearea=form.find('#messagearea');messagearea.text('');messagearea.hide();form.find('.riaddoccurrence div.errorarea').text('').hide();if(form.find('#ridailyinterval').css('display')==='block'){num=findIntField('ridailyinterval',form);if(!num||num<1||num>1000){messagearea.text(conf.i18n.noRepeatEvery).show();return false}} 170if(form.find('#riweeklyinterval').css('display')==='block'){num=findIntField('riweeklyinterval',form);if(!num||num<1||num>1000){messagearea.text(conf.i18n.noRepeatEvery).show();return false}} 171if(form.find('#rimonthlyinterval').css('display')==='block'){num=findIntField('rimonthlyinterval',form);if(!num||num<1||num>1000){messagearea.text(conf.i18n.noRepeatEvery).show();return false} 172if(form.find('#rimonthlyoptions input:checked').length===0){messagearea.text(conf.i18n.noRepeatOn).show();return false}} 173if(form.find('#riyearlyinterval').css('display')==='block'){num=findIntField('riyearlyinterval',form);if(!num||num<1||num>1000){messagearea.text(conf.i18n.noRepeatEvery).show();return false} 174if(form.find('#riyearlyoptions input:checked').length===0){messagearea.text(conf.i18n.noRepeatOn).show();return false}} 175if(form.find('input[value="BYOCCURRENCES"]:visible:checked').length>0){num=findIntField('rirangebyoccurrencesvalue',form);if(!num||num<1||num>1000){messagearea.text(conf.i18n.noEndAfterNOccurrences).show();return false}} 176if(form.find('input[value="BYENDDATE"]:visible:checked').length>0){endDate=findEndDate(form);
176if(!endDate){messagearea.text(conf.i18n.noEndDate).show();return false} else if(endDate<startDate){messagearea.text(conf.i18n.pastEndDate).show();return false}} 177return true} 178function save(event){event.preventDefault();if(checkFields(form)){form.overlay().close();recurrenceOn()}} 179function cancel(event){event.preventDefault();form.overlay().close()} 180function updateOccurances(){var startDate;startDate=findStartDate();if(checkFields(form)){loadOccurrences(startDate,widgetSaveToRfc5545(form,conf,false).result,0,false)}} 181display=$.tmpl('displayTmpl',conf);form=$.tmpl('formTmpl',conf);form.overlay(conf.formOverlay).hide();form.ical={RDATE:[],EXDATE:[]};$.tools.dateinput.localize(conf.lang,{months:LABELS[conf.lang].months.join(),shortMonths:LABELS[conf.lang].shortMonths.join(),days:LABELS[conf.lang].weekdays.join(),shortDays:LABELS[conf.lang].shortWeekdays.join()});form.find('input[name=rirangebyenddatecalendar]').dateinput({selectors:true,lang:conf.lang,format:conf.i18n.shortDateFormat,firstDay:conf.firstDay,yearRange:[-5,10]}).data('dateinput').setValue(new Date());if(textarea.val()){var result=widgetLoadFromRfc5545(form,conf,textarea.val(),false);if(result===-1){var label=display.find('label[class=ridisplay]');label.text(conf.i18n.noRule)} else{recurrenceOn()}} 182display.find('a[name=ridelete]').click(function(e){e.preventDefault();recurrenceOff()});display.find('a[name=riedit]').click( 183function(e){loadData(textarea.val());e.preventDefault();form.overlay().load()});form.find('div.riaddoccurrence input#adddate').dateinput({selectors:true,lang:conf.lang,format:conf.i18n.shortDateFormat,firstDay:conf.firstDay,yearRange:[-5,10]}).data('dateinput').setValue(new Date());form.find('input#addaction').click(occurrenceAdd);form.find('a.rirefreshbutton').click( 184function(event){event.preventDefault();updateOccurances()});form.find('select[name=rirtemplate]').change( 185function(e){displayFields($(this))});form.find('select').change( 186function(e){$(this).parent().find('> input').click().change()});form.find('input[name=rirangebyoccurrencesvalue]').change( 187function(e){$(this).parent().find('input[name=rirangetype]').click().change()});form.find('input[name=rirangebyenddatecalendar]').change(function(){$(this).parent().find('input[name=rirangetype]').click();if(form.find('.rioccurrencesactions:visible').length!==0){updateOccurances()}});form.find('input:radio, .riweeklyweekday > input, input[name=ridailyinterval], input[name=riweeklyinterval], input[name=rimonthlyinterval], input[name=riyearlyinterval]').change( 188function(e){if(form.find('.rioccurrencesactions:visible').length!==0){updateOccurances()}});form.find('.ricancelbutton').click(cancel);form.find('.risavebutton').click(save);$.extend(self,{display:display,form:form,loadData:loadData,save:save})} 189$.fn.recurrenceinput=function(conf){if(this.data('recurrenceinput')){return this.data('recurrenceinput')} 190var config=$.extend({},tool.conf);$.extend(config,conf);$.extend(config,{i18n:LABELS[config.lang],name:this.attr('name')});var recurrenceinput=new RecurrenceInput(config,this);recurrenceinput.form.appendTo('body');this.after(recurrenceinput.display);this.hide();this.data('recurrenceinput',recurrenceinput);return recurrenceinput}}(jQuery)); 191 192/* - ++resource++plone.app.event/event.js - */ 193// https://www.ufac.br/site/portal_javascripts/++resource++plone.app.event/event.js?original=1 194if(typeof(plone)==='undefined'){var plone={}}(function($,plone){plone.paevent=plone.paevent||{};plone.paevent.end_start_delta=1;plone.paevent.start_date=function(){return a_or_b($('#formfield-form-widgets-IEventBasic-start'),$('#archetypes-fieldname-startDate'))};plone.paevent.end_date=function(){return a_or_b($('#formfield-form-widgets-IEventBasic-end'),$('#archetypes-fieldname-endDate'))}; 195function initDelta(e){var start_datetime=getDateTime(plone.paevent.start_date());var end_datetime=getDateTime(plone.paevent.end_date());plone.paevent.end_start_delta=(end_datetime-start_datetime)/ 1000 / 3600;if(plone.paevent.end_start_delta<1){plone.paevent.end_start_delta=1}} 196function getDateTime(datetimewidget){var fields=['year','month','day','hour','minute'];var parts={};$.each(fields, function(idx,fld){parts[fld]=parseInt($("[name$='-"+fld+"']",datetimewidget).val(),10)});var date=new Date(parts.year,parts.month-1,parts.day,parts.hour,parts.minute);return date} 197function setDateTime(datetimewidget,new_date){$("[name$='-year']",datetimewidget).val(new_date.getYear());$("[name$='-month']",datetimewidget).val(new_date.getMonth());$("[name$='-day']",datetimewidget).val(new_date.getDate());$("[name$='-hour']",datetimewidget).val(new_date.getHours());$("[name$='-minute']",datetimewidget).val(new_date.getMinutes())} 198function updateEndDate(){var start_date=getDateTime(plone.paevent.start_date());var new_end_date=start_date;new_end_date.setHours(new_end_date.getHours()+plone.paevent.end_start_delta);setDateTime(plone.paevent.end_date(),new_end_date);$("input[name$='-calendar']",plone.paevent.end_date()).data('dateinput').setValue(new_end_date)} 199function validateEndDate(){var start_datetime=getDateTime(plone.paevent.start_date());var end_datetime=getDateTime(plone.paevent.end_date());if(end_datetime<start_datetime){plone.paevent.end_date().addClass("error")} else{plone.paevent.end_date().removeClass("error")}} 200function show_hide_widget(widget,hide,fade){if(hide===true){if(fade===true){widget.fadeOut()} 201else{widget.hide()}} else{if(fade===true){widget.fadeIn()} 202else{widget.show()}}} 203function a_or_b(a,b){var ret;if(a.length>0){ret=a} else{ret=b} 204return ret} 205function event_listing_calendar_init(cal){if($().dateinput&&cal.length>0){var get_req_param=function(name){if(name===(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search)){return decodeURIComponent(name[1])}};var val=get_req_param('date');
205if(val===undefined){val=new Date()} else{val=new Date(val)} 206cal.dateinput({selectors:true,trigger:true,format:'yyyy-mm-dd',yearRange:[-10,10],firstDay:1,value:val,change: function(){var value=this.getValue("yyyy-mm-dd");window.location.href='event_listing?mode=day&date='+value}}).unbind('change').bind('onShow', function(event){var trigger_offset=$(this).next().offset();$(this).data('dateinput').getCalendar().offset({top:trigger_offset.top+20,left:trigger_offset.left})})}} 207$(function(){var jq_whole_day=a_or_b($('#formfield-form-widgets-IEventBasic-whole_day input'),$('form[name="edit_form"] input#wholeDay'));var jq_datetime=a_or_b($('#form-widgets-IEventBasic-start-timecomponents, #form-widgets-IEventBasic-end-timecomponents'),$('#archetypes-fieldname-startDate .datetimewidget-time, #archetypes-fieldname-endDate .datetimewidget-time'));if(jq_whole_day.length>0){jq_whole_day.bind('change', function(e){show_hide_widget(jq_datetime,e.target.checked,true)});show_hide_widget(jq_datetime,jq_whole_day.get(0).checked,false)} 208var jq_open_end=a_or_b($('#formfield-form-widgets-IEventBasic-open_end input'),$('form[name="edit_form"] input#openEnd'));var jq_end=plone.paevent.end_date();if(jq_open_end.length>0){jq_open_end.bind('change', function(e){show_hide_widget(jq_end,e.target.checked,true)});show_hide_widget(jq_end,jq_open_end.get(0).checked,false)} 209var jq_start=plone.paevent.start_date();$("select",jq_start).on("change",updateEndDate);$("input[name$='-calendar']",jq_start).on("onHide",updateEndDate);$("select",jq_end).on("change", function(){initDelta();validateEndDate()});$("input[name$='-calendar']",jq_end).on("onHide", function(){initDelta();validateEndDate()});event_listing_calendar_init($("#event_listing_calendar"))})}(jQuery,plone)); 210 211/* - ++resource++plone.app.event.portlet_calendar.js - */ 212// https://www.ufac.br/site/portal_javascripts/++resource++plone.app.event.portlet_calendar.js?original=1 213(function($){ 214function load_portlet_calendar(event,elem){event.preventDefault();var pw=elem.closest('.portletWrapper');var elem_data=elem.data();var portlethash=pw.attr('id');portlethash=portlethash.substring(15,portlethash.length);url=portal_url+'/@@render-portlet?portlethash='+portlethash+'&year='+elem_data.year+'&month='+elem_data.month;$.ajax({url:url,success: function(data){pw.html(data);rebind_portlet_calendar()}})} 215function rebind_portlet_calendar(){$('.portletCalendar a.calendarNext').click(function(event){load_portlet_calendar(event,$(this))});$('.portletCalendar a.calendarPrevious').click(function(event){load_portlet_calendar(event,$(this))});$('.portletCalendar dd a[title]').tooltip({offset:[-10,0],tipClass:'pae_calendar_tooltip'})} 216$(document).ready(function(){rebind_portlet_calendar()})}(jQuery)); 217 218/* - ++resource++plone.formwidget.autocomplete/jquery.autocomplete.min.js - */ 219/* 220 * Autocomplete - jQuery plugin 1.0.2 221 * 222 * Copyright (c) 2007 Dylan Verheul, Dan G. Switzer, Anjesh Tuladhar, Jörn Zaefferer 223 * 224 * Dual licensed under the MIT and GPL licenses: 225 * http://www.opensource.org/licenses/mit-license.php 226 * http://www.gnu.org/licenses/gpl.html 227 * 228 * Revision: $Id: jquery.autocomplete.js 5747 2008-06-25 18:30:55Z joern.zaefferer $ 229 * 230 */ 231;(function(e){e.fn.extend({autocomplete:function(t,n){var r=typeof t=="string";n=e.extend({},e.Autocompleter.defaults,{url:r?t:null,data:r?null:t,delay:r?e.Autocompleter.defaults.delay:10,max:n&&!n.scroll?10:150},n);n.highlight=n.highlight||function(e){return e};n.formatMatch=n.formatMatch||n.formatItem;return this.each(function(){new e.Autocompleter(this,n)})},result:function(e){return this.bind("result",e)},search:function(e){return this.trigger("search",[e])},flushCache:function(){return this.trigger("flushCache")},setOptions:function(e){return this.trigger("setOptions",[e])},unautocomplete:function(){return this.trigger("unautocomplete")}});e.Autocompleter=function(t,n){function d(){var e=c.selected();if(!e)return false;var t=e.result;o=t;if(n.multiple){var r=m(i.val());if(r.length>1){t=r.slice(0,r.length-1).join(n.multipleSeparator)+n.multipleSeparator+t}t+=n.multipleSeparator}i.val(t);w();i.trigger("result",[e.data,e.value]);return true}function v(e,t){if(f==r.DEL){c.hide();return}var s=i.val();if(!t&&s==o)return;o=s;s=g(s);if(s.length>=n.minChars){i.addClass(n.loadingClass);if(!n.matchCase)s=s.toLowerCase();S(s,E,w)}else{T();c.hide()}}function m(t){if(!t){return[""]}var r=t.split(n.multipleSeparator);var i=[];e.each(r,function(t,n){if(e.trim(n))i[t]=e.trim(n)});return i}function g(e){if(!n.multiple)return e;var t=m(e);return t[t.length-1]}function y(s,u){if(n.autoFill&&g(i.val()).toLowerCase()==s.toLowerCase()&&f!=r.BACKSPACE){i.val(i.val()+u.substring(g(o).length));e.Autocompleter.Selection(t,o.length,o.length+u.length)}}function b(){clearTimeout(s);s=setTimeout(w,200)}function w(){var r=c.visible();c.hide();clearTimeout(s);T();if(n.mustMatch){i.search(function(e){if(!e){if(n.multiple){var t=m(i.val()).slice(0,-1);i.val(t.join(n.multipleSeparator)+(t.length?n.multipleSeparator:""))}else i.val("")}})}if(r)e.Autocompleter.Selection(t,t.value.length,t.value.length)}function E(e,t){if(t&&t.length&&a){T();c.display(t,e);y(e,t[0].value);c.show()}else{w()}}function S(r,i,s){if(!n.matchCase)r=r.toLowerCase();var o=u.load(r);if(o&&o.length){i(r,o)}else if(typeof n.url=="string"&&n.url.length>0){var a={timestamp:+(new Date)};e.each(n.extraParams,function(e,t){a[e]=typeof t=="function"?t():t});e.ajax({mode:"abort",port:"autocomplete"+t.name,dataType:n.dataType,url:n.url,data:e.extend({q:g(r),limit:n.max},a),success:function(e){var t=n.parse&&n.parse(e)||x(e);u.add(r,t);i(r,t)}})}else{c.emptyList();s(r)}}function x(t){var r=[];var i=t.split("\n");for(var s=0;s<i.length;s++){var o=e.trim(i[s]);if(o){o=o.split("|");r[r.length]={data:o,value:o[0],result:n.formatResult&&n.formatResult(o,o[0])||o[0]}}}return r}function T(){i.removeClass(n.loadingClass)}
231var r={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8};var i=e(t).attr("autocomplete","off").addClass(n.inputClass);var s;var o="";var u=e.Autocompleter.Cache(n);var a=0;var f;var l={mouseDownOnSelect:false};var c=e.Autocompleter.Select(n,t,d,l);var h;var p=navigator.userAgent.indexOf("Opera")!=-1;p&&e(t.form).bind("submit.autocomplete",function(){if(h){h=false;return false}});i.bind((p?"keypress":"keydown")+".autocomplete",function(t){f=t.keyCode;switch(t.keyCode){case r.UP:t.preventDefault();if(c.visible()){c.prev()}else{v(0,true)}break;case r.DOWN:t.preventDefault();if(c.visible()){c.next()}else{v(0,true)}break;case r.PAGEUP:t.preventDefault();if(c.visible()){c.pageUp()}else{v(0,true)}break;case r.PAGEDOWN:t.preventDefault();if(c.visible()){c.pageDown()}else{v(0,true)}break;case n.multiple&&e.trim(n.multipleSeparator)==","&&r.COMMA:case r.TAB:case r.RETURN:if(d()){t.preventDefault();h=true;return false}break;case r.ESC:c.hide();break;default:clearTimeout(s);s=setTimeout(v,n.delay);break}}).focus(function(){a++}).blur(function(){a=0;if(!l.mouseDownOnSelect){b()}}).click(function(){if(a++>1&&!c.visible()){v(0,true)}}).bind("search",function(){function n(e,n){var r;if(n&&n.length){for(var s=0;s<n.length;s++){if(n[s].result.toLowerCase()==e.toLowerCase()){r=n[s];break}}}if(typeof t=="function")t(r);else i.trigger("result",r&&[r.data,r.value])}var t=arguments.length>1?arguments[1]:null;e.each(m(i.val()),function(e,t){S(t,n,n)})}).bind("flushCache",function(){u.flush()}).bind("setOptions",function(){e.extend(n,arguments[1]);if("data"in arguments[1])u.populate()}).bind("unautocomplete",function(){c.unbind();i.unbind();e(t.form).unbind(".autocomplete")}
231);};e.Autocompleter.defaults={inputClass:"ac_input",resultsClass:"ac_results",loadingClass:"ac_loading",minChars:1,delay:400,matchCase:false,matchSubset:true,matchContains:false,cacheLength:10,max:100,mustMatch:false,extraParams:{},selectFirst:true,formatItem:function(e){return e[0]},formatMatch:null,autoFill:false,width:0,multiple:false,multipleSeparator:", ",highlight:function(e,t){return e.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+t.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>")},scroll:true,scrollHeight:180};e.Autocompleter.Cache=function(t){function i(e,n){if(!t.matchCase)e=e.toLowerCase();var r=e.indexOf(n);if(r==-1)return false;return r==0||t.matchContains}function s(e,i){if(r>t.cacheLength){u()}if(!n[e]){r++}n[e]=i}function o(){if(!t.data)return false;var n={},r=0;if(!t.url)t.cacheLength=1;n[""]=[];for(var i=0,o=t.data.length;i<o;i++){var u=t.data[i];u=typeof u=="string"?[u]:u;var a=t.formatMatch(u,i+1,t.data.length);if(a===false)continue;var f=a.charAt(0).toLowerCase();if(!n[f])n[f]=[];var l={value:a,data:u,result:t.formatResult&&t.formatResult(u)||a};n[f].push(l);if(r++<t.max){n[""].push(l)}}e.each(n,function(e,n){t.cacheLength++;s(e,n)})}function u(){n={};r=0}var n={};var r=0;setTimeout(o,25);return{flush:u,add:s,populate:o,load:function(s){if(!t.cacheLength||!r)return null;if(!t.url&&t.matchContains){var o=[];for(var u in n){if(u.length>0){var a=n[u];e.each(a,function(e,t){if(i(t.value,s)){o.push(t)}})}}return o}else if(n[s]){return n[s]}else if(t.matchSubset){for(var f=s.length-1;f>=t.minChars;f--){var a=n[s.substr(0,f)];if(a){var o=[];e.each(a,function(e,t){if(i(t.value,s)){o[o.length]=t}});return o}}}return null}}};e.Autocompleter.Select=function(t,n,r,i){function p(){if(!l)return;c=e("<div/>").hide().addClass(t.resultsClass).css("position","absolute").appendTo(document.body);h=e("<ul/>").appendTo(c).mouseover(function(t){if(d(t).nodeName&&d(t).nodeName.toUpperCase()=="LI"){u=e("li",h).removeClass(s.ACTIVE).index(d(t));e(d(t)).addClass(s.ACTIVE)}}).click(function(t){e(d(t)).addClass(s.ACTIVE);r();n.focus();return false}).mousedown(function(){i.mouseDownOnSelect=true}).mouseup(function(){i.mouseDownOnSelect=false});if(t.width>0)c.css("width",t.width);l=false}function d(e){var t=e.target;while(t&&t.tagName!="LI")t=t.parentNode;if(!t)return[];return t}function v(e){o.slice(u,u+1).removeClass(s.ACTIVE);m(e);var n=o.slice(u,u+1).addClass(s.ACTIVE);if(t.scroll){var r=0;o.slice(0,u).each(function(){r+=this.offsetHeight});if(r+n[0].offsetHeight-h.scrollTop()>h[0].clientHeight){h.scrollTop(r+n[0].offsetHeight-h.innerHeight())}else if(r<h.scrollTop()){h.scrollTop(r)}}}function m(e){u+=e;if(u<0){u=o.size()-1}else if(u>=o.size()){u=0}}function g(e){return t.max&&t.max<e?t.max:e}function y(){h.empty();var n=g(a.length);for(var r=0;r<n;r++){if(!a[r])continue;var i=t.formatItem(a[r].data,r+1,n,a[r].value,f);if(i===false)continue;var l=e("<li/>").html(t.highlight(i,f)).addClass(r%2==0?"ac_even":"ac_odd").appendTo(h)[0];e.data(l,"ac_data",a[r])}o=h.find("li");if(t.selectFirst){o.slice(0,1).addClass(s.ACTIVE);u=0}if(e.fn.bgiframe)h.bgiframe()}var s={ACTIVE:"ac_over"};var o,u=-1,a,f="",l=true,c,h;return{display:function(e,t){p();a=e;f=t;y()},next:function(){v(1)},prev:function(){v(-1)},pageUp:function(){if(u!=0&&u-8<0){v(-u)}else{v(-8)}},pageDown:function(){if(u!=o.size()-1&&u+8>o.size()){v(o.size()-1-u)}else{v(8)}},hide:function(){c&&c.hide();o&&o.removeClass(s.ACTIVE);u=-1},visible:function(){return c&&c.is(":visible")},current:function(){return this.visible()&&(o.filter("."+s.ACTIVE)[0]||t.selectFirst&&o[0])},show:function(){var r=e(n).offset();c.css({width:typeof t.width=="string"||t.width>0?t.width:e(n).width(),top:r.top+n.offsetHeight,left:r.left}).show();if(t.scroll){h.scrollTop(0);h.css({maxHeight:t.scrollHeight,overflow:"auto"});if(navigator.userAgent.indexOf("MSIE")!=1&&typeof document.body.style.maxHeight==="undefined"){var i=0;o.each(function(){i+=this.offsetHeight});var s=i>t.scrollHeight;h.css("height",s?t.scrollHeight:i);if(!s){o.width(h.width()-parseInt(o.css("padding-left"))-parseInt(o.css("padding-right")))}}}},selected:function(){var t=o&&o.filter("."+s.ACTIVE).removeClass(s.ACTIVE);return t&&t.length&&e.data(t[0],"ac_data")},emptyList:function(){h&&h.empty()},unbind:function(){c&&c.remove()}}};e.Autocompleter.Selection=function(e,t,n){if(e.createTextRange){var r=e.createTextRange();r.collapse(true);r.moveStart("character",t);r.moveEnd("character",n);r.select()}else if(e.setSelectionRange){e.setSelectionRange(t,n)}else{if(e.selectionStart){e.selectionStart=t;e.selectionEnd=n}}
231e.focus()}})(jQuery) 232 233 234/* - ++resource++plone.formwidget.autocomplete/formwidget-autocomplete.js - */ 235// https://www.ufac.br/site/portal_javascripts/++resource++plone.formwidget.autocomplete/formwidget-autocomplete.js?original=1 236function formwidget_autocomplete_ready(event,data,formatted){(function($){var input_box=$(event.target);formwidget_autocomplete_new_value(input_box,data[0],data[1])}(jQuery))} 237function formwidget_autocomplete_new_value(input_box,value,label){(function($){var base_id=input_box[0].id.replace(/-widgets-query$/,"");var base_name=input_box[0].name.replace(/\.widgets\.query$/,"");var widget_base=$('#'+base_id+"-input-fields");var all_fields=widget_base.find('input:radio, input:checkbox');input_box.val("");widget_base.find('input:radio').prop('checked',false);var selected_field=widget_base.find('input[value="'+value+'"]');if(selected_field.length){selected_field.each(function(){this.checked=true});return} 238widget_base,base_name,base_id 239var idx=all_fields.length;var klass=widget_base.data('klass');var title=widget_base.data('title');var type=widget_base.data('input_type');var multiple=widget_base.data('multiple');var span=$('<span/>').attr("id",base_id+"-"+idx+"-wrapper").attr("class","option");span.append($("<label/>").attr("for",base_id+"-"+idx).append($('<input type="'+type+'"'+' name="'+base_name+(multiple?':list"':'"')+' checked="checked" />').attr("id",base_id+"-"+idx).attr("title",title).attr("value",value).addClass(klass)).append(" ").append($("<span>").attr("class","label").text(label)));widget_base.append(span)}(jQuery))} 240function formwidget_autocomplete_parser(formatResult,fieldNum){return function(data){var parsed=[];if(data!==undefined&&data.split){var rows=data.split("\n");for(var i=0;i<rows.length;i++){var row=$.trim(rows[i]);if(row){row=row.split("|");parsed[parsed.length]={data:row,value:row[fieldNum],result:formatResult(row,row[fieldNum])}}}} 241return parsed}} 242 243 244/* - ++resource++plone.formwidget.contenttree/contenttree.js - */ 245// This is based on jQueryFileTree by Cory S.N. LaViska 246if(jQuery) (function($){ 247 248 $.extend($.fn, { 249 showDialog: function() { 250 $(document.body) 251 .append($(document.createElement("div")) 252 .addClass("contenttreeWindowBlocker")); 253 // store old parent element 254 this[0].oldparent = $(this).parent()[0]; 255 $(".contenttreeWindowBlocker").before(this); 256 $(this).show(); 257 $(this).width($(window).width() * 0.75); 258 $(this).height($(window).height() * 0.75); 259 $(this).css({ 260 'left': $(window).width() * 0.125, 261 'top': $(window).height() * 0.125 262 }); 263 }, 264 265 contentTreeAdd: function() { 266 var contenttree_window = (this).parents(".contenttreeWindow"); 267 var input_box = $('#'+ contenttree_window[0].id 268 .replace(/-contenttree-window$/,"-widgets-query")); 269 contenttree_window.find('.navTreeCurrentItem > a').each(function () { 270 formwidget_autocomplete_new_value( 271 input_box, 272 $(this).attr('href'), 273 $.trim($(this).text()) 274 ); 275 }); 276 $(this).contentTreeCancel(); 277 input_box.parents('.datagridwidget-cell').triggerHandler('change'); 278 }, 279 280 contentTreeCancel: function() { 281 $(".contenttreeWindowBlocker").remove(); 282 var popup = $(this).parents(".contenttreeWindow"); 283 popup.hide(); 284 $(popup[0].oldparent).append(popup); 285 popup[0].oldparent = null; 286 }, 287 288 contentTree: function(o, h) { 289 // Defaults 290 if (!o) { 291 var o = {}; 292 } 293 if (o.script == undefined) { 294 o.script = 'fetch'; 295 } 296 297 if (o.folderEvent == undefined) { 298 o.folderEvent = 'click'; 299 } 300 if (o.selectEvent == undefined) { 301 o.selectEvent = 'click'; 302 } 303 304 if (o.expandSpeed == undefined) {
305 o.expandSpeed = -1; 306 } 307 if (o.collapseSpeed == undefined) { 308 o.collapseSpeed = -1; 309 } 310 311 if (o.multiFolder == undefined) { 312 o.multiFolder = true; 313 } 314 if (o.multiSelect == undefined) { 315 o.multiSelect = false; 316 } 317 318 function loadTree(c, t, r) { 319 $(c).addClass('wait'); 320 $.post(o.script, {href: t, rel: r}, function(data) { 321 $(c).removeClass('wait').append(data); 322 $(c).find('ul:hidden').slideDown({ 323 duration: o.expandSpeed 324 }); 325 bindTree(c); 326 }); 327 } 328 329 function handleFolderEvent() { 330 var li = $(this).parent(); 331 if (li.hasClass('collapsed')) { 332 if (!o.multiFolder) { 333 li.parent().find('ul:visible').slideUp({ 334 duration: o.collapseSpeed 335 }); 336 li.parent().find('li.navTreeFolderish') 337 .removeClass('expanded') 338 .addClass('collapsed'); 339 } 340 341 if (li.find('ul').length == 0) 342 loadTree( 343 li, 344 escape($(this).attr('href')), 345 escape($(this).attr('rel')) 346 ); 347 else 348 li.find('ul:hidden').slideDown({ 349 duration: o.expandSpeed 350 }); 351 li.removeClass('collapsed').addClass('expanded'); 352 } else { 353 li.find('ul').slideUp({ 354 duration: o.collapseSpeed 355 }); 356 li.removeClass('expanded').addClass('collapsed'); 357 } 358 return false; 359 } 360 361 function handleSelectEvent(event) { 362 var li = $(this).parent(); 363 var selected = true; 364 var root = $(this).parents('ul.navTree'); 365 if (!li.hasClass('navTreeCurrentItem')) { 366 var multi_key = ( 367 (event.ctrlKey) || 368 (navigator.userAgent.toLowerCase() 369 .indexOf('macintosh') != -1 && event.metaKey)); 370 371 if (!o.multiSelect || !multi_key) { 372 root.find('li.navTreeCurrentItem') 373 .removeClass('navTreeCurrentItem'); 374 } 375 376 li.addClass('navTreeCurrentItem'); 377 selected = true; 378 } else { 379 li.removeClass('navTreeCurrentItem'); 380 selected = false; 381 } 382 383 h(event, true, $(this).attr('href'), $.trim($(this).text())); 384 } 385 386 function bindTree(t) { 387 $(t).find('li.navTreeFolderish a').unbind(o.folderEvent); 388 $(t).find('li.selectable a').unbind(o.selectEvent); 389 $(t).find('li a').bind('click', function() { 390 return false; 391 }); 392 $(t).find('li.navTreeFolderish a').bind( 393 o.folderEvent, 394 handleFolderEvent 395 ); 396 $(t).find('li.selectable a').bind( 397 o.selectEvent, 398 handleSelectEvent 399 ); 400 } 401 402 if ($(this).children('ul.navTree').length <= 0) { 403 $(this).each(function() { 404 loadTree(this, o.rootUrl, 0); 405 }); 406 } 407 408 } 409 }); 410 411})(jQuery); 412 413 414/* - ++resource++plone.formwidget.querystring.querywidget.js - */ 415(function ($) { 416 417 // Define querywidget namespace if it doesn't exist 418 if (typeof($.querywidget) === "undefined") { 419 $.querywidget = { 420 config: {}, 421 initialized: false 422 }; 423 } 424 425 // Create a select menu 426 $.querywidget.createSelect = function (values, selectedvalue, className, name) { 427 428 // Create select 429 var select = $(document.createElement('select')) 430 .addClass(className) 431 .attr('name', name); 432 $.each(values, function (i, val) { 433 if ((typeof(val.enabled) === "undefined") || (val.enabled)) { 434 var option = $(document.createElement('option')) 435 .attr('value', i) 436 .html(val.title); 437 if (i === selectedvalue) { 438 option.attr('selected', 'selected'); 439 } 440 if (typeof(val.group) !== "undefined") { 441 var optgroup = select.find("optgroup[label=" + val.group + "]"); 442 if (optgroup.length === 0) { 443 optgroup = $(document.createElement('optgroup')) 444 .attr('label', val.group); 445 optgroup.append(option); 446 select.append(optgroup); 447 } else { 448 optgroup.append(option); 449 } 450 } else { 451 select.append(option); 452 } 453 } 454 }); 455 return select; 456 }; 457 458 // Create a queryindex select menu 459 $.querywidget.createQueryIndex = function (value, fname) { 460 return $.querywidget.createSelect($.querywidget.config.indexes, 461 value, 462 'queryindex', 463 fname + '.i:records'); 464 }; 465 466 // Create a queryoperator select menu 467 $.querywidget.createQueryOperator = function (index, value, fname) { 468 return $.querywidget.createSelect($.querywidget.config.indexes[index].operators, 469 value, 470 'queryoperator', 471 fname + '.o:records'); 472 }; 473 474 $.querywidget.createWidget = function (type, index, fname) { 475 switch (type) { 476 case 'StringWidget': 477 return $(document.createElement('input')) 478 .attr({ 479 'autocomplete': 'off', 480 'type': 'text', 481 'name': fname + '.v:records' 482 }) 483 .addClass('querywidget queryvalue stringWidget'); 484 case 'DateWidget': 485 return $(document.createElement('input')) 486 .attr({ 487 'autocomplete': 'off', 488 'type': 'text', 489 'name': fname + '.v:records' 490 }) 491 .addClass('querywidget queryvalue dateWidget date'); 492 case 'DateRangeWidget': 493 return $(document.createElement('div')) 494 .addClass('querywidget dateRangeWidget') 495 .append($(document.createElement('input')) 496 .attr({ 497 'autocomplete': 'off', 498 'type': 'text', 499 'name': fname + '.v:records:list' 500 }) 501 .addClass('queryvalue date') 502 ) 503 .append($(document.createElement('span')) 504 .html(' and ') 505 ) 506 .append($(document.createElement('input')) 507 .attr({ 508 'autocomplete': 'off', 509 'type': 'text', 510 'name': fname + '.v:records:list' 511 }) 512 .addClass('queryvalue date') 513 ); 514 case 'RelativeDateWidget': 515 return $(document.createElement('div')) 516 .addClass('querywidget relativeDateWidget') 517 .append($(document.createElement('input')) 518 .attr({ 519 'autocomplete': 'off', 520 'type': 'text', 521 'name': fname + '.v:records' 522 }) 523 .addClass('queryvalue') 524 ) 525 .append($(document.createElement('span')) 526 .html('days') 527 ); 528 case 'ReferenceWidget': 529 return $(document.createElement('dl')) 530 .addClass('querywidget referenceWidget') 531 .append($(document.createElement('dt')) 532 .html('Select...') 533 .addClass('hiddenStructure') 534 ) 535 .append($(document.createElement('dd')) 536 .append($(document.createElement('input')) 537 .attr({ 538 'autocomplete': 'off', 539 'type': 'text', 540 'name': fname + '.v:records' 541 }) 542 .addClass('queryvalue') 543 ) 544 ); 545 case 'RelativePathWidget': 546 return $(document.createElement('input')) 547 .attr({ 548 'autocomplete': 'off', 549 'type': 'text', 550 'name': fname + '.v:records' 551 }) 552 .addClass('querywidget queryvalue relativePathWidget'); 553 case 'MultipleSelectionWidget': 554 var dl = $(document.createElement('dl')) 555 .addClass('querywidget multipleSelectionWidget') 556 .append($(document.createElement('dt')) 557 .append($(document.createElement('span')) 558 .addClass('arrowDownAlternative') 559 .html('▼') 560 ) 561 .append($(document.createElement('span')) 562 .html('Select...') 563 .addClass('multipleSelectionWidgetTitle') 564 ) 565 ); 566 var dd = $(document.createElement('dd')).addClass('hiddenStructure widgetPulldownMenu'); 567 $.each($.querywidget.config.indexes[index].values, function (i, val) { 568 dd.append($(document.createElement('label')) 569 .append($(document.createElement('input')) 570 .attr({ 571 'type': 'checkbox', 572 'name': fname + '.v:records:list', 573 'value': i 574 }) 575 ) 576 .append($(document.createElement('span')) 577 .html(val.title) 578 ) 579 ); 580 }); 581 dl.append(dd); 582 return dl; 583 default: 584 return $(document.createElement('div')) 585 .html(' ') 586 .addClass('querywidget queryvalue emptyWidget'); 587 } 588 }; 589 590 $.querywidget.getCurrentWidget = function (node) { 591 var classes = node.attr('class').split(' '); 592 var i; 593 for(i = 0; i<classes.length; i++) { 594 if (classes[i].indexOf('Widget') !== -1) { 595 var classname = classes[i]; 596 return classname.slice(0,1).toUpperCase() + classname.slice(1); 597 } 598 } 599 }; 600 601 $.querywidget.updateWidget = function (node) { 602 if (typeof(node) === "undefined") { 603 node = $('.querywidget'); 604 } 605 if ($().dateinput) { 606 $(node).parents('.criteria').find('.date').dateinput({change: function() { $.querywidget.updateSearch();}, firstDay: 1,selectors: true, trigger: false, yearRange: [-10, 10]}).unbind('change') 607 .bind('onShow', function (event) { 608 var trigger_offset = $(this).next().offset();
609 $(this).data('dateinput').getCalendar().offset( 610 {top: trigger_offset.top+20, left: trigger_offset.left} 611 ); 612 }); 613 } 614 }; 615 616 $.querywidget.updateSearch = function () { 617 var context_url = (function() { 618 var baseUrl, pieces, index; 619 baseUrl = $('base').attr('href'); 620 if (!baseUrl) { 621 pieces = window.location.href.split('/'); 622 pieces.pop(); 623 baseUrl = pieces.join('/'); 624 } 625 index = baseUrl.lastIndexOf('/'); 626 if (index > -1 && baseUrl.lastIndexOf('edit') > index) { 627 // The url is for an edit page, so we strip the last part, 628 // otherwise we wrongly get /edit/@@querybuilder_html_results 629 // 'edit' can be 'atct_edit' too. 630 baseUrl = baseUrl.slice(0, index); 631 } 632 return baseUrl; 633 })(); 634 var query = context_url + "/@@querybuilder_html_results?"; 635 var querylist = []; 636 var items = $('.QueryWidget .queryindex'); 637 if (!items.length) { 638 return; 639 } 640 items.each(function () { 641 var results = $(this).parents('.criteria').children('.queryresults'); 642 var index = $(this).val(); 643 var operator = $(this).parents('.criteria').children('.queryoperator').val(); 644 var widget = $.querywidget.config.indexes[index].operators[operator].widget; 645 querylist.push('query.i:records=' + index); 646 querylist.push('query.o:records=' + operator); 647 switch (widget) { 648 case 'DateRangeWidget': 649 var daterangewidget = $(this).parents('.criteria').find('.querywidget'); 650 querylist.push('query.v:records:list=' + $(daterangewidget.children('input')[0]).val()); 651 querylist.push('query.v:records:list=' + $(daterangewidget.children('input')[1]).val()); 652 break; 653 654 case 'MultipleSelectionWidget': 655 var multipleselectionwidget = $(this).parents('.criteria').find('.querywidget'); 656 multipleselectionwidget.find('input:checked').each(function () { 657 querylist.push('query.v:records:list=' + $(this).val()); 658 }); 659 break; 660 default: 661 querylist.push('query.v:records=' + $(this).parents('.criteria').find('.queryvalue').val()); 662 break; 663 } 664 665 $.get(context_url + '/@@querybuildernumberofresults?' + querylist.join('&'), 666 {}, 667 function (data) { results.html(data); }); 668 }); 669 query += querylist.join('&'); 670 query += '&sort_on=' + $('#sort_on').val(); 671 if ($('#sort_order:checked').length > 0) { 672 query += '&sort_order=reverse'; 673 } 674 $.get(query, {}, function (data) { $('.QueryWidget .previewresults').html(data); }); 675 }; 676 677 /* Clicking outside a multipleSelectionWidget will close all open 678 multipleSelectionWidgets */ 679 $.querywidget.hideMultiSelectionWidgetEvent = function(event) { 680 if ($(event.target).parents('.multipleSelectionWidget').length) { 681 return; 682 } 683 $('.multipleSelectionWidget dd').addClass('hiddenStructure'); 684 } 685 686 687 // Enhance for javascript browsers 688 $(document).ready(function () { 689 690 // Check if QueryWidget exists on page 691 if ($(".QueryWidget").length === 0) { 692 return false; 693 } 694 695 // Init 696 $.querywidget.init(); 697 698 699 // We need two keep two fields for each sorting field ('#sort_on', 700 // '#sort_reversed'). The query results preview that calls 701 // '@@querybuilder_html_results' in plone.app.querystring expects a 702 // sort_on and sort_order param. To store the actual setting on the 703 // collection we need the two z3c.form-based fields 704 // ('#form-widgets-ICollection-sort_on', '#form-widgets-ICollection-sort_reversed') 705 706 // Synchronize the '#sort_on' field with the hidden 707 // #form-widgets-ICollection-sort_on z3c.form field on load. 708 $('#sort_on').val($('#form-widgets-ICollection-sort_on').val()); 709 710 // Synchronize the '#sort_order' field with the hidden 711 // #form-widgets-ICollection-sort_reversed z3c.form field on load. 712 if ($('#form-widgets-ICollection-sort_reversed-0').attr('checked')) { 713 $('#sort_order').attr('checked', true); 714 } else { 715 $('#sort_order').attr('checked', false); 716 } 717 718 // Synchronize the z3c.form '#form-widgets-ICollection-sort_on' field 719 // with the '#sort_on' field on user interaction 720 $("div.QueryWidget").on('change', '#sort_on', function () { 721 $('#form-widgets-ICollection-sort_on').val($(this).val()); 722 }); 723 724 // Synchronize the z3c.form '#form-widgets-ICollection-sort_reversed' field 725 // with the '#sort_order' field on user interaction. 726 $("div.QueryWidget").on('click', '#sort_order', function () { 727 if ($(this).is(":checked")) { 728 $('#form-widgets-ICollection-sort_reversed-0').attr('checked', true); 729 } else { 730 $('#form-widgets-ICollection-sort_reversed-0').attr('checked', false); 731 } 732 }); 733 734 // Hide the z3c.form widgets for sorting because they are only needed 735 // internally. 736 $('#formfield-form-widgets-ICollection-sort_on').hide(); 737 $('#formfield-form-widgets-ICollection-sort_reversed').hide(); 738 739 }); 740 741 // Init widget 742 $.querywidget.init = function () { 743 744 // Check if already initialized 745 if ($.querywidget.initialized === true) { 746 747 // Return nothing done 748 return false;
749 } 750 751 // Set initialized 752 $.querywidget.initialized = true; 753 754 // Get configuration 755 $.getJSON(portal_url + '/@@querybuilderjsonconfig', function (data) { 756 $.querywidget.config = data; 757 758 // Find querywidgets 759 $(".QueryWidget").each(function () { 760 761 // Get object 762 var obj = $(this); 763 var fname = obj.attr('data-fieldname'); 764 765 // Hide controls used for non-javascript only 766 obj.find(".addIndexButton").hide(); 767 obj.find(".multipleSelectionWidget dt").removeClass('hiddenStructure'); 768 obj.find(".multipleSelectionWidget dd").addClass('hiddenStructure widgetPulldownMenu'); 769 770 $('div.queryindex').each(function () { 771 $(this).before( 772 $(document.createElement('div')) 773 .addClass('queryresults discreet') 774 .html('') 775 ); 776 $(this).replaceWith($.querywidget.createQueryIndex($(this).children('input').val(), fname)); 777 }); 778 $('div.queryoperator').each(function () { 779 $(this).replaceWith($.querywidget.createQueryOperator($(this).parents('.criteria').children('.queryindex').val(), 780 $(this).children('input').val(), fname)); 781 }); 782 $.querywidget.updateSearch(); 783 $.querywidget.updateWidget(); 784 785 }); 786 }); 787 788 $("div.QueryWidget").on('click', '.multipleSelectionWidget dt', function () { 789 var multiselectionwidget = $(this).parent().children('dd'); 790 if(!$(multiselectionwidget).hasClass('hiddenStructure')) { 791 $(multiselectionwidget).addClass('hiddenStructure'); 792 $(window).unbind('click', $.querywidget.hideMultiSelectionWidgetEvent); 793 } else { 794 $(multiselectionwidget).removeClass('hiddenStructure'); 795 $(window).bind('click', $.querywidget.hideMultiSelectionWidgetEvent); 796 } 797 }); 798 799 $("div.QueryWidget").on('change', '.queryindex', function () { 800 var fname = $(this).closest('.QueryWidget').attr('data-fieldname'); 801 var index = $(this).find(':selected')[0].value; 802 $(this).parents(".criteria").children('.queryoperator') 803 .replaceWith($.querywidget.createQueryOperator(index, '', fname)); 804 var operatorvalue = $(this).parents('.criteria').children('.queryoperator').val(); 805 var widget = $.querywidget.config.indexes[index].operators[operatorvalue].widget; 806 var querywidget = $(this).parent(".criteria").children('.querywidget'); 807 if ((widget !== $.querywidget.getCurrentWidget(querywidget)) || (widget === 'MultipleSelectionWidget')) { 808 querywidget.replaceWith($.querywidget.createWidget(widget, index, fname)); 809 $.querywidget.updateWidget($(this).parent(".criteria").children('.querywidget')); 810 } 811 $.querywidget.updateSearch(); 812 }); 813 814 $("div.QueryWidget").on('change', '.queryoperator', function () { 815 var fname = $(this).closest('.QueryWidget').attr('data-fieldname'); 816 var index = $(this).parents('.criteria').children('.queryindex').val(); 817 var operatorvalue = $(this).children(':selected')[0].value; 818 var widget = $.querywidget.config.indexes[index].operators[operatorvalue].widget; 819 var querywidget = $(this).parent().children('.querywidget'); 820 if (widget !== $.querywidget.getCurrentWidget(querywidget)) { 821 querywidget.replaceWith($.querywidget.createWidget(widget, index, fname)); 822 $.querywidget.updateWidget($(this).parent().children('.querywidget')); 823 } 824 $.querywidget.updateSearch(); 825 826 }); 827 828 $("div.QueryWidget").on('change', '#sort_on,#sort_order', function () { 829 $.querywidget.updateSearch(); 830 }); 831 832 $("div.QueryWidget").on('change', '.multipleSelectionWidget input', function () { 833 var widget = $(this).parents('.multipleSelectionWidget'); 834 var selected_values = [];
835 widget.find('input:checked').each(function () { 836 selected_values.push($(this).parent().children('span').html()); 837 }); 838 widget.find('.multipleSelectionWidgetTitle') 839 .attr('title', selected_values.join(', ')) 840 .html(selected_values.join(', ')); 841 $.querywidget.updateSearch(); 842 }); 843 844 $("div.QueryWidget").on('keyup', '.queryvalue', function () { 845 $.querywidget.updateSearch(); 846 }); 847 848 $("div.QueryWidget").on('keydown', '.queryvalue', function (e) { 849 if (e.keyCode === 13) { 850 return false; 851 } 852 }); 853 854 $("div.QueryWidget").on('change', '.addIndex', function () { 855 var fname = $(this).closest('.QueryWidget').attr('data-fieldname'); 856 var index = $(this).find(':selected')[0].value; 857 var criteria = $(this).parents('.criteria'); 858 var newcriteria = $(document.createElement('div')) 859 .addClass('criteria'); 860 861 newcriteria.append( 862 $(document.createElement('div')) 863 .addClass('queryresults discreet') 864 .html('') 865 ); 866 newcriteria.append($.querywidget.createQueryIndex(index, fname)); 867 var operator = $.querywidget.createQueryOperator(index, '', fname); 868 newcriteria.append(operator); 869 var operatorvalue = $(operator.children()[0]).attr('value'); 870 newcriteria.append($.querywidget.createWidget($.querywidget.config.indexes[index].operators[operatorvalue].widget, index, fname)); 871 newcriteria.append( 872 873 // How will we translate these values? 874 875 $(document.createElement('input')) 876 .attr({ 877 'value': 'Remove line', 878 'type': 'submit', 879 'name': 'removecriteria' 880 }) 881 .addClass('removecriteria discreet') 882 ); 883 criteria.before(newcriteria); 884 $(this).val(''); 885 $.querywidget.updateSearch(); 886 }); 887 888 $("div.QueryWidget").on('click', '.removecriteria', function () { 889 $(this).parents('.criteria').remove(); 890 $.querywidget.updateSearch(); 891 return false; 892 }); 893 }; 894 895}(jQuery)); 896 897 898/* - ++resource++collective.galleria.js - */ 899// https://www.ufac.br/site/portal_javascripts/++resource++collective.galleria.js?original=1 900(function($){var undef,window=this,doc=window.document,$doc=$(doc),$win=$(window),protoArray=Array.prototype,VERSION=1.29,DEBUG=true,TIMEOUT=30000,DUMMY=false,NAV=navigator.userAgent.toLowerCase(),HASH=window.location.hash.replace(/#\//,''),F=function(){},FALSE=function(){return false},IE=(function(){var v=3,div=doc.createElement('div'),all=div.getElementsByTagName('i');do{div.innerHTML='<!--[if gt IE '+(++v)+']><i></i><![endif]-->'} while(all[0]);return v>4?v:undef}()),DOM=function(){return{html:doc.documentElement,body:doc.body,head:doc.getElementsByTagName('head')[0],title:doc.title}},IFRAME=window.parent!==window.self,_eventlist='data ready thumbnail loadstart loadfinish image play pause progress '+'fullscreen_enter fullscreen_exit idle_enter idle_exit rescale '+'lightbox_open lightbox_close lightbox_image',_events=(function(){var evs=[];$.each(_eventlist.split(' '), function(i,ev){evs.push(ev);if(/_/.test(ev)){evs.push(ev.replace(/_/g,''))}});return evs}()),_legacyOptions=function(options){var n;if(typeof options!=='object'){return options} 901$.each(options, function(key,value){if(/^[a-z]+_/.test(key)){n='';$.each(key.split('_'), function(i,k){n+=i>0?k.substr(0,1).toUpperCase()+k.substr(1):k});options[n]=value;delete options[key]}});return options},_patchEvent=function(type){if($.inArray(type,_events)>-1){return Galleria[type.toUpperCase()]} 902return type},_video={youtube:{reg:/https?:\/\/(?:[a-zA_Z]{2,3}.)?(?:youtube\.com\/watch\?)((?:[\w\d\-\_\=]+&(?:amp;)?)*v(?:<[A-Z]+>)?=([0-9a-zA-Z\-\_]+))/i,embed: function(id){return 'http://www.youtube.com/embed/'+id},getThumb: function(id,success,fail){fail=fail||F;$.getJSON(window.location.protocol+'//gdata.youtube.com/feeds/api/videos/'+id+'?v=2&alt=json-in-script&callback=?', function(data){try{
902success(data.entry.media$group.media$thumbnail[0].url)} catch(e){fail()}}).error(fail)}},vimeo:{reg:/https?:\/\/(?:www\.)?(vimeo\.com)\/(?:hd#)?([0-9]+)/i,embed: function(id){return 'http://player.vimeo.com/video/'+id},getThumb: function(id,success,fail){fail=fail||F;$.getJSON('http://vimeo.com/api/v2/video/'+id+'.json?callback=?', function(data){try{success(data[0].thumbnail_medium)} catch(e){fail()}}).error(fail)}},dailymotion:{reg:/https?:\/\/(?:www\.)?(dailymotion\.com)\/video\/([^_]+)/,embed: function(id){return 'http://www.dailymotion.com/embed/video/'+id},getThumb: function(id,success,fail){fail=fail||F;$.getJSON('https://api.dailymotion.com/video/'+id+'?fields=thumbnail_medium_url&callback=?', function(data){try{success(data.thumbnail_medium_url)} catch(e){fail()}}).error(fail)}}},_videoTest=function(url){var match;for(var v in _video){match=url&&url.match(_video[v].reg);if(match&&match.length){return{id:match[2],provider:v}}} 903return false},_nativeFullscreen={support:(function(){var html=DOM().html;return!IFRAME&&(html.requestFullscreen||html.mozRequestFullScreen||html.webkitRequestFullScreen)}()),callback:F,enter: function(instance,callback,elem){this.instance=instance;this.callback=callback||F;elem=elem||DOM().html;if(elem.requestFullscreen){elem.requestFullscreen()} 904else if(elem.mozRequestFullScreen){elem.mozRequestFullScreen()} 905else if(elem.webkitRequestFullScreen){elem.webkitRequestFullScreen()}},exit: function(callback){this.callback=callback||F;if(doc.exitFullscreen){doc.exitFullscreen()} 906else if(doc.mozCancelFullScreen){doc.mozCancelFullScreen()} 907else if(doc.webkitCancelFullScreen){doc.webkitCancelFullScreen()}},instance:null,listen: function(){if(!this.support){return} 908var handler=function(){if(!_nativeFullscreen.instance){return} 909var fs=_nativeFullscreen.instance._fullscreen;if(doc.fullscreen||doc.mozFullScreen||doc.webkitIsFullScreen){fs._enter(_nativeFullscreen.callback)} else{fs._exit(_nativeFullscreen.callback)}};doc.addEventListener('fullscreenchange',handler,false);doc.addEventListener('mozfullscreenchange',handler,false);doc.addEventListener('webkitfullscreenchange',handler,false)}},_galleries=[],_instances=[],_hasError=false,_canvas=false,_pool=[],_themeLoad=function(theme){Galleria.theme=theme;$.each(_pool, function(i,instance){if(!instance._initialized){instance._init.call(instance)}});_pool=[]},Utils=(function(){return{clearTimer: function(id){$.each(Galleria.get(), function(){this.clearTimer(id)})},addTimer: function(id){$.each(Galleria.get(), function(){this.addTimer(id)})},array: function(obj){return protoArray.slice.call(obj,0)},create: function(className,nodeName){nodeName=nodeName||'div';var elem=doc.createElement(nodeName);elem.className=className;return elem},removeFromArray: function(arr,elem){$.each(arr, function(i,el){if(el==elem){arr.splice(i,1);return false}});return arr},getScriptPath: function(src){src=src||$('script:last').attr('src');var slices=src.split('/');if(slices.length==1){return ''} 910slices.pop();return slices.join('/')+'/'},animate:(function(){var transition=(function(style){var props='transition WebkitTransition MozTransition OTransition'.split(' '),i;if(window.opera){return false} 911for(i=0;props[i];i++){if(typeof style[props[i]]!=='undefined'){return props[i]}} 912return false}((doc.body||doc.documentElement).style));var endEvent={MozTransition:'transitionend',OTransition:'oTransitionEnd',WebkitTransition:'webkitTransitionEnd',transition:'transitionend'}[transition];var easings={_default:[0.25,0.1,0.25,1],galleria:[0.645,0.045,0.355,1],galleriaIn:[0.55,0.085,0.68,0.53],galleriaOut:[0.25,0.46,0.45,0.94],ease:[0.25,0,0.25,1],linear:[0.25,0.25,0.75,0.75],'ease-in':[0.42,0,1,1],'ease-out':[0,0,0.58,1],'ease-in-out':[0.42,0,0.58,1]};var setStyle=function(elem,value,suffix){var css={};suffix=suffix||'transition';$.each('webkit moz ms o'.split(' '), function(){css['-'+this+'-'+suffix]=value});elem.css(css)};var clearStyle=function(elem){setStyle(elem,'none','transition');if(Galleria.WEBKIT&&Galleria.TOUCH){setStyle(elem,'translate3d(0,0,0)','transform');if(elem.data('revert')){elem.css(elem.data('revert'));elem.data('revert',null)}}};var change,strings,easing,syntax,revert,form,css;return function(elem,to,options){options=$.extend({duration:400,complete:F,stop:false},options);elem=$(elem);if(!options.duration){elem.css(to);options.complete.call(elem[0]);return} 913if(!transition){elem.animate(to,options);return} 914if(options.stop){elem.unbind(endEvent);clearStyle(elem)} 915change=false;$.each(to, function(key,val){css=elem.css(key);if(Utils.parseValue(css)!=Utils.parseValue(val)){change=true} 916elem.css(key,css)});if(!change){window.setTimeout( function(){options.complete.call(elem[0])},options.duration);return} 917strings=[];easing=options.easing in easings?easings[options.easing]:easings._default;syntax=' '+options.duration+'ms'+' cubic-bezier('+easing.join(',')+')';window.setTimeout((function(elem,endEvent,to,syntax){return function(){elem.one(endEvent,(function(elem){return function(){clearStyle(elem);
917options.complete.call(elem[0])}}(elem)));if(Galleria.WEBKIT&&Galleria.TOUCH){revert={};form=[0,0,0];$.each(['left','top'], function(i,m){if(m in to){form[i]=(Utils.parseValue(to[m])-Utils.parseValue(elem.css(m)))+'px';revert[m]=to[m];delete to[m]}});if(form[0]||form[1]){elem.data('revert',revert);strings.push('-webkit-transform'+syntax);setStyle(elem,'translate3d('+form.join(',')+')','transform')}} 918$.each(to, function(p,val){strings.push(p+syntax)});setStyle(elem,strings.join(','));elem.css(to)}}(elem,endEvent,to,syntax)),2)}}()),removeAlpha: function(elem){if(IE<9&&elem){var style=elem.style,currentStyle=elem.currentStyle,filter=currentStyle&¤tStyle.filter||style.filter||"";if(/alpha/.test(filter)){style.filter=filter.replace(/alpha\([^)]*\)/i,'')}}},forceStyles: function(elem,styles){elem=$(elem);if(elem.attr('style')){elem.data('styles',elem.attr('style')).removeAttr('style')} 919elem.css(styles)},revertStyles: function(){$.each(Utils.array(arguments), function(i,elem){elem=$(elem);elem.removeAttr('style');elem.attr('style','');if(elem.data('styles')){elem.attr('style',elem.data('styles')).data('styles',null)}})},moveOut: function(elem){Utils.forceStyles(elem,{position:'absolute',left:-10000})},moveIn: function(){Utils.revertStyles.apply(Utils,Utils.array(arguments))},elem: function(elem){if(elem instanceof $){return{$:elem,dom:elem[0]}} else{return{$:$(elem),dom:elem}}},hide: function(elem,speed,callback){callback=callback||F;var el=Utils.elem(elem),$elem=el.$;elem=el.dom;if(!$elem.data('opacity')){$elem.data('opacity',$elem.css('opacity'))} 920var style={opacity:0};if(speed){var complete=IE<9&&elem? function(){Utils.removeAlpha(elem);elem.style.visibility='hidden';callback.call(elem)}:callback;Utils.animate(elem,style,{duration:speed,complete:complete,stop:true})} else{if(IE<9&&elem){Utils.removeAlpha(elem);elem.style.visibility='hidden'} else{$elem.css(style)}}},show: function(elem,speed,callback){callback=callback||F;var el=Utils.elem(elem),$elem=el.$;elem=el.dom;var saved=parseFloat($elem.data('opacity'))||1,style={opacity:saved};if(speed){if(IE<9){$elem.css('opacity',0);elem.style.visibility='visible'} 921var complete=IE<9&&elem? function(){if(style.opacity==1){Utils.removeAlpha(elem)} 922callback.call(elem)}:callback;Utils.animate(elem,style,{duration:speed,complete:complete,stop:true})} else{if(IE<9&&style.opacity==1&&elem){Utils.removeAlpha(elem);elem.style.visibility='visible'} else{$elem.css(style)}}},optimizeTouch:(function(){var node,evs,fakes,travel,evt={},handler=function(e){e.preventDefault();evt=$.extend({},e,true)},attach=function(){this.evt=evt},fake=function(){this.handler.call(node,this.evt)};return function(elem){$(elem).bind('touchend', function(e){node=e.target;travel=true;while(node.parentNode&&node!=e.currentTarget&&travel){evs=$(node).data('events');fakes=$(node).data('fakes');if(evs&&'click' in evs){travel=false;e.preventDefault();$(node).click(handler).click();evs.click.pop();$.each(evs.click,attach);$(node).data('fakes',evs.click);delete evs.click} else if(fakes){travel=false;e.preventDefault();$.each(fakes,fake)} 923node=node.parentNode}})}}()),wait: function(options){options=$.extend({until:FALSE,success:F,error: function(){Galleria.raise('Could not complete wait function.')},timeout:3000},options);var start=Utils.timestamp(),elapsed,now,fn=function(){now=Utils.timestamp();elapsed=now-start;if(options.until(elapsed)){options.success();return false} 924if(typeof options.timeout=='number'&&now>=start+options.timeout){options.error();return false} 925window.setTimeout(fn,10)};window.setTimeout(fn,10)},toggleQuality: function(img,force){if((IE!==7&&IE!==8)||!img||img.nodeName.toUpperCase()!='IMG'){return} 926if(typeof force==='undefined'){force=img.style.msInterpolationMode==='nearest-neighbor'} 927img.style.msInterpolationMode=force?'bicubic':'nearest-neighbor'},insertStyleTag: function(styles,id){if(id&&$('#'+id).length){return} 928var style=doc.createElement('style');if(id){style.id=id} 929DOM().head.appendChild(style);if(style.styleSheet){style.styleSheet.cssText=styles} else{var cssText=doc.createTextNode(styles);style.appendChild(cssText)}},loadScript: function(url,callback){var done=false,script=$('<scr'+'ipt>').attr({src:url,async:true}).get(0);script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState==='loaded'||this.readyState==='c
929omplete')){done=true;script.onload=script.onreadystatechange=null;if(typeof callback==='function'){callback.call(this,this)}}};DOM().head.appendChild(script)},parseValue: function(val){if(typeof val==='number'){return val} else if(typeof val==='string'){var arr=val.match(/\-?\d|\./g);return arr&&arr.constructor===Array?arr.join('')*1:0} else{return 0}},timestamp: function(){return new Date().getTime()},loadCSS: function(href,id,callback){var link,length;$('link[rel=stylesheet]').each(function(){if(new RegExp(href).test(this.href)){link=this;return false}});if(typeof id==='function'){callback=id;id=undef} 930callback=callback||F;if(link){callback.call(link,link);return link} 931length=doc.styleSheets.length;if($('#'+id).length){$('#'+id).attr('href',href);length--} else{link=$('<link>').attr({rel:'stylesheet',href:href,id:id}).get(0);var styles=$('link[rel="stylesheet"], style');if(styles.length){styles.get(0).parentNode.insertBefore(link,styles[0])} else{DOM().head.appendChild(link)} 932if(IE){if(length>=31){Galleria.raise('You have reached the browser stylesheet limit (31)',true);return}}} 933if(typeof callback==='function'){var $loader=$('<s>').attr('id','galleria-loader').hide().appendTo(DOM().body);Utils.wait({until: function(){return $loader.height()==1},success: function(){$loader.remove();callback.call(link,link)},error: function(){$loader.remove();Galleria.raise('Theme CSS could not load after 20 sec. '+Galleria.QUIRK?'Your browser is in Quirks Mode, please add a correct doctype.':'Please download the latest theme at http://galleria.io/customer/.',true)},timeout:20000})} 934return link}}}()),_transitions=(function(){var _slide=function(params,complete,fade,door){var easing=this.getOptions('easing'),distance=this.getStageWidth(),from={left:distance *(params.rewind?-1:1)},to={left:0};if(fade){from.opacity=0;to.opacity=1} else{from.opacity=1} 935$(params.next).css(from);Utils.animate(params.next,to,{duration:params.speed,complete:(function(elems){return function(){complete();elems.css({left:0})}}($(params.next).add(params.prev))),queue:false,easing:easing});if(door){params.rewind=!params.rewind} 936if(params.prev){from={left:0};to={left:distance *(params.rewind?1:-1)};if(fade){from.opacity=1;to.opacity=0} 937$(params.prev).css(from);Utils.animate(params.prev,to,{duration:params.speed,queue:false,easing:easing,complete: function(){$(this).css('opacity',0)}})}};return{active:false,init: function(effect,params,complete){if(_transitions.effects.hasOwnProperty(effect)){_transitions.effects[effect].call(this,params,complete)}},effects:{fade: function(params,complete){$(params.next).css({opacity:0,left:0});Utils.animate(params.next,{opacity:1},{duration:params.speed,complete:complete});if(params.prev){$(params.prev).css('opacity',1).show();Utils.animate(params.prev,{opacity:0},{duration:params.speed})}},flash: function(params,complete){$(params.next).css({opacity:0,left:0});if(params.prev){Utils.animate(params.prev,{opacity:0},{duration:params.speed/2,complete: function(){Utils.animate(params.next,{opacity:1},{duration:params.speed,complete:complete})}})} else{Utils.animate(params.next,{opacity:1},{duration:params.speed,complete:complete})}},pulse: function(params,complete){if(params.prev){$(params.prev).hide()} 938$(params.next).css({opacity:0,left:0}).show();Utils.animate(params.next,{opacity:1},{duration:params.speed,complete:complete})},slide: function(params,complete){_slide.apply(this,Utils.array(arguments))},fadeslide: function(params,complete){_slide.apply(this,Utils.array(arguments).concat([true]))},doorslide: function(params,complete){_slide.apply(this,Utils.array(arguments).concat([false,true]))}}}}());_nativeFullscreen.listen();Galleria=function(){var self=this;this._options={};this._playing=false;this._playtime=5000;this._active=null;this._queue={length:0};this._data=[];this._dom={};this._thumbnails=[];this._layers=[];this._initialized=false;this._firstrun=false;this._stageWidth=0;this._stageHeight=0;this._target=undef;this._binds=[];this._id=parseInt(Math.random()*10000,10);var divs='container stage images image-nav image-nav-left image-nav-right '+'info info-text info-title info-description '+'thumbnails thumbnails-list thumbnails-container thumb-nav-left thumb-nav-right '+'loader counter tooltip',spans='current total';$.each(divs.split(' '), function(i,elemId){self._dom[elemId]=Utils.create('galleria-'+elemId)});$.each(spans.split(' '), function(i,elemId){self._dom[elemId]=Utils.create('galleria-'+elemId,'span')});var keyboard=this._keyboard={keys:{'UP':38,'DOWN':40,'LEFT':37,'RIGHT':39,'RETURN':13,'ESCAPE':27,'BACKSPACE':8,'SPACE':32},map:{},bound:false,press: function(e){var key=e.keyCode||e.which;if(key in keyboard.map&&typeof keyboard.map[key]==='function'){keyboard.map[key].call(self,e)}},attach: function(map){var key,up;for(key in map){if(map.hasOwnProperty(key)){up=key.toUpperCase();if(up in keyboard.keys){keyboard.map[keyboard.keys[up]]=map[key]} else{keyboard.map[up]=map[key]}}} 939if(!keyboard.bound){keyboard.bound=true;$doc.bind('keydown',keyboard.press)}},detach: function(){keyboard.bound=false;keyboard.map={};$doc.unbind('keydown',keyboard.press)}};var controls=this._controls={0:undef,1:undef,active:0,swap: function(){controls.active=control
939s.active?0:1},getActive: function(){return controls[controls.active]},getNext: function(){return controls[1-controls.active]}};var carousel=this._carousel={next:self.$('thumb-nav-right'),prev:self.$('thumb-nav-left'),width:0,current:0,max:0,hooks:[],update: function(){var w=0,h=0,hooks=[0];$.each(self._thumbnails, function(i,thumb){if(thumb.ready){w+=thumb.outerWidth||$(thumb.container).outerWidth(true);hooks[i+1]=w;h=Math.max(h,thumb.outerHeight||$(thumb.container).outerHeight(true))}});self.$('thumbnails').css({width:w,height:h});carousel.max=w;carousel.hooks=hooks;carousel.width=self.$('thumbnails-list').width();carousel.setClasses();self.$('thumbnails-container').toggleClass('galleria-carousel',w>carousel.width);carousel.width=self.$('thumbnails-list').width()},bindControls: function(){var i;carousel.next.bind('click', function(e){e.preventDefault();if(self._options.carouselSteps==='auto'){for(i=carousel.current;i<carousel.hooks.length;i++){if(carousel.hooks[i]-carousel.hooks[carousel.current]>carousel.width){carousel.set(i-2);break}}} else{carousel.set(carousel.current+self._options.carouselSteps)}});carousel.prev.bind('click', function(e){e.preventDefault();if(self._options.carouselSteps==='auto'){for(i=carousel.current;i>=0;i--){if(carousel.hooks[carousel.current]-carousel.hooks[i]>carousel.width){carousel.set(i+2);break} else if(i===0){carousel.set(0);break}}} else{carousel.set(carousel.current-self._options.carouselSteps)}})},set: function(i){i=Math.max(i,0);while(carousel.hooks[i-1]+carousel.width>=carousel.max&&i>=0){i--} 940carousel.current=i;carousel.animate()},getLast: function(i){return(i||carousel.current)-1},follow: function(i){if(i===0||i===carousel.hooks.length-2){carousel.set(i);return} 941var last=carousel.current;while(carousel.hooks[last]-carousel.hooks[carousel.current]<carousel.width&&last<=carousel.hooks.length){last++} 942if(i-1<carousel.current){carousel.set(i-1)} else if(i+2>last){carousel.set(i-last+carousel.current+2)}},setClasses: function(){carousel.prev.toggleClass('disabled',!carousel.current);carousel.next.toggleClass('disabled',carousel.hooks[carousel.current]+carousel.width>=carousel.max)},animate: function(to){carousel.setClasses();var num=carousel.hooks[carousel.current] *-1;if(isNaN(num)){return} 943Utils.animate(self.get('thumbnails'),{left:num},{duration:self._options.carouselSpeed,easing:self._options.easing,queue:false})}};var tooltip=this._tooltip={initialized:false,open:false,timer:'tooltip'+self._id,swapTimer:'swap'+self._id,init: function(){tooltip.initialized=true;var css='.galleria-tooltip{padding:3px 8px;max-width:50%;background:#ffe;color:#000;z-index:3;position:absolute;font-size:11px;line-height:1.3;'+'opacity:0;box-shadow:0 0 2px rgba(0,0,0,.4);-moz-box-shadow:0 0 2px rgba(0,0,0,.4);-webkit-box-shadow:0 0 2px rgba(0,0,0,.4);}';Utils.insertStyleTag(css,'galleria-tooltip');self.$('tooltip').css({opacity:0.8,visibility:'visible',display:'none'})},move: function(e){var mouseX=self.getMousePosition(e).x,mouseY=self.getMousePosition(e).y,$elem=self.$('tooltip'),x=mouseX,y=mouseY,height=$elem.outerHeight(true)+1,width=$elem.outerWidth(true),limitY=height+15;var maxX=self.$('container').width()-width-2,maxY=self.$('container').height()-height-2;if(!isNaN(x)&&!isNaN(y)){x+=10;y-=(height+8);x=Math.max(0,Math.min(maxX,x));y=Math.max(0,Math.min(maxY,y));if(mouseY<limitY){y=limitY} 944$elem.css({left:x,top:y})}},bind: function(elem,value){if(Galleria.TOUCH){return} 945if(!tooltip.initialized){tooltip.init()} 946var mouseout=function(){self.$('container').unbind('mousemove',tooltip.move);self.clearTimer(tooltip.timer);self.$('tooltip').stop().animate({opacity:0}
946,200, function(){self.$('tooltip').hide();self.addTimer(tooltip.swapTimer, function(){tooltip.open=false},1000)})};var hover=function(elem,value){tooltip.define(elem,value);$(elem).hover(function(){self.clearTimer(tooltip.swapTimer);self.$('container').unbind('mousemove',tooltip.move).bind('mousemove',tooltip.move).trigger('mousemove');tooltip.show(elem);self.addTimer(tooltip.timer, function(){self.$('tooltip').stop().show().animate({opacity:1});tooltip.open=true},tooltip.open?0:500)},mouseout).click(mouseout)};if(typeof value==='string'){hover((elem in self._dom?self.get(elem):elem),value)} else{$.each(elem, function(elemID,val){hover(self.get(elemID),val)})}},show: function(elem){elem=$(elem in self._dom?self.get(elem):elem);var text=elem.data('tt'),mouseup=function(e){window.setTimeout((function(ev){return function(){tooltip.move(ev)}}(e)),10);elem.unbind('mouseup',mouseup)};text=typeof text==='function'?text():text;if(!text){return} 947self.$('tooltip').html(text.replace(/\s/,' '));elem.bind('mouseup',mouseup)},define: function(elem,value){if(typeof value!=='function'){var s=value;value=function(){return s}} 948elem=$(elem in self._dom?self.get(elem):elem).data('tt',value);tooltip.show(elem)}};var fullscreen=this._fullscreen={scrolled:0,crop:undef,active:false,keymap:self._keyboard.map,parseCallback: function(callback,enter){return _transitions.active? function(){if(typeof callback=='function'){callback.call(self)} 949var active=self._controls.getActive(),next=self._controls.getNext();self._scaleImage(next);self._scaleImage(active);if(enter&&self._options.trueFullscreen){$(active.container).add(next.container).trigger('transitionend')}}:callback},enter: function(callback){callback=fullscreen.parseCallback(callback,true);if(self._options.trueFullscreen&&_nativeFullscreen.support){fullscreen.active=true;Utils.forceStyles(self.get('container'),{width:'100%',height:'100%'});self.rescale();if(Galleria.MAC){if(Galleria.WEBKIT){self.$('container').css('opacity',0).addClass('fullscreen');window.setTimeout(function(){fullscreen.scale();self.$('container').css('opacity',1)},50)} else{self.$('stage').css('opacity',0);window.setTimeout(function(){fullscreen.scale();self.$('stage').css('opacity',1)},4)}} else{self.$('container').addClass('fullscreen')} 950$win.resize(fullscreen.scale);_nativeFullscreen.enter(self,callback,self.get('container'))} else{fullscreen.scrolled=$win.scrollTop();window.scrollTo(0,0);fullscreen._enter(callback)}},_enter: function(callback){fullscreen.active=true;if(IFRAME){fullscreen.iframe=(function(){var elem,refer=doc.referrer,test=doc.createElement('a'),loc=window.location;test.href=refer;if(test.protocol!=loc.protocol||test.hostname!=loc.hostname||test.port!=loc.port){Galleria.raise('Parent fullscreen not available. Iframe protocol, domains and ports must match.');return false} 951fullscreen.pd=window.parent.document;$(fullscreen.pd).find('iframe').each(function(){var idoc=this.contentDocument||this.contentWindow.document;if(idoc===doc){elem=this;return false}});return elem}())} 952Utils.hide(self.getActiveImage());if(IFRAME&&fullscreen.iframe){fullscreen.iframe.scrolled=$(window.parent).scrollTop();window.parent.scrollTo(0,0)} 953var data=self.getData(),options=self._options,inBrowser=!self._options.trueFullscreen||!_nativeFullscreen.support,htmlbody={height:'100%',overflow:'hidden',margin:0,padding:0};if(inBrowser){self.$('container').addClass('fullscreen');Utils.forceStyles(self.get('container'),{position:'fixed',top:0,left:0,width:'100%',height:'100%',zIndex:10000});Utils.forceStyles(DOM().html,htmlbody);Utils.forceStyles(DOM().body,htmlbody)} 954if(IFRAME&&fullscreen.iframe){Utils.forceStyles(fullscreen.pd.documentElement,htmlbody);Utils.forceStyles(fullscreen.pd.body,htmlbody);Utils.forceStyles(fullscreen.iframe,$.extend(htmlbody,{width:'100%',height:'100%',top:0,left:0,position:'fixed',zIndex:10000,border:'none'}))} 955fullscreen.keymap=$.extend({},self._keyboard.map);self.attachKeyboard({escape:self.exitFullscreen,right:self.next,left:self.prev});fullscreen.crop=options.imageCrop;if(options.fullscreenCrop!=undef){options.imageCrop=options.fullscreenCrop} 956if(data&&data.big&&data.image!==data.big){var big=new Galleria.Picture(),cached=big.isCached(data.big),index=self.getIndex(),thumb=self._thumbnails[index];self.trigger({type:Galleria.LOADSTART,cached:cached,rewind:false,index:index,imageTarget:self.getActiveImage(),thumbTarget:thumb,galleriaData:data});big.load(data.big, function(big){self._scaleImage(big,{complete: function(big){self.trigger({type:Galleria.LOADFINISH,cached:cached,index:index,rewind:false,imageTarget:big.image,thumbTarget:thumb});var image=self._controls.getActive().image;if(image){$(image).width(big.image.width).height(big.image.height).attr('style',$(big.image).attr('style')).attr('src',big.image.src)}}})})} 957self.rescale(function(){self.addTimer(false, function(){if(inBrowser){Utils.show(self.getActiveImage())} 958if(typeof callback==='function'){callback.call(self)}},100);self.trigger(Galleria.FULLSCREEN_ENTER)});if(!inBrowser){Utils.show(self.getActiveImage())} else{$win.resize(fullscreen.scale)}
958},scale: function(){self.rescale()},exit: function(callback){callback=fullscreen.parseCallback(callback);if(self._options.trueFullscreen&&_nativeFullscreen.support){_nativeFullscreen.exit(callback)} else{fullscreen._exit(callback)}},_exit: function(callback){fullscreen.active=false;var inBrowser=!self._options.trueFullscreen||!_nativeFullscreen.support;self.$('container').removeClass('fullscreen');if(inBrowser){Utils.hide(self.getActiveImage());Utils.revertStyles(self.get('container'),DOM().html,DOM().body);window.scrollTo(0,fullscreen.scrolled)} 959if(IFRAME&&fullscreen.iframe){Utils.revertStyles(fullscreen.pd.documentElement,fullscreen.pd.body,fullscreen.iframe);if(fullscreen.iframe.scrolled){window.parent.scrollTo(0,fullscreen.iframe.scrolled)}} 960self.detachKeyboard();self.attachKeyboard(fullscreen.keymap);self._options.imageCrop=fullscreen.crop;var big=self.getData().big,image=self._controls.getActive().image;if(!self.getData().iframe&&image&&big&&big==image.src){window.setTimeout(function(src){return function(){image.src=src}}(self.getData().image),1)} 961self.rescale(function(){self.addTimer(false, function(){if(inBrowser){Utils.show(self.getActiveImage())} 962if(typeof callback==='function'){callback.call(self)} 963$win.trigger('resize')},50);self.trigger(Galleria.FULLSCREEN_EXIT)});$win.unbind('resize',fullscreen.scale)}};var idle=this._idle={trunk:[],bound:false,active:false,add: function(elem,to,from,hide){if(!elem){return} 964if(!idle.bound){idle.addEvent()} 965elem=$(elem);if(typeof from=='boolean'){hide=from;from={}} 966from=from||{};var extract={},style;for(style in to){if(to.hasOwnProperty(style)){extract[style]=elem.css(style)}} 967elem.data('idle',{from:$.extend(extract,from),to:to,complete:true,busy:false});if(!hide){idle.addTimer()} else{elem.css(to)} 968idle.trunk.push(elem)},remove: function(elem){elem=$(elem);$.each(idle.trunk, function(i,el){if(el&&el.length&&!el.not(elem).length){elem.css(elem.data('idle').from);idle.trunk.splice(i,1)}});if(!idle.trunk.length){idle.removeEvent();self.clearTimer(idle.timer)}}
968,addEvent: function(){idle.bound=true;self.$('container').bind('mousemove click',idle.showAll);if(self._options.idleMode=='hover'){self.$('container').bind('mouseleave',idle.hide)}},removeEvent: function(){idle.bound=false;self.$('container').bind('mousemove click',idle.showAll);if(self._options.idleMode=='hover'){self.$('container').unbind('mouseleave',idle.hide)}},addTimer: function(){if(self._options.idleMode=='hover'){return} 969self.addTimer('idle', function(){idle.hide()},self._options.idleTime)},hide: function(){if(!self._options.idleMode||self.getIndex()===false||self.getData().iframe){return} 970self.trigger(Galleria.IDLE_ENTER);var len=idle.trunk.length;$.each(idle.trunk, function(i,elem){var data=elem.data('idle');if(!data){return} 971elem.data('idle').complete=false;Utils.animate(elem,data.to,{duration:self._options.idleSpeed,complete: function(){if(i==len-1){idle.active=false}}})})},showAll: function(){self.clearTimer('idle');$.each(idle.trunk, function(i,elem){idle.show(elem)})},show: function(elem){var data=elem.data('idle');if(!idle.active||(!data.busy&&!data.complete)){data.busy=true;self.trigger(Galleria.IDLE_EXIT);self.clearTimer('idle');Utils.animate(elem,data.from,{duration:self._options.idleSpeed/2,complete: function(){idle.active=true;$(elem).data('idle').busy=false;$(elem).data('idle').complete=true}})} 972idle.addTimer()}};var lightbox=this._lightbox={width:0,height:0,initialized:false,active:null,image:null,elems:{},keymap:false,init: function(){self.trigger(Galleria.LIGHTBOX_OPEN);if(lightbox.initialized){return} 973lightbox.initialized=true;var elems='overlay box content shadow title info close prevholder prev nextholder next counter image',el={},op=self._options,css='',abs='position:absolute;',prefix='lightbox-',cssMap={overlay:'position:fixed;display:none;opacity:'+op.overlayOpacity+';filter:alpha(opacity='+(op.overlayOpacity*100)+');top:0;left:0;width:100%;height:100%;background:'+op.overlayBackground+';z-index:99990',box:'position:fixed;display:none;width:400px;height:400px;top:50%;left:50%;margin-top:-200px;margin-left:-200px;z-index:99991',shadow:abs+'background:#000;width:100%;height:100%;',content:abs+'background-color:#fff;top:10px;left:10px;right:10px;bottom:10px;overflow:hidden',info:abs+'bottom:10px;left:10px;right:10px;color:#444;font:11px/13px arial,sans-serif;height:13px',close:abs+'top:10px;right:10px;height:20px;width:20px;background:#fff;text-align:center;cursor:pointer;color:#444;font:16px/22px arial,sans-serif;z-index:99999',image:abs+'top:10px;left:10px;right:10px;bottom:30px;overflow:hidden;display:block;',prevholder:abs+'width:50%;top:0;bottom:40px;cursor:pointer;',nextholder:abs+'width:50%;top:0;bottom:40px;right:-1px;cursor:pointer;',prev:abs+'top:50%;margin-top:-20px;height:40px;width:30px;background:#fff;left:20px;display:none;text-align:center;color:#000;font:bold 16px/36px arial,sans-serif',next:abs+'top:50%;margin-top:-20px;height:40px;width:30px;background:#fff;right:20px;left:auto;display:none;font:bold 16px/36px arial,sans-serif;text-align:center;color:#000',title:'float:left',counter:'float:right;margin-left:8px;'},hover=function(elem){return elem.hover( 974function(){$(this).css('color','#bbb')}, 975function(){$(this).css('color','#444')})},appends={};if(IE&&IE>7){cssMap.nextholder+='background:#000;filter:alpha(opacity=0);';cssMap.prevholder+='background:#000;filter:alpha(opacity=0);'} 976$.each(cssMap, function(key,value){css+='.galleria-'+prefix+key+'{'+value+'}'});css+='.galleria-'+prefix+'box.iframe .galleria-'+prefix+'prevholder,'+'.galleria-'+prefix+'box.iframe .galleria-'+prefix+'nextholder{'+'width:100px;height:100px;top:50%;margin-top:-70px}';Utils.insertStyleTag(css,'galleria-lightbox');$.each(elems.split(' '), function(i,elemId){self.addElement('lightbox-'+elemId);el[elemId]=lightbox.elems[elemId]=self.get('lightbox-'+elemId)});lightbox.image=new Galleria.Picture();$.each({box:'shadow content close prevholder nextholder',info:'title counter',content:'info image',prevholder:'prev',nextholder:'next'}, function(key,val){var arr=[];$.each(val.split(' '), function(i,prop){arr.push(prefix+prop)});appends[prefix+key]=arr});self.append(appends);$(el.image).append(lightbox.image.container);$(DOM().body).append(el.overlay,el.box);Utils.optimizeTouch(el.box);hover($(el.close).bind('click',lightbox.hide).html('×'));$.each(['Prev','Next'], function(i,dir){var $d=$(el[dir.toLowerCase()]).html(/v/.test(dir)?'‹ ':' ›'),$e=$(el[dir.toLowerCase()+'holder']);$e.bind('click', function(){lightbox['show'+dir]()});if(IE<8||Galleria.TOUCH){$d.show();return} 977$e.hover( function(){$d.show()}, function(e){$d.stop().fadeOut(200)})});$(el.overlay).bind('click',lightbox.hide);if(Galleria.IPAD){self._options.lightboxTransitionSpeed=0}},rescale: function(event){var width=Math.min($win.width()-40,lightbox.width),height=Math.min($win.height()-60,lightbox.height),ratio=Math.min(width/ lightbox.width, height / lightbox.height),destWidth=Math.round(lightbox.width * ratio)+40,destHeight=Math.round(lightbox.height * ratio)+60,to={width:destWidth,height:destHeight,'margin-top':Math.ceil(destHeight/2) *-1,'margin-left':Math.ceil(destWidth/2) *-1};if(event){$(lightbox.elems.box).css(to)} else{$(lightbox.elems.box).animate(to,{duration:self._options.lightboxTransitionSpeed,easing:self._options.easing,complete: function(){var image=lightbox.image,speed=self._options.lightboxFadeSpeed;self.trigger({type:Galleria.LIGHTBOX_IMAGE,imageTarget:image.image});$(image.container).show();$(image.image).animate({opacity:1},speed);Utils.show(lightbox.elems.info,speed)}})}},hide: function(){lightbox.image.image=null;$win.unbind('resize',lightbox.rescale);$(lightbox.elems.box).hide();Utils.hide(lightbox.elems.info);self.detachKeyboard();self.attachKeyboard(lightbox.keymap);lightbox.keymap=false;Utils.hide(lightbox.elems.overlay,200, function(){$(this).hide().css('opacity',self._options.overlayOpacity);self.trigger(Galleria.LIGHTBOX_CLOSE)})},showNext: function(){lightbox.show(self.getNext(lightbox.active))},showPrev: function(){lightbox.show(self.getPrev(lightbox.active))},show: function(index){lightbox.active=index=typeof index==='number'?index:self.getIndex()||0;if(!lightbox.initialized){lightbox.init()} 978if(!lightbox.keymap){lightbox.keymap=$.extend({},self._keyboard.map);self.attachKeyboard({escape:lightbox.hide,right:lightbox.showNext,left:lightbox.showPrev})} 979$win.unbind('resize',lightbox.rescale);var data=self.getData(index),total=self.getDataLength(),n=self.getNext(index),ndata,p,i;Utils.hide(lightbox.elems.info);try{for(i=self._options.preload;i>0;i--){p=new Galleria.Picture();ndata=self.getData(n);
979p.preload('big' in ndata?ndata.big:ndata.image);n=self.getNext(n)}} catch(e){} 980lightbox.image.isIframe=!!data.iframe;$(lightbox.elems.box).toggleClass('iframe',!!data.iframe);lightbox.image.load(data.iframe||data.big||data.image, function(image){if(image.isIframe){var cw=$(window).width(),ch=$(window).height();if(self._options.maxVideoSize){var r=Math.min(self._options.maxVideoSize/cw,self._options.maxVideoSize/ch);if(r<1){cw *=r;ch *=r}} 981lightbox.width=cw;lightbox.height=ch} else{lightbox.width=image.original.width;lightbox.height=image.original.height} 982$(image.image).css({width:image.isIframe?'100%':'100.1%',height:image.isIframe?'100%':'100.1%',top:0,zIndex:99998,opacity:0,visibility:'visible'});lightbox.elems.title.innerHTML=data.title||'';lightbox.elems.counter.innerHTML=(index+1)+' / '+total;$win.resize(lightbox.rescale);lightbox.rescale()});$(lightbox.elems.overlay).show().css('visibility','visible');$(lightbox.elems.box).show()}};var _timer=this._timer={trunk:{},add: function(id,fn,delay,loop){id=id||new Date().getTime();loop=loop||false;this.clear(id);if(loop){var old=fn;fn=function(){old();_timer.add(id,fn,delay)}} 983this.trunk[id]=window.setTimeout(fn,delay)},clear: function(id){var del=function(i){window.clearTimeout(this.trunk[i]);delete this.trunk[i]},i;if(!!id&&id in this.trunk){del.call(this,id)} else if(typeof id==='undefined'){for(i in this.trunk){if(this.trunk.hasOwnProperty(i)){del.call(this,i)}}}}};return this};Galleria.prototype={constructor:Galleria,init: function(target,options){var self=this;options=_legacyOptions(options);this._original={target:target,options:options,data:null};this._target=this._dom.target=target.nodeName?target:$(target).get(0);this._original.html=this._target.innerHTML;_instances.push(this);if(!this._target){Galleria.raise('Target not found',true);return} 984this._options={autoplay:false,carousel:true,carouselFollow:true,carouselSpeed:400,carouselSteps:'auto',clicknext:false,dailymotion:{foreground:'%23EEEEEE',highlight:'%235BCEC5',background:'%23222222',logo:0,hideInfos:1},dataConfig: function(elem){return{}},dataSelector:'img',dataSort:false,dataSource:this._target,debug:undef,dummy:undef,easing:'galleria',extend: function(options){},fullscreenCrop:undef,fullscreenDoubleTap:true,fullscreenTransition:undef,height:0,idleMode:true,idleTime:3000,idleSpeed:200,imageCrop:false,imageMargin:0,imagePan:false,imagePanSmoothness:12,imagePosition:'50%',imageTimeout:undef,initialTransition:undef,keepSource:false,layerFollow:true,lightbox:false,lightboxFadeSpeed:200,lightboxTransitionSpeed:200,linkSourceImages:true,maxScaleRatio:undef,maxVideoSize:undef,minScaleRatio:undef,overlayOpacity:0.85,overlayBackground:'#0b0b0b',pauseOnInteraction:true,popupLinks:false,preload:2,queue:true,responsive:true,show:0,showInfo:true,showCounter:true,showImagenav:true,swipe:true,thumbCrop:true,thumbEventType:'click',thumbFit:true,thumbMargin:0,thumbQuality:'auto',thumbDisplayOrder:true,thumbnails:true,touchTransition:undef,transition:'fade',transitionInitial:undef,transitionSpeed:400,trueFullscreen:true,useCanvas:false,vimeo:{title:0,byline:0,portrait:0,color:'aaaaaa'},wait:5000,width:'auto',youtube:{modestbranding:1,autohide:1,color:'white',hd:1,rel:0,showinfo:0}};this._options.initialTransition=this._options.initialTransition||this._options.transitionInitial;if(options&&options.debug===false){DEBUG=false} 985if(options&&typeof options.imageTimeout==='number'){TIMEOUT=options.imageTimeout} 986if(options&&typeof options.dummy==='string'){DUMMY=options.dummy} 987$(this._target).children().hide();if(Galleria.QUIRK){Galleria.raise('Your page is in Quirks mode, Galleria may not render correctly. Please validate your HTML and add a correct doctype.')} 988if(typeof Galleria.theme==='object'){this._init()} else{_pool.push(this)} 989return this},_init: function(){var self=this,options=this._options;if(this._initialized){Galleria.raise('Init failed: Gallery instance already initialized.');return this} 990this._initialized=true;if(!Galleria.theme){Galleria.raise('Init failed: No theme found.',true);return this} 991$.extend(true,options,Galleria.theme.defaults,this._original.options,Galleria.configure.options);(function(can){if(!('getContext' in can)){can=null;return} 992_canvas=_canvas||{elem:can,context:can.getContext('2d'),cache:{},length:0}}(doc.createElement('canvas')));this.bind(Galleria.DATA, function(){this._original.data=this._data;this.get('total').innerHTML=this.getDataLength();var $container=this.$('container');if(self._options.height<2){self._userRatio=self._ratio=self._options.height} 993var num={width:0,height:0};var testHeight=function(){return self.$('stage').height()};Utils.wait({until: function(){num=self._getWH();$container.width(num.width).height(num.height);return testHeight()&&num.width&&num.height>50},success: function(){self._width=num.width;self._height=num.height;self._ratio=self._ratio||num.height/num.width;if(Galleria.WEBKIT){window.setTimeout( function(){self._run()},1)} else{self._run()}},error: function(){if(testHeight()){Galleria.raise('Could not extract sufficient width/height of the gallery container. Traced measures: width:'+num.width+'px, height: '+num.height+'px.',true)} else{Galleria.raise('Could not extract a stage height from the CSS. Traced height: '+testHeight()+'px.',true)}},timeout:typeof this._options.wait=='number'?this._options.wait:false})});this.append({'info-text':['info-title','info-description'],'info':['info-text'],'image-nav':['image-nav-right','image-nav-left'],'stage':['images','loader','counter','image-nav'],'thumbnails-list':['thumbnails'],'thumbnails-container':['thumb
993-nav-left','thumbnails-list','thumb-nav-right'],'container':['stage','thumbnails-container','info','tooltip']});Utils.hide(this.$('counter').append(this.get('current'),doc.createTextNode(' / '),this.get('total')));this.setCounter('–');Utils.hide(self.get('tooltip'));this.$('container').addClass(Galleria.TOUCH?'touch':'notouch');$.each(new Array(2), function(i){var image=new Galleria.Picture();$(image.container).css({position:'absolute',top:0,left:0}).prepend(self._layers[i]=$(Utils.create('galleria-layer')).css({position:'absolute',top:0,left:0,right:0,bottom:0,zIndex:2})[0]);self.$('images').append(image.container);self._controls[i]=image});this.$('images').css({position:'relative',top:0,left:0,width:'100%',height:'100%'});this.$('thumbnails, thumbnails-list').css({overflow:'hidden',position:'relative'});this.$('image-nav-right, image-nav-left').bind('click', function(e){if(options.clicknext){e.stopPropagation()} 994if(options.pauseOnInteraction){self.pause()} 995var fn=/right/.test(this.className)?'next':'prev';self[fn]()});$.each(['info','counter','image-nav'], function(i,el){if(options['show'+el.substr(0,1).toUpperCase()+el.substr(1).replace(/-/,'')]===false){Utils.moveOut(self.get(el.toLowerCase()))}});this.load();if(!options.keepSource&&!IE){this._target.innerHTML=''} 996if(this.get('errors')){this.appendChild('target','errors')} 997this.appendChild('target','container');if(options.carousel){var count=0,show=options.show;this.bind(Galleria.THUMBNAIL, function(){this.updateCarousel();if(++count==this.getDataLength()&&typeof show=='number'&&show>0){this._carousel.follow(show)}})} 998if(options.responsive){$win.bind('resize', function(){if(!self.isFullscreen()){self.resize()}})} 999if(options.swipe){(function(images){var swipeStart=[0,0],swipeStop=[0,0],limitX=30,limitY=100,multi=false,tid=0,data,ev={start:'touchstart',move:'touchmove',stop:'touchend'},getData=function(e){return e.originalEvent.touches?e.originalEvent.touches[0]:e},moveHandler=function(e){if(e.originalEvent.touches&&e.originalEvent.touches.length>1){return} 1000data=getData(e);swipeStop=[data.pageX,data.pageY];if(!swipeStart[0]){swipeStart=swipeStop} 1001if(Math.abs(swipeStart[0]-swipeStop[0])>10){e.preventDefault()}},upHandler=function(e){images.unbind(ev.move,moveHandler);if((e.originalEvent.touches&&e.originalEvent.touches.length)||multi){multi=!multi;return} 1002if(Utils.timestamp()-tid<1000&&Math.abs(swipeStart[0]-swipeStop[0])>limitX&&Math.abs(swipeStart[1]-swipeStop[1])<limitY){e.preventDefault();self[swipeStart[0]>swipeStop[0]?'next':'prev']()} 1003swipeStart=swipeStop=[0,0]};images.bind(ev.start, function(e){if(e.originalEvent.touches&&e.originalEvent.touches.length>1){return} 1004data=getData(e);tid=Utils.timestamp();swipeStart=swipeStop=[data.pageX,data.pageY];images.bind(ev.move,moveHandler).one(ev.stop,upHandler)})}(self.$('images')));if(options.fullscreenDoubleTap){this.$('stage').bind('touchstart',(function(){var last,cx,cy,lx,ly,now,getData=function(e){return e.originalEvent.touches?e.originalEvent.touches[0]:e};return function(e){now=Galleria.utils.timestamp();cx=getData(e).pageX;cy=getData(e).pageY;if((now-last<500)&&(cx-lx<20)&&(cy-ly<20)){self.toggleFullscreen();e.preventDefault();self.$('stage').unbind('touchend',arguments.callee);return} 1005last=now;lx=cx;ly=cy}}()))}} 1006Utils.optimizeTouch(this.get('container'));$.each(Galleria.on.binds, function(i,bind){if($.inArray(bind.hash,self._binds)==-1){self.bind(bind.type,bind.callback)}});return this},addTimer: function(){this._timer.add.apply(this._timer,Utils.array(arguments));return this},clearTimer: function(){this._timer.clear.apply(this._timer,Utils.array(arguments));return this},_getWH: function(){var $container=this.$('container'),$target=this.$('target'),self=this,num={},arr;$.each(['width','height'], function(i,m){if(self._options[m]&&typeof self._options[m]==='number'){num[m]=self._options[m]} else{arr=[Utils.parseValue($container.css(m)),Utils.parseValue($target.css(m)),$container[m](),$target[m]()];if(!self['_'+m]){arr.splice(arr.length,Utils.parseValue($container.css('min-'+m)),Utils.parseValue($target.css('min-'+m)))} 1007num[m]=Math.max.apply(Math,arr)}});if(self._userRatio){num.height=num.width * self._userRatio} 1008return num},_createThumbnails: function(push){this.get('total').innerHTML=this.getDataLength();var src,thumb,data,special,$container,self=this,o=this._options,i=push?this._data.length-push.length:0,chunk=i,thumbchunk=[],loadindex=0,gif=IE<8?'http://upload.wikimedia.org/wikipedia/commons/c/c0/Blank.gif':'data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw%3D%3D',active=(function(){var a=self.$('thumbnails').find('.active');if(!a.length){return false} 1009return a.find('img').attr('src')}()),optval=typeof o.thumbnails==='string'?o.thumbnails.toLowerCase():null,getStyle=function(prop){return doc.defaultView&&doc.defaultView.getComputedStyle?doc.defaultView.getComputedStyle(thumb.container,null)[prop]:$container.css(prop)},fake=function(image,index,container){return function(){$(container).append(image);self.trigger({type:Galleria.THUMBNAIL,thumbTarget:image,index:index,galleriaData:self.getData(index)})}},onThumbEvent=function(e){if(o.pauseOnInteraction){self.pause()} 1010var index=$(e.currentTarget).data('index');if(self.getIndex()!==index){self.show(index)} 1011e.preventDefault()},thumbComplete=function(thumb,callback){$(thumb.container).css('visibility','visible');self.trigger({type:Galleria.THUMBNAIL,thumbTarget:thumb.image,index:thumb.data.order,galleriaData:self.getData(thumb.data.order)});if(typeof callback=='function'){callback.call(self,thumb)}},onThumbLoad=function(thumb,callback){thumb.scale({width:thumb.data.width,height:thumb.data.height,crop:o.thumbCrop,margin:o.thumbMargin,canvas:o.useCanvas,complete: function(thumb){var top=['left','top'],arr=['Width','Height'],m,css,data=self.getData(thumb.index),special=data.thumb.split(':');$.each(arr, function(i,measure){m=measure.toLowerCase();if((o.thumbCrop!==true||o.thumbCrop===m)&&o.thumbFit){css={};css[m]=thumb[m];$(thumb.container).css(css);css={};css[top[i]]=0;$(thumb.image).css(css)} 1012thumb['outer'+measure]=$(thumb.container)['outer'+measure](true)});Utils.toggleQuality(thumb.image,o.thumbQuality===true||(o.thumbQuality==='auto'&&thumb.original.width<thumb.width * 3));if(data.iframe&&special.length==2&&special[0] in _video){_video[special[0]].getThumb(special[1],(function(img){return function(src){img.src=src;thumbComplete(thumb,callback)}}(thumb.image)))} else if(o.thumbDisplayOrder&&!thumb.lazy){$.each(thumbchunk, function(i,th){if(i===loadindex&&th.ready&&!th.displayed){loadindex++;th.displayed=true;thumbComplete(th,callback);return}})} else{thumbComplete(thumb,callback)}}})};if(!push){this._thumbnails=[];this.$('thumbnails').empty()} 1013for(;this._data[i];i++){data=this._data[i];src=data.thumb||data.image;if((o.thumbnails===true||optval=='lazy')&&(data.thumb||data.image)){thumb=new Galleria.Picture(i);thumb.index=i;
1013thumb.displayed=false;thumb.lazy=false;thumb.video=false;this.$('thumbnails').append(thumb.container);$container=$(thumb.container);$container.css('visibility','hidden');thumb.data={width:Utils.parseValue(getStyle('width')),height:Utils.parseValue(getStyle('height')),order:i,src:src};if(o.thumbFit&&o.thumbCrop!==true){$container.css({width:'auto',height:'auto'})} else{$container.css({width:thumb.data.width,height:thumb.data.height})} 1014special=src.split(':');if(special.length==2&&special[0] in _video){thumb.video=true;thumb.ready=true;thumb.load(gif,{height:thumb.data.height,width:thumb.data.height*1.25},onThumbLoad)} else if(optval=='lazy'){$container.addClass('lazy');thumb.lazy=true;thumb.load(gif,{height:thumb.data.height,width:thumb.data.width})} else{thumb.load(src,onThumbLoad)} 1015if(o.preload==='all'){thumb.preload(data.image)}} else if(data.iframe||optval==='empty'||optval==='numbers'){thumb={container:Utils.create('galleria-image'),image:Utils.create('img','span'),ready:true};if(optval==='numbers'){$(thumb.image).text(i+1)} 1016if(data.iframe){$(thumb.image).addClass('iframe')} 1017this.$('thumbnails').append(thumb.container);window.setTimeout((fake)(thumb.image,i,thumb.container),50+(i*20))} else{thumb={container:null,image:null}} 1018$(thumb.container).add(o.keepSource&&o.linkSourceImages?data.original:null).data('index',i).bind(o.thumbEventType,onThumbEvent).data('thumbload',onThumbLoad);if(active===src){$(thumb.container).addClass('active')} 1019this._thumbnails.push(thumb)} 1020thumbchunk=this._thumbnails.slice(chunk);return this},lazyLoad: function(index,complete){var arr=index.constructor==Array?index:[index],self=this,thumbnails=this.$('thumbnails').children().filter(function(){return $(this).data('lazy-src')}),loaded=0;$.each(arr, function(i,ind){if(ind>self._thumbnails.length-1){return} 1021var thumb=self._thumbnails[ind],data=thumb.data,special=data.src.split(':'),callback=function(){if(++loaded==arr.length&&typeof complete=='function'){complete.call(self)}},thumbload=$(thumb.container).data('thumbload');if(thumb.video){thumbload.call(self,thumb,callback)} else{thumb.load(data.src, function(thumb){thumbload.call(self,thumb,callback)})}});return this},lazyLoadChunks: function(size,delay){var len=this.getDataLength(),i=0,n=0,arr=[],temp=[],self=this;delay=delay||0;for(;i<len;i++){temp.push(i);if(++n==size||i==len-1){arr.push(temp);n=0;temp=[]}} 1022var init=function(wait){var a=arr.shift();if(a){window.setTimeout(function(){self.lazyLoad(a, function(){init(true)})},(delay&&wait)?delay:0)}};init(false);return this},_run: function(){var self=this;self._createThumbnails();Utils.wait({timeout:10000,until: function(){if(Galleria.OPERA){self.$('stage').css('display','inline-block')} 1023self._stageWidth=self.$('stage').width();self._stageHeight=self.$('stage').height();return(self._stageWidth&&self._stageHeight>50)},success: function(){_galleries.push(self);Utils.show(self.get('counter'));
1023if(self._options.carousel){self._carousel.bindControls()} 1024if(self._options.autoplay){self.pause();if(typeof self._options.autoplay==='number'){self._playtime=self._options.autoplay} 1025self._playing=true} 1026if(self._firstrun){if(self._options.autoplay){self.trigger(Galleria.PLAY)} 1027if(typeof self._options.show==='number'){self.show(self._options.show)} 1028return} 1029self._firstrun=true;if(Galleria.History){Galleria.History.change(function(value){if(isNaN(value)){window.history.go(-1)} else{self.show(value,undef,true)}})} 1030self.trigger(Galleria.READY);Galleria.theme.init.call(self,self._options);$.each(Galleria.ready.callbacks, function(i,fn){if(typeof fn=='function'){fn.call(self,self._options)}});self._options.extend.call(self,self._options);if(/^[0-9]{1,4}$/.test(HASH)&&Galleria.History){self.show(HASH,undef,true)} else if(self._data[self._options.show]){self.show(self._options.show)} 1031if(self._options.autoplay){self.trigger(Galleria.PLAY)}},error: function(){Galleria.raise('Stage width or height is too small to show the gallery. Traced measures: width:'+self._stageWidth+'px, height: '+self._stageHeight+'px.',true)}})},load: function(source,selector,config){var self=this,o=this._options;this._data=[];this._thumbnails=[];this.$('thumbnails').empty();if(typeof selector==='function'){config=selector;selector=null} 1032source=source||o.dataSource;selector=selector||o.dataSelector;config=config||o.dataConfig;if(/^function Object/.test(source.constructor)){source=[source]} 1033if(source.constructor===Array){if(this.validate(source)){this._data=source} else{Galleria.raise('Load failed: JSON Array not valid.')}} else{selector+=',.video,.iframe';$(source).find(selector).each( function(i,elem){elem=$(elem);var data={},parent=elem.parent(),href=parent.attr('href'),rel=parent.attr('rel');if(href&&(elem[0].nodeName=='IMG'||elem.hasClass('video'))&&_videoTest(href)){data.video=href} else if(href&&elem.hasClass('iframe')){data.iframe=href} else{data.image=data.big=href} 1034if(rel){data.big=rel} 1035$.each('big title description link layer'.split(' '), function(i,val){if(elem.data(val)){data[val]=elem.data(val)}});self._data.push($.extend({title:elem.attr('title')||'',thumb:elem.attr('src'),image:elem.attr('src'),big:elem.attr('src'),description:elem.attr('alt')||'',link:elem.attr('longdesc'),original:elem.get(0)},data,config(elem)))})} 1036if(typeof o.dataSort=='function'){protoArray.sort.call(this._data,o.dataSort)} else if(o.dataSort=='random'){this._data.sort( function(){return Math.round(Math.random())-0.5})} 1037if(this.getDataLength()){this._parseData().trigger(Galleria.DATA)} 1038return this},_parseData: function(){var self=this,current;$.each(this._data, function(i,data){current=self._data[i];if('thumb' in data===false){current.thumb=data.image} 1039if(!'big' in data){current.big=data.image} 1040if('video' in data){var result=_videoTest(data.video);if(result){current.iframe=_video[result.provider].embed(result.id)+(function(){if(typeof self._options[result.provider]=='object'){var str='?',arr=[];$.each(self._options[result.provider], function(key,val){arr.push(key+'='+val)});if(result.provider=='youtube'){arr=['wmode=opaque'].concat(arr)} 1041return str+arr.join('&')} 1042return ''}());delete current.video;if(!('thumb' in current)||!current.thumb){current.thumb=result.provider+':'+result.id}}}});return this},destroy: function(){this.$('target').data('galleria',null);this.$('container').unbind('galleria');this.get('target').innerHTML=this._original.html;this.clearTimer();Utils.removeFromArray(_instances,this);Utils.removeFromArray(_galleries,this);return this},splice: function(){var self=this,args=Utils.array(arguments);window.setTimeout(function(){protoArray.splice.apply(self._data,args);self._parseData()._createThumbnails()},2);return self},push: function(){var self=this,args=Utils.array(arguments);
1042if(args.length==1&&args[0].constructor==Array){args=args[0]} 1043window.setTimeout(function(){protoArray.push.apply(self._data,args);self._parseData()._createThumbnails(args)},2);return self},_getActive: function(){return this._controls.getActive()},validate: function(data){return true},bind: function(type,fn){type=_patchEvent(type);this.$('container').bind(type,this.proxy(fn));return this},unbind: function(type){type=_patchEvent(type);this.$('container').unbind(type);return this},trigger: function(type){type=typeof type==='object'?$.extend(type,{scope:this}):{type:_patchEvent(type),scope:this};this.$('container').trigger(type);return this},addIdleState: function(elem,styles,from,hide){this._idle.add.apply(this._idle,Utils.array(arguments));return this},removeIdleState: function(elem){this._idle.remove.apply(this._idle,Utils.array(arguments));return this},enterIdleMode: function(){this._idle.hide();return this},exitIdleMode: function(){this._idle.showAll();return this},enterFullscreen: function(callback){this._fullscreen.enter.apply(this,Utils.array(arguments));return this},exitFullscreen: function(callback){this._fullscreen.exit.apply(this,Utils.array(arguments));return this},toggleFullscreen: function(callback){this._fullscreen[this.isFullscreen()?'exit':'enter'].apply(this,Utils.array(arguments));return this},bindTooltip: function(elem,value){this._tooltip.bind.apply(this._tooltip,Utils.array(arguments));return this},defineTooltip: function(elem,value){this._tooltip.define.apply(this._tooltip,Utils.array(arguments));return this},refreshTooltip: function(elem){this._tooltip.show.apply(this._tooltip,Utils.array(arguments));return this},openLightbox: function(){this._lightbox.show.apply(this._lightbox,Utils.array(arguments));return this},closeLightbox: function(){this._lightbox.hide.apply(this._lightbox,Utils.array(arguments));return this},getActiveImage: function(){return this._getActive().image||undef},getActiveThumb: function(){return this._thumbnails[this._active].image||undef},getMousePosition: function(e){return{x:e.pageX-this.$('container').offset().left,y:e.pageY-this.$('container').offset().top}},addPan: function(img){if(this._options.imageCrop===false){return} 1044img=$(img||this.getActiveImage());var self=this,x=img.width()/2,y=img.height()/2,destX=parseInt(img.css('left'),10),destY=parseInt(img.css('top'),10),curX=destX||0,curY=destY||0,distX=0,distY=0,active=false,ts=Utils.timestamp(),cache=0,move=0,position=function(dist,cur,pos){if(dist>0){move=Math.round(Math.max(dist *-1,Math.min(0,cur)));if(cache!==move){cache=move;if(IE===8){img.parent()['scroll'+pos](move *-1)} else{var css={};css[pos.toLowerCase()]=move;img.css(css)}}}},calculate=function(e){if(Utils.timestamp()-ts<50){return} 1045active=true;x=self.getMousePosition(e).x;y=self.getMousePosition(e).y},loop=function(e){if(!active){return} 1046distX=img.width()-self._stageWidth;distY=img.height()-self._stageHeight;destX=x/self._stageWidth * distX *-1;destY=y/self._stageHeight * distY *-1;curX+=(destX-curX)/self._options.imagePanSmoothness;curY+=(destY-curY)/self._options.imagePanSmoothness;position(distY,curY,'Top');position(distX,curX,'Left')};if(IE===8){img.parent().scrollTop(curY *-1).scrollLeft(curX *-1);img.css({top:0,left:0})} 1047this.$('stage').unbind('mousemove',calculate).bind('mousemove',calculate);this.addTimer('pan'+self._id,loop,50,true);return this},proxy: function(fn,scope){if(typeof fn!=='function'){return F} 1048scope=scope||this;return function(){return fn.apply(scope,Utils.array(arguments))}},removePan: function(){this.$('stage').unbind('mousemove');this.clearTimer('pan'+this._id);return this},addElement: function(id){var dom=this._dom;$.each(Utils.array(arguments), function(i,blueprint){dom[blueprint]=Utils.create('galleria-'+blueprint)});return this},attachKeyboard: function(map){this._keyboard.attach.apply(this._keyboard,Utils.array(arguments));return this},detachKeyboard: function(){this._keyboard.detach.apply(this._keyboard,Utils.array(arguments));return this},appendChild: function(parentID,childID){this.$(parentID).append(this.get(childID)||childID);return this},prependChild: function(parentID,childID){this.$(parentID).prepend(this.get(childID)||childID);return this},remove: function(elemID){this.$(Utils.array(arguments).join(',')).remove();return this},append: function(data){var i,j;for(i in data){if(data.hasOwnProperty(i)){if(data[i].constructor===Array){for(j=0;data[i][j];j++){this.appendChild(i,data[i][j])}} else{this.appendChild(i,data[i])}}} 1049return this},_scaleImage: function(image,options){image=image||this._controls.getActive();if(!image){return} 1050var self=this,complete,scaleLayer=function(img){$(img.container).children(':first').css({top:Math.max(0,Utils.parseValue(img.image.style.top)),left
1050:Math.max(0,Utils.parseValue(img.image.style.left)),width:Utils.parseValue(img.image.width),height:Utils.parseValue(img.image.height)})};options=$.extend({width:this._stageWidth,height:this._stageHeight,crop:this._options.imageCrop,max:this._options.maxScaleRatio,min:this._options.minScaleRatio,margin:this._options.imageMargin,position:this._options.imagePosition,iframelimit:this._options.maxVideoSize},options);if(this._options.layerFollow&&this._options.imageCrop!==true){if(typeof options.complete=='function'){complete=options.complete;options.complete=function(){complete.call(image,image);scaleLayer(image)}} else{options.complete=scaleLayer}} else{$(image.container).children(':first').css({top:0,left:0})} 1051image.scale(options);return this},updateCarousel: function(){this._carousel.update();return this},resize: function(measures,complete){if(typeof measures=='function'){complete=measures;measures=undef} 1052measures=$.extend({width:0,height:0},measures);var self=this,$container=this.$('container');$.each(measures, function(m,val){if(!val){$container[m]('auto');measures[m]=self._getWH()[m]}});$.each(measures, function(m,val){$container[m](val)});return this.rescale(complete)},rescale: function(width,height,complete){var self=this;if(typeof width==='function'){complete=width;width=undef} 1053var scale=function(){self._stageWidth=width||self.$('stage').width();self._stageHeight=height||self.$('stage').height();self._scaleImage();if(self._options.carousel){self.updateCarousel()} 1054self.trigger(Galleria.RESCALE);if(typeof complete==='function'){complete.call(self)}};scale.call(self);return this},refreshImage: function(){this._scaleImage();if(this._options.imagePan){this.addPan()} 1055return this},show: function(index,rewind,_history){if(this._queue.length>3||index===false||(!this._options.queue&&this._queue.stalled)){return} 1056index=Math.max(0,Math.min(parseInt(index,10),this.getDataLength()-1));rewind=typeof rewind!=='undefined'?!!rewind:index<this.getIndex();_history=_history||false;if(!_history&&Galleria.History){Galleria.History.set(index.toString());return} 1057this._active=index;protoArray.push.call(this._queue,{index:index,rewind:rewind});if(!this._queue.stalled){this._show()} 1058return this},_show: function(){var self=this,queue=this._queue[0],data=this.getData(queue.index);if(!data){return} 1059var src=data.iframe||(this.isFullscreen()&&'big' in data?data.big:data.image),active=this._controls.getActive(),next=this._controls.getNext(),cached=next.isCached(src),thumb=this._thumbnails[queue.index],mousetrigger=function(){$(next.image).trigger('mouseup')};var complete=(function(data,next,active,queue,thumb){return function(){var win;_transitions.active=false;Utils.toggleQuality(next.image,self._options.imageQuality);self._layers[self._controls.active].innerHTML='';$(active.container).css({zIndex:0,opacity:0}).show();if(active.isIframe){$(active.container).find('iframe').remove()} 1060self.$('container').toggleClass('iframe',!!data.iframe);$(next.container).css({zIndex:1,left:0,top:0}).show();self._controls.swap();if(self._options.imagePan){self.addPan(next.image)} 1061if(data.link||self._options.lightbox||self._options.clicknext){$(next.image).css({cursor:'pointer'}).bind('mouseup', function(e){if(typeof e.which=='number'&&e.which>1){return} 1062if(self._options.clicknext&&!Galleria.TOUCH){if(self._options.pauseOnInteraction){self.pause()} 1063self.next();return} 1064if(data.link){if(self._options.popupLinks){win=window.open(data.link,'_blank')} else{window.location.href=data.link} 1065return} 1066if(self._options.lightbox){self.openLightbox()}})} 1067self._playCheck();self.trigger({type:Galleria.IMAGE,index:queue.index,imageTarget:next.image,thumbTarget:thumb.image,galleriaData:data});protoArray.shift.call(self._queue);self._queue.stalled=false;if(self._queue.length){self._show()}}}(data,next,active,queue,thumb));if(this._options.carousel&&this._options.carouselFollow){this._carousel.follow(queue.index)} 1068if(this._options.preload){var p,i,n=this.getNext(),ndata;try{for(i=this._options.preload;i>0;i--){p=new Galleria.Picture();ndata=self.getData(n);
1068p.preload(this.isFullscreen()&&'big' in ndata?ndata.big:ndata.image);n=self.getNext(n)}} catch(e){}} 1069Utils.show(next.container);next.isIframe=!!data.iframe;$(self._thumbnails[queue.index].container).addClass('active').siblings('.active').removeClass('active');self.trigger({type:Galleria.LOADSTART,cached:cached,index:queue.index,rewind:queue.rewind,imageTarget:next.image,thumbTarget:thumb.image,galleriaData:data});self._queue.stalled=true;next.load(src, function(next){var layer=$(self._layers[1-self._controls.active]).html(data.layer||'').hide();self._scaleImage(next,{complete: function(next){if('image' in active){Utils.toggleQuality(active.image,false)} 1070Utils.toggleQuality(next.image,false);self.removePan();self.setInfo(queue.index);self.setCounter(queue.index);if(data.layer){layer.show();if(data.link||self._options.lightbox||self._options.clicknext){layer.css('cursor','pointer').unbind('mouseup').mouseup(mousetrigger)}} 1071var transition=self._options.transition;$.each({initial:active.image===null,touch:Galleria.TOUCH,fullscreen:self.isFullscreen()}, function(type,arg){if(arg&&self._options[type+'Transition']!==undef){transition=self._options[type+'Transition'];return false}});if(transition in _transitions.effects===false){complete()} else{var params={prev:active.container,next:next.container,rewind:queue.rewind,speed:self._options.transitionSpeed||400};_transitions.active=true;_transitions.init.call(self,transition,params,complete)} 1072self.trigger({type:Galleria.LOADFINISH,cached:cached,index:queue.index,rewind:queue.rewind,imageTarget:next.image,thumbTarget:self._thumbnails[queue.index].image,galleriaData:self.getData(queue.index)})}})})},getNext: function(base){base=typeof base==='number'?base:this.getIndex();return base===this.getDataLength()-1?0:base+1},getPrev: function(base){base=typeof base==='number'?base:this.getIndex();return base===0?this.getDataLength()-1:base-1},next: function(){if(this.getDataLength()>1){this.show(this.getNext(),false)} 1073return this},prev: function(){if(this.getDataLength()>1){this.show(this.getPrev(),true)} 1074return this},get: function(elemId){return elemId in this._dom?this._dom[elemId]:null},getData: function(index){return index in this._data?this._data[index]:this._data[this._active]},getDataLength: function(){return this._data.length},getIndex: function(){return typeof this._active==='number'?this._active:false},getStageHeight: function(){return this._stageHeight},getStageWidth: function(){return this._stageWidth},getOptions: function(key){return typeof key==='undefined'?this._options:this._options[key]},setOptions: function(key,value){if(typeof key==='object'){$.extend(this._options,key)} else{this._options[key]=value} 1075return this},play: function(delay){this._playing=true;this._playtime=delay||this._playtime;this._playCheck();this.trigger(Galleria.PLAY);return this},pause: function(){this._playing=false;this.trigger(Galleria.PAUSE);return this},playToggle: function(delay){return(this._playing)?this.pause():this.play(delay)},isPlaying: function(){return this._playing},isFullscreen: function(){return this._fullscreen.active},_playCheck: function(){var self=this,played=0,interval=20,now=Utils.timestamp(),timer_id='play'+this._id;if(this._playing){this.clearTimer(timer_id);var fn=function(){played=Utils.timestamp()-now;if(played>=self._playtime&&self._playing){self.clearTimer(timer_id);self.next();return} 1076if(self._playing){self.trigger({type:Galleria.PROGRESS,percent:Math.ceil(played/self._playtime * 100),seconds:Math.floor(played/1000),milliseconds:played});self.addTimer(timer_id,fn,interval)}};self.addTimer(timer_id,fn,interval)}},setPlaytime: function(delay){this._playtime=delay;return this},setIndex: function(val){this._active=val;return this},setCounter: function(index){if(typeof index==='number'){index++} else if(typeof index==='undefined'){index=this.getIndex()+1} 1077this.get('current').innerHTML=index;if(IE){var count=this.$('counter'),opacity=count.css('opacity');if(parseInt(opacity,10)===1){Utils.removeAlpha(count[0])} else{this.$('counter').css('opacity',opacity)}} 1078return this},setInfo: function(index){var self=this,data=this.getData(index);$.each(['title','description'], function(i,type){var elem=self.$('info-'+type);if(!!data[type]){elem[data[type].length?'show':'hide']().html(data[type])} else{elem.empty().hide()}});return this},hasInfo: function(index){var check='title description'.split(' '),i;for(i=0;check[i];i++){if(!!this.getData(index)[check[i]]){return true}} 1079return false},jQuery: function(str){var self=this,ret=[];$.each(str.split(','), function(i,elemId){elemId=$.trim(elemId);if(self.get(elemId)){ret.push(elemId)}});var jQ=$(self.get(ret.shift()));$.each(ret, function(i,elemId){jQ=jQ.add(self.get(elemId))});return jQ},$: function(str){return this.jQuery.apply(this,Utils.array(arguments))}};$.each(_events, function(i,ev){var type=/_/.test(ev)?ev.replace(/_/g,''):ev;Galleria[ev.toUpperCase()]='galleria.'+type});$.extend(Galleria,{IE9:IE===9,IE8:IE===8,IE7:IE===7,IE6:IE===6,IE:IE,WEBKIT:/webkit/.test(NAV),CHROME:/chrome/.test(NAV),SAFARI:/safari/.test(NAV)&&!(/chrome/.test(NAV)),QUIRK:(IE&&doc.compatMode&&doc.compatMode==="BackCompat"),MAC:/mac/.test(navigator.platform.toLowerCase()),OPERA:!!window.opera,IPHONE:/iphone/.test(NAV),IPAD:/ipad/.test(NAV),ANDROID:/android/.test(NAV),TOUCH:('ontouchstart' in doc)});Galleria.addTheme=function(theme){if(!theme.name){Galleria.raise('No theme name specified')} 1080if(typeof theme.defaults!=='object'){theme.defaults={}} else{theme.defaults=_legacyOptions(theme.defaults)} 1081var css=false,reg;if(typeof theme.css==='string'){$('link').each(function(i,link){reg=new RegExp(theme.css.replace('\+\
1081+resource\+\+','\\+\\+resource\\+\\+'));if(reg.test(link.href)){css=true;_themeLoad(theme);return false}});if(!css){$('script').each(function(i,script){reg=new RegExp('galleria\\.'+theme.name.toLowerCase()+'\\.');if(reg.test(script.src)){css=script.src.replace(/[^\/]*$/,'')+theme.css;window.setTimeout(function(){Utils.loadCSS(css,'galleria-theme', function(){_themeLoad(theme)})},1)}})} 1082if(!css){Galleria.raise('No theme CSS loaded')}} else{_themeLoad(theme)} 1083return theme};Galleria.loadTheme=function(src,options){if($('script').filter(function(){return $(this).attr('src')==src}).length){return} 1084var loaded=false,err;$(window).load( function(){if(!loaded){err=window.setTimeout(function(){if(!loaded&&!Galleria.theme){Galleria.raise("Galleria had problems loading theme at "+src+". Please check theme path or load manually.",true)}},20000)}});Galleria.unloadTheme();Utils.loadScript(src, function(){loaded=true;window.clearTimeout(err)});return Galleria};Galleria.unloadTheme=function(){if(typeof Galleria.theme=='object'){$('script').each(function(i,script){if(new RegExp('galleria\\.'+Galleria.theme.name+'\\.').test(script.src)){$(script).remove()}});Galleria.theme=undef} 1085return Galleria};Galleria.get=function(index){if(!!_instances[index]){return _instances[index]} else if(typeof index!=='number'){return _instances} else{Galleria.raise('Gallery index '+index+' not found')}};Galleria.configure=function(key,value){var opts={};if(typeof key=='string'&&value){opts[key]=value;key=opts} else{$.extend(opts,key)} 1086Galleria.configure.options=opts;$.each(Galleria.get(), function(i,instance){instance.setOptions(opts)});return Galleria};Galleria.configure.options={};Galleria.on=function(type,callback){if(!type){return} 1087callback=callback||F;var hash=type+callback.toString().replace(/\s/g,'')+Utils.timestamp();$.each(Galleria.get(), function(i,instance){instance._binds.push(hash);instance.bind(type,callback)});Galleria.on.binds.push({type:type,callback:callback,hash:hash});return Galleria};Galleria.on.binds=[];Galleria.run=function(selector,options){if($.isFunction(options)){options={extend:options}} 1088$(selector||'#galleria').galleria(options);return Galleria};Galleria.addTransition=function(name,fn){_transitions.effects[name]=fn;return Galleria};Galleria.utils=Utils;Galleria.log=function(){var args=Utils.array(arguments);if('console' in window&&'log' in window.console){try{return window.console.log.apply(window.console,args)} catch(e){$.each(args, function(){window.console.log(this)})}} else{return window.alert(args.join('<br>'))}};Galleria.ready=function(fn){if(typeof fn!='function'){return Galleria} 1089$.each(_galleries, function(i,gallery){fn.call(gallery,gallery._options)});Galleria.ready.callbacks.push(fn);return Galleria};Galleria.ready.callbacks=[];Galleria.raise=function(msg,fatal){var type=fatal?'Fatal error':'Error',self=this,css={color:'#fff',position:'absolute',top:0,left:0,zIndex:100000},echo=function(msg){var html='<div style="padding:4px;margin:0 0 2px;background:#'+(fatal?'811':'222')+';">'+(fatal?'<strong>'+type+': </strong>':'')+msg+'</div>';$.each(_instances, function(){var cont=this.$('errors'),target=this.$('target');if(!cont.length){target.css('position','relative');cont=this.addElement('errors').appendChild('target','errors').$('errors').css(css)} 1090cont.append(html)});if(!_instances.length){$('<div>').css($.extend(css,{position:'fixed'})).append(html).appendTo(DOM().body)}};if(DEBUG){echo(msg);if(fatal){throw new Error(type+': '+msg)}} else if(fatal){if(_hasError){return} 1091_hasError=true;fatal=false;echo('Gallery could not load.')}};Galleria.version=VERSION;Galleria.requires=function(version,msg){msg=msg||'You need to upgrade Galleria to version '+version+' to use one or more components.';if(Galleria.version<version){Galleria.raise(msg,true)} 1092return Galleria};Galleria.Picture=function(id){this.id=id||null;this.image=null;this.container=Utils.create('galleria-image');$(this.container).css({overflow:'hidden',position:'relative'});this.original={width:0,height:0};this.ready=false;this.isIframe=false};Galleria.Picture.prototype={cache:{},show: function(){Utils.show(this.image)},hide: function(){Utils.moveOut(this.image)},clear: function(){this.image=null},isCached: function(src){return!!this.cache[src]},preload: function(src){$(new Image()).load((function(src,cache){return function(){cache[src]=src}}(src,this.cache))).attr('src',src)},load: function(src,size,callback){if(typeof size=='function'){callback=size;size=null} 1093if(this.isIframe){var id='if'+new Date().getTime();this.image=$('<iframe>',{src:src,frameborder:0,id:id,allowfullscreen:true,css:{visibility:'hidden'}})[0];$(this.container).find('iframe,img').remove();this.container.appendChild(this.image);$('#'+id).load((function(self,callback){return function(){window.setTimeout(function(){$(self.image).css('visibility','visible');if(typeof callback=='function'){callback.call(self,self)}},10)}}(this,callback)));return this.container} 1094this.image=new Image();if(Galleria.IE8){$(this.image).css('filter','inherit')} 1095var i=0,reload=false,resort=false,$container=$(this.container),$image=$(this.image),onerror=function(){if(!reload){reload=true;window.setTimeout((function(image,src){return function(){image.attr('src',src+'?'+Utils.timestamp())}}($(this),src)),50)} else{if(DUMMY){$(this).attr('src',DUMMY)} else{Galleria.raise('Image not found: '+src)}}},onload=(function(self,callback,src){return function(){var complete=function(){$(this).unbind('load');self.original=size||{height:this.height,width:this.width};self.container.appendChild(this);self.cache[src]=src;if(typeof callback=='function'){window.setTimeout(function(){callback.call(self,self)},1)}};if((!this.width||!this.height)){window.setTimeout((function(img){return function(){if(img.width&&img.height){complete.call(img)} else{if(!resort){$(new Image()).load(onload).attr('src',img.src);resort=true} else{Galleria.raise('Could not extract width/height from image: '+img.src+'. Traced measures: width:'+img.width+'px, height: '+img.height+'px.')}}}}(this)),2)} else{complete.call(this)}}}(this,callback,src));$container.find('iframe,img').remove();$image.css('display','block');Utils.hide(this.image);$.each('minWidth minHeight maxWidth maxHeight'.split(' '), function(i,prop){$image.css(prop,(/min/.test(prop)?'0':'none'))});$image.load(onload).error(onerror).attr('src',src);return this.container},scale: function(options){var self=this;
1095options=$.extend({width:0,height:0,min:undef,max:undef,margin:0,complete:F,position:'center',crop:false,canvas:false,iframelimit:undef},options);if(this.isIframe){var cw=options.width,ch=options.height,nw,nh;if(options.iframelimit){var r=Math.min(options.iframelimit/cw,options.iframelimit/ch);if(r<1){nw=cw * r;nh=ch * r;$(this.image).css({top:ch/2-nh/2,left:cw/2-nw/2,position:'absolute'})} else{$(this.image).css({top:0,left:0})}} 1096$(this.image).width(nw||cw).height(nh||ch).removeAttr('width').removeAttr('height');$(this.container).width(cw).height(ch);options.complete.call(self,self);try{if(this.image.contentWindow){$(this.image.contentWindow).trigger('resize')}} catch(e){} 1097return this.container} 1098if(!this.image){return this.container} 1099var width,height,$container=$(self.container),data;Utils.wait({until: function(){width=options.width||$container.width()||Utils.parseValue($container.css('width'));height=options.height||$container.height()||Utils.parseValue($container.css('height'));return width&&height},success: function(){var newWidth=(width-options.margin * 2)/self.original.width,newHeight=(height-options.margin * 2)/self.original.height,min=Math.min(newWidth,newHeight),max=Math.max(newWidth,newHeight),cropMap={'true':max,'width':newWidth,'height':newHeight,'false':min,'landscape':self.original.width>self.original.height?max:min,'portrait':self.original.width<self.original.height?max:min},ratio=cropMap[options.crop.toString()],canvasKey='';if(options.max){ratio=Math.min(options.max,ratio)} 1100if(options.min){ratio=Math.max(options.min,ratio)} 1101$.each(['width','height'], function(i,m){$(self.image)[m](self[m]=self.image[m]=Math.round(self.original[m] * ratio))});$(self.container).width(width).height(height);if(options.canvas&&_canvas){_canvas.elem.width=self.width;_canvas.elem.height=self.height;canvasKey=self.image.src+':'+self.width+'x'+self.height;self.image.src=_canvas.cache[canvasKey]||(function(key){_canvas.context.drawImage(self.image,0,0,self.original.width*ratio,self.original.height*ratio);try{data=_canvas.elem.toDataURL();_canvas.length+=data.length;_canvas.cache[key]=data;return data} catch(e){return self.image.src}}(canvasKey))} 1102var pos={},mix={},getPosition=function(value,measure,margin){var result=0;if (/\%/.test(value)){var flt=parseInt(value,10)/100,m=self.image[measure]||$(self.image)[measure]();result=Math.ceil(m *-1 * flt+margin * flt)} else{result=Utils.parseValue(value)} 1103return result},positionMap={'top':{top:0},'left':{left:0},'right':{left:'100%'},'bottom':{top:'100%'}};$.each(options.position.toLowerCase().split(' '), function(i,value){if(value==='center'){value='50%'} 1104pos[i?'top':'left']=value});$.each(pos, function(i,value){if(positionMap.hasOwnProperty(value)){$.extend(mix,positionMap[value])}});pos=pos.top?$.extend(pos,mix):mix;pos=$.extend({top:'50%',left:'50%'},pos);$(self.image).css({position:'absolute',top:getPosition(pos.top,'height',height),left:getPosition(pos.left,'width',width)});self.show();self.ready=true;options.complete.call(self,self)},error: function(){Galleria.raise('Could not scale image: '+self.image.src)},timeout:1000});return this}};$.extend($.easing,{galleria: function(_,t,b,c,d){if((t/=d/2)<1){return c/2*t*t*t+b} 1105return c/2*((t-=2)*t*t+2)+b},galleriaIn: function(_,t,b,c,d){return c*(t/=d)*t+b},galleriaOut: function(_,t,b,c,d){return-c *(t/=d)*(t-2)+b}});$.fn.galleria=function(options){var selector=this.selector;if(!$(this).length){$(function(){if($(selector).length){$(selector).galleria(options)} else{Galleria.utils.wait({until: function(){return $(selector).length},success: function(){$(selector).galleria(options)},error: function(){Galleria.raise('Init failed: Galleria could not find the element "'+selector+'".')},timeout:5000})}});return this} 1106return this.each(function(){if($.data(this,'galleria')){$.data(this,'galleria').destroy();$(this).find('*').hide()} 1107$.data(this,'galleria',new Galleria().init(this,options))})}}(jQuery));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.