PageSourceSearch

https://imfth.gr/sites/default/files/js/js_cuDwU-v70R0-cB0VYVlgpdlhsRZp6OH0Qlidp4SbHeQ.js

js imfth.gr collected 2026-10-02 12:57:01 UTC 131,517 bytes, 1,862 lines download raw bytes

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,'"> &#187;</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">&#8212;</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">&nbsp;</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.