/* temporary old call back handler to pass into new callback handler */ /* will only work when single instance per page */ function cfFinderCallback(data) { eval( 'cfFinderCallback' + global_cffinderid.replace( /[^a-z0-9]/g , "" ) + '(data);' ); } var USE_CLOUD = false; var global_cffinderid; document.addEventListener("DOMContentLoaded", function() { var _casn_script = document.querySelector( 'script[data-cffinderid]' ); var casn_theme_global = _casn_script.getAttribute( "data-theme" ) || ""; if( USE_CLOUD ) { var cffinderids = _casn_script.getAttribute( "data-cffinderid" ).split( "," ); var horid_global_counter = 0; for( var tmpf = 0; tmpf < cffinderids.length; tmpf++ ) { var cffinderid = cffinderids[ tmpf ]; global_cffinderid = cffinderid; var cfRestPath = "https://d1lxgbsjkcc098.cloudfront.net/" + cffinderid + ".js"; window[ 'cfFinderCallback' + cffinderid.replace( /[^a-z0-9]/g , "" ) ] = function( data ) { callbackHandle( data , cffinderids[ horid_global_counter++ ] ) }; var script = document.createElement('script'); script.src = cfRestPath; document.body.appendChild(script); } } else { for( var tmpf = 0; tmpf < CF_Smart_Nav_Data.length; tmpf++ ) { callbackHandle( CF_Smart_Nav_Data[ tmpf ] , null );/* this is new enough to always have the Finder.id defined so we do not need to send a hopefuly correct id */ } } function callbackHandle( data , cffinderid_hopeful ) { var FinderModel = data.Finder; FinderModel.id = FinderModel.id || cffinderid_hopeful; setFinderDefaults( FinderModel ); identifyContainer( FinderModel ); setTheme( FinderModel , identifyTheme( FinderModel ) ); addThemeClassName( FinderModel ); FinderModel.cliSettings.el.innerHTML = getTemplateOrContent( FinderModel ); FinderModel.cliSettings.elBottom = FinderModel.cliSettings.el.offsetTop + FinderModel.cliSettings.el.offsetHeight; connectSmartNavSelects( FinderModel ); } /* data modeling */ function setFinderDefaults( FinderModel ) { FinderModel.cliSettings = FinderModel.cliSettings || {}; FinderModel.theme = FinderModel.theme || {}; setTheme( FinderModel , casn_theme_global ); if( ! FinderModel.cliSettings.option1ElementId ) FinderModel.cliSettings.option1ElementId = "program-type"; //if( ! FinderModel.cliSettings.option1DefaultText ) FinderModel.cliSettings.option1DefaultText = "any type of program"; if( ! FinderModel.cliSettings.option2ElementId ) FinderModel.cliSettings.option2ElementId = "program-field"; //if( ! FinderModel.cliSettings.option2DefaultText ) FinderModel.cliSettings.option2DefaultText = "any field"; return FinderModel; } function setTheme( FinderModel , name ) { FinderModel.theme.name = name; FinderModel.theme.idName = name.replace( /\s/g , "-" ); return FinderModel; } function getTemplateOrContent( FinderModel ) { var ret = ""; if( FinderModel.template && FinderModel.template.indexOf( "text/template" ) === -1 ) { /* as is content */ ret = FinderModel.template; } else { /* with template(s) */ if( FinderModel.template ) { /* add it to the DOM */ var tmpDiv = document.createElement( "div" ); tmpDiv.innerHTML = FinderModel.template; document.body.appendChild( tmpDiv ); } ret = getTemplate( FinderModel ); } return ret; } function getTemplate( FinderModel ) { var ret; if( document.getElementById( "template-" + FinderModel.id ) ) { ret = document.getElementById( "template-" + FinderModel.id ).innerHTML; /* check for theme template */ if( FinderModel.theme.idName && document.getElementById( FinderModel.theme.idName + "-template-" + FinderModel.id ) ) { ret = document.getElementById( FinderModel.theme.idName + "-template-" + FinderModel.id ).innerHTML; } } else { throw( 'ContentAccess SmartNav Error: