Ignore:
Timestamp:
08.05.2009 23:52:31 (3 years ago)
Author:
chris
Message:
  • ZMSGallery: integrated handling for multiple galleries per page
File:
1 edited

Legend:

Unmodified
Added
Removed
  • CMESS/mediaplayer/branches/3.0/com/zms/mediaplayer/xml/mediaplayer.metaobj.xml

    r535 r536  
    1 <?xml version="1.0" encoding="utf-8"?> 
     1<?xml version="1.0" encoding="UTF-8"?> 
    22<list> 
    33<item type="dictionary"><dictionary> 
     
    867867</list> 
    868868</item> 
    869 <item key="delete_custom"></item> 
     869<item key="delete_custom"/> 
    870870<item key="edit" type="list"><list> 
    871871</list> 
    872872</item> 
    873 <item key="edit_custom"></item> 
     873<item key="edit_custom"/> 
    874874<item key="insert" type="list"><list> 
    875875</list> 
    876876</item> 
    877 <item key="insert_custom"></item> 
     877<item key="insert_custom"/> 
    878878</dictionary> 
    879879</item> 
     
    915915</item> 
    916916<item type="dictionary"><dictionary> 
     917<item key="id"><![CDATA[titlealt]]></item> 
     918<item key="mandatory" type="int">0</item> 
     919<item key="multilang" type="int">1</item> 
     920<item key="name"><![CDATA[DC.Title.Alt]]></item> 
     921<item key="repetitive" type="int">0</item> 
     922<item key="type"><![CDATA[titlealt]]></item> 
     923</dictionary> 
     924</item> 
     925<item type="dictionary"><dictionary> 
     926<item key="custom"><![CDATA[<dtml-comment>--// BO Galleriffic CSS //--</dtml-comment> 
     927 
     928div.content { 
     929        /* The display of content is enabled by a javascript generated style on the page. 
     930           This is so that the slideshow content won't display unless javascript is enabled. */ 
     931        display: none; 
     932        float:right; 
     933        width:550px;  
     934} 
     935div.content a, div.navigation a { 
     936        text-decoration: none; 
     937        color: #777; 
     938} 
     939div.content  a:focus, div.content  a:hover, div.content  a:active { 
     940        text-decoration: underline; 
     941} 
     942div.controls { 
     943        margin-top: 5px; 
     944        height: 23px; 
     945} 
     946div.controls a { 
     947        padding: 5px; 
     948} 
     949div.ss-controls { 
     950        float: left; 
     951} 
     952div.nav-controls { 
     953        float: right; 
     954} 
     955 
     956div.loader { 
     957        background-image: url('<dtml-var ZMS_ROOT>/metaobj_manager/ZMSMediaPlayerLib.loader.gif'); 
     958        background-repeat: no-repeat; 
     959        background-position: center; 
     960        width: 550px; 
     961        height: 350px 
     962} 
     963div.slideshow { 
     964        clear: both; 
     965} 
     966div.slideshow span.image-wrapper { 
     967        float: left; 
     968        padding-bottom: 12px; 
     969} 
     970div.slideshow a.advance-link { 
     971        padding: 2px; 
     972        display: block; 
     973        border: 1px solid #ccc; 
     974} 
     975div.slideshow img { 
     976        border: none; 
     977        display: block; 
     978} 
     979div.download { 
     980        float: right; 
     981} 
     982div.embox { 
     983        clear: both; 
     984        border: 1px solid #ccc; 
     985        background-color: #eee; 
     986        padding: 12px; 
     987} 
     988div.image-title { 
     989        font-weight: bold; 
     990        font-size: 1.4em; 
     991} 
     992 
     993div.image-desc { 
     994        line-height: 1.3em; 
     995        padding-top: 12px; 
     996} 
     997div.navigation { 
     998        /* The navigation style is set by a javascript generated style on the page. 
     999           This is so that the javascript specific styles won't be applied unless javascript is enabled. */ 
     1000} 
     1001ul.thumbs { 
     1002        clear: both; 
     1003        margin: 0; 
     1004        padding: 0; 
     1005} 
     1006ul.thumbs li { 
     1007        float: left; 
     1008        padding: 0; 
     1009        margin: 5px 10px 5px 0; 
     1010        list-style: none; 
     1011} 
     1012a.thumb { 
     1013        padding: 2px; 
     1014        display: block; 
     1015        border: 1px solid #ccc; 
     1016} 
     1017ul.thumbs li.selected a.thumb { 
     1018        background: #000; 
     1019} 
     1020a.thumb:focus { 
     1021        outline: none; 
     1022} 
     1023ul.thumbs img { 
     1024        border: none; 
     1025        display: block; 
     1026} 
     1027div.pagination { 
     1028        clear: both; 
     1029} 
     1030div.navigation div.top { 
     1031        margin-bottom: 12px; 
     1032        height: 11px; 
     1033} 
     1034div.navigation div.bottom { 
     1035        margin-top: 12px; 
     1036} 
     1037div.pagination a, div.pagination span.current { 
     1038        display: block; 
     1039        float: left; 
     1040        margin-right: 2px; 
     1041        padding: 4px 7px 2px 7px; 
     1042        border: 1px solid #ccc; 
     1043} 
     1044div.pagination a:hover { 
     1045        background-color: #eee; 
     1046        text-decoration: none; 
     1047} 
     1048div.pagination span.current { 
     1049        font-weight: bold; 
     1050        background-color: #000; 
     1051        border-color: #000; 
     1052        color: #fff; 
     1053} 
     1054 
     1055/* Minimal Gallery Styles */ 
     1056#thumbs-min ul.thumbs li { 
     1057        float: none; 
     1058        padding: 0; 
     1059        margin: 0; 
     1060        list-style: none; 
     1061} 
     1062 
     1063#thumbs-min a.thumb { 
     1064        padding: 0px; 
     1065        display: inline; 
     1066        border: none; 
     1067} 
     1068 
     1069#thumbs-min ul.thumbs li.selected a.thumb { 
     1070        background: inherit; 
     1071        color: #000; 
     1072        font-weight: bold; 
     1073} 
     1074 
     1075<dtml-comment>--// EO Galleriffic CSS //--</dtml-comment>]]></item> 
     1076<item key="id"><![CDATA[f_css_defaults]]></item> 
     1077<item key="mandatory" type="int">0</item> 
     1078<item key="multilang" type="int">0</item> 
     1079<item key="name"><![CDATA[Galleriffic CSS]]></item> 
     1080<item key="repetitive" type="int">0</item> 
     1081<item key="type"><![CDATA[method]]></item> 
     1082</dictionary> 
     1083</item> 
     1084<item type="dictionary"><dictionary> 
     1085<item key="custom"><![CDATA[<dtml-comment>--// BO Galleriffic JS //--</dtml-comment> 
     1086 
     1087<script type="text/javascript"> 
     1088 
     1089$(document).ready(function() { 
     1090        <dtml-in "REQUEST.get('galleriffic_js',[])"> 
     1091                <dtml-var sequence-item> 
     1092        </dtml-in> 
     1093}); 
     1094 
     1095</script> 
     1096 
     1097<dtml-comment>--// EO Galleriffic JS //--</dtml-comment> 
     1098]]></item> 
     1099<item key="id"><![CDATA[standard_html_footer]]></item> 
     1100<item key="mandatory" type="int">0</item> 
     1101<item key="multilang" type="int">0</item> 
     1102<item key="name"><![CDATA[Galleriffic JS]]></item> 
     1103<item key="repetitive" type="int">0</item> 
     1104<item key="type"><![CDATA[method]]></item> 
     1105</dictionary> 
     1106</item> 
     1107<item type="dictionary"><dictionary> 
    9171108<item key="custom"><![CDATA[<dtml-comment>--// BO bodyContentZMSCustom_ZMSGallery //--</dtml-comment> 
    9181109 
    919 <div id="gallery"> 
    920  
    921 <div id="controlsContainerSel"></div> 
    922 <div id="imageContainerSel"></div> 
    923 <div id="titleContainerSel"></div> 
    924 <div id="descContainerSel"></div> 
    925 <a id="downloadLinkSel">Download Original</a> 
    926 <div id="thumbsContainerSel"> 
    927 <ul class="noscript"> 
    928 <li> 
    929 <a href="http://localhost:8080/mediaplayer/content/e5/ZMSScreen_small_ger.jpg" original="http://localhost:8080/mediaplayer/content/e5/ZMSScreen_ger.jpg" title="{imageTitle}" description="{imageDescription}"><img src="http://localhost:8080/mediaplayer/content/e5/ZMSScreen_small_ger.jpg" alt="{imageTitle (again for graceful degradation)}" /></a> 
    930 </li> 
    931 <li> 
    932 <a href="http://localhost:8080/mediaplayer/content/e5/ZMSScreen_small_ger.jpg" original="http://localhost:8080/mediaplayer/content/e5/ZMSScreen_ger.jpg" title="{imageTitle}" description="{imageDescription}"><img src="http://localhost:8080/mediaplayer/content/e5/ZMSScreen_small_ger.jpg" alt="{imageTitle (again for graceful degradation)}" /></a> 
    933 </li> 
    934 </ul> 
     1110<dtml-if "REQUEST.get('URL','').find('/manage') < 0"> 
     1111<script type="text/javascript"> 
     1112        /* The navigation style is set and the display of content is enabled by this javascript generated style on the page. 
     1113           This is so that the javascript specific styles won't be applied unless javascript is enabled. */ 
     1114        document.write("<style type='text/css'>div.navigation{width:300px;float: left;}div.content{display:block;}</style>"); 
     1115</script> 
     1116<dtml-else> 
     1117<style> 
     1118        div.content { display:none; } 
     1119        div.caption { display:none; } 
     1120</style> 
     1121</dtml-if> 
     1122 
     1123<div id="gallery_<dtml-var id>" class="content"> 
     1124        <div id="controlsContainerSel_<dtml-var id>" class="controls"></div> 
     1125        <div id="loadingContainerSel_<dtml-var id>" class="loader"></div> 
     1126        <div id="imageContainerSel_<dtml-var id>" class="slideshow"></div> 
     1127        <div id="captionContainerSel_<dtml-var id>" class="embox"></div> 
    9351128</div> 
    9361129 
     1130<div id="thumbsContainerSel_<dtml-var id>" class="navigation"> 
     1131        <ul class="thumbs noscript"> 
     1132                <dtml-let exampleImgs=" 
     1133                        ['http://farm4.static.flickr.com/3261/2538183196_8baf9a8015', 
     1134                        'http://farm3.static.flickr.com/2404/2538171134_2f77bc00d9', 
     1135                        'http://farm3.static.flickr.com/2093/2538168854_f75e408156', 
     1136                        'http://farm4.static.flickr.com/3153/2538167690_c812461b7b', 
     1137                        'http://farm4.static.flickr.com/3150/2538167224_0a6075dd18', 
     1138                        'http://farm4.static.flickr.com/3204/2537348699_bfd38bd9fd', 
     1139                        'http://farm4.static.flickr.com/3124/2538164582_b9d18f9d1b', 
     1140                        'http://farm4.static.flickr.com/3205/2538164270_4369bbdd23', 
     1141                        'http://farm4.static.flickr.com/3211/2538163540_c2026243d2', 
     1142                        'http://farm3.static.flickr.com/2315/2537343449_f933be8036', 
     1143                        'http://farm3.static.flickr.com/2167/2082738157_436d1eb280', 
     1144                        'http://farm3.static.flickr.com/2342/2083508720_fa906f685e', 
     1145                        'http://farm3.static.flickr.com/2132/2082721339_4b06f6abba', 
     1146                        'http://farm3.static.flickr.com/2139/2083503622_5b17f16a60', 
     1147                        'http://farm3.static.flickr.com/2041/2083498578_114e117aab', 
     1148                        'http://farm3.static.flickr.com/2149/2082705341_afcdda0663', 
     1149                        'http://farm3.static.flickr.com/2014/2083478274_26775114dc', 
     1150                        'http://farm3.static.flickr.com/2194/2083464534_122e849241', 
     1151                        'http://farm4.static.flickr.com/3127/2538173236_b704e7622e', 
     1152                        'http://farm3.static.flickr.com/2375/2538172432_3343a47341', 
     1153                        'http://farm3.static.flickr.com/2353/2083476642_d00372b96f', 
     1154                        'http://farm3.static.flickr.com/2201/1502907190_7b4a2a0e34', 
     1155                        'http://farm2.static.flickr.com/1116/1380178473_fc640e097a', 
     1156                        'http://farm2.static.flickr.com/1260/930424599_e75865c0d6']"> 
     1157                <dtml-in exampleImgs> 
     1158                <li> 
     1159                        <a class="thumb" href="<dtml-var sequence-item>.jpg" title="Title #<dtml-var sequence-number>"> 
     1160                                <img src="<dtml-var sequence-item>_s.jpg" alt="Title #<dtml-var sequence-number>" /> 
     1161                        </a> 
     1162                        <div class="caption"> 
     1163                                <div class="download"> 
     1164                                        <a href="<dtml-var sequence-item>_b.jpg">Download Original</a> 
     1165                                </div> 
     1166                                <div class="image-title">Title #<dtml-var sequence-number></div> 
     1167                                <div class="image-desc">Description</div> 
     1168                        </div> 
     1169                </li> 
     1170                </dtml-in> 
     1171                </dtml-let> 
     1172        </ul> 
    9371173</div> 
    938  
    939 <script> 
    940  
    941 $(document).ready(function() { 
    942         var gallery = $('#gallery').galleriffic('#thumbsContainerSel', { 
    943                 delay:                3000, 
    944                 numThumbs:            20, 
    945                 preloadAhead:         40, // Set to -1 to preload all images 
    946                 enableTopPager:       true, 
    947                 enableBottomPager:    true, 
    948                 imageContainerSel:    '#imageContainerSel', 
    949                 controlsContainerSel: '#controlsContainerSel', 
    950                 titleContainerSel:    '#titleContainerSel', 
    951                 descContainerSel:     '#descContainerSel', 
    952                 downloadLinkSel:      '#downloadLinkSel', 
    953                 renderSSControls:     true, 
    954                 renderNavControls:    true, 
    955                 playLinkText:         'Play', 
    956                 pauseLinkText:        'Pause', 
    957                 prevLinkText:         'Previous', 
    958                 nextLinkText:         'Next', 
    959                 nextPageLinkText:     'Next &rsaquo;', 
    960                 prevPageLinkText:     '&lsaquo; Prev' 
    961         }); 
    962 }); 
    963  
     1174                 
     1175<br clear="all"> 
     1176 
     1177<dtml-if "REQUEST.get('URL','').find('/manage') < 0"> 
     1178 
     1179<script type="text/javascript"> 
     1180        /* Initially set opacity on thumbs and add 
     1181           additional styling for hover effect on thumbs */ 
     1182        var onMouseOutOpacity = 0.67; 
     1183        $('#thumbsContainerSel_<dtml-var id> ul.thumbs li').css('opacity', onMouseOutOpacity) 
     1184                .hover( 
     1185                        function () { 
     1186                                $(this).not('.selected').fadeTo('fast', 1.0); 
     1187                        },  
     1188                        function () { 
     1189                                $(this).not('.selected').fadeTo('fast', onMouseOutOpacity); 
     1190                        } 
     1191                ); 
    9641192</script> 
     1193 
     1194<dtml-if "not REQUEST.has_key('galleriffic_js')"> 
     1195        <dtml-call "REQUEST.set('galleriffic_js',[])"> 
     1196</dtml-if> 
     1197<dtml-call "galleriffic_js.append(' 
     1198    var gallery_%s = $(\'#gallery_%s\').galleriffic(\'#thumbsContainerSel_%s\', { 
     1199        delay:                  3000, 
     1200        numThumbs:              5, 
     1201        preloadAhead:           5, /* Set to -1 to preload all images */ 
     1202        enableTopPager:         false, 
     1203        enableBottomPager:      true, 
     1204        imageContainerSel:      \'#imageContainerSel_%s\', 
     1205        controlsContainerSel:   \'#controlsContainerSel_%s\', 
     1206        captionContainerSel:    \'#captionContainerSel_%s\', 
     1207        loadingContainerSel:    \'#loadingContainerSel_%s\', 
     1208        renderSSControls:       true, 
     1209        renderNavControls:      true, 
     1210        playLinkText:           \'Play\', 
     1211        pauseLinkText:          \'Pause\', 
     1212        prevLinkText:           \'Previous\', 
     1213        nextLinkText:           \'Next\', 
     1214        nextPageLinkText:       \'Next &rsaquo;\', 
     1215        prevPageLinkText:       \'&lsaquo; Prev\', 
     1216        enableHistory:          false, 
     1217        autoStart:              false, 
     1218                onChange:               function(prevIndex, nextIndex) { 
     1219                        $(\'#thumbsContainerSel_%s ul.thumbs\').children() 
     1220                                .eq(prevIndex).fadeTo(\'fast\', onMouseOutOpacity).end() 
     1221                                .eq(nextIndex).fadeTo(\'fast\', 1.0); 
     1222                }, 
     1223                onTransitionOut:        function(callback) { 
     1224                        $(\'#imageContainerSel_%s, #captionContainerSel_%s\').fadeOut(\'fast\', callback); 
     1225                }, 
     1226                onTransitionIn:         function() { 
     1227                        $(\'#imageContainerSel_%s, #captionContainerSel_%s\').fadeIn(\'fast\'); 
     1228                }, 
     1229                onPageTransitionOut:    function(callback) { 
     1230                        $(\'#thumbsContainerSel_%s ul.thumbs\').fadeOut(\'fast\', callback); 
     1231                }, 
     1232                onPageTransitionIn:     function() { 
     1233                        $(\'#thumbsContainerSel_%s ul.thumbs\').fadeIn(\'fast\'); 
     1234                } 
     1235    }); 
     1236'%(getId(),getId(),getId(),getId(),getId(),getId(),getId(),getId(),getId(),getId(),getId(),getId(),getId(),getId()))"> 
     1237 
     1238</dtml-if> 
    9651239 
    9661240<dtml-comment>--// EO bodyContentZMSCustom_ZMSGallery //--</dtml-comment>]]></item> 
     
    9821256</list> 
    9831257</item> 
    984 <item key="delete_custom"></item> 
     1258<item key="delete_custom"/> 
    9851259<item key="edit" type="list"><list> 
    9861260<item><![CDATA[ZMSAdministrator]]></item> 
     
    9891263</list> 
    9901264</item> 
    991 <item key="edit_custom"></item> 
     1265<item key="edit_custom"/> 
    9921266<item key="insert" type="list"><list> 
    9931267<item><![CDATA[ZMSAdministrator]]></item> 
     
    10371311<item type="dictionary"><dictionary> 
    10381312<item key="custom"> 
    1039 <data content_type="text/x-c" filename="jquery.galleriffic-0.7.js" type="file"><![CDATA[/* 
    1040  * jQuery Galleriffic plugin 
    1041  * 
    1042  * Copyright (c) 2008 Trent Foley 
    1043  * Licensed under the MIT License: 
    1044  *   http://www.opensource.org/licenses/mit-license.php 
    1045  * 
    1046  * Thanks to Taku Sano (Mikage Sawatari), whose history plugin I adapted to work with Galleriffic 
    1047  */ 
    1048 ;(function($) { 
    1049  
    1050         // Write noscript style 
    1051         document.write("<style type='text/css'>.noscript{display:none}</style>"); 
    1052  
    1053         var ver = 'galleriffic-0.7'; 
    1054         var galleryOffset = 0; 
    1055         var galleries = []; 
    1056         var allImages = [];      
    1057         var historyCurrentHash; 
    1058         var historyBackStack; 
    1059         var historyForwardStack; 
    1060         var isFirst = false; 
    1061         var dontCheck = false; 
    1062         var isInitialized = false; 
    1063  
    1064         function getHash() { 
    1065                 var hash = location.hash; 
    1066                 if (!hash) return -1; 
    1067                 hash = hash.replace(/^.*#/, ''); 
    1068                 if (isNaN(hash)) return -1; 
    1069                 return (+hash); 
    1070         } 
    1071  
    1072         function registerGallery(gallery) { 
    1073                 galleries.push(gallery); 
    1074                  
    1075                 // update the global offset value 
    1076                 galleryOffset += gallery.data.length; 
    1077         } 
    1078  
    1079         function getGallery(hash) { 
    1080                 for (i = 0; i < galleries.length; i++) { 
    1081                         var gallery = galleries[i]; 
    1082                         if (hash < (gallery.data.length+gallery.offset)) 
    1083                                 return gallery; 
    1084                 } 
    1085                 return 0; 
    1086         } 
    1087          
    1088         function historyCallback() { 
    1089                 // Using present location.hash always (seems to work, unlike the hash argument passed to this callback) 
    1090                 var hash = getHash(); 
    1091                 if (hash < 0) return; 
    1092  
    1093                 var gallery = getGallery(hash); 
    1094                 if (!gallery) return; 
    1095                  
    1096                 var index = hash-gallery.offset; 
    1097                 gallery.goto(index); 
    1098         } 
    1099          
    1100         function historyInit() { 
    1101                 if (isInitialized) return; 
    1102                 isInitialized = true;  
    1103  
    1104                 var current_hash = location.hash; 
    1105                  
    1106                 historyCurrentHash = current_hash; 
    1107                 if ($.browser.msie) { 
    1108                         // To stop the callback firing twice during initilization if no hash present 
    1109                         if (historyCurrentHash == '') { 
    1110                                 historyCurrentHash = '#'; 
    1111                         } 
    1112                 } else if ($.browser.safari) { 
    1113                         // etablish back/forward stacks 
    1114                         historyBackStack = []; 
    1115                         historyBackStack.length = history.length; 
    1116                         historyForwardStack = []; 
    1117                         isFirst = true; 
    1118                 } 
    1119  
    1120                 setInterval(function() { historyCheck(); }, 100); 
    1121         } 
    1122          
    1123         function historyAddHistory(hash) { 
    1124                 // This makes the looping function do something 
    1125                 historyBackStack.push(hash); 
    1126                 historyForwardStack.length = 0; // clear forwardStack (true click occured) 
    1127                 isFirst = true; 
    1128         } 
    1129          
    1130         function historyCheck() { 
    1131                 if ($.browser.safari) { 
    1132                         if (!dontCheck) { 
    1133                                 var historyDelta = history.length - historyBackStack.length; 
    1134                                  
    1135                                 if (historyDelta) { // back or forward button has been pushed 
    1136                                         isFirst = false; 
    1137                                         if (historyDelta < 0) { // back button has been pushed 
    1138                                                 // move items to forward stack 
    1139                                                 for (var i = 0; i < Math.abs(historyDelta); i++) historyForwardStack.unshift(historyBackStack.pop()); 
    1140                                         } else { // forward button has been pushed 
    1141                                                 // move items to back stack 
    1142                                                 for (var i = 0; i < historyDelta; i++) historyBackStack.push(historyForwardStack.shift()); 
    1143                                         } 
    1144                                         var cachedHash = historyBackStack[historyBackStack.length - 1]; 
    1145                                         if (cachedHash != undefined) { 
    1146                                                 historyCurrentHash = location.hash; 
    1147                                                 historyCallback(); 
    1148                                         } 
    1149                                 } else if (historyBackStack[historyBackStack.length - 1] == undefined && !isFirst) { 
    1150                                         historyCallback(); 
    1151                                         isFirst = true; 
    1152                                 } 
    1153                         } 
    1154                 } else { 
    1155                         // otherwise, check for location.hash 
    1156                         var current_hash = location.hash; 
    1157                         if(current_hash != historyCurrentHash) { 
    1158                                 historyCurrentHash = current_hash; 
    1159                                 historyCallback(); 
    1160                         } 
    1161                 } 
    1162         } 
    1163  
    1164         var defaults = { 
    1165                 delay:                3000, 
    1166                 numThumbs:            20, 
    1167                 preloadAhead:         40, // Set to -1 to preload all images 
    1168                 enableTopPager:       true, 
    1169                 enableBottomPager:    true, 
    1170                 imageContainerSel:    '', 
    1171                 thumbsContainerSel:   '', 
    1172                 controlsContainerSel: '', 
    1173                 titleContainerSel:    '', 
    1174                 descContainerSel:     '', 
    1175                 downloadLinkSel:      '', 
    1176                 renderSSControls:     true, 
    1177                 renderNavControls:    true, 
    1178                 playLinkText:         'Play', 
    1179                 pauseLinkText:        'Pause', 
    1180                 prevLinkText:         'Previous', 
    1181                 nextLinkText:         'Next', 
    1182                 nextPageLinkText:     'Next &rsaquo;', 
    1183                 prevPageLinkText:     '&lsaquo; Prev' 
    1184         }; 
    1185  
    1186         function clickHandler(gallery) { 
    1187                 gallery.pause(); 
    1188                 return false; 
    1189         } 
    1190  
    1191         $.fn.galleriffic = function(thumbsContainerSel, settings) { 
    1192                 //  Extend Gallery Object 
    1193                 $.extend(this, { 
    1194                         ver: function() { 
    1195                                 return ver; 
    1196                         }, 
    1197  
    1198                         buildDataFromThumbs: function() { 
    1199                                 this.data = []; 
    1200                                 var gallery = this; 
    1201                                 this.$thumbsContainer.find('li').each(function(i) { 
    1202                                         var $a = $(this).find('a'); 
    1203                                         var $img = $a.find('img:first'); 
    1204                                         gallery.data.push({slide:$a.attr('href'),thumb:$img.attr('src'),original:$a.attr('original'),title:$a.attr('title'),description:$a.attr('description'),hash:gallery.offset+i}); 
    1205                                 }); 
    1206                                 return this; 
    1207                         }, 
    1208  
    1209                         isPreloadComplete: false, 
    1210  
    1211                         preloadInit: function() { 
    1212                                 if (this.settings.preloadAhead == 0) return this; 
    1213                                  
    1214                                 this.preloadStartIndex = this.currentIndex; 
    1215                                 var nextIndex = this.getNextIndex(this.preloadStartIndex); 
    1216                                 return this.preloadRecursive(this.preloadStartIndex, nextIndex); 
    1217                         }, 
    1218                          
    1219                         preloadRelocate: function(index) { 
    1220                                 // By changing this startIndex, the current preload script will restart 
    1221                                 this.preloadStartIndex = index; 
    1222                                 return this; 
    1223                         }, 
    1224  
    1225                         preloadRecursive: function(startIndex, currentIndex) { 
    1226                                 // Check if startIndex has been relocated 
    1227                                 if (startIndex != this.preloadStartIndex) { 
    1228                                         var nextIndex = this.getNextIndex(this.preloadStartIndex); 
    1229                                         return this.preloadRecursive(this.preloadStartIndex, nextIndex); 
    1230                                 } 
    1231  
    1232                                 var gallery = this; 
    1233  
    1234                                 // Now check for preloadAhead count 
    1235                                 var preloadCount = currentIndex - startIndex; 
    1236                                 if (preloadCount < 0) 
    1237                                         preloadCount = this.data.length-1-startIndex+currentIndex; 
    1238                                 if (this.settings.preloadAhead >= 0 && preloadCount > this.settings.preloadAhead) { 
    1239                                         // Do this in order to keep checking for relocated start index 
    1240                                         setTimeout(function() { gallery.preloadRecursive(startIndex, currentIndex); }, 500); 
    1241                                         return this; 
    1242                                 } 
    1243  
    1244                                 var imageData = this.data[currentIndex]; 
    1245  
    1246                                 // If already loaded, continue 
    1247                                 if (imageData.$image) 
    1248                                         return this.preloadNext(startIndex, currentIndex);  
    1249                                  
    1250                                 // Preload the image 
    1251                                 var image = new Image(); 
    1252                                  
    1253                                 image.onload = function() { 
    1254                                         imageData.$image = this; 
    1255                                         gallery.preloadNext(startIndex, currentIndex); 
    1256                                 }; 
    1257  
    1258                                 image.alt = imageData.title; 
    1259                                 image.src = imageData.slide; 
    1260  
    1261                                 return this; 
    1262                         }, 
    1263                          
    1264                         preloadNext: function(startIndex, currentIndex) { 
    1265                                 var nextIndex = this.getNextIndex(currentIndex); 
    1266                                 if (nextIndex == startIndex) { 
    1267                                         this.isPreloadComplete = true; 
    1268                                 } else { 
    1269                                         // Use set timeout to free up thread 
    1270                                         var gallery = this; 
    1271                                         setTimeout(function() { gallery.preloadRecursive(startIndex, nextIndex); }, 100); 
    1272                                 } 
    1273                                 return this; 
    1274                         }, 
    1275  
    1276                         getNextIndex: function(index) { 
    1277                                 var nextIndex = index+1; 
    1278                                 if (nextIndex >= this.data.length) 
    1279                                         nextIndex = 0; 
    1280                                 return nextIndex; 
    1281                         }, 
    1282                          
    1283                         getPrevIndex: function(index) { 
    1284                                 var prevIndex = index-1; 
    1285                                 if (prevIndex < 0) 
    1286                                         prevIndex = this.data.length-1; 
    1287                                 return prevIndex; 
    1288                         }, 
    1289  
    1290                         pause: function() { 
    1291                                 if (this.interval) 
    1292                                         this.toggleSlideshow(); 
    1293                                  
    1294                                 return this; 
    1295                         }, 
    1296  
    1297                         play: function() { 
    1298                                 if (!this.interval) 
    1299                                         this.toggleSlideshow(); 
    1300                                  
    1301                                 return this; 
    1302                         }, 
    1303  
    1304                         toggleSlideshow: function() { 
    1305                                 if (this.interval) { 
    1306                                         clearInterval(this.interval); 
    1307                                         this.interval = 0; 
    1308                                          
    1309                                         if (this.$controlsContainer) { 
    1310                                                 this.$controlsContainer 
    1311                                                         .find('div.ss-controls span').removeClass().addClass('play') 
    1312                                                         .attr('title', this.settings.playLinkText) 
    1313                                                         .html(this.settings.playLinkText); 
    1314                                         } 
    1315                                 } else { 
    1316                                         this.ssAdvance(); 
    1317  
    1318                                         var gallery = this; 
    1319                                         this.interval = setInterval(function() { 
    1320                                                 gallery.ssAdvance(); 
    1321                                         }, this.settings.delay); 
    1322                                          
    1323                                         if (this.$controlsContainer) { 
    1324                                                 this.$controlsContainer 
    1325                                                         .find('div.ss-controls span').removeClass().addClass('pause') 
    1326                                                         .attr('title', this.settings.pauseLinkText) 
    1327                                                         .html(this.settings.pauseLinkText); 
    1328                                         } 
    1329                                 } 
    1330  
    1331                                 return this; 
    1332                         }, 
    1333  
    1334                         ssAdvance: function() { 
    1335                                 var nextIndex = this.getNextIndex(this.currentIndex); 
    1336                                 var nextHash = this.data[nextIndex].hash; 
    1337                                  
    1338                                 // Seems to be working on both FF and Safari 
    1339                                 location.href = '#'+nextHash; 
    1340  
    1341                                 // IE we need to explicity call goto 
    1342                                 if ($.browser.msie) { 
    1343                                         this.goto(nextIndex); 
    1344                                 } 
    1345  
    1346                                 return this; 
    1347                         }, 
    1348  
    1349                         goto: function(index) { 
    1350                                 if (index < 0) index = 0; 
    1351                                 else if (index >= this.data.length) index = this.data.length-1; 
    1352                                 this.currentIndex = index; 
    1353                                 this.preloadRelocate(index); 
    1354                                 return this.refresh(); 
    1355                         }, 
    1356                          
    1357                         refresh: function() { 
    1358                                 if (this.$imageContainer) { 
    1359                                         var imageData = this.data[this.currentIndex]; 
    1360                                         var isFading = 1; 
    1361                                         var gallery = this; 
    1362  
    1363                                         // hide img 
    1364                                         this.$imageContainer.fadeOut('fast', function() { 
    1365                                                 isFading = 0; 
    1366  
    1367                                                 // Update Controls 
    1368                                                 if (gallery.$controlsContainer) { 
    1369                                                         gallery.$controlsContainer 
    1370                                                                 .find('div.nav-controls a.prev').attr('href', '#'+gallery.data[gallery.getPrevIndex(gallery.currentIndex)].hash).end() 
    1371                                                                 .find('div.nav-controls a.next').attr('href', '#'+gallery.data[gallery.getNextIndex(gallery.currentIndex)].hash); 
    1372                                                 } 
    1373  
    1374                                                 // Replace Title 
    1375                                                 if (gallery.$titleContainer) { 
    1376                                                         gallery.$titleContainer.empty().html(imageData.title); 
    1377                                                 } 
    1378  
    1379                                                 // Replace Description 
    1380                                                 if (gallery.$descContainer) { 
    1381                                                         gallery.$descContainer.empty().html(imageData.description); 
    1382                                                 } 
    1383  
    1384                                                 // Update Download Link 
    1385                                                 if (gallery.$downloadLink) { 
    1386                                                         gallery.$downloadLink.attr('href', imageData.original); 
    1387                                                 } 
    1388  
    1389                                                 if (imageData.$image) { 
    1390                                                         gallery.buildImage(imageData.$image); 
    1391                                                 } 
    1392                                         }); 
    1393                                          
    1394                                         if (this.onFadeOut) this.onFadeOut(); 
    1395  
    1396                                         if (!imageData.$image) { 
    1397                                                 var image = new Image(); 
    1398                                                 // Wire up mainImage onload event 
    1399                                                 image.onload = function() { 
    1400                                                         imageData.$image = this; 
    1401  
    1402                                                         if (!isFading) { 
    1403                                                                 gallery.buildImage(imageData.$image); 
    1404                                                         } 
    1405                                                 }; 
    1406  
    1407                                                 // set alt and src 
    1408                                                 image.alt = imageData.title; 
    1409                                                 image.src = imageData.slide; 
    1410                                         } 
    1411  
    1412                                         // This causes the preloader (if still running) to relocate out from the currentIndex 
    1413                                         this.relocatePreload = true; 
    1414                                 } 
    1415  
    1416                                 return this.syncThumbs(); 
    1417                         }, 
    1418                          
    1419                         buildImage: function(image) { 
    1420                                 if (this.$imageContainer) { 
    1421                                         this.$imageContainer.empty(); 
    1422  
    1423                                         var gallery = this; 
    1424  
    1425                                         // Setup image 
    1426                                         this.$imageContainer 
    1427                                                 .append('<span class="image-wrapper"><a class="advance-link" rel="history" href="#'+this.data[this.getNextIndex(this.currentIndex)].hash+'" title="'+image.alt+'"></a></span>') 
    1428                                                 .find('a') 
    1429                                                 .append(image) 
    1430                                                 .click(function() { clickHandler(gallery); }) 
    1431                                                 .end() 
    1432                                                 .fadeIn('fast'); 
    1433                                          
    1434                                         if (this.onFadeIn) this.onFadeIn(); 
    1435                                 } 
    1436  
    1437                                 return this; 
    1438                         }, 
    1439  
    1440                         syncThumbs: function() { 
    1441                         if (this.$thumbsContainer) { 
    1442                                         var page = Math.floor(this.currentIndex / this.settings.numThumbs); 
    1443                                 if (page != this.currentPage) { 
    1444                                     this.currentPage = page; 
    1445                                     this.updateThumbs(); 
    1446                                         } else { 
    1447                                                 var selectedThumb = this.currentIndex % this.settings.numThumbs; 
    1448  
    1449                                                 // Remove existing selected class and add selected class to new thumb 
    1450                                                 this.$thumbsContainer 
    1451                                                         .find('ul.thumbs li.selected') 
    1452                                                         .removeClass('selected') 
    1453                                                         .end() 
    1454                                                         //.find('ul.thumbs a[href="#'+this.currentIndex+'"]') 
    1455                                                         .find('ul.thumbs li').eq(selectedThumb) 
    1456                                                         .addClass('selected'); 
    1457                                         } 
    1458                                 } 
    1459  
    1460                                 return this; 
    1461                         }, 
    1462  
    1463                         updateThumbs: function() { 
    1464                                 if (this.$thumbsContainer) { 
    1465                                         // Initialize currentPage to first page 
    1466                                         if (this.currentPage < 0) 
    1467                                                 this.currentPage = 0; 
    1468                                  
    1469                                         var startIndex = this.currentPage*this.settings.numThumbs; 
    1470                                 var stopIndex = startIndex+this.settings.numThumbs-1; 
    1471                                 if (stopIndex >= this.data.length) 
    1472                                                 stopIndex = this.data.length-1; 
    1473  
    1474                                         var needsPagination = this.data.length > this.settings.numThumbs; 
    1475  
    1476                                         // Clear thumbs container 
    1477                                         this.$thumbsContainer.empty(); 
    1478                                  
    1479                                         // Rebuild top pager 
    1480                                         this.$thumbsContainer.append('<div class="top pagination"></div>'); 
    1481                                         if (needsPagination && this.settings.enableTopPager) { 
    1482                                                 this.buildPager(this.$thumbsContainer.find('div.top')); 
    1483                                         } 
    1484  
    1485                                         // Rebuild thumbs 
    1486                                         var $ulThumbs = this.$thumbsContainer.append('<ul class="thumbs"></ul>').find('ul.thumbs'); 
    1487                                         for (i=startIndex; i<=stopIndex; i++) { 
    1488                                                 var selected = ''; 
    1489                                          
    1490                                                 if (i==this.currentIndex) 
    1491                                                         selected = ' class="selected"'; 
    1492                                                  
    1493                                                 var imageData = this.data[i]; 
    1494                                                 $ulThumbs.append('<li'+selected+'><a rel="history" href="#'+imageData.hash+'" title="'+imageData.title+'"><img src="'+imageData.thumb+'" alt="'+imageData.title+'" /></a></li>'); 
    1495                                         } 
    1496  
    1497                                         // Rebuild bottom pager 
    1498                                         if (needsPagination && this.settings.enableBottomPager) { 
    1499                                                 this.$thumbsContainer.append('<div class="bottom pagination"></div>'); 
    1500                                                 this.buildPager(this.$thumbsContainer.find('div.bottom')); 
    1501                                         } 
    1502  
    1503                                         // Add click handlers 
    1504                                         var gallery = this; 
    1505                                         this.$thumbsContainer.find('a[@rel="history"]').click(function() { clickHandler(gallery); }); 
    1506                                 } 
    1507  
    1508                                 return this; 
    1509                         }, 
    1510  
    1511                         buildPager: function(pager) { 
    1512                                 var startIndex = this.currentPage*this.settings.numThumbs; 
    1513                                  
    1514                                 // Prev Page Link 
    1515                                 if (this.currentPage > 0) { 
    1516                                         var prevPage = startIndex - this.settings.numThumbs; 
    1517                                         pager.append('<a rel="history" href="#'+this.data[prevPage].hash+'" title="'+this.settings.prevPageLinkText+'">'+this.settings.prevPageLinkText+'</a>'); 
    1518                                 } 
    1519                                  
    1520                                 // Page Index Links 
    1521                                 for (i=this.currentPage-3; i<=this.currentPage+3; i++) { 
    1522                                         var pageNum = i+1; 
    1523                                          
    1524                                         if (i == this.currentPage) 
    1525                                                 pager.append('<strong>'+pageNum+'</strong>'); 
    1526                                         else { 
    1527                                                 var imageIndex = i*this.settings.numThumbs; 
    1528                                                 if (i>=0 && i<this.numPages) { 
    1529                                                         pager.append('<a rel="history" href="#'+this.data[imageIndex].hash+'" title="'+pageNum+'">'+pageNum+'</a>'); 
    1530                                                 } 
    1531                                         } 
    1532                                 } 
    1533                                  
    1534                                 // Next Page Link 
    1535                                 var nextPage = startIndex+this.settings.numThumbs; 
    1536                                 if (nextPage < this.data.length) { 
    1537                                         pager.append('<a rel="history" href="#'+this.data[nextPage].hash+'" title="'+this.settings.nextPageLinkText+'">'+this.settings.nextPageLinkText+'</a>'); 
    1538                                 } 
    1539                                  
    1540                                 return this; 
    1541                         } 
    1542                 }); 
    1543  
    1544                 // Now initialize the gallery 
    1545                 this.settings = $.extend({}, defaults, settings); 
    1546  
    1547                 if (this.interval) 
    1548                         clearInterval(this.interval); 
    1549  
    1550                 this.interval = 0; 
    1551                  
    1552                 if (this.settings.imageContainerSel) this.$imageContainer = $(this.settings.imageContainerSel); 
    1553                 if (this.settings.thumbsContainerSel) this.$thumbsContainer = $(this.settings.thumbsContainerSel); 
    1554                 if (this.settings.titleContainerSel) this.$titleContainer = $(this.settings.titleContainerSel); 
    1555                 if (this.settings.descContainerSel) this.$descContainer = $(this.settings.descContainerSel); 
    1556                 if (this.settings.downloadLinkSel) this.$downloadLink = $(this.settings.downloadLinkSel); 
    1557  
    1558                 // Set the hash index offset for this gallery 
    1559                 this.offset = galleryOffset; 
    1560  
    1561                 // This is for backward compatibility 
    1562                 if (thumbsContainerSel instanceof Array) { 
    1563                         this.data = thumbsContainerSel; 
    1564                 } else { 
    1565                         this.$thumbsContainer = $(thumbsContainerSel); 
    1566                         this.buildDataFromThumbs(); 
    1567                 } 
    1568                  
    1569                 // Add this gallery to the global galleries array 
    1570                 registerGallery(this); 
    1571  
    1572                 this.numPages = Math.ceil(this.data.length/this.settings.numThumbs); 
    1573                 this.currentPage = -1; 
    1574                 this.currentIndex = 0; 
    1575                 var gallery = this; 
    1576  
    1577                 // Setup controls 
    1578                 if (this.settings.controlsContainerSel) { 
    1579                         this.$controlsContainer = $(this.settings.controlsContainerSel).empty(); 
    1580                          
    1581                         if (this.settings.renderSSControls) { 
    1582                                 this.$controlsContainer 
    1583                                         .append('<div class="ss-controls"><span class="play" title="'+this.settings.playLinkText+'">'+this.settings.playLinkText+'</span></div>') 
    1584                                         .find('div.ss-controls span') 
    1585                                         .click(function() { gallery.toggleSlideshow(); }); 
    1586                         } 
    1587                  
    1588                         if (this.settings.renderNavControls) {                                   
    1589                                 this.$controlsContainer 
    1590                                         .append('<div class="nav-controls"><a class="prev" rel="history" title="'+this.settings.prevLinkText+'">'+this.settings.prevLinkText+'</a><a class="next" rel="history" title="Next">'+this.settings.nextLinkText+'</a></div>') 
    1591                                         .find('a[@rel="history"]') 
    1592                                         .click(function() { clickHandler(gallery); }); 
    1593                         } 
    1594                 } 
    1595  
    1596                 // Initialize history only once when the first gallery on the page is initialized 
    1597                 historyInit(); 
    1598  
    1599                 // Build image 
    1600                 var hash = getHash(); 
    1601                 var hashGallery = (hash >= 0) ? getGallery(hash) : 0; 
    1602                 var gotoIndex = (hashGallery && this == hashGallery) ? (hash-this.offset) : 0; 
    1603                 this.goto(gotoIndex); 
    1604  
    1605                 // Kickoff Image Preloader after 1 second 
    1606                 setTimeout(function() { gallery.preloadInit(); }, 1000); 
    1607                  
    1608                 return this; 
    1609         }; 
    1610  
    1611 })(jQuery); 
    1612 ]]></data></item> 
     1313<data content_type="application/x-javascript" filename="jquery.galleriffic.min.js" type="file">2f2f202863292032303038205472656e7420466f6c65790a3b2866756e6374696f6e2824297b646f63756d656e742e777269746528223c7374796c6520747970653d27746578742f637373273e2e6e6f7363726970747b646973706c61793a6e6f6e657d3c2f7374796c653e22293b766172207665723d2767616c6c657269666669632d312e30273b7661722067616c6c6572794f66667365743d303b7661722067616c6c65726965733d5b5d3b76617220616c6c496d616765733d5b5d3b76617220686973746f727943757272656e74486173683b76617220686973746f72794261636b537461636b3b76617220686973746f7279466f7277617264537461636b3b76617220697346697273743d66616c73653b76617220646f6e74436865636b3d66616c73653b766172206973496e697469616c697a65643d66616c73653b66756e6374696f6e206765744861736846726f6d537472696e672868617368297b69662821686173682972657475726e2d313b686173683d686173682e7265706c616365282f5e2e2a232f2c2727293b69662869734e614e2868617368292972657475726e2d313b72657475726e282b68617368293b7d0a66756e6374696f6e206765744861736828297b76617220686173683d6c6f636174696f6e2e686173683b72657475726e206765744861736846726f6d537472696e672868617368293b7d0a66756e6374696f6e20726567697374657247616c6c6572792867616c6c657279297b67616c6c65726965732e707573682867616c6c657279293b67616c6c6572794f66667365742b3d67616c6c6572792e646174612e6c656e6774683b7d0a66756e6374696f6e2067657447616c6c6572792868617368297b666f7228693d303b693c67616c6c65726965732e6c656e6774683b692b2b297b7661722067616c6c6572793d67616c6c65726965735b695d3b696628686173683c2867616c6c6572792e646174612e6c656e6774682b67616c6c6572792e6f666673657429290a72657475726e2067616c6c6572793b7d0a72657475726e20303b7d0a66756e6374696f6e20676574496e6465782867616c6c6572792c68617368297b72657475726e20686173682d67616c6c6572792e6f66667365743b7d0a66756e6374696f6e20636c69636b48616e646c657228652c67616c6c6572792c6c696e6b297b67616c6c6572792e706175736528293b6966282167616c6c6572792e73657474696e67732e656e61626c65486973746f7279297b76617220686173683d6765744861736846726f6d537472696e67286c696e6b2e68726566293b696628686173683e3d30297b76617220696e6465783d676574496e6465782867616c6c6572792c68617368293b696628696e6465783e3d30290a67616c6c6572792e676f746f28696e646578293b7d0a652e70726576656e7444656661756c7428293b7d7d0a66756e6374696f6e20686973746f727943616c6c6261636b28297b76617220686173683d6765744861736828293b696628686173683c302972657475726e3b7661722067616c6c6572793d67657447616c6c6572792868617368293b6966282167616c6c6572792972657475726e3b76617220696e6465783d686173682d67616c6c6572792e6f66667365743b67616c6c6572792e676f746f28696e646578293b7d0a66756e6374696f6e20686973746f7279496e697428297b6966286973496e697469616c697a65642972657475726e3b6973496e697469616c697a65643d747275653b7661722063757272656e745f686173683d6c6f636174696f6e2e686173683b686973746f727943757272656e74486173683d63757272656e745f686173683b696628242e62726f777365722e6d736965297b696628686973746f727943757272656e74486173683d3d2727297b686973746f727943757272656e74486173683d2723273b7d7d656c736520696628242e62726f777365722e736166617269297b686973746f72794261636b537461636b3d5b5d3b686973746f72794261636b537461636b2e6c656e6774683d686973746f72792e6c656e6774683b686973746f7279466f7277617264537461636b3d5b5d3b697346697273743d747275653b7d0a736574496e74657276616c2866756e6374696f6e28297b686973746f7279436865636b28293b7d2c313030293b7d0a66756e6374696f6e20686973746f7279416464486973746f72792868617368297b686973746f72794261636b537461636b2e707573682868617368293b686973746f7279466f7277617264537461636b2e6c656e6774683d303b697346697273743d747275653b7d0a66756e6374696f6e20686973746f7279436865636b28297b696628242e62726f777365722e736166617269297b69662821646f6e74436865636b297b76617220686973746f727944656c74613d686973746f72792e6c656e6774682d686973746f72794261636b537461636b2e6c656e6774683b696628686973746f727944656c7461297b697346697273743d66616c73653b696628686973746f727944656c74613c30297b666f722876617220693d303b693c4d6174682e61627328686973746f727944656c7461293b692b2b29686973746f7279466f7277617264537461636b2e756e736869667428686973746f72794261636b537461636b2e706f702829293b7d656c73657b666f722876617220693d303b693c686973746f727944656c74613b692b2b29686973746f72794261636b537461636b2e7075736828686973746f7279466f7277617264537461636b2e73686966742829293b7d0a76617220636163686564486173683d686973746f72794261636b537461636b5b686973746f72794261636b537461636b2e6c656e6774682d315d3b69662863616368656448617368213d756e646566696e6564297b686973746f727943757272656e74486173683d6c6f636174696f6e2e686173683b686973746f727943616c6c6261636b28293b7d7d656c736520696628686973746f72794261636b537461636b5b686973746f72794261636b537461636b2e6c656e6774682d315d3d3d756e646566696e656426262169734669727374297b686973746f727943616c6c6261636b28293b697346697273743d747275653b7d7d7d656c73657b7661722063757272656e745f686173683d6c6f636174696f6e2e686173683b69662863757272656e745f68617368213d686973746f727943757272656e7448617368297b686973746f727943757272656e74486173683d63757272656e745f686173683b686973746f727943616c6c6261636b28293b7d7d7d0a7661722064656661756c74733d7b64656c61793a333030302c6e756d5468756d62733a32302c7072656c6f616441686561643a34302c656e61626c65546f7050616765723a66616c73652c656e61626c65426f74746f6d50616765723a747275652c696d616765436f6e7461696e657253656c3a27272c63617074696f6e436f6e7461696e657253656c3a27272c636f6e74726f6c73436f6e7461696e657253656c3a27272c6c6f6164696e67436f6e7461696e657253656c3a27272c72656e6465725353436f6e74726f6c733a747275652c72656e6465724e6176436f6e74726f6c733a747275652c706c61794c696e6b546578743a27506c6179272c70617573654c696e6b546578743a275061757365272c707265764c696e6b546578743a2750726576696f7573272c6e6578744c696e6b546578743a274e657874272c6e657874506167654c696e6b546578743a274e657874202672736171756f3b272c70726576506167654c696e6b546578743a27266c736171756f3b2050726576272c656e61626c65486973746f72793a66616c73652c6175746f53746172743a66616c73652c6f6e4368616e67653a756e646566696e65642c6f6e5472616e736974696f6e4f75743a756e646566696e65642c6f6e5472616e736974696f6e496e3a756e646566696e65642c6f6e506167655472616e736974696f6e4f75743a756e646566696e65642c6f6e506167655472616e736974696f6e496e3a756e646566696e65647d3b242e666e2e67616c6c657269666669633d66756e6374696f6e287468756d6273436f6e7461696e657253656c2c73657474696e6773297b242e657874656e6428746869732c7b7665723a66756e6374696f6e28297b72657475726e207665723b7d2c696e697469616c697a655468756d62733a66756e6374696f6e28297b746869732e646174613d5b5d3b7661722067616c6c6572793d746869733b746869732e247468756d6273436f6e7461696e65722e66696e642827756c2e7468756d6273203e206c6927292e656163682866756e6374696f6e2869297b76617220246c693d242874686973293b7661722024615468756d623d246c692e66696e642827612e7468756d6227293b76617220686173683d67616c6c6572792e6f66667365742b693b67616c6c6572792e646174612e70757368287b7469746c653a24615468756d622e6174747228277469746c6527292c736c69646555726c3a24615468756d622e6174747228276872656627292c63617074696f6e3a246c692e66696e6428272e63617074696f6e27292e72656d6f766528292c686173683a686173687d293b24615468756d622e61747472282772656c272c27686973746f727927293b24615468756d622e61747472282768726566272c2723272b68617368293b24615468756d622e636c69636b2866756e6374696f6e2865297b636c69636b48616e646c657228652c67616c6c6572792c74686973293b7d293b7d293b72657475726e20746869733b7d2c69735072656c6f6164436f6d706c6574653a66616c73652c7072656c6f6164496e69743a66756e6374696f6e28297b696628746869732e73657474696e67732e7072656c6f616441686561643d3d302972657475726e20746869733b746869732e7072656c6f61645374617274496e6465783d746869732e63757272656e74496e6465783b766172206e657874496e6465783d746869732e6765744e657874496e64657828746869732e7072656c6f61645374617274496e646578293b72657475726e20746869732e7072656c6f616452656375727369766528746869732e7072656c6f61645374617274496e6465782c6e657874496e646578293b7d2c7072656c6f616452656c6f636174653a66756e6374696f6e28696e646578297b746869732e7072656c6f61645374617274496e6465783d696e6465783b72657475726e20746869733b7d2c7072656c6f61645265637572736976653a66756e6374696f6e287374617274496e6465782c63757272656e74496e646578297b6966287374617274496e646578213d746869732e7072656c6f61645374617274496e646578297b766172206e657874496e6465783d746869732e6765744e657874496e64657828746869732e7072656c6f61645374617274496e646578293b72657475726e20746869732e7072656c6f616452656375727369766528746869732e7072656c6f61645374617274496e6465782c6e657874496e646578293b7d0a7661722067616c6c6572793d746869733b766172207072656c6f6164436f756e743d63757272656e74496e6465782d7374617274496e6465783b6966287072656c6f6164436f756e743c30290a7072656c6f6164436f756e743d746869732e646174612e6c656e6774682d312d7374617274496e6465782b63757272656e74496e6465783b696628746869732e73657474696e67732e7072656c6f616441686561643e3d3026267072656c6f6164436f756e743e746869732e73657474696e67732e7072656c6f61644168656164297b73657454696d656f75742866756e6374696f6e28297b67616c6c6572792e7072656c6f6164526563757273697665287374617274496e6465782c63757272656e74496e646578293b7d2c353030293b72657475726e20746869733b7d0a76617220696d616765446174613d746869732e646174615b63757272656e74496e6465785d3b69662821696d61676544617461290a72657475726e20746869733b696628696d616765446174612e696d616765290a72657475726e20746869732e7072656c6f61644e657874287374617274496e6465782c63757272656e74496e646578293b76617220696d6167653d6e657720496d61676528293b696d6167652e6f6e6c6f61643d66756e6374696f6e28297b696d616765446174612e696d6167653d746869733b67616c6c6572792e7072656c6f61644e657874287374617274496e6465782c63757272656e74496e646578293b7d3b696d6167652e616c743d696d616765446174612e7469746c653b696d6167652e7372633d696d616765446174612e736c69646555726c3b72657475726e20746869733b7d2c7072656c6f61644e6578743a66756e6374696f6e287374617274496e6465782c63757272656e74496e646578297b766172206e657874496e6465783d746869732e6765744e657874496e6465782863757272656e74496e646578293b6966286e657874496e6465783d3d7374617274496e646578297b746869732e69735072656c6f6164436f6d706c6574653d747275653b7d656c73657b7661722067616c6c6572793d746869733b73657454696d656f75742866756e6374696f6e28297b67616c6c6572792e7072656c6f6164526563757273697665287374617274496e6465782c6e657874496e646578293b7d2c313030293b7d0a72657475726e20746869733b7d2c6765744e657874496e6465783a66756e6374696f6e28696e646578297b766172206e657874496e6465783d696e6465782b313b6966286e657874496e6465783e3d746869732e646174612e6c656e677468290a6e657874496e6465783d303b72657475726e206e657874496e6465783b7d2c67657450726576496e6465783a66756e6374696f6e28696e646578297b7661722070726576496e6465783d696e6465782d313b69662870726576496e6465783c30290a70726576496e6465783d746869732e646174612e6c656e6774682d313b72657475726e2070726576496e6465783b7d2c70617573653a66756e6374696f6e28297b696628746869732e696e74657276616c290a746869732e746f67676c65536c69646573686f7728293b72657475726e20746869733b7d2c706c61793a66756e6374696f6e28297b69662821746869732e696e74657276616c290a746869732e746f67676c65536c69646573686f7728293b72657475726e20746869733b7d2c746f67676c65536c69646573686f773a66756e6374696f6e28297b696628746869732e696e74657276616c297b636c656172496e74657276616c28746869732e696e74657276616c293b746869732e696e74657276616c3d303b696628746869732e24636f6e74726f6c73436f6e7461696e6572297b746869732e24636f6e74726f6c73436f6e7461696e65722e66696e6428276469762e73732d636f6e74726f6c73206127292e72656d6f7665436c61737328292e616464436c6173732827706c617927292e6174747228277469746c65272c746869732e73657474696e67732e706c61794c696e6b54657874292e61747472282768726566272c2723706c617927292e68746d6c28746869732e73657474696e67732e706c61794c696e6b54657874293b7d7d656c73657b746869732e7373416476616e636528293b7661722067616c6c6572793d746869733b746869732e696e74657276616c3d736574496e74657276616c2866756e6374696f6e28297b67616c6c6572792e7373416476616e636528293b7d2c746869732e73657474696e67732e64656c6179293b696628746869732e24636f6e74726f6c73436f6e7461696e6572297b746869732e24636f6e74726f6c73436f6e7461696e65722e66696e6428276469762e73732d636f6e74726f6c73206127292e72656d6f7665436c61737328292e616464436c6173732827706175736527292e6174747228277469746c65272c746869732e73657474696e67732e70617573654c696e6b54657874292e61747472282768726566272c2723706175736527292e68746d6c28746869732e73657474696e67732e70617573654c696e6b54657874293b7d7d0a72657475726e20746869733b7d2c7373416476616e63653a66756e6374696f6e28297b766172206e657874496e6465783d746869732e6765744e657874496e64657828746869732e63757272656e74496e646578293b766172206e657874486173683d746869732e646174615b6e657874496e6465785d2e686173683b696628746869732e73657474696e67732e656e61626c65486973746f7279290a6c6f636174696f6e2e687265663d2723272b6e657874486173683b656c73650a746869732e676f746f286e657874496e646578293b72657475726e20746869733b7d2c676f746f3a66756e6374696f6e28696e646578297b696628696e6465783c3029696e6465783d303b656c736520696628696e6465783e3d746869732e646174612e6c656e67746829696e6465783d746869732e646174612e6c656e6774682d313b696628746869732e73657474696e67732e6f6e4368616e6765290a746869732e73657474696e67732e6f6e4368616e676528746869732e63757272656e74496e6465782c696e646578293b746869732e63757272656e74496e6465783d696e6465783b746869732e7072656c6f616452656c6f6361746528696e646578293b72657475726e20746869732e7265667265736828293b7d2c726566726573683a66756e6374696f6e28297b76617220696d616765446174613d746869732e646174615b746869732e63757272656e74496e6465785d3b69662821696d61676544617461290a72657475726e20746869733b7661722069735472616e736974696f6e696e673d747275653b7661722067616c6c6572793d746869733b766172207472616e736974696f6e4f757443616c6c6261636b3d66756e6374696f6e28297b69735472616e736974696f6e696e673d66616c73653b69662867616c6c6572792e24636f6e74726f6c73436f6e7461696e6572297b67616c6c6572792e24636f6e74726f6c73436f6e7461696e65722e66696e6428276469762e6e61762d636f6e74726f6c7320612e7072657627292e61747472282768726566272c2723272b67616c6c6572792e646174615b67616c6c6572792e67657450726576496e6465782867616c6c6572792e63757272656e74496e646578295d2e68617368292e656e6428292e66696e6428276469762e6e61762d636f6e74726f6c7320612e6e65787427292e61747472282768726566272c2723272b67616c6c6572792e646174615b67616c6c6572792e6765744e657874496e6465782867616c6c6572792e63757272656e74496e646578295d2e68617368293b7d0a76617220696d616765446174613d67616c6c6572792e646174615b67616c6c6572792e63757272656e74496e6465785d3b69662867616c6c6572792e2463617074696f6e436f6e7461696e6572297b67616c6c6572792e2463617074696f6e436f6e7461696e65722e656d70747928292e617070656e6428696d616765446174612e63617074696f6e293b7d0a696628696d616765446174612e696d616765297b67616c6c6572792e6275696c64496d61676528696d616765446174612e696d616765293b7d656c73657b69662867616c6c6572792e246c6f6164696e67436f6e7461696e6572297b67616c6c6572792e246c6f6164696e67436f6e7461696e65722e73686f7728293b7d7d7d0a696628746869732e73657474696e67732e6f6e5472616e736974696f6e4f7574297b746869732e73657474696e67732e6f6e5472616e736974696f6e4f7574287472616e736974696f6e4f757443616c6c6261636b293b7d656c73657b746869732e247472616e736974696f6e436f6e7461696e6572732e6869646528293b7472616e736974696f6e4f757443616c6c6261636b28293b7d0a69662821696d616765446174612e696d616765297b76617220696d6167653d6e657720496d61676528293b696d6167652e6f6e6c6f61643d66756e6374696f6e28297b696d616765446174612e696d6167653d746869733b6966282169735472616e736974696f6e696e67297b67616c6c6572792e6275696c64496d61676528696d616765446174612e696d616765293b7d7d3b696d6167652e616c743d696d616765446174612e7469746c653b696d6167652e7372633d696d616765446174612e736c69646555726c3b7d0a746869732e72656c6f636174655072656c6f61643d747275653b72657475726e20746869732e73796e635468756d627328293b7d2c6275696c64496d6167653a66756e6374696f6e28696d616765297b696628746869732e24696d616765436f6e7461696e6572297b746869732e24696d616765436f6e7461696e65722e656d70747928293b7661722067616c6c6572793d746869733b766172206e657874496e6465783d746869732e6765744e657874496e64657828746869732e63757272656e74496e646578293b696628746869732e246c6f6164696e67436f6e7461696e6572297b746869732e246c6f6164696e67436f6e7461696e65722e6869646528293b7d0a746869732e24696d616765436f6e7461696e65722e617070656e6428273c7370616e20636c6173733d22696d6167652d77726170706572223e3c6120636c6173733d22616476616e63652d6c696e6b222072656c3d22686973746f72792220687265663d2223272b746869732e646174615b6e657874496e6465785d2e686173682b2722207469746c653d22272b696d6167652e616c742b27223e3c2f613e3c2f7370616e3e27292e66696e6428276127292e617070656e6428696d616765292e636c69636b2866756e6374696f6e2865297b636c69636b48616e646c657228652c67616c6c6572792c74686973293b7d293b7d0a696628746869732e73657474696e67732e6f6e5472616e736974696f6e496e290a746869732e73657474696e67732e6f6e5472616e736974696f6e496e28293b656c73650a746869732e247472616e736974696f6e436f6e7461696e6572732e73686f7728293b72657475726e20746869733b7d2c73796e635468756d62733a66756e6374696f6e28297b696628746869732e247468756d6273436f6e7461696e6572297b76617220706167653d4d6174682e666c6f6f7228746869732e63757272656e74496e6465782f746869732e73657474696e67732e6e756d5468756d6273293b69662870616765213d746869732e63757272656e7450616765297b746869732e63757272656e74506167653d706167653b746869732e7570646174655468756d627328293b7d0a76617220247468756d62733d746869732e247468756d6273436f6e7461696e65722e66696e642827756c2e7468756d627327292e6368696c6472656e28293b247468756d62732e66696c74657228272e73656c656374656427292e72656d6f7665436c617373282773656c656374656427293b247468756d62732e657128746869732e63757272656e74496e646578292e616464436c617373282773656c656374656427293b7d0a72657475726e20746869733b7d2c7570646174655468756d62733a66756e6374696f6e28297b7661722067616c6c6572793d746869733b766172207472616e736974696f6e4f757443616c6c6261636b3d66756e6374696f6e28297b67616c6c6572792e72656275696c645468756d627328293b69662867616c6c6572792e73657474696e67732e6f6e506167655472616e736974696f6e496e290a67616c6c6572792e73657474696e67732e6f6e506167655472616e736974696f6e496e28293b656c73650a67616c6c6572792e247468756d6273436f6e7461696e65722e73686f7728293b7d3b696628746869732e73657474696e67732e6f6e506167655472616e736974696f6e4f7574297b746869732e73657474696e67732e6f6e506167655472616e736974696f6e4f7574287472616e736974696f6e4f757443616c6c6261636b293b7d656c73657b746869732e247468756d6273436f6e7461696e65722e6869646528293b7472616e736974696f6e4f757443616c6c6261636b28293b7d0a72657475726e20746869733b7d2c72656275696c645468756d62733a66756e6374696f6e28297b696628746869732e63757272656e74506167653c30290a746869732e63757272656e74506167653d303b766172206e65656473506167696e6174696f6e3d746869732e646174612e6c656e6774683e746869732e73657474696e67732e6e756d5468756d62733b7661722024746f7050616765723d746869732e247468756d6273436f6e7461696e65722e66696e6428276469762e746f7027293b69662824746f7050616765722e6c656e6774683d3d30290a24746f7050616765723d746869732e247468756d6273436f6e7461696e65722e70726570656e6428273c64697620636c6173733d22746f7020706167696e6174696f6e223e3c2f6469763e27292e66696e6428276469762e746f7027293b6966286e65656473506167696e6174696f6e2626746869732e73657474696e67732e656e61626c65546f705061676572297b24746f7050616765722e656d70747928293b746869732e6275696c6450616765722824746f705061676572293b7d0a6966286e65656473506167696e6174696f6e2626746869732e73657474696e67732e656e61626c65426f74746f6d5061676572297b7661722024626f74746f6d50616765723d746869732e247468756d6273436f6e7461696e65722e66696e6428276469762e626f74746f6d27293b69662824626f74746f6d50616765722e6c656e6774683d3d30290a24626f74746f6d50616765723d746869732e247468756d6273436f6e7461696e65722e617070656e6428273c64697620636c6173733d22626f74746f6d20706167696e6174696f6e223e3c2f6469763e27292e66696e6428276469762e626f74746f6d27293b656c73650a24626f74746f6d50616765722e656d70747928293b746869732e6275696c6450616765722824626f74746f6d5061676572293b7d0a766172207374617274496e6465783d746869732e63757272656e74506167652a746869732e73657474696e67732e6e756d5468756d62733b7661722073746f70496e6465783d7374617274496e6465782b746869732e73657474696e67732e6e756d5468756d62732d313b69662873746f70496e6465783e3d746869732e646174612e6c656e677468290a73746f70496e6465783d746869732e646174612e6c656e6774682d313b76617220247468756d6273556c3d746869732e247468756d6273436f6e7461696e65722e66696e642827756c2e7468756d627327293b247468756d6273556c2e66696e6428276c6927292e656163682866756e6374696f6e2869297b76617220246c693d242874686973293b696628693e3d7374617274496e6465782626693c3d73746f70496e646578297b246c692e73686f7728293b7d656c73657b246c692e6869646528293b7d7d293b247468756d6273556c2e72656d6f7665436c61737328276e6f73637269707427293b72657475726e20746869733b7d2c6275696c6450616765723a66756e6374696f6e287061676572297b7661722067616c6c6572793d746869733b766172207374617274496e6465783d746869732e63757272656e74506167652a746869732e73657474696e67732e6e756d5468756d62733b696628746869732e63757272656e74506167653e30297b7661722070726576506167653d7374617274496e6465782d746869732e73657474696e67732e6e756d5468756d62733b70616765722e617070656e6428273c612072656c3d22686973746f72792220687265663d2223272b746869732e646174615b70726576506167655d2e686173682b2722207469746c653d22272b746869732e73657474696e67732e70726576506167654c696e6b546578742b27223e272b746869732e73657474696e67732e70726576506167654c696e6b546578742b273c2f613e27293b7d0a666f7228693d746869732e63757272656e74506167652d333b693c3d746869732e63757272656e74506167652b333b692b2b297b76617220706167654e756d3d692b313b696628693d3d746869732e63757272656e7450616765290a70616765722e617070656e6428273c7370616e20636c6173733d2263757272656e74223e272b706167654e756d2b273c2f7370616e3e27293b656c736520696628693e3d302626693c746869732e6e756d5061676573297b76617220696d616765496e6465783d692a746869732e73657474696e67732e6e756d5468756d62733b70616765722e617070656e6428273c612072656c3d22686973746f72792220687265663d2223272b746869732e646174615b696d616765496e6465785d2e686173682b2722207469746c653d22272b706167654e756d2b27223e272b706167654e756d2b273c2f613e27293b7d7d0a766172206e657874506167653d7374617274496e6465782b746869732e73657474696e67732e6e756d5468756d62733b6966286e657874506167653c746869732e646174612e6c656e677468297b70616765722e617070656e6428273c612072656c3d22686973746f72792220687265663d2223272b746869732e646174615b6e657874506167655d2e686173682b2722207469746c653d22272b746869732e73657474696e67732e6e657874506167654c696e6b546578742b27223e272b746869732e73657474696e67732e6e657874506167654c696e6b546578742b273c2f613e27293b7d0a70616765722e66696e6428276127292e636c69636b2866756e6374696f6e2865297b636c69636b48616e646c657228652c67616c6c6572792c74686973293b7d293b72657475726e20746869733b7d7d293b746869732e73657474696e67733d242e657874656e64287b7d2c64656661756c74732c73657474696e6773293b696628746869732e696e74657276616c290a636c656172496e74657276616c28746869732e696e74657276616c293b746869732e696e74657276616c3d303b696628746869732e73657474696e67732e696d616765436f6e7461696e657253656c29746869732e24696d616765436f6e7461696e65723d2428746869732e73657474696e67732e696d616765436f6e7461696e657253656c293b696628746869732e73657474696e67732e63617074696f6e436f6e7461696e657253656c29746869732e2463617074696f6e436f6e7461696e65723d2428746869732e73657474696e67732e63617074696f6e436f6e7461696e657253656c293b696628746869732e73657474696e67732e6c6f6164696e67436f6e7461696e657253656c29746869732e246c6f6164696e67436f6e7461696e65723d2428746869732e73657474696e67732e6c6f6164696e67436f6e7461696e657253656c293b746869732e247472616e736974696f6e436f6e7461696e6572733d24285b5d293b696628746869732e24696d616765436f6e7461696e6572290a746869732e247472616e736974696f6e436f6e7461696e6572733d746869732e247472616e736974696f6e436f6e7461696e6572732e61646428746869732e24696d616765436f6e7461696e6572293b696628746869732e2463617074696f6e436f6e7461696e6572290a746869732e247472616e736974696f6e436f6e7461696e6572733d746869732e247472616e736974696f6e436f6e7461696e6572732e61646428746869732e2463617074696f6e436f6e7461696e6572293b746869732e6f66667365743d67616c6c6572794f66667365743b746869732e247468756d6273436f6e7461696e65723d24287468756d6273436f6e7461696e657253656c293b746869732e696e697469616c697a655468756d627328293b726567697374657247616c6c6572792874686973293b746869732e6e756d50616765733d4d6174682e6365696c28746869732e646174612e6c656e6774682f746869732e73657474696e67732e6e756d5468756d6273293b746869732e63757272656e74506167653d2d313b746869732e63757272656e74496e6465783d303b7661722067616c6c6572793d746869733b696628746869732e246c6f6164696e67436f6e7461696e6572290a746869732e246c6f6164696e67436f6e7461696e65722e6869646528293b696628746869732e73657474696e67732e636f6e74726f6c73436f6e7461696e657253656c297b746869732e24636f6e74726f6c73436f6e7461696e65723d2428746869732e73657474696e67732e636f6e74726f6c73436f6e7461696e657253656c292e656d70747928293b696628746869732e73657474696e67732e72656e6465725353436f6e74726f6c73297b696628746869732e73657474696e67732e6175746f5374617274297b746869732e24636f6e74726f6c73436f6e7461696e65722e617070656e6428273c64697620636c6173733d2273732d636f6e74726f6c73223e3c6120687265663d222370617573652220636c6173733d22706175736522207469746c653d22272b746869732e73657474696e67732e70617573654c696e6b546578742b27223e272b746869732e73657474696e67732e70617573654c696e6b546578742b273c2f613e3c2f6469763e27293b7d656c73657b746869732e24636f6e74726f6c73436f6e7461696e65722e617070656e6428273c64697620636c6173733d2273732d636f6e74726f6c73223e3c6120687265663d2223706c61792220636c6173733d22706c617922207469746c653d22272b746869732e73657474696e67732e706c61794c696e6b546578742b27223e272b746869732e73657474696e67732e706c61794c696e6b546578742b273c2f613e3c2f6469763e27293b7d0a746869732e24636f6e74726f6c73436f6e7461696e65722e66696e6428276469762e73732d636f6e74726f6c73206127292e636c69636b2866756e6374696f6e2865297b67616c6c6572792e746f67676c65536c69646573686f7728293b652e70726576656e7444656661756c7428293b72657475726e2066616c73653b7d293b7d0a696628746869732e73657474696e67732e72656e6465724e6176436f6e74726f6c73297b76617220246e6176436f6e74726f6c733d746869732e24636f6e74726f6c73436f6e7461696e65722e617070656e6428273c64697620636c6173733d226e61762d636f6e74726f6c73223e3c6120636c6173733d2270726576222072656c3d22686973746f727922207469746c653d22272b746869732e73657474696e67732e707265764c696e6b546578742b27223e272b746869732e73657474696e67732e707265764c696e6b546578742b273c2f613e3c6120636c6173733d226e657874222072656c3d22686973746f727922207469746c653d22272b746869732e73657474696e67732e6e6578744c696e6b546578742b27223e272b746869732e73657474696e67732e6e6578744c696e6b546578742b273c2f613e3c2f6469763e27292e66696e6428276469762e6e61762d636f6e74726f6c73206127292e636c69636b2866756e6374696f6e2865297b636c69636b48616e646c657228652c67616c6c6572792c74686973293b7d293b7d7d0a686973746f7279496e697428293b76617220686173683d6765744861736828293b766172206861736847616c6c6572793d28686173683e3d30293f67657447616c6c6572792868617368293a303b76617220676f746f496e6465783d286861736847616c6c6572792626746869733d3d6861736847616c6c657279293f28686173682d746869732e6f6666736574293a303b746869732e676f746f28676f746f496e646578293b696628746869732e73657474696e67732e6175746f5374617274297b73657454696d656f75742866756e6374696f6e28297b67616c6c6572792e706c617928293b7d2c746869732e73657474696e67732e64656c6179293b7d0a73657454696d656f75742866756e6374696f6e28297b67616c6c6572792e7072656c6f6164496e697428293b7d2c31303030293b72657475726e20746869733b7d3b7d29286a5175657279293b</data></item> 
    16131314<item key="id"><![CDATA[jquery.galleriffic.js]]></item> 
    16141315<item key="mandatory" type="int">0</item> 
    16151316<item key="multilang" type="int">0</item> 
    1616 <item key="name"><![CDATA[Galleriffic-0.7]]></item> 
     1317<item key="name"><![CDATA[Galleriffic-1.0.0]]></item> 
    16171318<item key="repetitive" type="int">0</item> 
    16181319<item key="type"><![CDATA[resource]]></item> 
     
    17141415<item key="multilang" type="int">0</item> 
    17151416<item key="name"><![CDATA[Skin thin]]></item> 
     1417<item key="repetitive" type="int">0</item> 
     1418<item key="type"><![CDATA[resource]]></item> 
     1419</dictionary> 
     1420</item> 
     1421<item type="dictionary"><dictionary> 
     1422<item key="custom"> 
     1423<data content_type="image/gif" filename="loader.gif" type="file">47494638396130003000f700000000001111111414141818181b1b1b2525252a2a2a2e2e2e3535353838383d3d3d4040404646464747475050505757575858585c5c5c6060606565656868686c6c6c7070707777777a7a7a7d7d7d8282828383838787878d8d8d9292929393939999999c9c9ca2a2a2a5a5a5a7a7a7adadadb0b0b0b5b5b5bbbbbbbebebec0c0c0c7c7c7c9c9c9cdcdcdd1d1d1d3d3d3dbdbdbdfdfdfe5e5e5e8e8e8ecececf2f2f2f6f6f6f8f8f8ffffff0505050f0f0f2323232929292d2d2d3030303737373f3f3f4545454949494e4e4e4f4f4f5454545d5d5d5e5e5e6e6e6e6f6f6f7474747878787b7b7b808080868686888888a1a1a1a4a4a4aaaaaab3b3b3b6b6b6b9b9b9bfbfbfc5c5c5c8c8c8cececed0d0d0d5d5d5dadadae1e1e1e6e6e6ebebebf9f9f90606061717172222223434343b3b3b4d4d4d5151515353535a5a5a5b5b5b6464647373737575758181818989898f8f8f9191919797979e9e9ea0a0a0a9a9a9abababb4b4b4b7b7b7bcbcbcc1c1c1ccccccd2d2d2d6d6d6d7d7d7e0e0e0e3e3e3e7e7e7edededefefef1515151919192b2b2b3333334444444848485656565959595f5f5f6363636666666767676d6d6d7272727e7e7e8585858e8e8e909090959595a8a8a8b2b2b2c6c6c6cbcbcbdcdcdce9e9e9f4f4f4fafafa0e0e0e2020202f2f2f424242434343989898a6a6a6aeaeaec2c2c2d9d9d9dededef0f0f0f5f5f50808083c3c3c4141414a4a4a7c7c7c949494a3a3a3bababac3c3c3e2e2e2fbfbfb2626269d9d9dd4d4d4eeeeee0101012121213636365252527171718b8b8bb8b8b8c4c4c4e4e4e4f1f1f1f3f3f3f7f7f77f7f7f8a8a8a9b9b9bafafafbdbdbdeaeaea6a6a6acfcfcf0707073e3e3e4b4b4b848484cacaca1a1a1aacacacb1b1b1d8d8d800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021ff0b4e45545343415045322e30030100000021fe2d4d616465206279204b726173696d697261204e656a636865766120287777772e6c6f6164696e666f2e6e6574290021f904010a0039002c00000000300030000006ff409c70482c1a8fc8a472497c91482fa6745a8c000011aa9678bb196f8febc3bba5ae26169bd1213ed266e4f2506508104c45f0d51117da6230316a72422e0701010d335c61000e463330817d721c0201021e456c006344359230348444320b880830448d9e4237329232a44523038816449c8f4334a183b342351088052aaeba433780308b652c51462a0588103542ac649192bf4436d6482c0a0a1eb2451697032342180707185e36a1a379322d2ddf46160505060e25dc2f100418a0c10f8d1a647ac1904189868b1510557dc970605f81031356c4f1c0e05f121b33f0e10005b1a44423364e3c30601141068936e64db9018345c9152f6422a11182014bff7e0c42709332e3a18a152c5a9493024303028bd5b6bc28c902c6502637584c6887670b0d9b2f446ea951a2c35529329a01a3044c0adbb64b626cc890418306ba7731889805c39edfbf2e06a55090a0308204871153383b858589c7264a403671a2598ac2880f274650e1ed94159225432e51a2b290181a30a8567d813508be7f6307e682a38b2bcf7073eb5672434509dc496ebc80017cc90b0e0f1eb0282363c488146aa9c80801c181f50c8c93a008c19d040bb1496a98a060ddba0413c5f3c0282182bb88122f8067c550de01840f316e631d52630509ee218870427e47dc10c203f569d0421c2970d08212eb3d38c40c298c00e008cb1dd1417915a4c0d9cd0c184c4041575dc4c182071d84101d4d26b417823147c020410423e824c408124c30018c2980f0410a42bc80620728a0e4020925d848840b27110143051348e0011923b4a64e6d6575809f1b4b516183071248500134388870c1057b9df641071da097db19618a108799681291029b1e90390b0d1ae8784197555e70a5103cb1394276549810e504271441679a43b0c06607199222c305616a6063a090fa31029b204457060c16484041a543d039e81030a008429772c000829c463cfa450a26c04aca5baa16b81b12249c49c2af5414e582a8c4264b44100021f904010a0004002c00000000300030000007ff803882838485868788898a8b845c25255c8c92938513020213949a846060874701014687369e9b8759494c368646a1a38536134556a785580a053e548560aea2a6835239000328b6835bb9050f5f9cbf47c1385e3f00c55ac8831e3c053c2185d0854fd6004dd9835e440505413084a00147845b3bd63e5de783253ddde683f0d10481a1602dc7b77c826a4cd851e0071681e104a1d0614d488d535adc19baf263dd848b387ec1aa31c49a8e2a873a25d23284081467859870eb514250130540fc8520062093a12f5dba4823d4e4c70f0513aab01ac40548811e1d04d6a8b17409b11dd808d9f00203061798bd9e0031fa03c8922c844214a1b2d4908d283fff9e68e5da950b0cb0bdaa4c50405648077c386c8054f4a5ed97ae88bdb445f4050a11be478b4819ca0828622e5d6a5046d4e54910b249164ba20ba3cb97cd8bb0285110a4d6261b5d0b67b3312584e8495311eace867a37212f1e9e74184efcc9939ad9ba6ce1c2bc39972d304c6121d29288f5eb4496f466b4e58af7efe0615ec16ebd3a1126db176901cffe0a4c2f1d8ccb7fe2847e94735e9a2f67be3fd8d0f4be0528e020605c41058087c0e0c5395c78300105686df24515556481d7245f4481c404474cf00482046251c21454a0b0c56d88d450c5121c76a84415200ed2050a548c48851542290246164e7038c183502c2810232a05a6050a53d888c5ff8504464141873f3eb1052156403165225ea010c9205f6051c523535471a52121fc780413572cf6c5134a30718c40c16c114508250c264817064e31455686c0904412253059c2124b3011e115524871852030401102148bf6c2050a28d859c8168015c205134a2c018527604c31dc1402a1104208513089430daa2e6203148432a1110ea23e3185295f48712a0a312e9205a14a903ac814c2092b0816a74631eb393578b084124ee0256a07c6ae5ac2a96c2184c2b34bb836ec70c825e328147c22e385139d8260e9b4d50656c5a952b43a090ce83251ae20258c6a481773c69b0fbfb71a42acad8760618590086dc66e4a031a42c570bc345cd973f24a2c6001200021f904010a0002002c00000000300030000008ff0071081c48b0a0c18308132a5c4810c69d3b30184a9c58b00d0f1e6d286a240806ccc10a050ab0f158d006c98d06f964807372209b90150cda60b36605ca827bcc9459a0a7201890056216343120c0819e3705f6d15986c2a082402bb40c244487513e49078228f343411da821d9148c232640000e59070652c315cd1f82514ffaf9617601a0b4034d2c28a3200edc0263c40e6c6376c057bc0267fe2823648fcbb003f514308be6e9c63e6f0d6261b018830d1c3f617ab491c66c01a438f324eca3468d09410639705d8047209c3366e0088c52348060827fdc881980bae0ed3367dae8f93c10c6999d740482193488b99ba23ffc101c34870c80ef695a4aff978306b719341cfa108c52418ff88136ec30f02b3d8f9030df018459c3dca79e36c8e1a606087781d65f428230d7c71a3ae407c00f751c68902076a8819c1967ac71c77b0ad9f0c6180e8ef14620130122471a17ba21e1428294919f0e6ba8b7111f6ea0810616284511461866a896940d79d8c1e14283603087658825a9e492040532871c208000e594719890d6208164a9e59603edb1861a5fae11e6971c0c29112030a4a9e69acc6101e6986faaf1465a68ae69a765818010871c72ecd9679f2698c990205b164aa2412709cae4a28c82b1877b3701025b5630d0814106da6d34081658f88124458198e0461ba4cea1a8417daca02a167f9c2ad0207abcff81411bb3be515c8958acba021f052604061f72cc4aaa1b261c0a9a4636c090abaabb7e3ad4acd0d2115197754c8b9020ac6ed7c7b22b648b6814d0c6b1474b828000471c380e74d21f7898b05c4181f0c16ca60605c7411ecee290071ce7cac8c74358e10048bb77c8c8d11f7b60b16273bd0227071c6f042a501e73cc811a1626988047be38d8c0f14260d8c1af1c99e95bb18f38089287c68e29d9471c10a36cf21c32f77187c6c6a665031d10cf31a9407a9cbc9d1e1963e1ea422b400c47ba03514c734130b48b87b549e5c96f8405392d336818bbfbf1447f3c1c07bd4d0b5dd0c026e08b172077e4f19ed607f9c1c7d71b710837a312ad40071d36e10bcdd0207ffc41b7df4c06040021f904010a0002002c00000000300030000008ff0071081c48b0a0c18308132a5c4870138a1431184a9c585083020593286a2ce8e9609b0409341cf4d471e3412e944294247821010249063b4982a4c964412d8c1c28c2c2b1e54b83530e155090c9e6c04d8c12399034a8e047042209725a5460e816a3032f39d88a89a0279f300986e051804725ac033941dafa08104b906105724154d50127b403516c7510e26d82b89e3490355402efc04e939432ba2ab0e5df8158105475d4742317b706b52c7290e849271c9e3e3ec6d1e95155044533a748c82552a42995097ed8aa68350e4b8f1e891058c25059492b05029a64c810cf83961a29d78025780c473a0b0b245992926f445c080e1a81885080008e824fff17e14879234795b8ac2c21a939c24e9814f59d9e6251a1ef010a45123f1d8b86f2ca413202669e7cb6d0200672d14601f81182082606223408266d98e7481b28f0a790271f1c825f00085472974480880089728e3ca161428324825f016d64b7d1169438f2484d1b5d5248218c64b222439ea480c98f2c6a20426c8625b91191149134dd404e0ac4c908545649a50822d866d3577b29a2d3978b09a4c5056d5c40269965b66109932c2200c09b70c67989986796792699966035889b71f6398294978860259623888002565c7ea988975b85a92490d3b1f968929e6ca189a4060912a14d31605249259b98e4c9269b70b2e94482a0f00125ac4aa71120a472ffb189201475824508acb26ac9711a0d1203a9a4c640eb425c8c902b251fa0302c681a79c209b0a49a9a100a9550f20425956012d1405ca08099845b8c381dacd02e5bd014b98ab04570839410c2088c3d291c16996871ea20e4968a1027967c90099202dd1a8208a1e2c0452699c8c809bd996ceb952031c4f0630ce24a354208211c2a9026986082230e5b20acc9a9027582a95728603c82b81c7b3cd0209a202c63929b5c2c02af38b4fc310e9b208c85b958753205c62520a9b35731d77b72425a883070bc1b77bc330e80209c49c53609e26e085388a749092e7b15722623a3c589bb23380c1926254c8d8320f4966d760a380fd4b21607914af2a4474f124a9116534c81b7df13750288b484278e50400021f904010a0001002c00000000300030000008ff0071081c48b0a0c18308132a5c48f0cf952b5e184a9c58b0d2902195286a2ce8e960878b1d0eaeda983015a952079f8034e8e949063e240ba2b2d0c8d11e8e1f873c31584554822130630afc43b3d10655045bae2448e351829fa8840e34d5a86695822a878424484741020574a40ea491a12a938803736e15986ac8534734c40e3ce5a82aca8159d7b6f4aae0aa5c81ab3a54ad105560de812c843c653272632ab4055f54a85aa9a3528c802f3c1572d3e00b161d0fa6dab00105d2a474aa3aba22b014132652049ae0bb7620a74a0a1474e658ea82ef4a7b420bf472a1d1a33b023dadf2147a8e4f457f08ae3235c450810216841334c1c4f70526745009ffbff36437cb53154c0df474c551a8eb054265d0be9e8f9ceebe3798e094bcb1c2e502a192c10ff019a2c81df415b4ca294f78c7c406a76cb4ca1ca318024a01868832077f127162c206decd91a042aa4000df0f1b14a6512a743091c10b2499108a218eb02095277ba030e2428199e2df5f4006b91173c925a71d0d262469c21d4a9a620a6b4279b2c111545659a52385a1d2c1965c7629c58e0cd1208a009f944926999f88a11e0e5a76e9e697428989e6999f9cb9260d4c2699a72949da18e594565a89a5900a5986836560122a642a3092a40a13739c16132728d0514a741b9512461842a0e0280ba5cc21aaa71ad1900000a80af048a30c79f282297490ff32071da6b03a514ba0a08a2a284f7098d01f77882a6a292c489aa8417c38f289ae002420c58f04b14087b074a0e02b0ea9b070ad41ab78612c0a4284a16b188e402bd029a2d261422adaa9728a0955a482902aa9a4f247bb7384a2ab2223722285147c98fb029377a0e5051f7c604a2f2aa96c8bc31f1b88514884087911974194c2bb1b2a0fa9e8452aa8fc612e0e39c6b44792a60dc4f1152aae0272c3427a51852977d8bab28a38d0f0f2c824ad724592a7fc7873527f808ca95ca85401efd101765c90ce0c4b2a942a2898600a6832395dd0c7211fbb100d5557e1302a2cb06cd0c222cba50a1fb60ef482d64f73e2b558432b3ad1caf2da2d912734d006c0b3de7a07040021f904010a0002002c00000000300030000008ff0071081c48b0a0c18308132a5c4810100b169c184a9c58504ea34673286a2c68eb60ac8bb10edaeab8f160ad52264812fcd82864c14e723aa02a593095a40bb0f81864e992e029450e1a6da1391010870b1762a92a5809644155171c04ad4574e02c0c17309c2268ab69cb82a6a43aa85375a0aa4a48df441cc89360ad46522fd0283b5013d60b26565e94b3d28c19455be90ab4250ba9a499386cb1e42b50531aa96f3a9504b4b620aa9b18647554ec1447270e52d30c35b88545c25a72e4b0900c1629064d894d48e27047601eb18c097292e377b4c13b1d82cbdaa21207a73738f30c1e49b20e500a54077632d1a85582049210e6a914bc432553d1059eff9a8358240b58b507b360e3ea87fb061d8a0fb485aa54f70eb166cd4d2cff206b1ca9bcd1c07509b402491efd11d4090b73dc2787260926644b29665857a022752c25110d79c4d29d291122d4092404be52497814d5624225b1a452d2290db8020b6c44d9525a88097522cb1d380ae6e38f0a6d66904aaad092c72947e6a1a492be95644b071440c20624544e09c9052ee2508b2c73c831c79760cec12351aa2852c099058c81e61886e40520976186394b8f09a9e2009a67aa99a621e915b924924be6a1538d1d4849a5a1546209e442cc2db7e8a30701529e469d48926155346832cb2c955154c70003a4710a9d2f6d318b09a698629a4634bc12c0ab055cff30a9429da472ca1d269870c7295952a4980f84bc4a880f95741a292da79a304b1e5bfcb7216ba8b051c0ab0110d2404a08999aab29b368b29f40806ca1e141aa94f2c31bf39d92c600d40e7041827c98a22b2d80bca4c943f51e84410e008cd164b9ae041b402309aa72642afdd5c2022d100944032080ec3707bf00105c90513d18424b4234386bd643b4f40a482aa9e4ab8a190000a0c32c07f1316a49a8d0428b26ff71824a2a95e5a143caaf8c4b17270bd3822227a9a092af408da49c434682d9c2c7c210364472a75b1490b20f2812e510c347834b72d738bc913200d995d589260c135790cd385f9c40ca03d048261f0c7f3b10d1a8188b431dac002430807266a392b5d7791bd449238041aadbcd7a7b466a597837aef8909da8f2f8e48205040021f904010a0004002c00000000300030000008ff0071081c48b0a0c18308132a5c4870061f3e33184a9c5890c4850b97286a2ce8e9a0888b220e76dc88101015141e411af424420e2a9205018578f3e165459505b15068c4c6264c1c33e4bce9706955c18f174212d4d5a4114f403f07aee84015cb519c03a9386d4425eac05522a886d045d0e2051204015d70da4495d781b9a8bec94310a988912c9d3a5af176a0a71254e5fc198814adc05c159c7e18a9710659837f3e509d6214875d81ab3a38ad90eb202a3e09675cbac4a7324114543b74c691478e1cba38f438726ab82189088d561bd4832b848829a918e3d085ab831cab023d319eb2f302d4af7928387080a603422c227069179127e2c03d258223fff4b467ae5f3e4dd04c4753049770827fa864d74e028b5b1cca19e6c71159cd74ea17acf01e47b994301f2e25e836d15f8dfc87862353dcc7902a585ca21d2e790ca890274caca7062ecf6904481e249010224558a851c4240a6ee4492aa091e4c9257998d6d78d38ca981c7e3c7eb5c78f4006e9134cb8b071d191473631180e264d518293534059025f3fad42412b646449462b586ea987403350e1e493643a891c4c5662c9e5965b7209db2a7cfc1867907b0ce9a2084ce49967137a4eb2648e8006fad60c2752a44a0725d8b8912aa86081c5631a4d71c0018e9c49d12aa960b1c2a62d32a48b1a05dc5200194da44211207b6cba02167b78479127b8b8ff22ea2db730800ba408e9c287aaabfea16142ba54860a133ed05a000f4550f16b2a9beab1292a12e2a00a208a12b44a090cc8e1d70a8e1c40eb2d0730a121b3ab42c4d11fa9a472df2aaae83252130204408682ab5c82060fa2b2a1e12a3f0232e00ca8a47bdf053e1c708140240c1080006c1834c3075c5a5a902ad5e28069c0cf798206000014d1912a6a0410c02d5f1ab42b4c80a42b9e401b773c901e3c885c44b45ea9a232a41a735c04416cc43b406d6fa18b8aaf7e15a13363a8f820b22b85c2a44bbaa8e09ab3cb047d106f0093bce5c91f181bd4321ac2cdd080c807c45825d7a9283ab5c7054da1300f2547e589632bb5ccb6b56b5129287e761f12b4caaf3946c071047b4b944b899d165e78400021f904010a0000002c00000000300030000008ff0071081c48b0a0c18308132a5c4850572e3fba184a9c58100f254a78286a2c68eca0a98ba60e76dc8870861e611ee1500ac9d1949d4d240bceb01362440c831f29d931c887c9050e30630ad44533049e910373b21c48ccc3859f33840ee4232284885c05736624a8e7e98514520716c31322841d62043f025b8a6306b0a770d0861518a3aa081669410e3466ca6b8bb97b53941d1155a0d6819bdc3c158194a22eb905878d289b62a45281c6443c7513b4600cac0875a548b1a9b140165547046561c70e4a1c2dbcb21d6ae7d7afce05f998328547d8b0c6c4688e008dc318523d3e811516580cb9a323474220f4136cb7a9602d220ecc956298c25c21f4ecffcd45c9d1f3231446249cc1a2faee14b98aed658874980824d01d51e0f057a1b1187a5467071e7ae036111e173c67de05c1c82751317ea480871da6b460da42c50003dd11481046922e2d0413cc7214b54001051ef811d60c3791644c6f80c5286358a69906a11f38e698a37752d9c1013040fe18241c3ceac2020bc20883e491491247523117f8f2ca2b525649e56bba28a925924ab2e0e446c64459a595be14f19a319be8a8668b42d901e445940013273044ce28d18576e65910319069644c08a638185331336cb289a014e9c1800217e0f5a1a186f2489131bf24d04b2f0c0063a042c4c400e926c3f479a71d4528706902be88a05d42c50cf3e926ba8cff54ccaa091133520c70bc72aa028e0483270ebabc3a436394242002a20415634a11d24d75c1020944ab003078eae247a4c8e6c2cb2e395cc01c9f2351124a010ca828161e8e2810ad1b08fd1783a8c539b20bb7cd72b0c002ece260c7b83cb8619a2e2250c907ab7806a3c3bcafa065cc110104708440c438524001bdbc56901ffd6944cc2bf3ea0096400c3b3c120bbd4cec08bc428590c3bc141074840e0e13e4060f0584b213603184322f2fc42ddcf0c303f9c1c0c4be90281413f3ee024c412fc74c500834f3e0c15c2d14326f2f921617f2118de962c4c40a7cb9510a56e770334146c00c745a3e14a080a352e9518423c8e290b6c81c318144c634d6178dc3d622fd3aa3230208e0889e13f9e192b988375e50400021f904010a0002002c00000000300030000008ff0071081c48b0a0c18308132a5c48b0c6a63f35184a9c5830139d1099286a94b82c44082b07c16c4c58c3858b83563c2e3bb88ccab091056b2c53168c99c18e215616f4530958b2973005169ba90c4bb18238750e2c5607984f9b41056ea2a28cca26a41e4112dcd31358c6a802c16432a5cc4ac481293f12d495cca9aca360050e0b563517c1b45a052e735ac94fdcad5497e9429b75e0304b4e9589dc580c6e4ca27b16e3d40a4699534b7f0e0ebb8ab0d89e3dc31613cc453518501754829dc491ab6b308332274de26c7053a6db2ea02eb5a26c196dd138b0200e31782018ae18dab4a9037ce01f2cb73361f17356e073dd073729db4370139de4c98f99ff4aa82b5774e99b1c370f399099a90dcadb60b0e4623d4130cc5c9c073dd20a32e5c9216385630b81f1c71ed1d9a5111821c8d7c606ca6037510d7e608145711af9710c0674d006932e406d04c63291fd65e2895101671f33c3b0d8e28bc36008933295d468898d37fe24d4263cf6e8636641813149238e3462e49144622110853cfae1238f218e0406324856e9889238e0c7cc962db2c8a28c232963c99864921982842822b4987d69b65943081810381118750423a746cb08114618b28c84c503be4cc2dd467e50a0030088b602e642c56ce08b19be2c82d944cc20030aa2888202cc9d0a814185238f3eda88298b12c4d40f9802a083230a16536a41c52cff364c328b84ea4b1b56d8578c2361601a8610c188660903a6709a652648f439502e933c6006a40f58b21e180f604a4608d5e1e0c70f0114b28150c5d4b0181d40fce08b876058d1c6a366548290158588710c9004b11140b7ca02e38b2fc008144c2b6594814c73ba9862a4822c0d8ad42df72e021712b7dc828448c56050c60f0c6059d026ab6954c303f7f2901712a0483c900b425ccc46b660c952c8bd6dac0931286c1004ccc5ad2863e23040dcfb835f03b151f2c4863d70b123688e84ccbd62b84b10c426135407c0652413970b07e8108010d8810135d103d540c10f3f98017450561cd0ed7805cdcc4673563050b6c24165d2481b77920c0a1206811f01cc061d8305c69d5e47fc76df6d1ed4c62d3cb491f8445359f5f8e40705040021f904010a0003002c00000000300030000008ff0071081c48b0a0c18308132a5c48b013272f9d184a9c5830179513ce286a94a8c984094d1b3776dab4e9a0338f200d66d2c32964c14e9a3261a161b0e347835e2ee1bad4d2a540985832e53256d066ca81c6a8e0c25582a64f815e8266f252f0a4898c04732dc585f5290e63b93265d21471a0d5a3380695587aa2ac571c348262f943d066571c5896ca2af9762017b19a0699f5d895934e5c29886e34a6b8e0a09842071a1d98426fcf829ce82234f6e78f60837fc462e9c9252817819bb66231d82913294b540f7222b9c9cb67a4ce64c6fe9a55162e134e0582c545a9f80984346873a9dd1887975cb70f7a49717ae01f13c58bc7a192b09317da243935ff67d898460a4bd929c9aaae70d077da7f8253d4449c43715264271a4b4e7bb7fe12d95992827cfacdb6895b146d12471c25f8175227d16984c5507d55289162188e67e141b92c52c419458408e2874c68485165b2a4a8976fb23875090030c628e3210452640c296d30d1468e4ce8d82356b2c828240008d4a81f8e3d2699641b587111818821467946894fa5c0a25e5b5d221f63c27d65e2866086e9982c4d20a89f097a98a9911e8b14524809213993c41a94e41212176ddc12c09e89189990311cac21810449c8e260429c5882c09e01087088256a2e4405136b082a411b2744f892090d08c0e82d6d540721439d28c6892c490c5a69135898684c1b8530ff5a48117a34864b11267c690c1619984010177134a36a33b81c64cc1a7b0a80882cd171d140013d50221c638a95f0e11a9a0987451396928250263df4c08183c66470cb2d3dc089032e49102b109b899c61c978839cb0235f07e971d740992070ee1a653591400254027ac6198bec2bd01fec51d4c91ae722b09a40190cdcc640b944106f99169ad0c32d3c34d15813082470f140b81c5c440a15729248010534802f0e1513dc98176bc49bc4654f59722e0fc51224b0c9059df0e11997bc954b2be7164160cd540e344806f14ad0704899307dc87105655072d4fc169188040a6fa4491219a8e935d1051943dcd53e7169d0d0602325a6419324d04a13774b0bf4470a2964dbf7e00205040021f904010a0003002c00000000300030000008ff0071081c48b0a0c18308132a5c4870150d1aab184a9c5810c6952b30286a946811e3c68dc61e1eec98eb60ae2caa3e1634560b068c88152f662c186896323d34540e64e91290c18e33774e33a52c454a9d0255b9849193200c3d1e09d6b2792728521c805cd68a1935a91ea257605ec5a1d46520a7174b0e8471c7d42c9f6307065a2a16e84055b34c996aa132055f833c61c0c5615760963b45cf1aa431d8a09e42859a6c2d4883aec05a5972c10544556dc32c754c295ea90880e950738e0a34961586ea8a36f5bc26ac4cd69c397a0e1a9bf0cc348067425218bb0b48ecc140d3260b0c9402ca9c1073644d43b8aace0fdf003e4df02c7178d269b64384ff80724739c240d2c6601f03c738436330eadc9e03c5542eef0c733d0ae0bb4c538a29cc27dd6c12a520c433cfc8f21120b2c892c2681fa932c705044a940b0cf8c5a5e142f80d97e18608c170c488249628cd871a5d4194322cb668ca1d4d2923400034d658e328ff8154071c70bcc1e38f3dce24a38d448e52e1443bfa08a49233c1304189509e88d4152d56a9178c0479b8130e2882e8e59705ad624a7b1f19a3470b5d4e34cd04a184a2cc473064700114564d0443133f14304601101c899031135e704113cae4a85020218cc2430105f030ca1cee31a4c71b825ed0c61b7a44dad01d102ccae80f17cc648ca6617a17883219b451690859fc9941288c16ff10ca0457105407127aa48943166fdce11414a9b6d146066f1e8404a33c38608a71b528f2c32850ec84df1d8f4c708179c6b4e081a517c8d2650bd094e1018402c1514619d0145b87a00ae230cd2323465b902a2948238d79055dc1dd40d30851c60f6d1c0587030ebce1a107474c8044ab0665f5d12a17fcf08310d309f406c16fac85c493646a38cb283f9461f04017174c902c134cf048ad71d13081c48a5835b0c9725df0640686aa04c5bfd0b44bb203d18c3cd02c291f61ca58303870ee04e4ce9c3141aa4893f02ff86ed44234e8ce6250c94f13d442b5bfd4f951164dbc11291cd1d09c651d1e88ad93a64eeb06a6411e10ecc1dc120172851e55e3038d77400021f904010a0002002c00000000300030000008ff0071081c48b0a0c18308132a5c48d0980d1bc6184a9c5830100c1881286a6c68e3a0458c1b379e52b4a663c58b190d5e341972600a6a0058d531f831254141d3566461d9320b4c00096c0aac69f0c50a9d3c5b1e03c014d849900401ad38b5a24bcb825d7a302df08220d181c6b41cd512f12a415c399852288be3abc02e475708358ba3d82ba601520c746b23e78aae214f6939384b07d357c586a21c6874c5b4c4068b094ab8c2500f0e800a1aa3c034072e8182ba009adcd62f0c83c660a4480159f39a0001082d18d11ac70b5e007260400828e7ce82bdef58ab3618351b6ab0035053748a2d30322392de7c9179a0a02cb3aa0d9f05d8a00d6b0d0825ff2fd0e69a401ba427da78914278b559d3aa270c14a787f8d83d62495fd8e594706b779c02035b0bc1d04601c9bd929e44c664315c35296851db44a740400d35336d14c82cb364b1e046368c70cc84135d63155d285e5516812916c806243042c2c68b3052c2a2465aaca6e38e2b40768721050419242f433a402245b3e002022e4c36090214a7e1f023914256a9c89113ddc124084b6e890b14271a18a38c6352b2df44399eb2a38ea760b9628b70c619920db34071e642d3bc7023455a60b0c002a78404431c715473a2465dc4f10a346424c0c69d0719530d25c050124b0a1f2654cc088a309a00340e44b751162050622a25b84c03a931a750004d020990ffd10030511ab3a766d6cd128ba9958e605ea4712c006b020bb0310d5b771c736c422fe012e8405d5813c7a971a4b0e731b142d3c81d3c014281038a648883ad2e1dd306304219f30214a7de81d00b669801c25c3880e0c0bdb308640d071c5823501618b4814135dead104b2cf21994e7412f44702f0726c5d248237144640c146db4714c94151d4a910d1cdc0b41713848bc461c03c1704cc076c23952bcb11004c2c4280f648dc0c764d1a2206ddcdb88c7123712f35ec0644c09961a5573af0304131474cd039d12701b7ad1d545230e9881c1844f17540c08196346d70b58336750d0b1b0a885b91c78dcd20b964a6732d460555307c728ee893642b7c61089cbc420c8a95120d3c427f8e10b0504003b</data></item> 
     1424<item key="id"><![CDATA[loader.gif]]></item> 
     1425<item key="mandatory" type="int">0</item> 
     1426<item key="multilang" type="int">0</item> 
     1427<item key="name"><![CDATA[loader.gif]]></item> 
    17161428<item key="repetitive" type="int">0</item> 
    17171429<item key="type"><![CDATA[resource]]></item> 
     
    17251437</dtml-comment> 
    17261438<dtml-call "RESPONSE.redirect('content/metaobj_manager/ZMSMediaPlayerLib.youtube.swf')"> 
    1727 <dtml-comment>--// EO yt.swf //--</dtml-comment> 
    1728 ]]></item> 
     1439<dtml-comment>--// EO yt.swf //--</dtml-comment>]]></item> 
    17291440<item key="id"><![CDATA[yt.swf]]></item> 
    17301441<item key="mandatory" type="int">0</item> 
     
    17371448<item type="dictionary"><dictionary> 
    17381449<item key="custom"><![CDATA[<dtml-comment>--// BO headScript_ZMSMediaPlayer //--</dtml-comment> 
     1450 
    17391451<script type="text/javascript" charset="UTF-8" src="<dtml-var ZMS_ROOT>/metaobj_manager/ZMSMediaPlayerLib.swfobject.js"></script> 
    17401452<script type="text/javascript" charset="UTF-8" src="<dtml-var ZMS_ROOT>/metaobj_manager/ZMSMediaPlayerLib.jquery.galleriffic.js"></script> 
     1453 
    17411454<dtml-comment>--// EO headScript_ZMSMediaPlayer //--</dtml-comment>]]></item> 
    17421455<item key="id"><![CDATA[headScript_ZMSMediaPlayer]]></item> 
     
    17671480</list> 
    17681481</item> 
    1769 <item key="delete_custom"></item> 
     1482<item key="delete_custom"/> 
    17701483<item key="edit" type="list"><list> 
    17711484</list> 
    17721485</item> 
    1773 <item key="edit_custom"></item> 
     1486<item key="edit_custom"/> 
    17741487<item key="insert" type="list"><list> 
    17751488</list> 
    17761489</item> 
    1777 <item key="insert_custom"></item> 
     1490<item key="insert_custom"/> 
    17781491</dictionary> 
    17791492</item> 
     
    19851698</list> 
    19861699</item> 
    1987 <item key="delete_custom"></item> 
     1700<item key="delete_custom"/> 
    19881701<item key="edit" type="list"><list> 
    19891702<item><![CDATA[ZMSAdministrator]]></item> 
     
    19921705</list> 
    19931706</item> 
    1994 <item key="edit_custom"></item> 
     1707<item key="edit_custom"/> 
    19951708<item key="insert" type="list"><list> 
    19961709<item><![CDATA[ZMSAdministrator]]></item> 
     
    21521865</list> 
    21531866</item> 
    2154 <item key="delete_custom"></item> 
     1867<item key="delete_custom"/> 
    21551868<item key="edit" type="list"><list> 
    21561869<item><![CDATA[ZMSAdministrator]]></item> 
     
    21591872</list> 
    21601873</item> 
    2161 <item key="edit_custom"></item> 
     1874<item key="edit_custom"/> 
    21621875<item key="insert" type="list"><list> 
    21631876<item><![CDATA[ZMSAdministrator]]></item> 
     
    23482061        so_<dtml-var id>.addParam('allowfullscreen','true'); 
    23492062        so_<dtml-var id>.addParam('allowscriptaccess','always'); 
    2350         so_<dtml-var id>.addParam('flashvars','file=<dtml-var "flashvars_file">&image=<dtml-var "getObjProperty('videoPreview',REQUEST).getHref(REQUEST)"><dtml-if flashvars_type>&type=<dtml-var flashvars_type></dtml-if>&skin=<dtml-var ZMS_ROOT>/metaobj_manager/ZMSMediaPlayerLib.<dtml-var "getObjProperty('videoSkin',REQUEST)">.swf&stretching=<dtml-var "getObjProperty('videoStretching',REQUEST)"><dtml-if "getObjProperty('videoAutostart',REQUEST)">&autostart=true</dtml-if><dtml-if "getObjProperty('videoControlbar',REQUEST)==_.False">&controlbar=none</dtml-if>'); 
     2063        so_<dtml-var id>.addParam('flashvars','file=<dtml-var "flashvars_file">&image=<dtml-if "getObjProperty('videoPreview',REQUEST)"><dtml-var "getObjProperty('videoPreview',REQUEST).getHref(REQUEST)"></dtml-if><dtml-if flashvars_type>&type=<dtml-var flashvars_type></dtml-if>&skin=<dtml-var ZMS_ROOT>/metaobj_manager/ZMSMediaPlayerLib.<dtml-var "getObjProperty('videoSkin',REQUEST)">.swf&stretching=<dtml-var "getObjProperty('videoStretching',REQUEST)"><dtml-if "getObjProperty('videoAutostart',REQUEST)">&autostart=true</dtml-if><dtml-if "getObjProperty('videoControlbar',REQUEST)==_.False">&controlbar=none</dtml-if>'); 
    23512064        so_<dtml-var id>.write('mediaplayer_<dtml-var id>'); 
    23522065</script> 
     
    23722085</list> 
    23732086</item> 
    2374 <item key="delete_custom"></item> 
     2087<item key="delete_custom"/> 
    23752088<item key="edit" type="list"><list> 
    23762089<item><![CDATA[ZMSAdministrator]]></item> 
     
    23792092</list> 
    23802093</item> 
    2381 <item key="edit_custom"></item> 
     2094<item key="edit_custom"/> 
    23822095<item key="insert" type="list"><list> 
    23832096<item><![CDATA[ZMSAdministrator]]></item> 
     
    24092122</list> 
    24102123</item> 
    2411 <item key="delete_custom"></item> 
     2124<item key="delete_custom"/> 
    24122125<item key="edit" type="list"><list> 
    24132126</list> 
    24142127</item> 
    2415 <item key="edit_custom"></item> 
     2128<item key="edit_custom"/> 
    24162129<item key="insert" type="list"><list> 
    24172130</list> 
    24182131</item> 
    2419 <item key="insert_custom"></item> 
     2132<item key="insert_custom"/> 
    24202133</dictionary> 
    24212134</item> 
     
    24232136<item key="id"><![CDATA[com.zms.mediaplayer]]></item> 
    24242137<item key="name"><![CDATA[com.zms.mediaplayer]]></item> 
    2425 <item key="package"></item> 
     2138<item key="package"/> 
    24262139<item key="revision"><![CDATA[3.0.0]]></item> 
    24272140<item key="type"><![CDATA[ZMSPackage]]></item> 
Note: See TracChangeset for help on using the changeset viewer.