1Drupal.locale = { 'pluralFormula': function ($n) { return Number(($n!=1)); }, 'strings': {"":{"An AJAX HTTP error occurred.":"\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 AJAX HTTP \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1.","HTTP Result Code: !status":"\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03bf\u03c2 HTTP: !status","An AJAX HTTP request terminated abnormally.":"\u039c\u03b9\u03b1 AJAX HTTP \u03b1\u03af\u03c4\u03b7\u03c3\u03b7 \u03b4\u03b5\u03bd \u03c0\u03b5\u03c1\u03b1\u03c4\u03ce\u03b8\u03b7\u03ba\u03b5 \u03c6\u03c5\u03c3\u03b9\u03bf\u03bb\u03bf\u03b3\u03b9\u03ba\u03ac.","Debugging information follows.":"\u0391\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03bf\u03cd\u03bd \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03b1\u03c0\u03bf\u03c3\u03c6\u03b1\u03bb\u03bc\u03ac\u03c4\u03c9\u03c3\u03b7\u03c2.","Path: !uri":"\u0394\u03b9\u03b1\u03b4\u03c1\u03bf\u03bc\u03ae: !uri","StatusText: !statusText":"\u039a\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u039a\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2: !statusText","ResponseText: !responseText":"\u039a\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u0391\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7\u03c2: !responseText","ReadyState: !readyState":"\u039a\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u0388\u03c4\u03bf\u03b9\u03bc\u03bf: !readyState","Hide":"\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b7","Show":"\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7","Show shortcuts":"\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c4\u03c9\u03bd \u03c3\u03c5\u03bd\u03c4\u03bf\u03bc\u03b5\u03cd\u03c3\u03b5\u03c9\u03bd","Hide shortcuts":"\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b7 \u03c4\u03c9\u03bd \u03c3\u03c5\u03bd\u03c4\u03bf\u03bc\u03b5\u03cd\u03c3\u03b5\u03c9\u03bd","Please select at least one newsletter list.":"\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03c4\u03bf\u03c5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf\u03bd \u03ad\u03bd\u03b1 \u03b1\u03bd\u03c4\u03b9\u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03bb\u03af\u03c3\u03c4\u03b1 \u03c4\u03c9\u03bd \u03b5\u03bd\u03b7\u03bc\u03b5\u03c1\u03c9\u03c4\u03b9\u03ba\u03ce\u03bd \u03b4\u03b5\u03bb\u03c4\u03af\u03c9\u03bd.","Please wait...":"\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c0\u03b5\u03c1\u03b9\u03bc\u03ad\u03bd\u03b5\u03c4\u03b5...","Re-order rows by numerical weight instead of dragging.":"\u0395\u03c0\u03b1\u03bd\u03b1\u03c4\u03b1\u03be\u03b9\u03bd\u03cc\u03bc\u03b7\u03c3\u03b7 \u03c4\u03c9\u03bd \u03b3\u03c1\u03b1\u03bc\u03bc\u03ce\u03bd \u03bc\u03b5 \u03c4\u03b9\u03c2 \u03b1\u03c1\u03b9\u03b8\u03bc\u03b7\u03c4\u03b9\u03ba\u03ad\u03c2 \u03b2\u03b1\u03c1\u03cd\u03c4\u03b7\u03c4\u03b5\u03c2 \u03b1\u03bd\u03c4\u03af \u03b3\u03b9\u03b1 \u03c3\u03cd\u03c1\u03c3\u03b9\u03bc\u03bf.","Show row weights":"\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c4\u03c9\u03bd \u03b2\u03b1\u03c1\u03c5\u03c4\u03ae\u03c4\u03c9\u03bd \u03b3\u03c1\u03b1\u03bc\u03bc\u03ce\u03bd","Hide row weights":"\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b7 \u03c4\u03c9\u03bd \u03b2\u03b1\u03c1\u03c5\u03c4\u03ae\u03c4\u03c9\u03bd \u03b3\u03c1\u03b1\u03bc\u03bc\u03ce\u03bd","Drag to re-order":"\u039c\u03b5\u03c4\u03b1\u03ba\u03b9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03b3\u03b9\u03b1 \u03b1\u03bd\u03b1\u03ba\u03b1\u03c4\u03ac\u03c4\u03b1\u03be\u03b7","Changes made in this table will not be saved until the form is submitted.":"\u039f\u03b9 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2 \u03c0\u03bf\u03c5 \u03b3\u03af\u03bd\u03bf\u03bd\u03c4\u03b1\u03b9 \u03c3\u0027 \u03b1\u03c5\u03c4\u03cc\u03bd \u03c4\u03bf\u03bd \u03c0\u03af\u03bd\u03b1\u03ba\u03b1 \u03b4\u03b5\u03bd \u03b8\u03b1 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03c4\u03bf\u03cd\u03bd \u03ad\u03c9\u03c2 \u03cc\u03c4\u03bf\u03c5 \u03b7 \u03c6\u03cc\u03c1\u03bc\u03b1 \u03c5\u03c0\u03bf\u03b2\u03bb\u03b7\u03b8\u03b5\u03af.","Status":"\u039a\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7","Edit":"\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1","Size":"\u039c\u03ad\u03b3\u03b5\u03b8\u03bf\u03c2","Add":"\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7","Configure":"\u0394\u03b9\u03b5\u03c5\u03b8\u03ad\u03c4\u03b7\u03c3\u03b7","Custom"
1:"\u03a0\u03c1\u03bf\u03c3\u03b1\u03c1\u03bc\u03bf\u03c3\u03bc\u03ad\u03bd\u03bf","Loading":"\u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7","Next":"\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03bf","Sunday":"\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae","Monday":"\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1","Tuesday":"\u03a4\u03c1\u03af\u03c4\u03b7","Wednesday":"\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7","Thursday":"\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7","Friday":"\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae","Saturday":"\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf","Filename":"\u038c\u03bd\u03bf\u03bc\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5","Upload":"\u0391\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae","Done":"\u0388\u03b3\u03b9\u03bd\u03b5","N\/A":"\u039c\/\u0394","Prev":"\u03a0\u03c1\u03bf\u03b7\u03b3","Mon":"\u0394\u03b5\u03c5","Tue":"\u03a4\u03c1\u03af","Wed":"\u03a4\u03b5\u03c4","Thu":"\u03a0\u03ad\u03bc","Fri":"\u03a0\u03b1\u03c1","Sat":"\u03a3\u03ac\u03b2","Sun":"\u039a\u03c5\u03c1","January":"\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2","February":"\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2","March":"\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2","April":"\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2","May":"\u039c\u03ac\u03b9\u03bf\u03c2","June":"\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2","July":"\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2","August":"\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2","September":"\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2","October":"\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2","November":"\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2","December":"\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2","Select all rows in this table":"\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03b3\u03c1\u03b1\u03bc\u03bc\u03ce\u03bd \u03c3\u03b5 \u03b1\u03c5\u03c4\u03cc\u03bd \u03c4\u03bf\u03bd \u03c0\u03af\u03bd\u03b1\u03ba\u03b1","Deselect all rows in this table":"\u0391\u03c0\u03bf\u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03b3\u03c1\u03b1\u03bc\u03bc\u03ce\u03bd \u03c3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf\u03bd \u03c0\u03af\u03bd\u03b1\u03ba\u03b1","Today":"\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1","Jan":"\u0399\u03b1\u03bd","Feb":"\u03a6\u03b5\u03b2","Mar":"\u039c\u03b1\u03c1","Apr":"\u0391\u03c0\u03c1","Jun":"\u0399\u03bf\u03c5\u03bd","Jul":"\u0399\u03bf\u03c5\u03bb","Aug":"\u0391\u03c5\u03b3","Sep":"\u03a3\u03b5\u03c0","Oct":"\u039f\u03ba\u03c4","Nov":"\u039d\u03bf\u03b5","Dec":"\u0394\u03b5\u03ba","Su":"\u039a\u03c5","Mo":"\u0394\u03b5","Tu":"\u03a4\u03c1","We":"\u03a4\u03b5","Th":"\u03a0\u03b5","Fr":"\u03a0\u03b1","Sa":"\u03a3\u03b1","Not published":"\u039c\u03b7 \u03b4\u03b7\u03bc\u03bf\u03c3\u03b9\u03b5\u03c5\u03bc\u03ad\u03bd\u03bf","mm\/dd\/yy":"\u039c\u039c\/\u0397\u0397\/\u0395\u0395","Only files with the following extensions are allowed: %files-allowed.":"\u039c\u03cc\u03bd\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 \u03bc\u03b5 \u03c4\u03b9\u03c2 \u03b1\u03ba\u03cc\u03bb\u03bf\u03c5\u03b8\u03b5\u03c2 \u03b5\u03c0\u03b5\u03ba\u03c4\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03bf\u03bd\u03c4\u03b1\u03b9: %files-allowed.","Not in book":"\u038c\u03c7\u03b9 \u03c3\u03b5 \u03b2\u03b9\u03b2\u03bb\u03af\u03bf","New book":"\u039d\u03ad\u03bf \u03b2\u03b9\u03b2\u03bb\u03af\u03bf","By @name on @date":"\u0391\u03c0\u03cc @name \u03c3\u03c4\u03b9\u03c2 @date","By @name":"\u0391\u03c0\u03cc @name","Not in menu":"\u038c\u03c7\u03b9 \u03c3\u03b5 \u03bc\u03b5\u03bd\u03bf\u03cd","Alias: @alias":"\u03a8\u03b5\u03c5\u03b4\u03ce\u03bd\u03c5\u03bc\u03bf: @alias","No alias":"\u03a7\u03c9\u03c1\u03af\u03c2 \u03c8\u03b5\u03c5\u03b4\u03ce\u03bd\u03c5\u03bc\u03bf","New revision":"\u039d\u03ad\u03b1 \u03b1\u03bd\u03b1\u03b8\u03b5\u03ce\u03c1\u03b7\u03c3\u03b7","The changes to these blocks will not be saved until the \u003Cem\u003ESave blocks\u003C\/em\u003E button is clicked.":"\u039f\u03b9 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ac \u03c4\u03b1 \u03bc\u03c0\u03bb\u03bf\u03ba \u03b4\u03b5\u03bd \u03b8\u03b1 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03c4\u03bf\u03cd\u03bd \u03ad\u03c9\u03c2 \u03cc\u03c4\u03bf\u03c5 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03c3\u03c4\u03bf \u03ba\u03bf\u03c5\u03bc\u03c0\u03af \u003Cem\u003E\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03bc\u03c0\u03bb\u03bf\u03ba\u003C\/em\u003E.","(active tab)":"(\u03b5\u03bd\u03b5\u03c1\u03b3\u03ae \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1)","No revision":"\u03a7\u03c9\u03c1\u03af\u03c2 \u03b1\u03bd\u03b1\u03b8\u03b5\u03ce\u03c1\u03b7\u03c3\u03b7","@number comments per page":"@number \u
103c3\u03c7\u03cc\u03bb\u03b9\u03b1 \u03b1\u03bd\u03ac \u03c3\u03b5\u03bb\u03af\u03b4\u03b1","Not restricted":"\u03a7\u03c9\u03c1\u03af\u03c2 \u03c0\u03b5\u03c1\u03b9\u03bf\u03c1\u03b9\u03c3\u03bc\u03cc","Not customizable":"\u038c\u03c7\u03b9 \u03c0\u03c1\u03bf\u03c3\u03b1\u03c1\u03bc\u03cc\u03c3\u03b9\u03bc\u03bf","Restricted to certain pages":"\u03a0\u03b5\u03c1\u03b9\u03bf\u03c1\u03af\u03b6\u03b5\u03c4\u03b1\u03b9 \u03c3\u03b5 \u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03b5\u03c2 \u03c3\u03b5\u03bb\u03af\u03b4\u03b5\u03c2","The block cannot be placed in this region.":"\u03a4\u03bf \u03bc\u03c0\u03bb\u03bf\u03ba \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c4\u03bf\u03c0\u03bf\u03b8\u03b5\u03c4\u03b7\u03b8\u03b5\u03af \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7\u03bd \u03c0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae.","Hide summary":"\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b7 \u03c0\u03b5\u03c1\u03af\u03bb\u03b7\u03c8\u03b7\u03c2","Edit summary":"\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03c0\u03b5\u03c1\u03af\u03bb\u03b7\u03c8\u03b7\u03c2","@title dialog":"\u03a0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf \u03b4\u03b9\u03b1\u03bb\u03cc\u03b3\u03bf\u03c5 @title","The selected file %filename cannot be uploaded. Only files with the following extensions are allowed: %extensions.":"\u03a4\u03bf \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf %filename \u03b4\u03b5\u03bd \u03bc\u03c0\u03cc\u03c1\u03b5\u03c3\u03b5 \u03bd\u03b1 \u03b1\u03c0\u03b5\u03c3\u03c4\u03b1\u03bb\u03bb\u03b5\u03af. \u039c\u03cc\u03bd\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 \u03b1\u03c0\u03cc \u03c4\u03bf\u03c5\u03c2 \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03c4\u03cd\u03c0\u03bf\u03c5\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03bf\u03bd\u03c4\u03b1\u03b9: %extensions.","Autocomplete popup":"\u0391\u03bd\u03b1\u03b4\u03c5\u03cc\u03bc\u03b5\u03bd\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b7\u03c2 \u03c3\u03c5\u03bc\u03c0\u03bb\u03ae\u03c1\u03c9\u03c3\u03b7\u03c2","Searching for matches...":"\u0393\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03b1\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7...","Loading token browser...":"\u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03c0\u03bb\u03bf\u03b7\u03b3\u03bf\u03cd \u03c3\u03c5\u03bc\u03b2\u03cc\u03bb\u03c9\u03bd \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2...","Available tokens":"\u0394\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03b1 \u03c3\u03cd\u03bc\u03b2\u03bf\u03bb\u03b1 \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2","Insert this token into your form":"\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c3\u03cd\u03bc\u03b2\u03bf\u03bb\u03bf (token) \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2 \u03c3\u03c4\u03b7\u03bd \u03c6\u03cc\u03c1\u03bc\u03b1 \u03c3\u03b1\u03c2","First click a text field to insert your tokens into.":"\u039a\u03ac\u03bd\u03c4\u03b5 \u03c0\u03c1\u03ce\u03c4\u03b1 \u03ba\u03bb\u03b9\u03ba \u03c3\u03b5 \u03ad\u03bd\u03b1 \u03c0\u03b5\u03b4\u03af\u03bf \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03b1 \u03c3\u03cd\u03bc\u03b2\u03bf\u03bb\u03b1 (tokens) \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03cc.","Close":"\u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf","Please select a file.":"\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf.","You are not allowed to operate on more than %num files.":"\u0394\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c7\u03c1\u03bf\u03bd\u03b7 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03c3\u03b5 \u03c0\u03ac\u03bd\u03c9 \u03b1\u03c0\u03cc %num \u03b1\u03c1\u03c7\u03b5\u03af\u03b1.","Please specify dimensions within the allowed range that is from 1x1 to @dimensions.":"\u03a0\u03c1\u03bf\u03c3\u03b4\u03b9\u03bf\u03c1\u03af\u03c3\u03c4\u03b5 \u03b4\u03b9\u03b1\u03c3\u03c4\u03ac\u03c3\u03b5\u03b9\u03c2 \u03bc\u03ad\u03c3\u03b1 \u03c3\u03c4\u03b1 \u03b5\u03c0\u03b9\u03c4\u03c1\u03b5\u03c0\u03c4\u03ac \u03cc\u03c1\u03b9\u03b1 \u03c0\u03bf\u03c5 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c0\u03cc 1x1 \u03c3\u03c4\u03b1 @dimensions.","%filename is not an image.":"\u03a4\u03bf %filename \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1.","File browsing is disabled in directory %dir.":"\u0397 \u03b5\u03be\u03b5\u03c1\u03b5\u03cd\u03bd\u03b7\u03c3\u03b7 \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03b7 \u03c3\u03c4\u03bf\u03bd \u03ba\u03b1\u03c4\u03ac\u03bb\u03bf\u03b3\u03bf %dir.","Do you want to refresh the current directory?":"\u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03b1\u03bd\u03b1\u03bd\u03ad\u03c9\u03c3\u03b7 \u03c3\u03c4\u03bf\u03bd \u03c4\u03c1\u03ad\u03c7\u03c9\u03bd \u03c6\u03ac\u03ba\u03b5\u03bb\u03bf;","Delete selected files?":"\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03c9\u03bd \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd;","Please select a thumbnail.":"\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03bc\u03af\u03b1 \u03bc\u03b9\u03ba\u03c1\u03bf\u03b3\u03c1\u03b1\u03c6\u03af\u03b1","You must select at least %num files.":"\u
10398\u03b1 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03b5\u03c4\u03b5 \u03c4\u03bf\u03c5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf\u03bd %num \u03b1\u03c1\u03c7\u03b5\u03af\u03b1.","Automatic alias":"\u0391\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03bf \u03c8\u03b5\u03c5\u03b4\u03ce\u03bd\u03c5\u03bc\u03bf","Remove group":"\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03bf\u03bc\u03ac\u03b4\u03b1\u03c2","Colorbox":"Colorbox","Apply (all displays)":"\u0395\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae (\u03cc\u03bb\u03b5\u03c2 \u03bf\u03b9 \u03c0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ad\u03c2)","Revert to default":"\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03c3\u03c4\u03bf \u03c0\u03c1\u03bf\u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf","Apply (this display)":"\u0395\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae (\u03b1\u03c5\u03c4\u03ae \u03b7 \u03c0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae)","Previous page":"\u03a0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1","Previous image":"\u03a0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1","Next image":"\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03b7 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1","Add files":"\u03a0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03c4\u03b5 \u03b1\u03c1\u03c7\u03b5\u03af\u03b1","Uploaded %d\/%d files":"\u039c\u03b5\u03c4\u03b1\u03c6\u03bf\u03c1\u03c4\u03c9\u03bc\u03ad\u03bd\u03b1 %d\/%d \u03b1\u03c1\u03c7\u03b5\u03af\u03b1","Drag files here.":"\u03a3\u03cd\u03c1\u03b5\u03c4\u03b5 \u03c4\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 \u03b5\u03b4\u03ce.","Start upload":"\u0388\u03bd\u03b1\u03c1\u03be\u03b7 \u03bc\u03b5\u03c4\u03b1\u03c6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7\u03c2","Show description":"\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2","One domain with multiple subdomains":"\u0388\u03bd\u03b1 \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03ce\u03c1\u03bf\u03c5 \u03bc\u03b5 \u03c0\u03bf\u03bb\u03bb\u03b1\u03c0\u03bb\u03ac \u03c5\u03c0\u03bf\u03bf\u03bd\u03cc\u03bc\u03b1\u03c4\u03b1","Multiple top-level domains":"\u03a0\u03bf\u03bb\u03bb\u03b1\u03c0\u03bb\u03ac \u03bf\u03bd\u03cc\u03bc\u03b1\u03c4\u03b1 \u03c7\u03ce\u03c1\u03bf\u03c5 \u03c0\u03c1\u03ce\u03c4\u03bf\u03c5 \u03b5\u03c0\u03b9\u03c0\u03ad\u03b4\u03bf\u03c5","Universal web tracking opt-out":"\u039a\u03b1\u03b8\u03bf\u03bb\u03b9\u03ba\u03ae \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03c7\u03c9\u03c1\u03af\u03c2 \u03c0\u03b1\u03c1\u03b1\u03ba\u03bf\u03bb\u03bf\u03cd\u03b8\u03b7\u03c3\u03b7","All pages with exceptions":"\u038c\u03bb\u03b5\u03c2 \u03bf\u03b9 \u03c3\u03b5\u03bb\u03af\u03b4\u03b5\u03c2 \u03bc\u03b5 \u03b5\u03be\u03b1\u03b9\u03c1\u03ad\u03c3\u03b5\u03b9\u03c2","Excepted: @roles":"\u0395\u03be\u03b1\u03b9\u03c1\u03ad\u03c3\u03b5\u03b9\u03c2: @roles","On by default with opt out":"\u0395\u03be\u0027 \u03bf\u03c1\u03b9\u03c3\u03bc\u03bf\u03cd \u03b5\u03bd\u03c4\u03cc\u03c2 \u03c3\u03c4\u03b7\u03bd \u03c3\u03c5\u03bc\u03c0\u03b5\u03c1\u03af\u03bb\u03b7\u03c8\u03b7 \u03c0\u03b1\u03c1\u03b1\u03ba\u03bf\u03bb\u03bf\u03cd\u03b8\u03b7\u03c3\u03b7\u03c2","Off by default with opt in":"\u0395\u03be\u0027 \u03bf\u03c1\u03b9\u03c3\u03bc\u03bf\u03cd \u03b5\u03ba\u03c4\u03cc\u03c2 \u03c3\u03c4\u03b7\u03bd \u03c3\u03c5\u03bc\u03c0\u03b5\u03c1\u03af\u03bb\u03b7\u03c8\u03b7 \u03c0\u03b1\u03c1\u03b1\u03ba\u03bf\u03bb\u03bf\u03cd\u03b8\u03b7\u03c3\u03b7\u03c2","Outbound links":"\u0395\u03be\u03b5\u03c1\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf\u03b9 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03b9","Mailto links":"\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03b9 mailto","Downloads":"\u039b\u03ae\u03c8\u03b5\u03b9\u03c2","Not tracked":"\u0394\u03b5\u03bd \u03c0\u03b1\u03c1\u03b1\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03b5\u03af\u03c4\u03b1\u03b9","@items enabled":"\u0395\u03bd\u03b5\u03c1\u03b3\u03ac @items","Site search":"\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7 \u03b9\u03c3\u03c4\u03bf\u03c4\u03cc\u03c0\u03bf\u03c5","AdSense ads":"\u0394\u03b9\u03b1\u03c6\u03b7\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 AdSense","DoubleClick data":"\u0394\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 DoubleClick","A single domain":"\u0388\u03bd\u03b1 \u03bc\u03bf\u03bd\u03b1\u03b4\u03b9\u03ba\u03cc \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03ce\u03c1\u03bf\u03c5","Anonymize IP":"\u0391\u03bd\u03c9\u03bd\u03c5\u03bc\u03af\u03b1 \u03c4\u03c9\u03bd IP","No privacy":"\u038c\u03c7\u03b9 \u03b9\u03b4\u03b9\u03c9\u03c4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1","CustomMessage: !customMessage":"\u
vendor: 9,912 bytes, lines 1-7
103a0\u03c1\u03bf\u03c3\u03b1\u03c1\u03bc\u03bf\u03c3\u03bc\u03ad\u03bd\u03bf \u03bc\u03ae\u03bd\u03c5\u03bc\u03b1: !customMessage","The response failed verification so will not be processed.":"\u0397 \u03b1\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5 \u03c4\u03b7\u03bd \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 \u03ba\u03b1\u03b9 \u03b4\u03b5\u03bd \u03b8\u03b1 \u03b3\u03af\u03bd\u03b5\u03b9 \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03c4\u03b7\u03c2.","The callback URL is not local and not trusted: !url":"\u0397 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 URL \u03b5\u03c0\u03b1\u03bd\u03ac\u03ba\u03bb\u03b7\u03c3\u03b7\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bc\u03b7 \u03c4\u03bf\u03c0\u03b9\u03ba\u03ae \u03ba\u03b1\u03b9 \u03bc\u03b7 \u03ad\u03bc\u03c0\u03b9\u03c3\u03c4\u03b7: !url"}} };; 2/*! 3 Colorbox 1.6.4 4 license: MIT 5 http://www.jacklmoore.com/colorbox 6*/ 7(function(t,e,i){function n(i,n,o){var r=e.createElement(i);return n&&(r.id=Z+n),o&&(r.style.cssText=o),t(r)}function o(){return i.innerHeight?i.innerHeight:t(i).height()}function r(e,i){i!==Object(i)&&(i={}),this.cache={},this.el=e,this.value=function(e){var n;return void 0===this.cache[e]&&(n=t(this.el).attr("data-cbox-"+e),void 0!==n?this.cache[e]=n:void 0!==i[e]?this.cache[e]=i[e]:void 0!==X[e]&&(this.cache[e]=X[e])),this.cache[e]},this.get=function(e){var i=this.value(e);return t.isFunction(i)?i.call(this.el,this):i}}function h(t){var e=W.length,i=(A+t)%e;return 0>i?e+i:i}function a(t,e){return Math.round((/%/.test(t)?("x"===e?E.width():o())/100:1)*parseInt(t,10))}function s(t,e){return t.get("photo")||t.get("photoRegex").test(e)}function l(t,e){return t.get("retinaUrl")&&i.devicePixelRatio>1?e.replace(t.get("photoRegex"),t.get("retinaSuffix")):e}function d(t){"contains"in x[0]&&!x[0].contains(t.target)&&t.target!==v[0]&&(t.stopPropagation(),x.focus())}function c(t){c.str!==t&&(x.add(v).removeClass(c.str).addClass(t),c.str=t)}function g(e){A=0,e&&e!==!1&&"nofollow"!==e?(W=t("."+te).filter(function(){var i=t.data(this,Y),n=new r(this,i);return n.get("rel")===e}),A=W.index(_.el),-1===A&&(W=W.add(_.el),A=W.length-1)):W=t(_.el)}function u(i){t(e).trigger(i),ae.triggerHandler(i)}function f(i){var o;if(!G){if(o=t(i).data(Y),_=new r(i,o),g(_.get("rel")),!U){U=$=!0,c(_.get("className")),x.css({visibility:"hidden",display:"block",opacity:""}),I=n(se,"LoadedContent","width:0; height:0; overflow:hidden; visibility:hidden"),b.css({width:"",height:""}).append(I),j=T.height()+k.height()+b.outerHeight(!0)-b.height(),D=C.width()+H.width()+b.outerWidth(!0)-b.width(),N=I.outerHeight(!0),z=I.outerWidth(!0);var h=a(_.get("initialWidth"),"x"),s=a(_.get("initialHeight"),"y"),l=_.get("maxWidth"),f=_.get("maxHeight");_.w=Math.max((l!==!1?Math.min(h,a(l,"x")):h)-z-D,0),_.h=Math.max((f!==!1?Math.min(s,a(f,"y")):s)-N-j,0),I.css({width:"",height:_.h}),J.position(),u(ee),_.get("onOpen"),O.add(F).hide(),x.focus(),_.get("trapFocus")&&e.addEventListener&&(e.addEventListener("focus",d,!0),ae.one(re,function(){e.removeEventListener("focus",d,!0)})),_.get("returnFocus")&&ae.one(re,function(){t(_.el).focus()})}var p=parseFloat(_.get("opacity"));v.css({opacity:p===p?p:"",cursor:_.get("overlayClose")?"pointer":"",visibility:"visible"}).show(),_.get("closeButton")?B.html(_.get("close")).appendTo(b):B.appendTo("<div/>"),w()}}function p(){x||(V=!1,E=t(i),x=n(se).attr({id:Y,"class":t.support.opacity===!1?Z+"IE":"",role:"dialog",tabindex:"-1"}).hide(),v=n(se,"Overlay").hide(),L=t([n(se,"LoadingOverlay")[0],n(se,"LoadingGraphic")[0]]),y=n(se,"Wrapper"),b=n(se,"Content").append(F=n(se,"Title"),R=n(se,"Current"),P=t('<button type="button"/>').attr({id:Z+"Previous"}),K=t('<button type="button"/>').attr({id:Z+"Next"}),S=t('<button type="button"/>').attr({id:Z+"Slideshow"}),L),B=t('<button type="button"/>').attr({id:Z+"Close"}),y.append(n(se).append(n(se,"TopLeft"),T=n(se,"TopCenter"),n(se,"TopRight")),n(se,!1,"clear:left").append(C=n(se,"MiddleLeft"),b,H=n(se,"MiddleRight")),n(se,!1,"clear:left").append(n(se,"BottomLeft"),k=n(se,"BottomCenter"),n(se,"BottomRight"))).find("div div").css({"float":"left"}),M=n(se,!1,"position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;"),O=K.add(P).add(R).add(S)),e.body&&!x.parent().length&&t(e.body).append(v,x.append(y,M))}function m(){function i(t){t.which>1||t.shiftKey||t.altKey||t.metaKey||t.ctrlKey||(t.preventDefault(),f(this))}return x?(V||(V=!0,K.click(function(){J.next()}),P.click(function(){J.prev()}),B.click(function(){J.close()}),v.click(function(){_.get("overlayClose")&&J.close()}),t(e).bind("keydown."+Z,function(t){var e=t.keyCode;U&&_.get("escKey")&&27===e&&(t.preventDefault(),J.close()),U&&_.get("arrowKey")&&W[1]&&!t.altKey&&(37===e?(t.preventDefault(),P.click()):39===e&&(t.preventDefault(),K.click()))}),t.isFunction(t.fn.on)?t(e).on("click."+Z,"."+te,i):t("."+te).live("click."+Z,i)),!0):!1}function w(){var e,o,r,h=J.prep,d=++le;if($=!0,q=!1,u(he),u(ie),_.get("onLoad"),_.h=_.get("height")?a(_.get("height"),"y")-N-j:_.get("innerHeight")&&a(_.get("innerHeight"),"y"),_.w=_.get("width")?a(_.get("width"),"x")-z-D:_.get("innerWidth")&&a(_.get("innerWidth"),"x"),_.mw=_.w,_.mh=_.h,_.get("maxWidth")&&(_.mw=a(_.get("maxWidth"),"x")-z-D,_.mw=_.w&&_.w<_.mw?_.w:_.mw),_.get("maxHeight")&&(_.mh=a(_.get("maxHeight"),"y")-N-j,_.mh=_.h&&_.h<_.mh?_.h:_.mh),e=_.get("href"),Q=setTimeout(function(){L.show()},100),_.get("inline")){var c=t(e).eq(0);r=t("<div>").hide().insertBefore(c),ae.one(he,function(){r.replaceWith(c)}),h(c)}else _.get("iframe")?h(" "):_.get("html")?h(_.get("html")):s(_,e)?(e=l(_,e),q=_.get("createImg"),t(q).addClass(Z+"Photo").bind("error."+Z,function(){h(n(se,"Error").html(_.get("imgError")))}).one("load",function(){d===le&&setTimeout(function(){var e;_.get("retinaImage")&&i.devicePixelRatio>1&&(q.height=q.height/i.devicePixelRatio,q.width=q.width/i.devicePixelRatio),_.get("scalePhotos")&&(o=function(){q.height-=q.height*e,q.width-=q.width*e},_.mw&&q.width>_.mw&&(e=(q.width-_.mw)/q.width,o()),_.mh&&q.height>_.mh&&(e=(q.height-_.mh)/q.height,o())),_.h&&(q.style.marginTop=Math.max(_.mh-q.height,0)/2+"px"),W[1]&&(_.get("loop")||W[A+1])&&(q.style.cursor="pointer",t(q).bind("click."+Z,function(){J.next()})),q.style.width=q.width+"px",q.style.height=q.height+"px",h(q)},1)}),q.src=e):e&&M.load(e,_.get("data"),function(e,i){d===le&&h("error"===i?n(se,"Error").html(_.get("xhrError")):t(this).contents())})}var v,x,y,b,T,C,H,k,W,E,I,M,L,F,R,S,K,P,B,O,_,j,D,N,z,A,q,U,$,G,Q,J,V,X={html:!1,photo:!1,iframe:!1,inline:!1,transition:"elastic",speed:300,fadeOut:300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,initialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,opacity:.9,preloading:!0,className:!1,overlayClose:!0,escKey:!0,arrowKey:!0,top:!1,bottom:!1,left:!1,right:!1,fixed:!1,data:void 0,closeButton:!0,fastIframe:!0,open:!1,reposition:!0,loop:!0,slideshow:!1,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",photoRegex:/\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,retinaImage:!1,retinaUrl:!1,retinaSuffix:"@2x.$1",current:"image {current} of {total}",previous:"previous",next:"next",close:"close",xhrError:"This content failed to load.",imgError:"This image failed to load.",returnFocus:!0,trapFocus:!0,onOpen:!1,onLoad:!1,onComplete:!1,onCleanup:!1,onClosed:!1,rel:function(){return this.rel},href:function(){return t(this).attr("href")},title:function(){return this.title},createImg:function(){var e=new Image,i=t(this).data("cbox-img-attrs");return"object"==typeof i&&t.each(i,function(t,i){e[t]=i}),e},createIframe:function(){var i=e.createElement("iframe"),n=t(this).data("cbox-iframe-attrs");return"object"==typeof n&&t.each(n,function(t,e){i[t]=e}),"frameBorder"in i&&(i.frameBorder=0),"allowTransparency"in i&&(i.allowTransparency="true"),i.name=(new Date).getTime(),i.allowFullscreen=!0,i}},Y="colorbox",Z="cbox",te=Z+"Element",ee=Z+"_open",ie=Z+"_load",ne=Z+"_complete",oe=Z+"_cleanup",re=Z+"_closed",he=Z+"_purge",ae=t("<a/>"),se="div",le=0,de={},ce=function(){function t(){clearTimeout(h)}function e(){(_.get("loop")||W[A+1])&&(t(),h=setTimeout(J.next,_.get("slideshowSpeed")))}function i(){S.html(_.get("slideshowStop")).unbind(s).one(s,n),ae.bind(ne,e).bind(ie,t),x.removeClass(a+"off").addClass(a+"on")}function n(){t(),ae.unbind(ne,e).unbind(ie,t),S.html(_.get("slideshowStart")).unbind(s).one(s,function(){J.next(),i()}),x.removeClass(a+"on").addClass(a+"off")}function o(){r=!1,S.hide(),t(),ae.unbind(ne,e).unbind(ie,t),x.removeClass(a+"off "+a+"on")}var r,h,a=Z+"Slideshow_",s="click."+Z;return function(){r?_.get("slideshow")||(ae.unbind(oe,o),o()):_.get("slideshow")&&W[1]&&(r=!0,ae.one(oe,o),_.get("slideshowAuto")?i():n(),S.show())}}();t[Y]||(t(p),J=t.fn[Y]=t[Y]=function(e,i){var n,o=this;return e=e||{},t.isFunction(o)&&(o=t("<a/>"),e.open=!0),o[0]?(p(),m()&&(i&&(e.onComplete=i),o.each(function(){var i=t.data(this,Y)||{};t.data(this,Y,t.extend(i,e))}).addClass(te),n=new r(o[0],e),n.get("open")&&f(o[0])),o):o},J.position=function(e,i){function n(){T[0].style.width=k[0].style.width=b[0].style.width=parseInt(x[0].style.width,10)-D+"px",b[0].style.height=C[0].style.height=H[0].style.height=parseInt(x[0].style.height,10)-j+"px"}var r,h,s,l=0,d=0,c=x.offset();if(E.unbind("resize."+Z),x.css({top:-9e4,left:-9e4}),h=E.scrollTop(),s=E.scrollLeft(),_.get("fixed")?(c.top-=h,c.left-=s,x.css({position:"fixed"})):(l=h,d=s,x.css({position:"absolute"})),d+=_.get("right")!==!1?Math.max(E.width()-_.w-z-D-a(_.get("right"),"x"),0):_.get("left")!==!1?a(_.get("left"),"x"):Math.round(Math.max(E.width()-_.w-z-D,0)/2),l+=_.get("bottom")!==!1?Math.max(o()-_.h-N-j-a(_.get("bottom"),"y"),0):_.get("top")!==!1?a(_.get("top"),"y"):Math.round(Math.max(o()-_.h-N-j,0)/2),x.css({top:c.top,left
7:c.left,visibility:"visible"}),y[0].style.width=y[0].style.height="9999px",r={width:_.w+z+D,height:_.h+N+j,top:l,left:d},e){var g=0;t.each(r,function(t){return r[t]!==de[t]?(g=e,void 0):void 0}),e=g}de=r,e||x.css(r),x.dequeue().animate(r,{duration:e||0,complete:function(){n(),$=!1,y[0].style.width=_.w+z+D+"px",y[0].style.height=_.h+N+j+"px",_.get("reposition")&&setTimeout(function(){E.bind("resize."+Z,J.position)},1),t.isFunction(i)&&i()},step:n})},J.resize=function(t){var e;U&&(t=t||{},t.width&&(_.w=a(t.width,"x")-z-D),t.innerWidth&&(_.w=a(t.innerWidth,"x")),I.css({width:_.w}),t.height&&(_.h=a(t.height,"y")-N-j),t.innerHeight&&(_.h=a(t.innerHeight,"y")),t.innerHeight||t.height||(e=I.scrollTop(),I.css({height:"auto"}),_.h=I.height()),I.css({height:_.h}),e&&I.scrollTop(e),J.position("none"===_.get("transition")?0:_.get("speed")))},J.prep=function(i){function o(){return _.w=_.w||I.width(),_.w=_.mw&&_.mw<_.w?_.mw:_.w,_.w}function a(){return _.h=_.h||I.height(),_.h=_.mh&&_.mh<_.h?_.mh:_.h,_.h}if(U){var d,g="none"===_.get("transition")?0:_.get("speed");I.remove(),I=n(se,"LoadedContent").append(i),I.hide().appendTo(M.show()).css({width:o(),overflow:_.get("scrolling")?"auto":"hidden"}).css({height:a()}).prependTo(b),M.hide(),t(q).css({"float":"none"}),c(_.get("className")),d=function(){function i(){t.support.opacity===!1&&x[0].style.removeAttribute("filter")}var n,o,a=W.length;U&&(o=function(){clearTimeout(Q),L.hide(),u(ne),_.get("onComplete")},F.html(_.get("title")).show(),I.show(),a>1?("string"==typeof _.get("current")&&R.html(_.get("current").replace("{current}",A+1).replace("{total}",a)).show(),K[_.get("loop")||a-1>A?"show":"hide"]().html(_.get("next")),P[_.get("loop")||A?"show":"hide"]().html(_.get("previous")),ce(),_.get("preloading")&&t.each([h(-1),h(1)],function(){var i,n=W[this],o=new r(n,t.data(n,Y)),h=o.get("href");h&&s(o,h)&&(h=l(o,h),i=e.createElement("img"),i.src=h)})):O.hide(),_.get("iframe")?(n=_.get("createIframe"),_.get("scrolling")||(n.scrolling="no"),t(n).attr({src:_.get("href"),"class":Z+"Iframe"}).one("load",o).appendTo(I),ae.one(he,function(){n.src="//about:blank"}),_.get("fastIframe")&&t(n).trigger("load")):o(),"fade"===_.get("transition")?x.fadeTo(g,1,i):i())},"fade"===_.get("transition")?x.fadeTo(g,0,function(){J.position(0,d)}):J.position(g,d)}},J.next=function(){!$&&W[1]&&(_.get("loop")||W[A+1])&&(A=h(1),f(W[A]))},J.prev=function(){!$&&W[1]&&(_.get("loop")||A)&&(A=h(-1),f(W[A]))},J.close=function(){U&&!G&&(G=!0,U=!1,u(oe),_.get("onCleanup"),E.unbind("."+Z),v.fadeTo(_.get("fadeOut")||0,0),x.stop().fadeTo(_.get("fadeOut")||0,0,function(){x.hide(),v.hide(),u(he),I.remove(),setTimeout(function(){G=!1,u(re),_.get("onClosed")},1)}))},J.remove=function(){x&&(x.stop(),t[Y].close(),x.stop(!1,!0).remove(),v.remove(),G=!1,x=null,t("."+te).removeData(Y).removeClass(te),t(e).unbind("click."+Z).unbind("keydown."+Z))},J.element=function(){return t(_.el)},J.settings=X)})(jQuery,document,window);; 8/** 9 * @file 10 * Colorbox module init js. 11 */ 12 13(function ($) { 14 15Drupal.behaviors.initColorbox = { 16 attach: function (context, settings) { 17 if (!$.isFunction($('a, area, input', context).colorbox) || typeof settings.colorbox === 'undefined') { 18 return; 19 } 20 21 if (settings.colorbox.mobiledetect && window.matchMedia) { 22 // Disable Colorbox for small screens. 23 var mq = window.matchMedia("(max-device-width: " + settings.colorbox.mobiledevicewidth + ")"); 24 if (mq.matches) { 25 return; 26 } 27 } 28 29 // Use "data-colorbox-gallery" if set otherwise use "rel". 30 settings.colorbox.rel = function () { 31 if ($(this).data('colorbox-gallery')) { 32 return $(this).data('colorbox-gallery'); 33 } 34 else { 35 return $(this).attr('rel'); 36 } 37 }; 38 39 $('.colorbox', context) 40 .once('init-colorbox').each(function(){ 41 // Only images are supported for the "colorbox" class. 42 // The "photo" setting forces the href attribute to be treated as an image. 43 var extendParams = { 44 photo: true 45 }; 46 // If a title attribute is supplied, sanitize it. 47 var title = $(this).attr('title'); 48 if (title) { 49 extendParams.title = Drupal.colorbox.sanitizeMarkup(title); 50 } 51 $(this).colorbox($.extend({}, settings.colorbox, extendParams)); 52 }); 53 54 $(context).bind('cbox_complete', function () { 55 Drupal.attachBehaviors('#cboxLoadedContent'); 56 }); 57 } 58}; 59 60// Create colorbox namespace if it doesn't exist. 61if (!Drupal.hasOwnProperty('colorbox')) { 62 Drupal.colorbox = {}; 63} 64 65/** 66 * Global function to allow sanitizing captions and control strings. 67 * 68 * @param markup 69 * String containing potential markup. 70 * @return @string 71 * Sanitized string with potentially dangerous markup removed. 72 */ 73Drupal.colorbox.sanitizeMarkup = function(markup) { 74 // If DOMPurify installed, allow some HTML. Otherwise, treat as plain text. 75 if (typeof DOMPurify !== 'undefined') { 76 var purifyConfig = { 77 ALLOWED_TAGS: [ 78 'a', 79 'b', 80 'strong', 81 'i', 82 'em', 83 'u', 84 'cite', 85 'code', 86 'br' 87 ], 88 ALLOWED_ATTR: [ 89 'href', 90 'hreflang', 91 'title', 92 'target' 93 ] 94 } 95 if (Drupal.settings.hasOwnProperty('dompurify_custom_config')) { 96 purifyConfig = Drupal.settings.dompurify_custom_config; 97 } 98 return DOMPurify.sanitize(markup, purifyConfig); 99 } 100 else { 101 return Drupal.checkPlain(markup); 102 } 103} 104 105})(jQuery); 106; 107/** 108 * @file 109 * Colorbox module load js. 110 */ 111(function ($) { 112 113Drupal.behaviors.initColorboxLoad = { 114 attach: function (context, settings) { 115 if (!$.isFunction($.colorbox) || typeof settings.colorbox === 'undefined') { 116 return; 117 } 118 119 if (settings.colorbox.mobiledetect && window.matchMedia) { 120 // Disable Colorbox for small screens. 121 var mq = window.matchMedia("(max-device-width: " + settings.colorbox.mobiledevicewidth + ")"); 122 if (mq.matches) { 123 return; 124 } 125 } 126
127 $.urlParams = function (url) { 128 var p = {}, 129 e, 130 a = /\+/g, // Regex for replacing addition symbol with a space. 131 r = /([^&=]+)=?([^&]*)/g, 132 d = function (s) { return decodeURIComponent(s.replace(a, ' ')); }, 133 q = url.split('?'); 134 while (e = r.exec(q[1])) { 135 e[1] = d(e[1]); 136 e[2] = d(e[2]); 137 switch (e[2].toLowerCase()) { 138 case 'true': 139 case 'yes': 140 e[2] = true; 141 break; 142 case 'false': 143 case 'no': 144 e[2] = false; 145 break; 146 } 147 if (e[1] == 'width') { e[1] = 'innerWidth'; } 148 if (e[1] == 'height') { e[1] = 'innerHeight'; } 149 if (e[2]) { 150 e[2] = Drupal.checkPlain(e[2]); 151 } 152 p[e[1]] = e[2]; 153 } 154 return p; 155 }; 156 157 $('.colorbox-load', context) 158 .once('init-colorbox-load', function () { 159 var href = $(this).attr('href'); 160 161 var params = $.urlParams(href); 162 163 // Always load in an iframe. 164 params.iframe = true; 165 166 // Set inner width and height if not already specified. 167 if (!params.hasOwnProperty('innerWidth')) { 168 params.innerWidth = $(window).width() * .8; 169 } 170 if (!params.hasOwnProperty('innerHeight')) { 171 params.innerHeight = $(window).height() * .8; 172 } 173 174 if (!params.hasOwnProperty('title')) { 175 // If a title attribute is supplied, sanitize it. 176 var title = $(this).attr('title'); 177 if (title) { 178 params.title = Drupal.colorbox.sanitizeMarkup(title); 179 } 180 } 181 $(this).colorbox($.extend({}, settings.colorbox, params)); 182 }); 183 } 184}; 185 186})(jQuery); 187; 188/** 189 * @file 190 * Colorbox module inline js. 191 */ 192 193(function ($) { 194 195Drupal.behaviors.initColorboxInline = { 196 attach: function (context, settings) { 197 if (!$.isFunction($.colorbox) || typeof settings.colorbox === 'undefined') { 198 return; 199 } 200 201 if (settings.colorbox.mobiledetect && window.matchMedia) { 202 // Disable Colorbox for small screens. 203 var mq = window.matchMedia("(max-device-width: " + settings.colorbox.mobiledevicewidth + ")"); 204 if (mq.matches) { 205 return; 206 } 207 } 208 209 $.urlParam = function(name, url){ 210 if (name == 'fragment') { 211 var results = new RegExp('(#[^&#]*)').exec(url); 212 } 213 else { 214 var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(url); 215 } 216 if (!results) { return ''; } 217 return results[1] || ''; 218 }; 219 $('.colorbox-inline', context).once('init-colorbox-inline').colorbox({ 220 transition:settings.colorbox.transition, 221 speed:settings.colorbox.speed, 222 opacity:settings.colorbox.opacity, 223 slideshow:settings.colorbox.slideshow, 224 slideshowAuto:settings.colorbox.slideshowAuto, 225 slideshowSpeed:settings.colorbox.slideshowSpeed, 226 slideshowStart:settings.colorbox.slideshowStart, 227 slideshowStop:settings.colorbox.slideshowStop, 228 current:settings.colorbox.current, 229 previous:settings.colorbox.previous, 230 next:settings.colorbox.next, 231 close:settings.colorbox.close, 232 overlayClose:settings.colorbox.overlayClose, 233 maxWidth:settings.colorbox.maxWidth, 234 maxHeight:settings.colorbox.maxHeight, 235 innerWidth:function(){ 236 return $.urlParam('width', $(this).attr('href')); 237 }, 238 innerHeight:function(){ 239 return $.urlParam('height', $(this).attr('href')); 240 }, 241 title:function(){ 242 return Drupal.colorbox.sanitizeMarkup( 243 decodeURIComponent($.urlParam('title', $(this).attr('href')))); 244 }, 245 iframe:function(){ 246 return $.urlParam('iframe', $(this).attr('href')); 247 }, 248 inline:function(){ 249 return $.urlParam('inline', $(this).attr('href')); 250 }, 251 href:function(){ 252 return $.urlParam('fragment', $(this).attr('href')); 253 } 254 }); 255 } 256}; 257 258})(jQuery); 259; 260/**� 261* hoverIntent r6 // 2011.02.26 // jQuery 1.5.1+� 262* <http://cherne.net/brian/resources/jquery.hoverIntent.html>� 263* � 264* @param f onMouseOver function || An object with configuration options� 265* @param g onMouseOut function || Nothing (use configuration options object)� 266* @author Brian Cherne brian(at)cherne(dot)net� 267*/� 268(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev])}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev])};var handleHover=function(e){var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t)}if(e.type=="mouseenter"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob)},cfg.timeout)}}};return this.bind('mouseenter',handleHover).bind('mouseleave',handleHover)}})(jQuery);; 269/* Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)� 270 * Licensed under the MIT License (LICENSE.txt).� 271 *� 272 * Version 2.1.2� 273 */� 274(function(a){a.fn.bgiframe=(a.browser.msie&&/msie 6\.0/i.test(navigator.userAgent)?function(d){d=a.extend({top:"auto",left:"auto",width:"auto",height:"auto",opacity:true,src:"javascript:false;"},d);var c='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+d.src+'"style="display:block;position:absolute;z-index:-1;'+(d.opacity!==false?"filter:Alpha(Opacity='0');":"")+"top:"+(d.top=="auto"?"expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+'px')":b(d.top))+";left:"+(d.left=="auto"?"expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+'px')":b(d.left))+";width:"+(d.width=="auto"?"expression(this.parentNode.offsetWidth+'px')":b(d.width))+";height:"+(d.height=="auto"?"expression(this.parentNode.offsetHeight+'px')":b(d.height))+';"/>';return this.each(function(){if(a(this).children("iframe.bgiframe").length===0){this.insertBefore(document.createElement(c),this.firstChild)}})}:function(){return this});a.fn.bgIframe=a.fn.bgiframe;function b(c){return c&&c.constructor===Number?c+"px":c}})(jQuery);; 275/* 276 * Superfish v1.4.8 - jQuery menu widget 277 * Copyright (c) 2008 Joel Birch 278 * 279 * Dual licensed under the MIT and GPL licenses: 280 * http://www.opensource.org/licenses/mit-license.php 281 * http://www.gnu.org/licenses/gpl.html 282 * 283 * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt 284 */ 285 286(function($){ 287 $.fn.superfish = function(op){ 288 var sf = $.fn.superfish, 289 c = sf.c, 290 $arrow = $(['<span class="',c.arrowClass,'"> »</span>'].join('')), 291 over = function(){ 292 var $$ = $(this), menu = getMenu($$); 293 clearTimeout(menu.sfTimer); 294 $$.showSuperfishUl().siblings().hideSuperfishUl(); 295 }, 296 out = function(){ 297 var $$ = $(this), menu = getMenu($$), o = sf.op; 298 clearTimeout(menu.sfTimer); 299 menu.sfTimer=setTimeout(function(){ 300 o.retainPath=($.inArray($$[0],o.$path)>-1);
301 $$.hideSuperfishUl(); 302 if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);} 303 },o.delay); 304 }, 305 getMenu = function($menu){ 306 var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0]; 307 sf.op = sf.o[menu.serial]; 308 return menu; 309 }, 310 addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); }; 311 312 return this.each(function() { 313 var s = this.serial = sf.o.length; 314 var o = $.extend({},sf.defaults,op); 315 o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){ 316 $(this).addClass([o.hoverClass,c.bcClass].join(' ')) 317 .filter('li:has(ul)').removeClass(o.pathClass); 318 }); 319 sf.o[s] = sf.op = o; 320 321 $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() { 322 if (o.autoArrows) addArrow( $('>a:first-child',this) ); 323 }) 324 .not('.'+c.bcClass) 325 .hideSuperfishUl(); 326 327 var $a = $('a',this); 328 $a.each(function(i){ 329 var $li = $a.eq(i).parents('li'); 330 $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);}); 331 }); 332 o.onInit.call(this); 333 334 }).each(function() { 335 var menuClasses = [c.menuClass]; 336 if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass); 337 $(this).addClass(menuClasses.join(' ')); 338 }); 339 }; 340 341 var sf = $.fn.superfish; 342 sf.o = []; 343 sf.op = {}; 344 sf.IE7fix = function(){ 345 var o = sf.op; 346 if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined) 347 this.toggleClass(sf.c.shadowClass+'-off'); 348 }; 349 sf.c = { 350 bcClass: 'sf-breadcrumb', 351 menuClass: 'sf-js-enabled', 352 anchorClass: 'sf-with-ul', 353 arrowClass: 'sf-sub-indicator', 354 shadowClass: 'sf-shadow' 355 }; 356 sf.defaults = { 357 hoverClass: 'sfHover', 358 pathClass: 'overideThisToUse', 359 pathLevels: 1, 360 delay: 800, 361 animation: {opacity:'show'}, 362 speed: 'normal', 363 autoArrows: true, 364 dropShadows: true, 365 disableHI: false, // true disables hoverIntent detection 366 onInit: function(){}, // callback functions 367 onBeforeShow: function(){}, 368 onShow: function(){}, 369 onHide: function(){} 370 }; 371 $.fn.extend({ 372 hideSuperfishUl : function(){ 373 var o = sf.op, 374 not = (o.retainPath===true) ? o.$path : ''; 375 o.retainPath = false; 376 var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass) 377 .find('>ul').hide().css('visibility','hidden'); 378 o.onHide.call($ul); 379 return this; 380 }, 381 showSuperfishUl : function(){ 382 var o = sf.op, 383 sh = sf.c.shadowClass+'-off', 384 $ul = this.addClass(o.hoverClass) 385 .find('>ul:hidden').css('visibility','visible'); 386 sf.IE7fix.call($ul); 387 o.onBeforeShow.call($ul); 388 $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); }); 389 return this; 390 } 391 }); 392})(jQuery);; 393/* 394 * Supersubs v0.2b - jQuery plugin - LAST UPDATE: MARCH 23rd, 2011 395 * Copyright (c) 2008 Joel Birch 396 * 397 * Jan 16th, 2011 - Modified a little in order to work with NavBar menus as well. 398 * 399 * Dual licensed under the MIT and GPL licenses: 400 * http://www.opensource.org/licenses/mit-license.php 401 * http://www.gnu.org/licenses/gpl.html 402 * 403 * This plugin automatically adjusts submenu widths of suckerfish-style menus to that of 404 * their longest list item children. If you use this, please expect bugs and report them 405 * to the jQuery Google Group with the word 'Superfish' in the subject line. 406 * 407 */ 408 409(function($){ // $ will refer to jQuery within this closure 410 411 $.fn.supersubs = function(options){ 412 var opts = $.extend({}, $.fn.supersubs.defaults, options); 413 // return original object to support chaining 414 return this.each(function() { 415 // cache selections 416 var $$ = $(this); 417 // support metadata 418 var o = $.meta ? $.extend({}, opts, $$.data()) : opts; 419 // get the font size of menu. 420 // .css('fontSize') returns various results cross-browser, so measure an em dash instead 421 var fontsize = $('<li id="menu-fontsize">—</li>').css({ 422 'padding' : 0, 423 'position' : 'absolute', 424 'top' : '-99999em', 425 'width' : 'auto' 426 }).appendTo($$).width(); //clientWidth is faster, but was incorrect here 427 // remove em dash 428 $('#menu-fontsize').remove(); 429 430 // Jump on level if it's a "NavBar" 431 if ($$.hasClass('sf-navbar')) { 432 $$ = $('li > ul', $$); 433 } 434 // cache all ul elements
435 $ULs = $$.find('ul:not(.sf-megamenu)'); 436 // loop through each ul in menu 437 $ULs.each(function(i) { 438 // cache this ul 439 var $ul = $ULs.eq(i); 440 // get all (li) children of this ul 441 var $LIs = $ul.children(); 442 // get all anchor grand-children 443 var $As = $LIs.children('a'); 444 // force content to one line and save current float property 445 var liFloat = $LIs.css('white-space','nowrap').css('float'); 446 // remove width restrictions and floats so elements remain vertically stacked 447 var emWidth = $ul.add($LIs).add($As).css({ 448 'float' : 'none', 449 'width' : 'auto' 450 }) 451 // this ul will now be shrink-wrapped to longest li due to position:absolute 452 // so save its width as ems. Clientwidth is 2 times faster than .width() - thanks Dan Switzer 453 .end().end()[0].clientWidth / fontsize; 454 // add more width to ensure lines don't turn over at certain sizes in various browsers 455 emWidth += o.extraWidth; 456 // restrict to at least minWidth and at most maxWidth 457 if (emWidth > o.maxWidth) { emWidth = o.maxWidth; } 458 else if (emWidth < o.minWidth) { emWidth = o.minWidth; } 459 emWidth += 'em'; 460 // set ul to width in ems 461 $ul.css('width',emWidth); 462 // restore li floats to avoid IE bugs 463 // set li width to full width of this ul 464 // revert white-space to normal 465 $LIs.css({ 466 'float' : liFloat, 467 'width' : '100%', 468 'white-space' : 'normal' 469 }) 470 // update offset position of descendant ul to reflect new width of parent 471 .each(function(){ 472 var $childUl = $('>ul',this); 473 var offsetDirection = $childUl.css('left')!==undefined ? 'left' : 'right'; 474 $childUl.css(offsetDirection,emWidth); 475 }); 476 }); 477 478 }); 479 }; 480 // expose defaults 481 $.fn.supersubs.defaults = { 482 minWidth: 9, // requires em unit. 483 maxWidth: 25, // requires em unit. 484 extraWidth: 0 // extra width can ensure lines don't sometimes turn over due to slight browser differences in how they round-off values 485 }; 486 487})(jQuery); // plugin code ends; 488/* 489* Supposition v0.2 - an optional enhancer for Superfish jQuery menu widget - LAST UPDATE: MARCH 23rd, 2011 490* 491* Copyright (c) 2008 Joel Birch - based mostly on work by Jesse Klaasse and credit goes largely to him. 492* Special thanks to Karl Swedberg for valuable input. 493* 494* Dec 28th, 2010 - Modified for the Superfish project for Drupal (http://drupal.org/project/superfish) 495* 496* jQuery version: 1.3.x or higher. 497* 498* Dual licensed under the MIT and GPL licenses: 499* http://www.opensource.org/licenses/mit-license.php 500* http://www.gnu.org/licenses/gpl.html 501*/ 502 503(function($){ 504 $.fn.supposition = function(){ 505 var $w = $(window), /*do this once instead of every onBeforeShow call*/ 506 _offset = function(dir) { 507 return window[dir == 'y' ? 'pageYOffset' : 'pageXOffset'] 508 || document.documentElement && document.documentElement[dir=='y' ? 'scrollTop' : 'scrollLeft'] 509 || document.body[dir=='y' ? 'scrollTop' : 'scrollLeft']; 510 }, 511 onHide = function(){ 512 this.css({Top:'',Right:'',Bottom:'',Left:''}); 513 }, 514 onBeforeShow = function(){ 515 this.each(function(){ 516 var $u = $(this); 517 $u.css('display','block'); 518 var menuWidth = $u.width(), 519 menuParentWidth = $u.closest('li').outerWidth(true), 520 menuParentLeft = $u.closest('li').offset().left, 521 totalRight = $w.width() + _offset('x'), 522 menuRight = $u.offset().left + menuWidth, 523 exactMenuWidth = (menuRight > (menuParentWidth + menuParentLeft)) ? menuWidth - (menuRight - (menuParentWidth + menuParentLeft)) : menuWidth; 524 if ($u.parents('.sf-js-enabled').hasClass('rtl')) { 525 if (menuParentLeft < exactMenuWidth) { 526 $u.css('left', menuParentWidth + 'px'); 527 $u.css('right', 'auto'); 528 } 529 } 530 else { 531 if (menuRight > totalRight && menuParentLeft > menuWidth) { 532 $u.css('right', menuParentWidth + 'px'); 533 $u.css('left', 'auto'); 534 } 535 } 536 var windowHeight = $w.height(), 537 offsetTop = $u.offset().top, 538 menuParentHeight = $u.parent().outerHeight(true), 539 menuHeight = $u.height(), 540 baseline = windowHeight + _offset('y'); 541 var expandUp = ((offsetTop + menuHeight > baseline) && (offsetTop > menuHeight)); 542 if (expandUp) { 543 $u.css('bottom', menuParentHeight + 'px'); 544 $u.css('top', 'auto'); 545 } 546 $u.css('display','none'); 547 }); 548 }; 549 550 return this.each(function() { 551 var o = $.fn.superfish.o[this.serial]; /* get this menu's options */ 552 553 /* if callbacks already set, store them */ 554 var _onBeforeShow = o.onBeforeShow, 555 _onHide = o.onHide; 556 557 $.extend($.fn.superfish.o[this.serial],{ 558 onBeforeShow: function() { 559 onBeforeShow.call(this); /* fire our Supposition callback */ 560 _onBeforeShow.call(this); /* fire stored callbacks */ 561 }, 562 onHide: function() { 563 onHide.call(this); /* fire our Supposition callback */ 564 _onHide.call(this); /* fire stored callbacks */ 565 } 566 });
567 }); 568 }; 569})(jQuery);; 570/*� 571 * sf-Touchscreen v1.0b - Provides touchscreen compatibility for the jQuery Superfish plugin. - LAST UPDATE: MARCH 23rd, 2011� 572 *� 573 * Developer's notes:� 574 * Built as a part of the Superfish project for Drupal (http://drupal.org/project/superfish) � 575 * Found any bug? have any cool ideas? contact me right away! http://drupal.org/user/619294/contact� 576 *� 577 * jQuery version: 1.3.x or higher.� 578 *� 579 * Dual licensed under the MIT and GPL licenses:� 580 * http://www.opensource.org/licenses/mit-license.php� 581 * http://www.gnu.org/licenses/gpl.html� 582*/� 583� 584(function($){� 585 $.fn.sftouchscreen = function() {� 586 // Return original object to support chaining.� 587 return this.each( function() {� 588 // Select hyperlinks from parent menu items.� 589 $(this).find('li > ul').closest('li').children('a').each( function() {� 590 var $item = $(this);� 591 // No .toggle() here as it's not possible to reset it.� 592 $item.click( function(event){� 593 // Already clicked? proceed to the URI.� 594 if ($item.hasClass('sf-clicked')) {� 595 var $uri = $item.attr('href');� 596 window.location = $uri;� 597 }� 598 else {� 599 event.preventDefault();� 600 $item.addClass('sf-clicked');� 601 }� 602 }).closest('li').mouseleave( function(){� 603 // So, we reset everything.� 604 $item.removeClass('sf-clicked');� 605 });� 606 });� 607 });� 608 };� 609})(jQuery);; 610(function($) { 611 Drupal.behaviors.custom_search = { 612 attach: function(context) { 613 614 if (!Drupal.settings.custom_search.solr) { 615 // Check if the search box is not empty on submit 616 $('form.search-form', context).submit(function(){ 617 var $this = $(this); 618 var box = $this.find('input.custom-search-box'); 619 if (box.val() != undefined && box.val() == '') { 620 $this.find('input.custom-search-box').addClass('error'); 621 return false; 622 } 623 // If basic search is hidden, copy or value to the keys 624 if ($this.find('#edit-keys').parents('div.element-invisible').attr('class') == 'element-invisible') { 625 $this.find('#edit-keys').val($this.find('#edit-or').val()); 626 $this.find('#edit-or').val(''); 627 } 628 return true; 629 }); 630 } 631 632 // Search from target 633 $('form.search-form').attr('target', Drupal.settings.custom_search.form_target); 634 635 // Displays Popup. 636 $('form.search-form input.custom-search-box', context).bind('click focus', function(e){ 637 var $parentForm = $(this).parents('form'); 638 // check if there's something in the popup and displays it 639 var popup = $parentForm.find('fieldset.custom_search-popup'); 640 if (popup.find('input,select').length && !popup.hasClass('opened')) { 641 popup.fadeIn().addClass('opened'); 642 } 643 e.stopPropagation(); 644 }); 645 $(document).bind('click focus', function(){ 646 $('fieldset.custom_search-popup').hide().removeClass('opened'); 647 }); 648 649 // Handle checkboxes 650 $('.custom-search-selector input:checkbox', context).each(function(){ 651 var el = $(this); 652 if (el.val() == 'c-all') { 653 el.change(function(){ 654 $(this).parents('.custom-search-selector').find('input:checkbox[value!=c-all]').attr('checked', false); 655 }); 656 } 657 else { 658 if (el.val().substr(0,2) == 'c-') { 659 el.change(function(){ 660 $('.custom-search-selector input:checkbox').each(function(){ 661 if ($(this).val().substr(0,2) == 'o-') { 662 $(this).attr('checked', false); 663 } 664 }); 665 $(this).parents('.custom-search-selector').find('input:checkbox[value=c-all]').attr('checked', false); 666 }); 667 } else { 668 el.change(function(){ 669 $(this).parents('.custom-search-selector').find('input:checkbox[value!=' + el.val() + ']').attr('checked', false); 670 }); 671 } 672 } 673 }); 674 675 // Handle popup. 676 var popup = $('fieldset.custom_search-popup:not(.custom_search-processed)', context).addClass("custom_search-processed"); 677 popup.click(function(e){ 678 e.stopPropagation(); 679 }) 680 popup.append('<a class="custom_search-popup-close" href="#">
680' + Drupal.t('Close') + '</a>'); 681 $('a.custom_search-popup-close').click(function(e){ 682 $('fieldset.custom_search-popup.opened').hide().removeClass('opened'); 683 e.preventDefault(); 684 }); 685 686 } 687 } 688})(jQuery); 689; 690/* 691 * jQuery Cycle Plugin (with Transition Definitions) 692 * Examples and documentation at: http://jquery.malsup.com/cycle/ 693 * Copyright (c) 2007-2010 M. Alsup 694 * Version: 2.94 (20-DEC-2010) 695 * Dual licensed under the MIT and GPL licenses. 696 * http://jquery.malsup.com/license.html 697 * Requires: jQuery v1.2.6 or later 698 */ 699(function($){var ver="2.94";if($.support==undefined){$.support={opacity:!($.browser.msie)};}function debug(s){if($.fn.cycle.debug){log(s);}}function log(){if(window.console&&window.console.log){window.console.log("[cycle] "+Array.prototype.join.call(arguments," "));}}$.fn.cycle=function(options,arg2){var o={s:this.selector,c:this.context};if(this.length===0&&options!="stop"){if(!$.isReady&&o.s){log("DOM not ready, queuing slideshow");$(function(){$(o.s,o.c).cycle(options,arg2);});return this;}log("terminating; zero elements found by selector"+($.isReady?"":" (DOM not ready)"));return this;}return this.each(function(){var opts=handleArguments(this,options,arg2);if(opts===false){return;}opts.updateActivePagerLink=opts.updateActivePagerLink||$.fn.cycle.updateActivePagerLink;if(this.cycleTimeout){clearTimeout(this.cycleTimeout);}this.cycleTimeout=this.cyclePause=0;var $cont=$(this);var $slides=opts.slideExpr?$(opts.slideExpr,this):$cont.children();var els=$slides.get();if(els.length<2){log("terminating; too few slides: "+els.length);return;}var opts2=buildOptions($cont,$slides,els,opts,o);if(opts2===false){return;}var startTime=opts2.continuous?10:getTimeout(els[opts2.currSlide],els[opts2.nextSlide],opts2,!opts2.backwards);if(startTime){startTime+=(opts2.delay||0);if(startTime<10){startTime=10;}debug("first timeout: "+startTime);this.cycleTimeout=setTimeout(function(){go(els,opts2,0,!opts.backwards);},startTime);}});};function handleArguments(cont,options,arg2){if(cont.cycleStop==undefined){cont.cycleStop=0;}if(options===undefined||options===null){options={};}if(options.constructor==String){switch(options){case"destroy":case"stop":var opts=$(cont).data("cycle.opts");if(!opts){return false;}cont.cycleStop++;if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);}cont.cycleTimeout=0;$(cont).removeData("cycle.opts");if(options=="destroy"){destroy(opts);}return false;case"toggle":cont.cyclePause=(cont.cyclePause===1)?0:1;checkInstantResume(cont.cyclePause,arg2,cont);return false;case"pause":cont.cyclePause=1;return false;case"resume":cont.cyclePause=0;checkInstantResume(false,arg2,cont);return false;case"prev":case"next":var opts=$(cont).data("cycle.opts");if(!opts){log('options not found, "prev/next" ignored');return false;}$.fn.cycle[options](opts);return false;default:options={fx:options};}return options;}else{if(options.constructor==Number){var num=options;options=$(cont).data("cycle.opts");if(!options){log("options not found, can not advance slide");return false;}if(num<0||num>=options.elements.length){log("invalid slide index: "+num);return false;}options.nextSlide=num;if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);cont.cycleTimeout=0;}if(typeof arg2=="string"){options.oneTimeFx=arg2;}go(options.elements,options,1,num>=options.currSlide);return false;}}return options;function checkInstantResume(isPaused,arg2,cont){if(!isPaused&&arg2===true){var options=$(cont).data("cycle.opts");if(!options){log("options not found, can not resume");return false;}if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);cont.cycleTimeout=0;}go(options.elements,options,1,!options.backwards);}}}function removeFilter(el,opts){if(!$.support.opacity&&opts.cleartype&&el.style.filter){try{el.style.removeAttribute("filter");}catch(smother){}}}function destroy(opts){if(opts.next){$(opts.next).unbind(opts.prevNextEvent);}if(opts.prev){$(opts.prev).unbind(opts.prevNextEvent);}if(opts.pager||opts.pagerAnchorBuilder){$.each(opts.pagerAnchors||[],function(){this.unbind().remove();});}opts.pagerAnchors=null;if(opts.destroy){opts.destroy(opts);}}function buildOptions($cont,$slides,els,options,o){var opts=$.extend({},$.fn.cycle.defaults,options||{},$.metadata?$cont.metadata():$.meta?$cont.data():{});if(opts.autostop){opts.countdown=opts.autostopCount||els.length;}var cont=$cont[0];$cont.data("cycle.opts",opts);opts.$cont=$cont;opts.stopCount=cont.cycleStop;opts.elements=els;opts.before=opts.before?[opts.before]:[];opts.after=opts.after?[opts.after]:[];opts.after.unshift(function(){opts.busy=0;});if(!$.support.opacity&&opts.cleartype){opts.after.push(function(){removeFilter(this,opts);});}if(opts.continuous){opts.after.push(function(){go(els,opts,0,!opts.backwards);});}saveOriginalOpts(opts);if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){clearTypeFix($slides);}if($cont.css("position")=="static"){$cont.css("position","relative");}if(opts.width){$cont.width(opts.width);}if(opts.height&&opts.height!="auto"){$cont.height(opts.height);}if(opts.startingSlide){opts.startingSlide=parseInt(opts.startingSlide);}
699else{if(opts.backwards){opts.startingSlide=els.length-1;}}if(opts.random){opts.randomMap=[];for(var i=0;i<els.length;i++){opts.randomMap.push(i);}opts.randomMap.sort(function(a,b){return Math.random()-0.5;});opts.randomIndex=1;opts.startingSlide=opts.randomMap[1];}else{if(opts.startingSlide>=els.length){opts.startingSlide=0;}}opts.currSlide=opts.startingSlide||0;var first=opts.startingSlide;$slides.css({position:"absolute",top:0,left:0}).hide().each(function(i){var z;if(opts.backwards){z=first?i<=first?els.length+(i-first):first-i:els.length-i;}else{z=first?i>=first?els.length-(i-first):first-i:els.length-i;}$(this).css("z-index",z);});$(els[first]).css("opacity",1).show();removeFilter(els[first],opts);if(opts.fit&&opts.width){$slides.width(opts.width);}if(opts.fit&&opts.height&&opts.height!="auto"){$slides.height(opts.height);}var reshape=opts.containerResize&&!$cont.innerHeight();if(reshape){var maxw=0,maxh=0;for(var j=0;j<els.length;j++){var $e=$(els[j]),e=$e[0],w=$e.outerWidth(),h=$e.outerHeight();if(!w){w=e.offsetWidth||e.width||$e.attr("width");}if(!h){h=e.offsetHeight||e.height||$e.attr("height");}maxw=w>maxw?w:maxw;maxh=h>maxh?h:maxh;}if(maxw>0&&maxh>0){$cont.css({width:maxw+"px",height:maxh+"px"});}}if(opts.pause){$cont.hover(function(){this.cyclePause++;},function(){this.cyclePause--;});}if(supportMultiTransitions(opts)===false){return false;}var requeue=false;options.requeueAttempts=options.requeueAttempts||0;$slides.each(function(){var $el=$(this);this.cycleH=(opts.fit&&opts.height)?opts.height:($el.height()||this.offsetHeight||this.height||$el.attr("height")||0);this.cycleW=(opts.fit&&opts.width)?opts.width:($el.width()||this.offsetWidth||this.width||$el.attr("width")||0);if($el.is("img")){var loadingIE=($.browser.msie&&this.cycleW==28&&this.cycleH==30&&!this.complete);var loadingFF=($.browser.mozilla&&this.cycleW==34&&this.cycleH==19&&!this.complete);var loadingOp=($.browser.opera&&((this.cycleW==42&&this.cycleH==19)||(this.cycleW==37&&this.cycleH==17))&&!this.complete);var loadingOther=(this.cycleH==0&&this.cycleW==0&&!this.complete);if(loadingIE||loadingFF||loadingOp||loadingOther){if(o.s&&opts.requeueOnImageNotLoaded&&++options.requeueAttempts<100){log(options.requeueAttempts," - img slide not loaded, requeuing slideshow: ",this.src,this.cycleW,this.cycleH);setTimeout(function(){$(o.s,o.c).cycle(options);},opts.requeueTimeout);requeue=true;return false;}else{log("could not determine size of image: "+this.src,this.cycleW,this.cycleH);}}}return true;});if(requeue){return false;}opts.cssBefore=opts.cssBefore||{};opts.animIn=opts.animIn||{};opts.animOut=opts.animOut||{};$slides.not(":eq("+first+")").css(opts.cssBefore);if(opts.cssFirst){$($slides[first]).css(opts.cssFirst);}if(opts.timeout){opts.timeout=parseInt(opts.timeout);if(opts.speed.constructor==String){opts.speed=$.fx.speeds[opts.speed]||parseInt(opts.speed);}if(!opts.sync){opts.speed=opts.speed/2;}var buffer=opts.fx=="shuffle"?500:250;while((opts.timeout-opts.speed)<buffer){opts.timeout+=opts.speed;}}if(opts.easing){opts.easeIn=opts.easeOut=opts.easing;}if(!opts.speedIn){opts.speedIn=opts.speed;}if(!opts.speedOut){opts.speedOut=opts.speed;}opts.slideCount=els.length;opts.currSlide=opts.lastSlide=first;if(opts.random){if(++opts.randomIndex==els.length){opts.randomIndex=0;}opts.nextSlide=opts.randomMap[opts.randomIndex];}else{if(opts.backwards){opts.nextSlide=opts.startingSlide==0?(els.length-1):opts.startingSlide-1;}else{opts.nextSlide=opts.startingSlide>=(els.length-1)?0:opts.startingSlide+1;}}if(!opts.multiFx){var init=$.fn.cycle.transitions[opts.fx];if($.isFunction(init)){init($cont,$slides,opts);}else{if(opts.fx!="custom"&&!opts.multiFx){log("unknown transition: "+opts.fx,"; slideshow terminating");return false;}}}var e0=$slides[first];if(opts.before.length){opts.before[0].apply(e0,[e0,e0,opts,true]);}if(opts.after.length>1){opts.after[1].apply(e0,[e0,e0,opts,true]);}if(opts.next){$(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,1);});}if(opts.prev){$(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,0);});}if(opts.pager||opts.pagerAnchorBuilder){buildPager(els,opts);}exposeAddSlide(opts,els);return opts;}function saveOriginalOpts(opts){opts.original={before:[],after:[]};opts.original.cssBefore=$.extend({},opts.cssBefore);opts.original.cssAfter=$.extend({},opts.cssAfter);opts.original.animIn=$.extend({},opts.animIn);opts.original.animOut=$.extend({},opts.animOut);$.each(opts.before,function(){opts.original.before.push(this);});$.each(opts.after,function(){opts.original.after.push(this);});}function supportMultiTransitions(opts){var i,tx,txs=$.fn.cycle.transitions;if(opts.fx.indexOf(",")>0){opts.multiFx=true;opts.fxs=opts.fx.replace(/\s*/g,"").split(",");for(i=0;i<opts.fxs.length;i++){var fx=opts.fxs[i];tx=txs[fx];if(!tx||!txs.hasOwnProperty(fx)||!$.isFunction(tx)){log("discarding unknown transition: ",fx);opts.fxs.splice(i,1);i--;}}if(!opts.fxs.length){log("No valid transitions named; slideshow terminating.");return false;}}else{if(opts.fx=="all"){opts.multiFx=true;opts.fxs=[];for(p in txs){tx=txs[p];if(txs.hasOwnProperty(p)&&$.isFunction(tx)){opts.fxs.push(p);}}}}if(opts.multiFx&&opts.randomizeEffects){var r1=Math.floor(Math.random()*20)+30;for(i=0;i<r1;i++){var r2=Math.floor(Math.random()*opts.fxs.length);opts.fxs.push(opts.fxs.splice(r2,1)[0]);}debug("randomized fx sequence: ",opts.fxs);}return true;}function exposeAddSlide(opts,els){opts.addSlide=function(newSlide,prepend){var $s=$(newSlide),s=$s[0];
699if(!opts.autostopCount){opts.countdown++;}els[prepend?"unshift":"push"](s);if(opts.els){opts.els[prepend?"unshift":"push"](s);}opts.slideCount=els.length;$s.css("position","absolute");$s[prepend?"prependTo":"appendTo"](opts.$cont);if(prepend){opts.currSlide++;opts.nextSlide++;}if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){clearTypeFix($s);}if(opts.fit&&opts.width){$s.width(opts.width);}if(opts.fit&&opts.height&&opts.height!="auto"){$s.height(opts.height);}s.cycleH=(opts.fit&&opts.height)?opts.height:$s.height();s.cycleW=(opts.fit&&opts.width)?opts.width:$s.width();$s.css(opts.cssBefore);if(opts.pager||opts.pagerAnchorBuilder){$.fn.cycle.createPagerAnchor(els.length-1,s,$(opts.pager),els,opts);}if($.isFunction(opts.onAddSlide)){opts.onAddSlide($s);}else{$s.hide();}};}$.fn.cycle.resetState=function(opts,fx){fx=fx||opts.fx;opts.before=[];opts.after=[];opts.cssBefore=$.extend({},opts.original.cssBefore);opts.cssAfter=$.extend({},opts.original.cssAfter);opts.animIn=$.extend({},opts.original.animIn);opts.animOut=$.extend({},opts.original.animOut);opts.fxFn=null;$.each(opts.original.before,function(){opts.before.push(this);});$.each(opts.original.after,function(){opts.after.push(this);});var init=$.fn.cycle.transitions[fx];if($.isFunction(init)){init(opts.$cont,$(opts.elements),opts);}};function go(els,opts,manual,fwd){if(manual&&opts.busy&&opts.manualTrump){debug("manualTrump in go(), stopping active transition");$(els).stop(true,true);opts.busy=false;}if(opts.busy){debug("transition active, ignoring new tx request");return;}var p=opts.$cont[0],curr=els[opts.currSlide],next=els[opts.nextSlide];if(p.cycleStop!=opts.stopCount||p.cycleTimeout===0&&!manual){return;}if(!manual&&!p.cyclePause&&!opts.bounce&&((opts.autostop&&(--opts.countdown<=0))||(opts.nowrap&&!opts.random&&opts.nextSlide<opts.currSlide))){if(opts.end){opts.end(opts);}return;}var changed=false;if((manual||!p.cyclePause)&&(opts.nextSlide!=opts.currSlide)){changed=true;var fx=opts.fx;curr.cycleH=curr.cycleH||$(curr).height();curr.cycleW=curr.cycleW||$(curr).width();next.cycleH=next.cycleH||$(next).height();next.cycleW=next.cycleW||$(next).width();if(opts.multiFx){if(opts.lastFx==undefined||++opts.lastFx>=opts.fxs.length){opts.lastFx=0;}fx=opts.fxs[opts.lastFx];opts.currFx=fx;}if(opts.oneTimeFx){fx=opts.oneTimeFx;opts.oneTimeFx=null;}$.fn.cycle.resetState(opts,fx);if(opts.before.length){$.each(opts.before,function(i,o){if(p.cycleStop!=opts.stopCount){return;}o.apply(next,[curr,next,opts,fwd]);});}var after=function(){$.each(opts.after,function(i,o){if(p.cycleStop!=opts.stopCount){return;}o.apply(next,[curr,next,opts,fwd]);});};debug("tx firing; currSlide: "+opts.currSlide+"; nextSlide: "+opts.nextSlide);opts.busy=1;if(opts.fxFn){opts.fxFn(curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}else{if($.isFunction($.fn.cycle[opts.fx])){$.fn.cycle[opts.fx](curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}else{$.fn.cycle.custom(curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}}}if(changed||opts.nextSlide==opts.currSlide){opts.lastSlide=opts.currSlide;if(opts.random){opts.currSlide=opts.nextSlide;if(++opts.randomIndex==els.length){opts.randomIndex=0;}opts.nextSlide=opts.randomMap[opts.randomIndex];if(opts.nextSlide==opts.currSlide){opts.nextSlide=(opts.currSlide==opts.slideCount-1)?0:opts.currSlide+1;}}else{if(opts.backwards){var roll=(opts.nextSlide-1)<0;if(roll&&opts.bounce){opts.backwards=!opts.backwards;opts.nextSlide=1;opts.currSlide=0;}else{opts.nextSlide=roll?(els.length-1):opts.nextSlide-1;opts.currSlide=roll?0:opts.nextSlide+1;}}else{var roll=(opts.nextSlide+1)==els.length;if(roll&&opts.bounce){opts.backwards=!opts.backwards;opts.nextSlide=els.length-2;opts.currSlide=els.length-1;}else{opts.nextSlide=roll?0:opts.nextSlide+1;opts.currSlide=roll?els.length-1:opts.nextSlide-1;}}}}if(changed&&opts.pager){opts.updateActivePagerLink(opts.pager,opts.currSlide,opts.activePagerClass);}var ms=0;if(opts.timeout&&!opts.continuous){ms=getTimeout(els[opts.currSlide],els[opts.nextSlide],opts,fwd);}else{if(opts.continuous&&p.cyclePause){ms=10;}}if(ms>0){p.cycleTimeout=setTimeout(function(){go(els,opts,0,!opts.backwards);},ms);}}
699$.fn.cycle.updateActivePagerLink=function(pager,currSlide,clsName){$(pager).each(function(){$(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);});};function getTimeout(curr,next,opts,fwd){if(opts.timeoutFn){var t=opts.timeoutFn.call(curr,curr,next,opts,fwd);while((t-opts.speed)<250){t+=opts.speed;}debug("calculated timeout: "+t+"; speed: "+opts.speed);if(t!==false){return t;}}return opts.timeout;}$.fn.cycle.next=function(opts){advance(opts,1);};$.fn.cycle.prev=function(opts){advance(opts,0);};function advance(opts,moveForward){var val=moveForward?1:-1;var els=opts.elements;var p=opts.$cont[0],timeout=p.cycleTimeout;if(timeout){clearTimeout(timeout);p.cycleTimeout=0;}if(opts.random&&val<0){opts.randomIndex--;if(--opts.randomIndex==-2){opts.randomIndex=els.length-2;}else{if(opts.randomIndex==-1){opts.randomIndex=els.length-1;}}opts.nextSlide=opts.randomMap[opts.randomIndex];}else{if(opts.random){opts.nextSlide=opts.randomMap[opts.randomIndex];}else{opts.nextSlide=opts.currSlide+val;if(opts.nextSlide<0){if(opts.nowrap){return false;}opts.nextSlide=els.length-1;}else{if(opts.nextSlide>=els.length){if(opts.nowrap){return false;}opts.nextSlide=0;}}}}var cb=opts.onPrevNextEvent||opts.prevNextClick;if($.isFunction(cb)){cb(val>0,opts.nextSlide,els[opts.nextSlide]);}go(els,opts,1,moveForward);return false;}function buildPager(els,opts){var $p=$(opts.pager);$.each(els,function(i,o){$.fn.cycle.createPagerAnchor(i,o,$p,els,opts);});opts.updateActivePagerLink(opts.pager,opts.startingSlide,opts.activePagerClass);}$.fn.cycle.createPagerAnchor=function(i,el,$p,els,opts){var a;if($.isFunction(opts.pagerAnchorBuilder)){a=opts.pagerAnchorBuilder(i,el);debug("pagerAnchorBuilder("+i+", el) returned: "+a);}else{a='<a href="#">'+(i+1)+"</a>";}if(!a){return;}var $a=$(a);if($a.parents("body").length===0){var arr=[];if($p.length>1){$p.each(function(){var $clone=$a.clone(true);$(this).append($clone);arr.push($clone[0]);});$a=$(arr);}else{$a.appendTo($p);}}opts.pagerAnchors=opts.pagerAnchors||[];opts.pagerAnchors.push($a);$a.bind(opts.pagerEvent,function(e){e.preventDefault();opts.nextSlide=i;var p=opts.$cont[0],timeout=p.cycleTimeout;if(timeout){clearTimeout(timeout);p.cycleTimeout=0;}var cb=opts.onPagerEvent||opts.pagerClick;if($.isFunction(cb)){cb(opts.nextSlide,els[opts.nextSlide]);}go(els,opts,1,opts.currSlide<i);});if(!/^click/.test(opts.pagerEvent)&&!opts.allowPagerClickBubble){$a.bind("click.cycle",function(){return false;});}if(opts.pauseOnPagerHover){$a.hover(function(){opts.$cont[0].cyclePause++;},function(){opts.$cont[0].cyclePause--;});}};$.fn.cycle.hopsFromLast=function(opts,fwd){var hops,l=opts.lastSlide,c=opts.currSlide;if(fwd){hops=c>l?c-l:opts.slideCount-l;}else{hops=c<l?l-c:l+opts.slideCount-c;}return hops;};function clearTypeFix($slides){debug("applying clearType background-color hack");function hex(s){s=parseInt(s).toString(16);return s.length<2?"0"+s:s;}function getBg(e){for(;e&&e.nodeName.toLowerCase()!="html";e=e.parentNode){var v=$.css(e,"background-color");if(v.indexOf("rgb")>=0){var rgb=v.match(/\d+/g);return"#"+hex(rgb[0])+hex(rgb[1])+hex(rgb[2]);}if(v&&v!="transparent"){return v;}}return"#ffffff";}$slides.each(function(){$(this).css("background-color",getBg(this));});}$.fn.cycle.commonReset=function(curr,next,opts,w,h,rev){$(opts.elements).not(curr).hide();opts.cssBefore.opacity=1;opts.cssBefore.display="block";if(opts.slideResize&&w!==false&&next.cycleW>0){opts.cssBefore.width=next.cycleW;}if(opts.slideResize&&h!==false&&next.cycleH>0){opts.cssBefore.height=next.cycleH;}opts.cssAfter=opts.cssAfter||{};opts.cssAfter.display="none";$(curr).css("zIndex",opts.slideCount+(rev===true?1:0));$(next).css("zIndex",opts.slideCount+(rev===true?0:1));};$.fn.cycle.custom=function(curr,next,opts,cb,fwd,speedOverride){var $l=$(curr),$n=$(next);var speedIn=opts.speedIn,speedOut=opts.speedOut,easeIn=opts.easeIn,easeOut=opts.easeOut;$n.css(opts.cssBefore);if(speedOverride){if(typeof speedOverride=="number"){speedIn=speedOut=speedOverride;}else{speedIn=speedOut=1;}easeIn=easeOut=null;}var fn=function(){$n.animate(opts.animIn,speedIn,easeIn,cb);};$l.animate(opts.animOut,speedOut,easeOut,function(){if(opts.cssAfter){$l.css(opts.cssAfter);}if(!opts.sync){fn();}});if(opts.sync){fn();}};$.fn.cycle.transitions={fade:function($cont,$slides,opts){$slides.not(":eq("+opts.currSlide+")").css("opacity",0);opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.cssBefore.opacity=0;});opts.animIn={opacity:1};opts.animOut={opacity:0}
699;opts.cssBefore={top:0,left:0};}};$.fn.cycle.ver=function(){return ver;};$.fn.cycle.defaults={fx:"fade",timeout:4000,timeoutFn:null,continuous:0,speed:1000,speedIn:null,speedOut:null,next:null,prev:null,onPrevNextEvent:null,prevNextEvent:"click.cycle",pager:null,onPagerEvent:null,pagerEvent:"click.cycle",allowPagerClickBubble:false,pagerAnchorBuilder:null,before:null,after:null,end:null,easing:null,easeIn:null,easeOut:null,shuffle:null,animIn:null,animOut:null,cssBefore:null,cssAfter:null,fxFn:null,height:"auto",startingSlide:0,sync:1,random:0,fit:0,containerResize:1,slideResize:1,pause:0,pauseOnPagerHover:0,autostop:0,autostopCount:0,delay:0,slideExpr:null,cleartype:!$.support.opacity,cleartypeNoBg:false,nowrap:0,fastOnEvent:0,randomizeEffects:1,rev:0,manualTrump:true,requeueOnImageNotLoaded:true,requeueTimeout:250,activePagerClass:"activeSlide",updateActivePagerLink:null,backwards:false};})(jQuery); 700/* 701 * jQuery Cycle Plugin Transition Definitions 702 * This script is a plugin for the jQuery Cycle Plugin 703 * Examples and documentation at: http://malsup.com/jquery/cycle/ 704 * Copyright (c) 2007-2010 M. Alsup 705 * Version: 2.73 706 * Dual licensed under the MIT and GPL licenses: 707 * http://www.opensource.org/licenses/mit-license.php 708 * http://www.gnu.org/licenses/gpl.html 709 */ 710(function($){$.fn.cycle.transitions.none=function($cont,$slides,opts){opts.fxFn=function(curr,next,opts,after){$(next).show();$(curr).hide();after();};};$.fn.cycle.transitions.fadeout=function($cont,$slides,opts){$slides.not(":eq("+opts.currSlide+")").css({display:"block",opacity:1});opts.before.push(function(curr,next,opts,w,h,rev){$(curr).css("zIndex",opts.slideCount+(!rev===true?1:0));$(next).css("zIndex",opts.slideCount+(!rev===true?0:1));});opts.animIn={opacity:1};opts.animOut={opacity:0}
710;opts.cssBefore={opacity:1,display:"block"};opts.cssAfter={zIndex:0};};$.fn.cycle.transitions.scrollUp=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var h=$cont.height();opts.cssBefore={top:h,left:0};opts.cssFirst={top:0};opts.animIn={top:0};opts.animOut={top:-h};};$.fn.cycle.transitions.scrollDown=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var h=$cont.height();opts.cssFirst={top:0};opts.cssBefore={top:-h,left:0};opts.animIn={top:0};opts.animOut={top:h};};$.fn.cycle.transitions.scrollLeft=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var w=$cont.width();opts.cssFirst={left:0};opts.cssBefore={left:w,top:0};opts.animIn={left:0};opts.animOut={left:0-w};};$.fn.cycle.transitions.scrollRight=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var w=$cont.width();opts.cssFirst={left:0};opts.cssBefore={left:-w,top:0};opts.animIn={left:0};opts.animOut={left:w};};$.fn.cycle.transitions.scrollHorz=function($cont,$slides,opts){$cont.css("overflow","hidden").width();opts.before.push(function(curr,next,opts,fwd){if(opts.rev){fwd=!fwd;}$.fn.cycle.commonReset(curr,next,opts);opts.cssBefore.left=fwd?(next.cycleW-1):(1-next.cycleW);opts.animOut.left=fwd?-curr.cycleW:curr.cycleW;});opts.cssFirst={left:0};opts.cssBefore={top:0};opts.animIn={left:0};opts.animOut={top:0};};$.fn.cycle.transitions.scrollVert=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push(function(curr,next,opts,fwd){if(opts.rev){fwd=!fwd;}$.fn.cycle.commonReset(curr,next,opts);opts.cssBefore.top=fwd?(1-next.cycleH):(next.cycleH-1);opts.animOut.top=fwd?curr.cycleH:-curr.cycleH;});opts.cssFirst={top:0};opts.cssBefore={left:0};opts.animIn={top:0};opts.animOut={left:0};};$.fn.cycle.transitions.slideX=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$(opts.elements).not(curr).hide();$.fn.cycle.commonReset(curr,next,opts,false,true);opts.animIn.width=next.cycleW;});opts.cssBefore={left:0,top:0,width:0};opts.animIn={width:"show"};opts.animOut={width:0};};$.fn.cycle.transitions.slideY=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$(opts.elements).not(curr).hide();$.fn.cycle.commonReset(curr,next,opts,true,false);opts.animIn.height=next.cycleH;});opts.cssBefore={left:0,top:0,height:0};opts.animIn={height:"show"};opts.animOut={height:0};};$.fn.cycle.transitions.shuffle=function($cont,$slides,opts){var i,w=$cont.css("overflow","visible").width();$slides.css({left:0,top:0});opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,true,true);});if(!opts.speedAdjusted){opts.speed=opts.speed/2;opts.speedAdjusted=true;}opts.random=0;opts.shuffle=opts.shuffle||{left:-w,top:15};opts.els=[];for(i=0;i<$slides.length;i++){opts.els.push($slides[i]);}for(i=0;i<opts.currSlide;i++){opts.els.push(opts.els.shift());}opts.fxFn=function(curr,next,opts,cb,fwd){if(opts.rev){fwd=!fwd;}var $el=fwd?$(curr):$(next);$(next).css(opts.cssBefore);var count=opts.slideCount;$el.animate(opts.shuffle,opts.speedIn,opts.easeIn,function(){var hops=$.fn.cycle.hopsFromLast(opts,fwd);for(var k=0;k<hops;k++){fwd?opts.els.push(opts.els.shift()):opts.els.unshift(opts.els.pop());}if(fwd){for(var i=0,len=opts.els.length;i<len;i++){$(opts.els[i]).css("z-index",len-i+count);}}else{var z=$(curr).css("z-index");$el.css("z-index",parseInt(z)+1+count);}$el.animate({left:0,top:0},opts.speedOut,opts.easeOut,function(){$(fwd?this:curr).hide();if(cb){cb();}});});};opts.cssBefore={display:"block",opacity:1,top:0,left:0};};$.fn.cycle.transitions.turnUp=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false);opts.cssBefore.top=next.cycleH;opts.animIn.height=next.cycleH;opts.animOut.width=next.cycleW;});opts.cssFirst={top:0};opts.cssBefore={left:0,height:0};opts.animIn={top:0};opts.animOut={height:0};};$.fn.cycle.transitions.turnDown=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false);opts.animIn.height=next.cycleH;opts.animOut.top=curr.cycleH;});opts.cssFirst={top:0};opts.cssBefore={left:0,top:0,height:0};opts.animOut={height:0};};$.fn.cycle.transitions.turnLeft=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true);opts.cssBefore.left=next.cycleW;opts.animIn.width=next.cycleW;});opts.cssBefore={top:0,width:0};opts.animIn={left:0};opts.animOut={width:0};};$.fn.cycle.transitions.turnRight=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true);opts.animIn.width=next.cycleW;opts.animOut.left=curr.cycleW;});opts.cssBefore={top:0,left:0,width:0};opts.animIn={left:0};opts.animOut={width:0};};$.fn.cycle.transitions.zoom=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,false,true);opts.cssBefore.top=next.cycleH/2;opts.cssBefore.left=next.cycleW/2;opts.animIn={top:0,left:0,width:next.cycleW,height:next.cycleH};opts.animOut={width:0,height:0,top:curr.cycleH/2,left:curr.cycleW/2};});opts.cssFirst={top:0,left:0};opts.cssBefore={width:0,height:0};};$.fn.cycle.transitions.fadeZoom=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,false);opts.cssBefore.left=next.cycleW/2;opts.cssBefore.top=next.cycleH/2;opts.animIn={top:0,left:0,width:next.cycleW,height:next.cycleH};});opts.cssBefore={width:0,height:0};opts.animOut={opacity:0}
710;};$.fn.cycle.transitions.blindX=function($cont,$slides,opts){var w=$cont.css("overflow","hidden").width();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.animIn.width=next.cycleW;opts.animOut.left=curr.cycleW;});opts.cssBefore={left:w,top:0};opts.animIn={left:0};opts.animOut={left:w};};$.fn.cycle.transitions.blindY=function($cont,$slides,opts){var h=$cont.css("overflow","hidden").height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.animIn.height=next.cycleH;opts.animOut.top=curr.cycleH;});opts.cssBefore={top:h,left:0};opts.animIn={top:0};opts.animOut={top:h};};$.fn.cycle.transitions.blindZ=function($cont,$slides,opts){var h=$cont.css("overflow","hidden").height();var w=$cont.width();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.animIn.height=next.cycleH;opts.animOut.top=curr.cycleH;});opts.cssBefore={top:h,left:w};opts.animIn={top:0,left:0};opts.animOut={top:h,left:w};};$.fn.cycle.transitions.growX=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true);opts.cssBefore.left=this.cycleW/2;opts.animIn={left:0,width:this.cycleW};opts.animOut={left:0};});opts.cssBefore={width:0,top:0};};$.fn.cycle.transitions.growY=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false);opts.cssBefore.top=this.cycleH/2;opts.animIn={top:0,height:this.cycleH};opts.animOut={top:0};});opts.cssBefore={height:0,left:0};};$.fn.cycle.transitions.curtainX=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true,true);opts.cssBefore.left=next.cycleW/2;opts.animIn={left:0,width:this.cycleW};opts.animOut={left:curr.cycleW/2,width:0};});opts.cssBefore={top:0,width:0};};$.fn.cycle.transitions.curtainY=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false,true);opts.cssBefore.top=next.cycleH/2;opts.animIn={top:0,height:next.cycleH};opts.animOut={top:curr.cycleH/2,height:0};});opts.cssBefore={left:0,height:0};};$.fn.cycle.transitions.cover=function($cont,$slides,opts){var d=opts.direction||"left";var w=$cont.css("overflow","hidden").width();var h=$cont.height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);if(d=="right"){opts.cssBefore.left=-w;}else{if(d=="up"){opts.cssBefore.top=h;}else{if(d=="down"){opts.cssBefore.top=-h;}else{opts.cssBefore.left=w;}}}});opts.animIn={left:0,top:0};opts.animOut={opacity:1};opts.cssBefore={top:0,left:0};};$.fn.cycle.transitions.uncover=function($cont,$slides,opts){var d=opts.direction||"left";var w=$cont.css("overflow","hidden").width();var h=$cont.height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,true,true);if(d=="right"){opts.animOut.left=w;}else{if(d=="up"){opts.animOut.top=-h;}else{if(d=="down"){opts.animOut.top=h;}else{opts.animOut.left=-w;}}}});opts.animIn={left:0,top:0};opts.animOut={opacity:1};opts.cssBefore={top:0,left:0};};$.fn.cycle.transitions.toss=function($cont,$slides,opts){var w=$cont.css("overflow","visible").width();var h=$cont.height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,true,true);if(!opts.animOut.left&&!opts.animOut.top){opts.animOut={left:w*2,top:-h/2,opacity:0};}else{opts.animOut.opacity=0;}});opts.cssBefore={left:0,top:0};opts.animIn={left:0};};$.fn.cycle.transitions.wipe=function($cont,$slides,opts){var w=$cont.css("overflow","hidden").width();var h=$cont.height();opts.cssBefore=opts.cssBefore||{};var clip;if(opts.clip){if(/l2r/.test(opts.clip)){clip="rect(0px 0px "+h+"px 0px)";}else{if(/r2l/.test(opts.clip)){clip="rect(0px "+w+"px "+h+"px "+w+"px)";}else{if(/t2b/.test(opts.clip)){clip="rect(0px "+w+"px 0px 0px)";}else{if(/b2t/.test(opts.clip)){clip="rect("+h+"px "+w+"px "+h+"px 0px)";}else{if(/zoom/.test(opts.clip)){var top=parseInt(h/2);var left=parseInt(w/2);clip="rect("+top+"px "+left+"px "+top+"px "+left+"px)";}}}}}}opts.cssBefore.clip=opts.cssBefore.clip||clip||"rect(0px 0px 0px 0px)";var d=opts.cssBefore.clip.match(/(\d+)/g);
710var t=parseInt(d[0]),r=parseInt(d[1]),b=parseInt(d[2]),l=parseInt(d[3]);opts.before.push(function(curr,next,opts){if(curr==next){return;}var $curr=$(curr),$next=$(next);$.fn.cycle.commonReset(curr,next,opts,true,true,false);opts.cssAfter.display="block";var step=1,count=parseInt((opts.speedIn/13))-1;(function f(){var tt=t?t-parseInt(step*(t/count)):0;var ll=l?l-parseInt(step*(l/count)):0;var bb=b<h?b+parseInt(step*((h-b)/count||1)):h;var rr=r<w?r+parseInt(step*((w-r)/count||1)):w;$next.css({clip:"rect("+tt+"px "+rr+"px "+bb+"px "+ll+"px)"});(step++<=count)?setTimeout(f,13):$curr.css("display","none");})();});opts.cssBefore={display:"block",opacity:1,top:0,left:0};opts.animIn={left:0};opts.animOut={left:0};};})(jQuery);; 711/** 712 * @file 713 * A simple jQuery Cycle Div Slideshow Rotator. 714 */ 715 716/** 717 * This will set our initial behavior, by starting up each individual slideshow. 718 */ 719(function ($) { 720 Drupal.behaviors.viewsSlideshowCycle = { 721 attach: function (context) { 722 $('.views_slideshow_cycle_main:not(.viewsSlideshowCycle-processed)', context).addClass('viewsSlideshowCycle-processed').each(function() { 723 var fullId = '#' + $(this).attr('id'); 724 var settings = Drupal.settings.viewsSlideshowCycle[fullId]; 725 settings.targetId = '#' + $(fullId + " :first").attr('id'); 726 727 settings.slideshowId = settings.targetId.replace('#views_slideshow_cycle_teaser_section_', ''); 728 // Pager after function. 729 var pager_after_fn = function(curr, next, opts) { 730 // Need to do some special handling on first load. 731 var slideNum = opts.currSlide; 732 if (typeof settings.processedAfter == 'undefined' || !settings.processedAfter) { 733 settings.processedAfter = 1; 734 slideNum = (typeof settings.opts.startingSlide == 'undefined') ? 0 : settings.opts.startingSlide; 735 } 736 if (settings.pause_after_slideshow) { 737 opts.counter += 1; 738 if (opts.counter == settings.num_divs + 1) { 739 opts.counter = 1; 740 Drupal.viewsSlideshow.action({ "action": 'pause', "slideshowID": settings.slideshowId, "force": true }); 741 } 742 } 743 Drupal.viewsSlideshow.action({ "action": 'transitionEnd', "slideshowID": settings.slideshowId, "slideNum": slideNum }); 744 } 745 // Pager before function. 746 var pager_before_fn = function(curr, next, opts) { 747 $(document).trigger('drupal:views_slideshow_cycle:before', { 748 curr: curr, next: next, opts: opts, settings: settings 749 }); 750 751 var slideNum = opts.nextSlide; 752 753 // Remember last slide. 754 if (settings.remember_slide) { 755 createCookie(settings.vss_id, slideNum, settings.remember_slide_days); 756 } 757 758 // Make variable height. 759 if (!settings.fixed_height) { 760 //get the height of the current slide 761 var $ht = $(next).height(); 762 //set the container's height to that of the current slide 763 $(next).parent().animate({height: $ht}); 764 } 765 766 // Need to do some special handling on first load. 767 if (typeof settings.processedBefore == 'undefined' || !settings.processedBefore) { 768 settings.processedBefore = 1; 769 slideNum = (typeof opts.startingSlide == 'undefined') ? 0 : opts.startingSlide; 770 } 771 772 Drupal.viewsSlideshow.action({ "action": 'transitionBegin', "slideshowID": settings.slideshowId, "slideNum": slideNum }); 773 } 774 settings.loaded = false; 775 776 settings.opts = { 777 speed:settings.speed, 778 timeout:settings.timeout, 779 delay:settings.delay, 780 sync:settings.sync, 781 random:settings.random, 782 nowrap:settings.nowrap, 783 pause_after_slideshow:settings.pause_after_slideshow, 784 counter:0, 785 after:pager_after_fn, 786 before:pager_before_fn, 787 cleartype:(settings.cleartype)? true : false, 788 cleartypeNoBg:(settings.cleartypenobg)? true : false 789 } 790 791 // Set the starting slide if we are supposed to remember the slide 792 if (settings.remember_slide) { 793 var startSlide = readCookie(settings.vss_id); 794 if (startSlide == null) { 795 startSlide = 0; 796 } 797 settings.opts.startingSlide = parseInt(startSlide); 798 } 799 800 if (settings.effect == 'none') { 801 settings.opts.speed = 1; 802 } 803 else { 804 settings.opts.fx = settings.effect; 805 } 806 807 // Take starting item from fragment. 808 var hash = location.hash; 809 if (hash) { 810 var hash = hash.replace('#', ''); 811 var aHash = hash.split(';'); 812 var aHashLen = aHash.length; 813 814 // Loop through all the possible starting points. 815 for (var i = 0; i < aHashLen; i++) { 816 // Split the hash into two parts. One part is the slideshow id the 817 // other is the slide number. 818 var initialInfo = aHash[i].split(':'); 819 // The id in the hash should match our slideshow. 820 // The slide number chosen shouldn't be larger than the number of 821 // slides we have. 822 if (settings.slideshowId == initialInfo[0] && settings.num_divs >
822 initialInfo[1]) { 823 settings.opts.startingSlide = parseInt(initialInfo[1]); 824 } 825 } 826 } 827 828 // Pause on hover. 829 if (settings.pause) { 830 var mouseIn = function() { 831 Drupal.viewsSlideshow.action({ "action": 'pause', "slideshowID": settings.slideshowId }); 832 } 833 834 var mouseOut = function() { 835 Drupal.viewsSlideshow.action({ "action": 'play', "slideshowID": settings.slideshowId }); 836 } 837 838 if (jQuery.fn.hoverIntent) { 839 $('#views_slideshow_cycle_teaser_section_' + settings.vss_id).hoverIntent(mouseIn, mouseOut); 840 } 841 else { 842 $('#views_slideshow_cycle_teaser_section_' + settings.vss_id).hover(mouseIn, mouseOut); 843 } 844 } 845 846 // Play on hover. 847 if (settings.play_on_hover) { 848 var mouseIn = function() { 849 Drupal.viewsSlideshow.action({ "action": 'play', "slideshowID": settings.slideshowId, "force": true }); 850 } 851 852 var mouseOut = function() { 853 Drupal.viewsSlideshow.action({ "action": 'pause', "slideshowID": settings.slideshowId }); 854 } 855 856 if (jQuery.fn.hoverIntent) { 857 $('#views_slideshow_cycle_teaser_section_' + settings.vss_id).hoverIntent(mouseIn, mouseOut); 858 } 859 else { 860 $('#views_slideshow_cycle_teaser_section_' + settings.vss_id).hover(mouseIn, mouseOut); 861 } 862 } 863 864 // Pause on clicking of the slide. 865 if (settings.pause_on_click) { 866 $('#views_slideshow_cycle_teaser_section_' + settings.vss_id).click(function() { 867 Drupal.viewsSlideshow.action({ "action": 'pause', "slideshowID": settings.slideshowId, "force": true }); 868 }); 869 } 870 871 if (typeof JSON != 'undefined') { 872 var advancedOptions = JSON.parse(settings.advanced_options); 873 for (var option in advancedOptions) { 874 switch(option) { 875 876 // Standard Options 877 case "activePagerClass": 878 case "allowPagerClickBubble": 879 case "autostop": 880 case "autostopCount": 881 case "backwards": 882 case "bounce": 883 case "cleartype": 884 case "cleartypeNoBg": 885 case "containerResize": 886 case "continuous": 887 case "delay": 888 case "easeIn": 889 case "easeOut": 890 case "easing": 891 case "fastOnEvent": 892 case "fit": 893 case "fx": 894 case "manualTrump": 895 case "metaAttr": 896 case "next": 897 case "nowrap": 898 case "pager": 899 case "pagerEvent": 900 case "pause": 901 case "pauseOnPagerHover": 902 case "prev": 903 case "prevNextEvent": 904 case "random": 905 case "randomizeEffects": 906 case "requeueOnImageNotLoaded": 907 case "requeueTimeout": 908 case "rev": 909 case "slideExpr": 910 case "slideResize": 911 case "speed": 912 case "speedIn": 913 case "speedOut": 914 case "startingSlide": 915 case "sync": 916 case "timeout": 917 var optionValue = advancedOptions[option]; 918 optionValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(optionValue); 919 settings.opts[option] = optionValue; 920 break; 921 922 // If width is set we need to disable resizing. 923 case "width": 924 var optionValue = advancedOptions["width"]; 925 optionValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(optionValue); 926 settings.opts["width"] = optionValue; 927 settings.opts["containerResize"] = 0; 928 break; 929 930 // If height is set we need to set fixed_height to true. 931 case "height": 932 var optionValue = advancedOptions["height"]; 933 optionValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(optionValue); 934 settings.opts["height"] = optionValue; 935 settings.fixed_height = 1; 936 break; 937 938 // These process options that look like {top:50, bottom:20} 939 case "animIn": 940 case "animInDelay": 941 case "animOut": 942 case "animOutDelay": 943 case "cssBefore": 944 case "cssAfter": 945 case "shuffle": 946 var cssValue = advancedOptions[option]; 947 cssValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(cssValue); 948 settings.opts[option] = eval('(' + cssValue + ')'); 949 break; 950 951 // These options have their own functions. 952 case "after": 953 var afterValue = advancedOptions[option]; 954 afterValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(afterValue); 955 // transition callback (scope set to element that was shown): function(currSlideElement, nextSlideElement, options, forwardFlag) 956 settings.opts[option] = function(currSlideElement, nextSlideElement, options, forwardFlag) { 957 pager_after_fn(currSlideElement, nextSlideElement, options); 958 eval(afterValue); 959 } 960 break; 961 962 case "before": 963 var beforeValue = advancedOptions[option]; 964 beforeValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(beforeValue); 965 // transition callback (scope set to element to be shown): function(currSlideElement, nextSlideElement, options, forwardFlag) 966 settings.opts[option] = function(currSlideElement, nextSlideElement, options, forwardFlag) { 967 pager_before_fn(currSlideElement, nextSlideElement, options); 968 eval(beforeValue); 969 } 970 break; 971 972 case "end": 973 var endValue = advancedOptions[option]; 974 endValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(endValue); 975 // callback invoked when the slideshow terminates (use with autostop or nowrap options): function(options) 976 settings.opts[option] = function(options) { 977 eval(endValue); 978 } 979 break; 980 981 case "fxFn": 982 var fxFnValue = advancedOptions[option]; 983 fxFnValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(fxFnValue); 984 // function used to control the transition: function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag) 985 settings.opts[option] = function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag) { 986 eval(fxFnValue); 987 } 988 break; 989 990 case "onPagerEvent": 991 var onPagerEventValue = advancedOptions[option]; 992 onPagerEventValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(onPagerEventValue); 993 settings.opts[option] = function(zeroBasedSlideIndex, slideElement) { 994 eval(onPagerEventValue); 995 } 996 break; 997 998 case "onPrevNextEvent": 999 var onPrevNextEventValue = advancedOptions[option]; 1000 onPrevNextEventValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(onPrevNextEventValue); 1001 settings.opts[option] = function(isNext, zeroBasedSlideIndex, slideElement) { 1002 eval(onPrevNextEventValue); 1003 } 1004 break; 1005 1006 case "pagerAnchorBuilder": 1007 var pagerAnchorBuilderValue = advancedOptions[option]; 1008 pagerAnchorBuilderValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(pagerAnchorBuilderValue); 1009 // callback fn for building anchor links: function(index, DOMelement) 1010 settings.opts[option] = function(index, DOMelement) { 1011 var returnVal = ''; 1012 eval(pagerAnchorBuilderValue); 1013 return returnVal; 1014 } 1015 break; 1016 1017 case "pagerClick": 1018 var pagerClickValue = advancedOptions[option]; 1019 pagerClickValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(pagerClickValue); 1020 // callback fn for pager clicks: function(zeroBasedSlideIndex, slideElement) 1021 settings.opts[option] = function(zeroBasedSlideIndex, slideElement) { 1022 eval(pagerClickValue); 1023 } 1024 break; 1025 1026 case "paused": 1027 var pausedValue = advancedOptions[option]; 1028 pausedValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(pausedValue); 1029 // undocumented callback when slideshow is paused: function(cont, opts, byHover) 1030 settings.opts[option] = function(cont, opts, byHover) { 1031 eval(pausedValue); 1032 } 1033 break; 1034 1035 case "resumed": 1036 var resumedValue = advancedOptions[option]; 1037 resumedValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(resumedValue); 1038 // undocumented callback when slideshow is resumed: function(cont, opts, byHover) 1039 settings.opts[option] = function(cont, opts, byHover) { 1040 eval(resumedValue); 1041 } 1042 break; 1043 1044 case "timeoutFn": 1045 var timeoutFnValue = advancedOptions[option]; 1046 timeoutFnValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(timeoutFnValue); 1047 settings.opts[option] = function(currSlideElement, nextSlideElement, options, forwardFlag) { 1048 // Set a sane return value unless function overrides it. 1049 var returnVal = settings.timeout; 1050 eval(timeoutFnValue); 1051 return returnVal; 1052 } 1053 break; 1054 1055 case "updateActivePagerLink": 1056 var updateActivePagerLinkValue = advancedOptions[option]; 1057 updateActivePagerLinkValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(updateActivePagerLinkValue); 1058 // callback fn invoked to update the active pager link (adds/removes activePagerClass style) 1059 settings.opts[option] = function(pager, currSlideIndex) { 1060 eval(updateActivePagerLinkValue); 1061 } 1062 break; 1063 } 1064 } 1065 } 1066 1067 // If selected wait for the images to be loaded. 1068 // otherwise just load the slideshow. 1069 if (settings.wait_for_image_load) { 1070 // For IE/Chrome/Opera we if there are images then we need to make 1071 // sure the images are loaded before starting the slideshow. 1072 settings.totalImages = $(settings.targetId + ' img').length; 1073 if (settings.totalImages) { 1074 settings.loadedImages = 0; 1075 1076 // Add a load event for each image. 1077 $(settings.targetId + ' img').each(function() { 1078 var $imageElement = $(this); 1079 $imageElement.bind('load', function () { 1080 Drupal.viewsSlideshowCycle.imageWait(fullId); 1081 }); 1082 1083 // Removing the source and adding it again will fire the load event. 1084 var imgSrc = $imageElement.attr('src'); 1085 $imageElement.attr('src', ''); 1086 $imageElement.attr('src', imgSrc); 1087 }); 1088 1089 // We need to set a timeout so that the slideshow doesn't wait 1090 // indefinitely for all images to load. 1091 setTimeout("Drupal.viewsSlideshowCycle.load('" + fullId + "')", settings.wait_for_image_load_timeout); 1092 } 1093 else { 1094 Drupal.viewsSlideshowCycle.load(fullId); 1095 } 1096 } 1097 else { 1098 Drupal.viewsSlideshowCycle.load(fullId); 1099 } 1100 }); 1101 } 1102 }; 1103 1104 /** 1105 * Views Slideshow swipe support. 1106 */ 1107 Drupal.behaviors.viewsSlideshowSwipe = { 1108 attach: function (context) { 1109 var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0));
1110 if (isTouch === true && $('.views-slideshow-cycle-main-frame').length) { 1111 var $slider = $('.views-slideshow-cycle-main-frame'), 1112 opts = { 1113 start: {x: 0, y: 0}, 1114 end: {x: 0, y: 0}, 1115 hdiff: 0, 1116 vdiff: 0, 1117 length: 0, 1118 angle: null, 1119 direction: null, 1120 }, 1121 optsReset = $.extend(true, {}, opts), 1122 H_THRESHOLD = 110, // roughly one inch effective resolution on ipad 1123 V_THRESHOLD = 50; 1124 $slider.data('bw', opts) 1125 .bind('touchstart.cycle', function (e) { 1126 var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; 1127 if (e.originalEvent.touches.length == 1) { 1128 var data = $(this).data('bw'); 1129 data.start.x = touch.pageX; 1130 data.start.y = touch.pageY; 1131 $(this).data('bw', data); 1132 } 1133 }) 1134 .bind('touchend.cycle', function (e) { 1135 var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; 1136 var data = $(this).data('bw'); 1137 data.end.x = touch.pageX; 1138 data.end.y = touch.pageY; 1139 $(this).data('bw', data); 1140 if (data.start.x != 0 && data.start.y != 0) { 1141 data.vdiff = data.start.x - data.end.x; 1142 data.hdiff = data.end.y - data.start.y; 1143 if (Math.abs(data.vdiff) == data.start.x && Math.abs(data.hdiff) == data.start.y) { 1144 data.vdiff = 0; 1145 data.hdiff = 0; 1146 } 1147 var length = Math.round(Math.sqrt(Math.pow(data.vdiff,2) + Math.pow(data.hdiff,2))); 1148 var rads = Math.atan2(data.hdiff, data.vdiff); 1149 var angle = Math.round(rads*180/Math.PI); 1150 if (angle < 0) { angle = 360 - Math.abs(angle); } 1151 if (length > H_THRESHOLD && V_THRESHOLD > data.hdiff) { 1152 e.preventDefault(); 1153 if (angle > 135 && angle < 225) { 1154 var cyopt = $slider.data('cycle.opts'); 1155 if (cyopt.currSlide > 0) { 1156 $slider.cycle((cyopt.currSlide - 1), 'scrollRight'); 1157 } 1158 else { 1159 $slider.cycle((cyopt.slideCount - 1), 'scrollRight'); 1160 } 1161 } 1162 else if (angle > 315 || angle < 45) { 1163 $slider.cycle('next'); 1164 } 1165 } 1166 } 1167 data = $.extend(true, {}, optsReset); 1168 }); 1169 } 1170 } 1171 }; 1172 1173 Drupal.viewsSlideshowCycle = Drupal.viewsSlideshowCycle || {}; 1174 1175 // Cleanup the values of advanced options. 1176 Drupal.viewsSlideshowCycle.advancedOptionCleanup = function(value) { 1177 value = $.trim(value); 1178 value = value.replace(/\n/g, ''); 1179 if (value.match(/^[\d.]+%$/)) { 1180 // noop 1181 } 1182 else if (!isNaN(parseInt(value))) { 1183 value = parseInt(value); 1184 } 1185 else if (value.toLowerCase() == 'true') { 1186 value = true; 1187 } 1188 else if (value.toLowerCase() == 'false') { 1189 value = false; 1190 } 1191 1192 return value; 1193 } 1194 1195 // This checks to see if all the images have been loaded. 1196 // If they have then it starts the slideshow. 1197 Drupal.viewsSlideshowCycle.imageWait = function(fullId) { 1198 if (++Drupal.settings.viewsSlideshowCycle[fullId].loadedImages == Drupal.settings.viewsSlideshowCycle[fullId].totalImages) { 1199 Drupal.viewsSlideshowCycle.load(fullId); 1200 } 1201 }; 1202 1203 // Start the slideshow. 1204 Drupal.viewsSlideshowCycle.load = function (fullId) { 1205 var settings = Drupal.settings.viewsSlideshowCycle[fullId]; 1206 1207 // Make sure the slideshow isn't already loaded. 1208 if (!settings.loaded) { 1209 $(settings.targetId).cycle(settings.opts); 1210 $(settings.targetId).parent().parent().addClass('views-slideshow-cycle-processed'); 1211 settings.loaded = true; 1212 1213 // Start Paused 1214 if (settings.start_paused) { 1215 Drupal.viewsSlideshow.action({ "action": 'pause', "slideshowID": settings.slideshowId, "force": true }); 1216 } 1217 1218 // Pause if hidden. 1219 if (settings.pause_when_hidden) { 1220 var checkPause = function(settings) { 1221 // If the slideshow is visible and it is paused then resume. 1222 // otherwise if the slideshow is not visible and it is not paused then 1223 // pause it.
1224 var visible = viewsSlideshowCycleIsVisible(settings.targetId, settings.pause_when_hidden_type, settings.amount_allowed_visible); 1225 if (visible) { 1226 Drupal.viewsSlideshow.action({ "action": 'play', "slideshowID": settings.slideshowId }); 1227 } 1228 else { 1229 Drupal.viewsSlideshow.action({ "action": 'pause', "slideshowID": settings.slideshowId }); 1230 } 1231 } 1232 1233 // Check when scrolled. 1234 $(window).scroll(function() { 1235 checkPause(settings); 1236 }); 1237 1238 // Check when the window is resized. 1239 $(window).resize(function() { 1240 checkPause(settings); 1241 }); 1242 } 1243 } 1244 }; 1245 1246 Drupal.viewsSlideshowCycle.pause = function (options) { 1247 //Eat TypeError, cycle doesn't handle pause well if options isn't defined. 1248 try{ 1249 if (options.pause_in_middle && $.fn.pause) { 1250 $('#views_slideshow_cycle_teaser_section_' + options.slideshowID).pause(); 1251 } 1252 else { 1253 $('#views_slideshow_cycle_teaser_section_' + options.slideshowID).cycle('pause'); 1254 } 1255 } 1256 catch(e){ 1257 if(!e instanceof TypeError){ 1258 throw e; 1259 } 1260 } 1261 }; 1262 1263 Drupal.viewsSlideshowCycle.play = function (options) { 1264 Drupal.settings.viewsSlideshowCycle['#views_slideshow_cycle_main_' + options.slideshowID].paused = false; 1265 if (options.pause_in_middle && $.fn.resume) { 1266 $('#views_slideshow_cycle_teaser_section_' + options.slideshowID).resume(); 1267 } 1268 else { 1269 $('#views_slideshow_cycle_teaser_section_' + options.slideshowID).cycle('resume'); 1270 } 1271 }; 1272 1273 Drupal.viewsSlideshowCycle.previousSlide = function (options) { 1274 $('#views_slideshow_cycle_teaser_section_' + options.slideshowID).cycle('prev'); 1275 }; 1276 1277 Drupal.viewsSlideshowCycle.nextSlide = function (options) { 1278 $('#views_slideshow_cycle_teaser_section_' + options.slideshowID).cycle('next'); 1279 }; 1280 1281 Drupal.viewsSlideshowCycle.goToSlide = function (options) { 1282 $('#views_slideshow_cycle_teaser_section_' + options.slideshowID).cycle(options.slideNum); 1283 }; 1284 1285 // Verify that the value is a number. 1286 function IsNumeric(sText) { 1287 var ValidChars = "0123456789"; 1288 var IsNumber=true; 1289 var Char; 1290 1291 for (var i=0; i < sText.length && IsNumber == true; i++) { 1292 Char = sText.charAt(i); 1293 if (ValidChars.indexOf(Char) == -1) { 1294 IsNumber = false; 1295 } 1296 } 1297 return IsNumber; 1298 } 1299 1300 /** 1301 * Cookie Handling Functions 1302 */ 1303 function createCookie(name,value,days) { 1304 if (days) { 1305 var date = new Date(); 1306 date.setTime(date.getTime()+(days*24*60*60*1000)); 1307 var expires = "; expires="+date.toGMTString(); 1308 } 1309 else { 1310 var expires = ""; 1311 } 1312 document.cookie = name+"="+value+expires+"; path=/"; 1313 } 1314 1315 function readCookie(name) { 1316 var nameEQ = name + "="; 1317 var ca = document.cookie.split(';'); 1318 for(var i=0;i < ca.length;i++) { 1319 var c = ca[i]; 1320 while (c.charAt(0)==' ') c = c.substring(1,c.length); 1321 if (c.indexOf(nameEQ) == 0) { 1322 return c.substring(nameEQ.length,c.length); 1323 } 1324 } 1325 return null; 1326 } 1327 1328 function eraseCookie(name) { 1329 createCookie(name,"",-1); 1330 } 1331 1332 /** 1333 * Checks to see if the slide is visible enough. 1334 * elem = element to check. 1335 * type = The way to calculate how much is visible. 1336 * amountVisible = amount that should be visible. Either in percent or px. If 1337 * it's not defined then all of the slide must be visible. 1338 * 1339 * Returns true or false 1340 */ 1341 function viewsSlideshowCycleIsVisible(elem, type, amountVisible) { 1342 // Get the top and bottom of the window; 1343 var docViewTop = $(window).scrollTop(); 1344 var docViewBottom = docViewTop + $(window).height(); 1345 var docViewLeft = $(window).scrollLeft(); 1346 var docViewRight = docViewLeft + $(window).width(); 1347 1348 // Get the top, bottom, and height of the slide; 1349 var elemTop = $(elem).offset().top; 1350 var elemHeight = $(elem).height(); 1351 var elemBottom = elemTop + elemHeight; 1352 var elemLeft = $(elem).offset().left; 1353 var elemWidth = $(elem).width(); 1354 var elemRight = elemLeft + elemWidth; 1355 var elemArea = elemHeight * elemWidth; 1356 1357 // Calculate what's hiding in the slide. 1358 var missingLeft = 0; 1359 var missingRight = 0; 1360 var missingTop = 0; 1361 var missingBottom = 0; 1362 1363 // Find out how much of the slide is missing from the left. 1364 if (elemLeft < docViewLeft) { 1365 missingLeft = docViewLeft - elemLeft; 1366 } 1367 1368 // Find out how much of the slide is missing from the right. 1369 if (elemRight > docViewRight) { 1370 missingRight = elemRight - docViewRight; 1371 } 1372 1373 // Find out how much of the slide is missing from the top. 1374 if (elemTop < docViewTop) { 1375 missingTop = docViewTop - elemTop; 1376 } 1377 1378 // Find out how much of the slide is missing from the bottom. 1379 if (elemBottom > docViewBottom) { 1380 missingBottom = elemBottom - docViewBottom; 1381 } 1382 1383 // If there is no amountVisible defined then check to see if the whole slide 1384 // is visible. 1385 if (type == 'full') { 1386 return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom) 1387 && (elemBottom <= docViewBottom) && (elemTop >= docViewTop) 1388 && (elemLeft >= docViewLeft) && (elemRight <= docViewRight) 1389 && (elemLeft <= docViewRight) && (elemRight >= docViewLeft)); 1390 } 1391 else if(type == 'vertical') { 1392 var verticalShowing = elemHeight - missingTop - missingBottom; 1393 1394 // If user specified a percentage then find out if the current shown percent 1395 // is larger than the allowed percent. 1396 // Otherwise check to see if the amount of px shown is larger than the 1397 // allotted amount. 1398 if (typeof amountVisible === 'string' && amountVisible.indexOf('%')) { 1399 return (((verticalShowing/elemHeight)*100) >= parseInt(amountVisible)); 1400 } 1401 else { 1402 return (verticalShowing >= parseInt(amountVisible)); 1403 } 1404 } 1405 else if(type == 'horizontal') { 1406 var horizontalShowing = elemWidth - missingLeft - missingRight; 1407 1408 // If user specified a percentage then find out if the current shown percent 1409 // is larger than the allowed percent. 1410 // Otherwise check to see if the amount of px shown is larger than the 1411 // allotted amount. 1412 if (typeof amountVisible === 'string' && amountVisible.indexOf('%')) { 1413 return (((horizontalShowing/elemWidth)*100) >= parseInt(amountVisible)); 1414 } 1415 else { 1416 return (horizontalShowing >= parseInt(amountVisible)); 1417 } 1418 } 1419 else if(type == 'area') { 1420 var areaShowing = (elemWidth - missingLeft - missingRight) * (elemHeight - missingTop - missingBottom); 1421 1422 // If user specified a percentage then find out if the current shown percent 1423 // is larger than the allowed percent. 1424 // Otherwise check to see if the amount of px shown is larger than the 1425 // allotted amount. 1426 if (typeof amountVisible === 'string' && amountVisible.indexOf('%')) { 1427 return (((areaShowing/elemArea)*100) >= parseInt(amountVisible)); 1428 } 1429 else { 1430 return (areaShowing >= parseInt(amountVisible)); 1431 } 1432 } 1433 } 1434})(jQuery); 1435; 1436/** 1437 * @file 1438 * Some basic behaviors and utility functions for Views. 1439 */ 1440(function ($) { 1441 1442 Drupal.Views = {}; 1443 1444 /** 1445 * JQuery UI tabs, Views integration component. 1446 */ 1447 Drupal.behaviors.viewsTabs = { 1448 attach: function (context) { 1449 if ($.viewsUi && $.viewsUi.tabs) { 1450 $('#views-tabset').once('views-processed').viewsTabs({ 1451 selectedClass: 'active' 1452 }); 1453 } 1454 1455 $('a.views-remove-link').once('views-processed').click(function(event) { 1456 var id = $(this).attr('id').replace('views-remove-link-', ''); 1457 $('#views-row-' + id).hide(); 1458 $('#views-removed-' + id).get(0).checked = true; 1459 event.preventDefault(); 1460 }); 1461 // Here is to handle display deletion 1462 // (checking in the hidden checkbox and hiding out the row). 1463 $('a.display-remove-link') 1464 .addClass('display-processed') 1465 .click(function() { 1466 var id = $(this).attr('id').replace('display-remove-link-', ''); 1467 $('#display-row-' + id).hide(); 1468 $('#display-removed-' + id).get(0).checked = true; 1469 return false;
1470 }); 1471 } 1472 }; 1473 1474 /** 1475 * Helper function to parse a querystring. 1476 */ 1477 Drupal.Views.parseQueryString = function (query) { 1478 var args = {}; 1479 var pos = query.indexOf('?'); 1480 if (pos != -1) { 1481 query = query.substring(pos + 1); 1482 } 1483 var pairs = query.split('&'); 1484 for (var i in pairs) { 1485 if (typeof(pairs[i]) == 'string') { 1486 var pair = pairs[i].split('='); 1487 // Ignore the 'q' path argument, if present. 1488 if (pair[0] != 'q' && pair[1]) { 1489 args[decodeURIComponent(pair[0].replace(/\+/g, ' '))] = decodeURIComponent(pair[1].replace(/\+/g, ' ')); 1490 } 1491 } 1492 } 1493 return args; 1494 }; 1495 1496 /** 1497 * Helper function to return a view's arguments based on a path. 1498 */ 1499 Drupal.Views.parseViewArgs = function (href, viewPath) { 1500 // Provide language prefix. 1501 if (Drupal.settings.pathPrefix) { 1502 var viewPath = Drupal.settings.pathPrefix + viewPath; 1503 } 1504 var returnObj = {}; 1505 var path = Drupal.Views.getPath(href); 1506 // Ensure there is a correct path. 1507 if (viewPath && path.substring(0, viewPath.length + 1) == viewPath + '/') { 1508 var args = decodeURIComponent(path.substring(viewPath.length + 1, path.length)); 1509 returnObj.view_args = args; 1510 returnObj.view_path = path; 1511 } 1512 return returnObj; 1513 }; 1514 1515 /** 1516 * Strip off the protocol plus domain from an href. 1517 */ 1518 Drupal.Views.pathPortion = function (href) { 1519 // Remove e.g. http://example.com if present. 1520 var protocol = window.location.protocol; 1521 if (href.substring(0, protocol.length) == protocol) { 1522 // 2 is the length of the '//' that normally follows the protocol. 1523 href = href.substring(href.indexOf('/', protocol.length + 2)); 1524 } 1525 return href; 1526 }; 1527 1528 /** 1529 * Return the Drupal path portion of an href. 1530 */ 1531 Drupal.Views.getPath = function (href) { 1532 href = Drupal.Views.pathPortion(href); 1533 href = href.substring(Drupal.settings.basePath.length, href.length); 1534 // 3 is the length of the '?q=' added to the URL without clean URLs. 1535 if (href.substring(0, 3) == '?q=') { 1536 href = href.substring(3, href.length); 1537 } 1538 var chars = ['#', '?', '&']; 1539 for (var i in chars) { 1540 if (href.indexOf(chars[i]) > -1) { 1541 href = href.substr(0, href.indexOf(chars[i])); 1542 } 1543 } 1544 return href; 1545 }; 1546 1547})(jQuery); 1548; 1549(function ($) { 1550 1551/** 1552 * A progressbar object. Initialized with the given id. Must be inserted into 1553 * the DOM afterwards through progressBar.element. 1554 * 1555 * method is the function which will perform the HTTP request to get the 1556 * progress bar state. Either "GET" or "POST". 1557 * 1558 * e.g. pb = new progressBar('myProgressBar'); 1559 * some_element.appendChild(pb.element); 1560 */ 1561Drupal.progressBar = function (id, updateCallback, method, errorCallback) { 1562 var pb = this; 1563 this.id = id; 1564 this.method = method || 'GET'; 1565 this.updateCallback = updateCallback; 1566 this.errorCallback = errorCallback; 1567 1568 // The WAI-ARIA setting aria-live="polite" will announce changes after users 1569 // have completed their current activity and not interrupt the screen reader. 1570 this.element = $('<div class="progress" aria-live="polite"></div>').attr('id', id); 1571 this.element.html('<div class="bar"><div class="filled"></div></div>' + 1572 '<div class="percentage"></div>' + 1573 '<div class="message"> </div>'); 1574}; 1575 1576/** 1577 * Set the percentage and status message for the progressbar. 1578 */ 1579Drupal.progressBar.prototype.setProgress = function (percentage, message) { 1580 if (percentage >= 0 && percentage <= 100) { 1581 $('div.filled', this.element).css('width', percentage + '%'); 1582 $('div.percentage', this.element).html(percentage + '%'); 1583 } 1584 $('div.message', this.element).html(message); 1585 if (this.updateCallback) { 1586 this.updateCallback(percentage, message, this); 1587 } 1588}; 1589 1590/** 1591 * Start monitoring progress via Ajax. 1592 */ 1593Drupal.progressBar.prototype.startMonitoring = function (uri, delay) { 1594 this.delay = delay; 1595 this.uri = uri; 1596 this.sendPing(); 1597}; 1598 1599/** 1600 * Stop monitoring progress via Ajax. 1601 */ 1602Drupal.progressBar.prototype.stopMonitoring = function () { 1603 clearTimeout(this.timer); 1604 // This allows monitoring to be stopped from within the callback. 1605 this.uri = null; 1606}; 1607 1608/** 1609 * Request progress data from server. 1610 */ 1611Drupal.progressBar.prototype.sendPing = function () { 1612 if (this.timer) { 1613 clearTimeout(this.timer); 1614 } 1615 if (this.uri) { 1616 var pb = this; 1617 // When doing a post request, you need non-null data. Otherwise a 1618 // HTTP 411 or HTTP 406 (with Apache mod_security) error may result. 1619 $.ajax({ 1620 type: this.method, 1621 url: this.uri, 1622 data: '', 1623 dataType: 'json', 1624 success: function (progress) { 1625 // Display errors. 1626 if (progress.status == 0) { 1627 pb.displayError(progress.data); 1628 return; 1629 } 1630 // Update display. 1631 pb.setProgress(progress.percentage, progress.message); 1632 // Schedule next timer.
1633 pb.timer = setTimeout(function () { pb.sendPing(); }, pb.delay); 1634 }, 1635 error: function (xmlhttp) { 1636 pb.displayError(Drupal.ajaxError(xmlhttp, pb.uri)); 1637 } 1638 }); 1639 } 1640}; 1641 1642/** 1643 * Display errors on the page. 1644 */ 1645Drupal.progressBar.prototype.displayError = function (string) { 1646 var error = $('<div class="messages error"></div>').html(string); 1647 $(this.element).before(error).hide(); 1648 1649 if (this.errorCallback) { 1650 this.errorCallback(this); 1651 } 1652}; 1653 1654})(jQuery); 1655; 1656/** 1657 * @file 1658 * Handles AJAX fetching of views, including filter submission and response. 1659 */ 1660(function ($) { 1661 1662 /** 1663 * Attaches the AJAX behavior to exposed filter forms and key views links. 1664 */ 1665 Drupal.behaviors.ViewsAjaxView = {}; 1666 Drupal.behaviors.ViewsAjaxView.attach = function() { 1667 if (Drupal.settings && Drupal.settings.views && Drupal.settings.views.ajaxViews) { 1668 $.each(Drupal.settings.views.ajaxViews, function(i, settings) { 1669 Drupal.views.instances[i] = new Drupal.views.ajaxView(settings); 1670 }); 1671 } 1672 }; 1673 1674 Drupal.views = {}; 1675 Drupal.views.instances = {}; 1676 1677 /** 1678 * JavaScript object for a certain view. 1679 */ 1680 Drupal.views.ajaxView = function(settings) { 1681 var selector = '.view-dom-id-' + settings.view_dom_id; 1682 this.$view = $(selector); 1683 1684 // If view is not present return to prevent errors. 1685 if (!this.$view.length) { 1686 return; 1687 } 1688 1689 // Retrieve the path to use for views' ajax. 1690 var ajax_path = Drupal.settings.views.ajax_path; 1691 1692 // If there are multiple views this might've ended up showing up multiple 1693 // times. 1694 if (ajax_path.constructor.toString().indexOf("Array") != -1) { 1695 ajax_path = ajax_path[0]; 1696 } 1697 1698 // Check if there are any GET parameters to send to views. 1699 var queryString = window.location.search || ''; 1700 if (queryString !== '') { 1701 // Remove the question mark and Drupal path component if any. 1702 var queryString = queryString.slice(1).replace(/q=[^&]+&?|&?render=[^&]+/, ''); 1703 if (queryString !== '') { 1704 // If there is a '?' in ajax_path, clean url are on and & should be 1705 // used to add parameters. 1706 queryString = ((/\?/.test(ajax_path)) ? '&' : '?') + queryString; 1707 } 1708 } 1709 1710 this.element_settings = { 1711 url: ajax_path + queryString, 1712 submit: settings, 1713 setClick: true, 1714 event: 'click', 1715 selector: selector, 1716 progress: { 1717 type: 'throbber' 1718 } 1719 }; 1720 1721 this.settings = settings; 1722 1723 // Add the ajax to exposed forms. 1724 this.$exposed_form = $('#views-exposed-form-' + settings.view_name.replace(/_/g, '-') + '-' + settings.view_display_id.replace(/_/g, '-')); 1725 this.$exposed_form.once(jQuery.proxy(this.attachExposedFormAjax, this)); 1726 1727 // Store Drupal.ajax objects here for all pager links. 1728 this.links = []; 1729 1730 // Add the ajax to pagers. 1731 this.$view 1732 .once(jQuery.proxy(this.attachPagerAjax, this)); 1733 1734 // Add a trigger to update this view specifically. In order to trigger a 1735 // refresh use the following code. 1736 // 1737 // @code 1738 // jQuery('.view-name').trigger('RefreshView'); 1739 // @endcode 1740 // Add a trigger to update this view specifically. 1741 var self_settings = this.element_settings; 1742 self_settings.event = 'RefreshView'; 1743 var self = this; 1744 this.$view.once('refresh', function () { 1745 self.refreshViewAjax = new Drupal.ajax(self.selector, self.$view, self_settings); 1746 }); 1747 }; 1748 1749 Drupal.views.ajaxView.prototype.attachExposedFormAjax = function() { 1750 var button = $('input[type=submit], button[type=submit], input[type=image]', this.$exposed_form); 1751 button = button[0]; 1752 1753 // Call the autocomplete submit before doing AJAX. 1754 $(button).click(function () { 1755 if (Drupal.autocompleteSubmit) { 1756 Drupal.autocompleteSubmit(); 1757 } 1758 }); 1759 1760 this.exposedFormAjax = new Drupal.ajax($(button).attr('id'), button, this.element_settings); 1761 }; 1762 1763 /** 1764 * Attach the ajax behavior to each link. 1765 */ 1766 Drupal.views.ajaxView.prototype.attachPagerAjax = function() { 1767 this.$view.find('ul.pager > li > a, ol.pager > li > a, th.views-field a, .attachment .views-summary a') 1768 .each(jQuery.proxy(this.attachPagerLinkAjax, this)); 1769 }; 1770 1771 /**
1772 * Attach the ajax behavior to a single link. 1773 */ 1774 Drupal.views.ajaxView.prototype.attachPagerLinkAjax = function(id, link) { 1775 var $link = $(link); 1776 var viewData = {}; 1777 var href = $link.attr('href'); 1778 // Don't attach to pagers inside nested views. 1779 if ($link.closest('.view')[0] !== this.$view[0] && 1780 $link.closest('.view').parent().hasClass('attachment') === false) { 1781 return; 1782 } 1783 1784 // Provide a default page if none has been set. This must be done 1785 // prior to merging with settings to avoid accidentally using the 1786 // page landed on instead of page 1. 1787 if (typeof(viewData.page) === 'undefined') { 1788 viewData.page = 0; 1789 } 1790 1791 // Construct an object using the settings defaults and then overriding 1792 // with data specific to the link. 1793 $.extend( 1794 viewData, 1795 this.settings, 1796 Drupal.Views.parseQueryString(href), 1797 // Extract argument data from the URL. 1798 Drupal.Views.parseViewArgs(href, this.settings.view_base_path) 1799 ); 1800 1801 // For anchor tags, these will go to the target of the anchor rather 1802 // than the usual location. 1803 $.extend(viewData, Drupal.Views.parseViewArgs(href, this.settings.view_base_path)); 1804 1805 // Construct an object using the element settings defaults, 1806 // then overriding submit with viewData. 1807 var pager_settings = $.extend({}, this.element_settings); 1808 pager_settings.submit = viewData; 1809 this.pagerAjax = new Drupal.ajax(false, $link, pager_settings); 1810 this.links.push(this.pagerAjax); 1811 }; 1812 1813 Drupal.ajax.prototype.commands.viewsScrollTop = function (ajax, response, status) { 1814 // Scroll to the top of the view. This will allow users 1815 // to browse newly loaded content after e.g. clicking a pager 1816 // link. 1817 var offset = $(response.selector).offset(); 1818 // We can't guarantee that the scrollable object should be 1819 // the body, as the view could be embedded in something 1820 // more complex such as a modal popup. Recurse up the DOM 1821 // and scroll the first element that has a non-zero top. 1822 var scrollTarget = response.selector; 1823 while ($(scrollTarget).scrollTop() == 0 && $(scrollTarget).parent()) { 1824 scrollTarget = $(scrollTarget).parent(); 1825 } 1826 // Only scroll upward. 1827 if (offset.top - 10 < $(scrollTarget).scrollTop()) { 1828 $(scrollTarget).animate({scrollTop: (offset.top - 10)}, 500); 1829 } 1830 }; 1831 1832})(jQuery); 1833; 1834(function ($) { 1835 Drupal.behaviors.newsletter = { 1836 attach: function (context, settings) { 1837 $("input[name='email']", context).click(function () { 1838 if ($(this).val() == Drupal.t('[email protected]')) { 1839 $(this).val(''); 1840 } 1841 }); 1842 $("input[name='email']", context).blur(function () { 1843 if ($(this).val() == '') { 1844 $(this).val(Drupal.t('[email protected]')); 1845 } 1846 }); 1847 }, 1848 1849 subscribeForm: function(data) { 1850 $.each(Drupal.settings.exposed, function(e,i) { 1851 if (!$('#edit-field-newsletter-list-' + Drupal.settings.lang + '-' + i).attr('checked')) { 1852 $('.form-item-exposed-' + i).hide(); 1853 } 1854 1855 $('#edit-field-newsletter-list-' + Drupal.settings.lang + '-' + i).click(function () { 1856 $('.form-item-exposed-' + i).toggle(); 1857 }); 1858 }); 1859 } 1860 }; 1861})(jQuery); 1862;
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.