{"version":3,"sources":["webpack://dzsap_webpack_external/../source/audioplayer/configs/_constants.js","webpack://dzsap_webpack_external/../source/audioplayer/configs/_settingsPlayer.js","webpack://dzsap_webpack_external/../source/audioplayer/configs/_settingsPlaylist.js","webpack://dzsap_webpack_external/../source/audioplayer/js_common/_dzs_helpers.js","webpack://dzsap_webpack_external/../source/audioplayer/jsinc/_dzsap_ajax.js","webpack://dzsap_webpack_external/../source/audioplayer/jsinc/_dzsap_helpers.js","webpack://dzsap_webpack_external/../source/audioplayer/jsinc/_dzsap_misc.js","webpack://dzsap_webpack_external/../source/audioplayer/jsinc/_dzsap_playlist.js","webpack://dzsap_webpack_external/../source/audioplayer/jsinc/_dzsap_svgs.js","webpack://dzsap_webpack_external/../source/audioplayer/jsinc/components/_comments.js","webpack://dzsap_webpack_external/../source/audioplayer/jsinc/components/_nav.js","webpack://dzsap_webpack_external/../source/audioplayer/jsinc/extra-functionality/_innerPlaylist.js","webpack://dzsap_webpack_external/../source/audioplayer/jsinc/components/_structure.js","webpack://dzsap_webpack_external/../source/audioplayer/jsinc/extra-functionality/_extraHtmlFunctions.js","webpack://dzsap_webpack_external/../source/audioplayer/jsinc/wave-render/_wave-render-functions.js","webpack://dzsap_webpack_external/webpack/bootstrap","webpack://dzsap_webpack_external/webpack/runtime/create fake namespace object","webpack://dzsap_webpack_external/webpack/runtime/define property getters","webpack://dzsap_webpack_external/webpack/runtime/hasOwnProperty shorthand","webpack://dzsap_webpack_external/webpack/runtime/make namespace object","webpack://dzsap_webpack_external/../source/audioplayer/jsinc/media/_media_functions.js","webpack://dzsap_webpack_external/../source/audioplayer/jsinc/media/_onePlayer_changeMedia.js","webpack://dzsap_webpack_external/../source/audioplayer/jsinc/_dzsap_time_model.js","webpack://dzsap_webpack_external/../source/audioplayer/audioplayer.sourcepack.js"],"names":["ConstantsDzsAp","PLAYLIST_TRANSITION_DURATION","URL_WAVESURFER","WAVESURFER_MAX_TIMEOUT","URL_JQUERY","DEBUG_STYLE_PLAY_FUNCTIONS","ERRORED_OUT_CLASS","ERRORED_OUT_MAX_ATTEMPTS","exports","design_skin","call_from","autoplay_on_scrub_click","cueMedia","preload_method","loop","pause_method","settings_extrahtml","settings_extrahtml_before_play_pause","settings_extrahtml_after_play_pause","settings_trigger_resize","design_thumbh","extra_classes_player","disable_volume","disable_scrub","disable_timer","disable_player_navigation","scrub_show_scrub_time","player_navigation","type","enable_embed_button","embed_code","skinwave_dynamicwaves","soundcloud_apikey","skinwave_enableSpectrum","skinwave_place_thumb_after_volume","skinwave_place_metaartist_after_volume","skinwave_spectrummultiplier","php_retriever","skinwave_mode","skinwave_wave_mode","skinwave_wave_mode_canvas_mode","skinwave_wave_mode_canvas_normalize","skinwave_wave_mode_canvas_waves_number","skinwave_wave_mode_canvas_waves_padding","skinwave_wave_mode_canvas_reflection_size","wavesurfer_pcm_length","pcm_data_try_to_generate","pcm_data_try_to_generate_wait_for_real_pcm","pcm_notice","notice_no_media","sampleTimesMode","mobile_delete","footer_btn_playlist","mobile_disable_fakeplayer","skinwave_comments_displayontime","skinwave_comments_allow_post_if_not_logged_in","skinwave_comments_links_to","skinwave_comments_enable","skinwave_comments_mode_outer_selector","skinwave_comments_playerid","skinwave_timer_static","default_volume","volume_from_gallery","design_menu_show_player_state_button","playfrom","design_animateplaypause","embedded","embedded_iframe_id","google_analytics_send_play_event","fakeplayer","failsafe_repair_media_element","action_audio_play","action_audio_play2","action_audio_pause","action_audio_end","action_audio_comment","action_received_time_total","action_audio_change_media","action_audio_loaded_metadata","action_video_contor_60secs","type_audio_stop_buffer_on_unfocus","construct_player_list_for_sync","settings_exclude_from_list","design_wave_color_bg","design_wave_color_progress","skin_minimal_button_size","gallery_gapless_play","preview_on_hover","watermark_volume","controls_external_scrubbar","parentgallery","scrubbar_type","settings_php_handler","view_scrubDisabled","cueFirstMedia","autoplay","autoplayNext","settings_enable_linking","design_menu_position","navigation_method","design_menu_state","design_menu_width","design_menu_height","design_menu_space","design_menuitem_width","design_menuitem_height","design_menuitem_space","disable_menu_navigation","loop_playlist","menu_facebook_share","enable_easing","settings_ap","playlistTransition","mode_showall_layout","settings_mode","settings_mode_showall_show_number","mode_normal_video_mode","decode_json","arg","fout","JSON","parse","err","console","log","loadScriptIfItDoesNotExist","scriptSrc","checkForVar","Promise","resolve","reject","script","document","createElement","onload","onerror","src","head","appendChild","getBaseUrl","baseUrlVar","scriptName","window","scripts","getElementsByTagName","scriptKey","String","indexOf","baseUrl_arr","split","splice","result","join","sanitizeToCssPx","setupTooltip","args","mainArgs","Object","assign","tooltipInnerHTML","tooltipIndicatorText","tooltipConClass","isInt","n","Math","round","isValid","getRelativeX","mouseX","$el_","jQuery","offset","left","dzsHelpers","ajax_submit_views","argp","selfClass","this","$","data","action","postdata","playerid","the_player_id","currip","currIp","cthis","attr","data_source","urlToAjaxHandler","ajax","url","success","response","auxnr","find","html","parseInt","increment_views","ajax_view_submitted","error","auxlikes","ajax_submit_like","addClass","hasClass","removeClass","ajax_retract_like","ajax_comment_publish","o","initOptions","comm_position","commentPositionPerc","dzsap_settings","skinwave_comments_avatar","comments_avatar","skinwave_comments_account","comments_username","length","email","eq","val","charAt","slice","aux","_commentsHolder","children","each","_t2","append","ajax_submit_total_time","isSentCacheTotalTime","timeModel","refreshTimes","getVisualTotalTime","ajax_submit_download","starrating_alreadyrated","dzsapSvgs","dzsap_generate_keyboard_controls","keyboard_controls","dzsap_keyboard_controls","extend","step_back_amount","Number","formatTime","s","m","h","isFinite","can_history_api","history","pushState","dzs_clean_string","replace","get_query_arg","purl","key","regtest","RegExp","exec","splitterS","add_query_arg","value","pair","encodeURIComponent","r","regex_attr","dzsap_is_mobile","is_ios","is_android_good","navigator","platform","can_canvas","getContext","is_safari","prototype","toString","call","HTMLElement","is_android","select_all","el","getSelection","createRange","range","selectNodeContents","sel","removeAllRanges","addRange","selection","body","createTextRange","textRange","moveToElementText","select","userAgent","toLowerCase","htmlEncode","text","dzsap_generate_keyboard_tooltip","lab","structureDzsTooltipCommentAfterSubmit","handle_keypresses","e","isKeyPressed","checkKeyCode","ctrlKey","keyCode","dzsap_currplayer_focused","api_pause_media","pause_play","api_play_media","dzsap_mouseover","preventDefault","step_back","api_step_back","step_forward","api_step_forward","sync_players_goto_next","api_sync_players_goto_next","sync_players_goto_prev","api_sync_players_goto_prev","hexToRgb","hex","palpha","str","alpha","g","b","player_checkIfWeShouldShowAComment","real_time_curr","real_time_total","timer_curr_perc","audioType","timeCurrent","timeTotal","_t","_t_posx","parseFloat","outerWidth","abs","sanitizeObjectForChangeMediaArgs","_sourceForChange","changeMediaArgs","_feed_fakePlayer","source","pcm","thumb_link","artist","song_name","thumb","watermark","selectText","selectNode","player_determineActualPlayer","$fakePlayer","_actualPlayer","actualDataTypeOfMedia","htmlEntities","player_initSpectrum","dzsap_audio_ctx","AudioContext","spectrum_audioContext","webkitAudioContext","spectrum_analyser","createAnalyser","smoothingTimeConstant","fftSize","$mediaNode_","crossOrigin","spectrum_mediaElementSource","createMediaElementSource","connect","createGain","spectrum_gainNode","destination","gain","frameCount","sampleRate","spectrum_audioContext_buffer","createBuffer","player_determineProperties","player_detect_skinwave_mode","drawSpectrum","argarray","_scrubbarbg_canvas","scrubbar_modeWave_clearObsoleteCanvas","_scrubbar","remove","scrubbar_modeWave_setupCanvas","pargs","margs","prepare_for_transition_in","struct_scrubBg_str","struct_scrubProg_str","last","_scrubbarprog_canvas","hide","setTimeout","is_ie","MSInputMethodContext","documentMode","assignHelperFunctionsToJquery","fn","prependOnce","argfind","auxarr","prepend","appendOnce","registerTextWidth","textWidth","html_org","nodeName","html_calcS","_lastspan","css","width","utils_sanitizeToColor","colorString","dzsapInitjQueryRegisters","dzsap_generate_list_for_sync_players","dzsap_syncList_players","settings","force_regenerate","push","off","on","toggleClass","innerWidth","player_radio_isNameUpdatable","radio_update_song_name","targetKey","_metaArtistCon","miscFunctions","dzsap_send_total_time","argtime","argcthis","id_track","post","dzsap_ajaxurl","dzs_open_social_link","argthis","leftPosition","topPosition","windowFeatures","screen","height","location","href","auxa","cid","cid_gallery","dzsap_currplayer_from_share","parent","index","shareurl","open","dzsap_wp_send_contor_60_secs","argtitle","video_title","video_analytics_id","curr_user","dzsap_curr_user","theajaxurl","dzsap_site_url","dzsap_init_multisharer","dzsap_multisharer_assets_loaded","loading_multi_sharer","link","id","rel","media","dzsap_box_main_con","dzsap_submit_like","currentTarget","ajax_url","htmlaux","dzsap_retract_like","jQueryAuxBindings","_c","get","api_change_media","wishlist_action","dzsap_lasto","_con","setInterval","$dzsapBoxMainCon","$playerBut","overwrite_this","$caller","stringSocialNetworksBlock","dzsap_social_feed_for_social_networks","stringShareLinkBlock","dzsap_social_feed_for_share_link","newloc","stringShareboxSocial","dzsap_social_feed_for_embed_link","replace_str","lightbox_open","open_dzsap_lightbox","_target","api_filter","view_player_playMiscEffects","$conPlayPause","view_player_globalDetermineSyncPlayersIndex","_sourcePlayer","forEach","$syncPlayer","dzsap_syncList_index","player_view_addMetaLoaded","$totalTime","waitForScriptToBeAvailableThenExecute","verifyVar","callbackFn","checkInterval","checkIfVarExists","clearInterval","then","catch","configureAudioPlayerOptionsInitial","isNaN","cue","feedEmbedCode","test","ajaxurl","design_color_bg","design_color_highlight","php_handler","playerFunctions","functionType","uniqueId","player_delete","prev","player_viewApplySkinWaveModes","sanitizeToHexColor","hexcolor","player_adjustIdentifiers","identifier_pcm","_feed_obj","$feed_fakeButton","player_getPlayFromTime","playFrom","sanitizeToIntFromPointTime","sampleTimeStart","arr","player_initSpectrumOnUserAction","handleMouseDown","addEventListener","once","player_icecastOrShoutcastRefresh","audioTypeSelfHosted_streamType","crossDomain","documentElement","innerHTML","new_title","new_artist","regexMatches","setup_media","radio_isGoingToUpdateSongName","radio_isGoingToUpdateArtistName","player_determineStickToBottomContainer","$stickToBottomContainer","player_stickToBottomContainerDetermineClasses","player_isGoingToSetupMediaNow","player_determineHtmlAreas","extraHtmlBottom","extraHtmlControlsLeft","extraHtmlControlsRight","extraHtmlAreas","controlsLeft","controlsRight","bottom","svg_share_icon","player_stopOtherPlayers","dzsap_list","i","api_destroy_for_rebuffer","player_constructArtistAndSongCon","structHtml","_conControls","_audioplayerInner","wrap","_apControls","_apControlsRight","_apControlsLeft","after","_conPlayPauseCon","before","convertPluginOptionsToFinalOptions","elThis","defaultOptions","argOptions","searchedAttr","$es","finalOptions","tempOptions","sw_setFromJson","undefined","$elThis","eval","aux_opts","generateFakeArrayForPcm","it1","random","dzsapWaveFunctions","retrieve_soundcloud_url","alert","soundcloud_retriever","async","dataType","q","t","newSource","original_real_mp3","stream_url","src_real_mp3","isRealPcm","scrubModeWave__initGenerateWaveData","isPlayPromised","play_media","ZoomSoundsNav","DzsApPlaylist","argThis","navClass","init","_sliderMain","_sliderClipper","_navMain","_navClipper","selfGallery","cgallery","currNr","lastCurrNr","nrChildren","tempNr","busy","first","destroyed","skin_redlight_give_controls_right_to_all_players","trying_to_get_track_data","arr_menuitems","track_data","str_alertBeforeRate","target_viy","begin_viy","change_viy","destroy_gallery","filterPlayersInPlaylist","filterBy","searchedString","$audioPlayer","referenceVal","isAccordingToSearch","isotope","filter","fadeIn","fadeOut","regenerate_sync_players_with_this_playlist","init_parse_track_data","parse_track_data","parseTrackData","get_nr_children","reinit","notInitedPlayersLength","menuDescriptionHtml","auxer","extra_class","menu_description","player_id","svg_play_icon","init_loaded","click_downloadAfterRate","play_curr_media","mode_showall_listen_for_play","ind","currNr_2","handle_frame","finish_viy","easeIn","toFixed","requestAnimFrame","toggle_menu_state","gallery_handle_end","goto_next","player_commentSubmitted","player_rateSubmitted","calculateDims","outerHeight","frameElement","calculate_on_interval","handleResize","transition_end","newCurrNr","transition_bg_end","goto_prev","sw_goto_item","goto_item","donotopenlink","called_from","_audioplayerToBeActive","currNr_last_vol","api_get_last_vol","args_player","init_player_from_gallery","api_play","api_seek_to","_arg","ignore_linking","foo","bgimage","animate","queue","duration","complete","step","api_handleResize","_cache","player_args","audioplayer","_firstPlayer","dzsap_apconfigs","lengthAudioPlayersInPlaylist","get_structZoomsoundsNav","set_elements","init_ready","bind","api_skin_redlights_give_controls_right_to_all","force_autoplay_when_coming_from_share_link","itemSelector","layoutMode","percentPosition","masonry","columnWidth","api_regenerate_sync_players_with_this_playlist","api_goto_next","api_goto_prev","api_goto_item","api_gallery_handle_end","api_toggle_menu_state","api_player_commentSubmitted","api_player_rateSubmitted","api_reinit","api_play_curr_media","api_get_nr_children","api_init_player_from_gallery","api_destroy","registerToJquery","audiogallery","_ag","linkedClassInstance","dzsag_init","selector","init_each","keys","svg_footer_playlist","svg_embed_btn","svg_prev_btn","svg_next_btn","svg_menu_state","svg_embed_button","playbtn_svg","pausebtn_svg","dzsapAjax","dzsCommons","hide_comments_writer","$commentsWritter","comments_setupCommentsInitial","$commentsChildren","str_comments_holder","self","comments_setupCommentsHolder","comments_handleClickCommentsBg","pageX","comments_handleClickCancel","comments_handleClickSubmit","skinwave_comments_process_in_php","wrapInner","comments_updateCommentHolderTimerWhenReady","percClickFromScrubWidth","$commentsHolder","leftMouseX","clientX","sw","$commentElement","lmx2","strCommentsAvatarUrl","add_comments_placeholder","comment_submit","comment_text","comment_email","comment_username","comm_author","$commentsSelector","MD5","comments_selector_event","parentGallery","structZoomsoundsNav","size_navMainClipSize","size_navMainTotalSize","click_menuitem","refferer","navMain_mousemove","my","pageY","top","viy","aux_error","unbind","foundnr","aux_html","label","views","dzsap_moving_playlist_item","dzsap_playlist_con","dzsap_playlist_item_moving","dzsap_playlist_item_target","DzsapInnerPlaylist","dzsapClass","$playlistInner","thisClass","handle_mouse","$t","playlistInner_gotoItem","clone","_clone","playlistInner_setupStructureInPlayer","stringPlaylistMenuItems","keySyncPlayer","attributes","specified","name","clientY","tmy","$targetPlayer","_cach","playlist_inner_currNr","playerId","$dzsapFooter","setup_structure_extras","$conControls","next","struct_embedButtonWithTooltip","dzsapHelpers","$embedButton","execCommand","feedEmbedFunctionality","classFunctionalityInnerPlaylist","index_extrahtml_toloads","unwrap","extraHtmlBottomFunctionality","isMultiSharer","check_multisharer","setup_structure","structure_str_apControls","setup_inner_player","setup_otherstructure","img","Image","setup_structure__setup_wrapper_image","aux_str_time","structure_str_scrubbar","aux_str_con_controls","sample_perc_start","sample_perc_end","struct_con_playpause","show_tooltips","aux_str_con_volume","playbtnSvg","pausebtnSvg","$theMedia","$$scrubbProg","$controlsVolume","$currTime","sample_time_total","time_total_for_visual","struct_generate_thumb","setup_structure_scrub","skin_minimal_canvasplay","isCanvasFirstDrawn","prev_btn_str","next_btn_str","auxs","setup_structure_sanitizers","afterArtist","settings_extrahtml_in_float_right_str","dzsap_wavesurfer_load_attempt","wave_mode_canvas_try_to_get_pcm","resolve_type","error_type","isPcmPromisingToGenerateOnMetaLoad","default_pcm","i3","stringify","scrubModeWave__view_transitionIn","scrubModeWave__checkIfWeShouldTryToGetPcm","tryToLoad","tryToGetPcm","calculate_dims_time","isPcmTryingToGenerate","isWeShouldGetPcm","view_drawCanvases","argpcm","calledFrom","draw_canvas","scrubbar_reveal","WaveSurfer","scrubModeWave__generateWaveData","baseUrl","i23","i24","wavesurferUrl","tryToLoad_waveSurferScript","promise","asyncLoadWaveSurfer","call_attempt","asyncRenderPcm","dzsap_generating_pcm","wavesurferConId","ceil","wavesurfer","create","container","normalize","pixelRatio","load","accuracy","pcmDataArr","pcmDataString","exportPCM","isPcmDataArrValid","backend","getPeaks","pcm_data","err2","error_message","wavesurfer_renderPcm","responsePcm","scrubModeWave__sendPcm","randomPcm","pcmArray","constructor","Array","map","$canvas_","pcm_arr","isProgressScrubContext","_canvas","__canvas","isWithinSample","_canvasContext","ar_str","waves","imageSmoothingEnabled","imageSmoothing","imageSmoothingQuality","webkitImageSmoothing","barIndex","max","widthCanvas","heightCanvas","ar_new","gradient","barCount","bar_space","reflection_size","bar_w","normal_size_ratio","lastBarHeight","searched_index","temp_hex","hexcolors","progress_hexcolor","progress_hexcolors","spectrum_isBarWithinProgress","view_drawBars","isReflection","save","targetRatio","barHeight","lineWidth","floor","barPositionTop","beginPath","rect","isSample","currBarIndex","sampleTimeTotal","sampleTimeEnd","fillStyle","startColor","endColor","createLinearGradient","addColorStop","fill","closePath","restore","clearRect","__webpack_module_cache__","__webpack_require__","moduleId","module","__webpack_modules__","mode","__esModule","ns","def","d","definition","defineProperty","enumerable","obj","prop","hasOwnProperty","Symbol","toStringTag","setupSoftWatermark","type_normal_stream_type","$watermarkMedia_","volume","defaultVolume","dzsapMisc","PlayerTime","referenceMediaCurrentTime","referenceMediaTotalTime","visualCurrentTime","visualTotalTime","dzsapInstance","check500ms","timeInstance","api_set_timeVisualCurrent","api_get_time_total","api_get_time_curr","getVisualCurrentTime","api_set_timeVisualTotal","currentTime","playFrom_ready","Storage","localStorage","pseudo_sample_time_start","handle_end","isMediaEnded","clearTimeout","inter_isEnded","api_seek_to_visual","temp_time_curr","sample_time_start","isSafeToChangeTrack","targetTime","pseudo_sample_time_end","sample_time_end","dzsapComments","dzsapPlaylist","dzsapStructure","dzsap_globalidind","isDzsapListForSyncBuilt","dzsap_list_for_sync_inter_build","dzsap_player_interrupted_by_dzsap","dzsap__style","dzsap_sticktobottom_con","dzsap_self_options","dzsap_player_index","DzsAudioPlayer","$realVisualPlayer","spectrum_audioContextBufferSource","lastArray","last_lastArray","player_playing","isPlayerLoaded","youtube_retryPlayTimeout","lastTimeInSeconds","classMisc","youtube_currentId","youtube_isInited","pseudo_sample_time_total","classInit","$arg","cthisWidth","inter_checkReady","cthisId","scrubbarWidth","scrubbarProgX","$scrubBgCanvas","isMuted","google_analytics_sent_play_event","destroyed_for_rebuffer","loop_active","isScrubShowingCurrentTime","setuped_listeners","isSetupedMedia","currTime_outerWidth","player_index_in_gallery","volume_lastVolume","last_vol_before_mute","inter_60_secs_contor","res_thumbh","volume_dragging","volume_set_by_user","is_under_400","scrubbar_moving","scrubbar_moving_x","aux3","canvasWidth","canh","stringAudioElementHtml","isNotRenderingEnterFrame","duration_viy","draw_canvas_inter","scrubbarh","change_visual_target","api_pause_media_visual","set_sourcePlayer","$sourcePlayer_","api_play_media_visual","api_draw_curr_time","api_get_times","api_check_time","api_draw_scrub_prog","view_updateColorHighlight","destroy_listeners","destroy_it","pause_media","handleClickForSetupMedia","handleClickMenuState","setupStructure_thumbnailCon","aux_thumb_con_str","outerHTML","wrapAll","setup_pcm_random_for_now","setupMediaAttrs","destroy","YT","dzsap_youtube_checkReady","stringAudioElement","stringAudioTagOpen","stringAudioTagSource","stringAudioTagClose","pause","volume_setVolume","attempt_reload","$audioElement_","target","networkState","HTMLMediaElement","NETWORK_NO_SOURCE","earg","txt","message","view_drawCurrentTime","readyState","init_checkIfReady","handleClick_playPause","aux_wasplaying","destroy_cmedia","destroy_media","setup_listeners","handleMouseOnScrubbar","volume_handleClickMuteIcon","volume_handleMouse","volume_getLast","handleMediaEnd","getItem","seek_to","do_not_autoplay","handleEnterFrame","count_60secs","syncPlayers_gotoPrev","syncPlayers_gotoNext","api_seek_to_0","api_playback_slow","api_playback_reset","seek_to_perc","totalTime","Uint8Array","frequencyBinCount","getByteFrequencyData","len","last_lastarray","drawMeter","view_updateTotalTime","view_drawScrubProgress","style","fire_only_once","requestAnimationFrame","processCurrentFrame","ctx_minimal","ctx_w","ctx_h","pw","ph","PI","arc","strokeStyle","stroke","stopPropagation","isToggleCancelled","inter_checkTotalTime","center_x","center_y","mouse_x","mouse_y","perc","syncPlayers_gotoItem","targetIncrement","targetIndex","$playerInSyncList","$currentSyncPlayer_","api_handle_end","aux2","draw_canvas_inter_func","_metaArtistCon_w","_metaArtistCon_l","params","postMessage","mouseXRelativeToVolume","mousex","targetPositionOnScrub","api_seek_to_perc","argperc","targetTimeMediaScrub","deeplinking","newlink","getActualTargetTime","fakeplayer_is_feeder","seekTo","seek_to_visual","set_playback_speed","setPlaybackRate","playbackRate","setVolume","volume_setOnlyVisual","api_visual_set_volume","api_set_volume","setItem","pause_media_visual","call_actual_player","donot_change_media","pauseVideo","play_media_visual","player_determineSyncPlayersIndex","call_from_aux","delay","_gaq","ga","__gaTracker","hitType","eventCategory","eventAction","eventLabel","api_regenerate_playerlist_inner","dzsap_youtube_playMedia","play","errorFn","createBufferSource","buffer","start","tryToPlay","async_media_tryToPlay","api_try_to_submit_view","try_to_submit_view","play_trigger_step_back","getSampleTimesFromDom","has","_t23","scriptUrl","dzsap_youtube_functions_inited","resolveStr","dzsap_youtube_functions_init","original_id","isGoingToSetupMediaNow","initObjects","classInstance","api_init_loaded","api_get_source","api_click_for_setup_media","api_set_playback_speed","_argSource","changeMediaArgsDefaults","feeder_type","source_player_do_not_update","isSourceAStringSource","isGoingToPauseTheOldPlayer","oldSource","original_type","$feedExtraHtmlRightFromSource","media_changeMedia","api_destroy_listeners","api_change_visual_target","api_change_design_color_highlight","api_playback_speed","argSpeed","api_set_action_audio_play","api_set_action_audio_pause","api_set_action_audio_end","api_set_action_audio_comment","passive","originalEvent","touches","handleClickLike","dzsap_part_starRatings_loaded","dzsap_init_starRatings_from_dzsap","dzsap_init_allPlayers","dzsap_init","callback","dzsap_jQueryInit","dzsap_list_for_sync_build","c","ready","element_count"],"mappings":"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","file":"audioplayer.js","sourcesContent":["export const ConstantsDzsAp = {\n PLAYLIST_TRANSITION_DURATION: 300,\n 'DEBUG_STYLE_1' : 'background-color: #aaa022; color: #222222;',\n 'DEBUG_STYLE_2' : 'background-color: #7c3b8e; color: #ffffff;',\n 'DEBUG_STYLE_3' : 'background-color: #3a696b; color: #eeeeee;',\n 'DEBUG_STYLE_ERROR' : 'background-color: #3a696b; color: #eeeeee;',\n URL_WAVESURFER : 'https://unpkg.com/wavesurfer.js@3.3.3/dist/wavesurfer.min.js',\n WAVESURFER_MAX_TIMEOUT : 20000,\n URL_JQUERY : 'https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js',\n DEBUG_STYLE_PLAY_FUNCTIONS: 'background-color: #daffda; color: #222222;',\n ERRORED_OUT_CLASS: 'errored-out',\n ERRORED_OUT_MAX_ATTEMPTS: 5\n}\n","var default_opts = {\n design_skin: 'skin-default', // -- the skin of the player - can be set from the html as well,autoplay: 'off' // -- autoplay the track ( only works is cue is set to \"on\"\n call_from: 'default', // -- call from a specific api\n autoplay_on_scrub_click: 'off', // -- autoplay the track ( only works is cue is set to \"on\"\n cueMedia: 'on', // -- this chooses wheter \"on\" or not \"off\" a part .. what part is decided by the preload_method below\n preload_method: 'metadata', // -- \"none\" or \"metadata\" or \"auto\" ( whole track )\n loop: 'off', // -- loop the track\n pause_method: 'pause', // -- loop the track\n // -- extra HTML\n settings_extrahtml: '', // -- some extra html - can be rates, plays, likes\n settings_extrahtml_before_play_pause: '', // -- some extra html that you may want before play button\n settings_extrahtml_after_play_pause: '', // -- some extra html that you may want after play button\n\n settings_trigger_resize: '0', // -- check the player dimensions every x milli seconds\n design_thumbh: \"default\", // -- thumbnail size\n extra_classes_player: '',\n disable_volume: 'default',\n disable_scrub: 'default'\n , disable_timer: 'default' // -- disable timer display\n , disable_player_navigation: 'off'\n , scrub_show_scrub_time: 'on'\n , player_navigation: 'default' // -- auto decide if we need player navigation\n , type: 'audio'\n , enable_embed_button: 'off' // -- enable the embed button\n , embed_code: '' // -- embed code\n , skinwave_dynamicwaves: 'off' // -- dynamic scale based on volume for no spectrum wave\n , soundcloud_apikey: '', // -- set the sound cloud api key\n skinwave_enableSpectrum: 'off' // -- off or on\n , skinwave_place_thumb_after_volume: 'off' // -- place the thumbnail after volume button\n , skinwave_place_metaartist_after_volume: 'off' // -- place metaartist after volume button\n , skinwave_spectrummultiplier: '1' // -- (deprecated) number\n , php_retriever: 'soundcloudretriever.php' // -- the soundcloud php file used to render soundcloud files\n , skinwave_mode: 'normal' // -- \"normal\" or \"small\" or \"alternate\"\n , skinwave_wave_mode: 'canvas' // -- \"normal\" or \"canvas\" or \"line\"\n , skinwave_wave_mode_canvas_mode: 'normal' // -- \"normal\" or \"reflecto\"\n , skinwave_wave_mode_canvas_normalize: 'on' // -- normalize wave to look more natural\n\n // -- wave settings\n , skinwave_wave_mode_canvas_waves_number: '3' // -- the number of waves in the canvas ( \"1\" pixel waves, \"2\" 2 pixel width waves, \"3\" 3 pixel width waves, \"anything more then 3\" means number of waves in the container, for example 100 means 100 waves in 1000px container if the container is 1000px width )\n , skinwave_wave_mode_canvas_waves_padding: '1' // -- padding between waves ( \"1\" 1 pixel between < - > \"0\" no reflection )\n , skinwave_wave_mode_canvas_reflection_size: '0.25' // -- the reflection size ( \"1\" full size < - > \"0\" no reflection )\n , wavesurfer_pcm_length: '200' // -- define the precision of the wave generation; higher is more precise, but occupies more space\n\n , pcm_data_try_to_generate: 'on' // -- try to find out the pcm data and sent it via ajax ( maybe send it via php_handler\n , pcm_data_try_to_generate_wait_for_real_pcm: 'on' // -- if set to on, the fake pcm data will not be generated\n , pcm_notice: 'off' // -- show a notice for pcm\n , notice_no_media: 'on', // -- show a notice for when the media errors out\n\n sampleTimesMode: 'realPrevivew', // -- \"realPreview\" or \"pseudoPreview\"\n mobile_delete: \"off\", // -- delete the whole player on mobile, useful for unwanted footer players in mobile\n footer_btn_playlist: \"off\", // -- construct inner player playlist\n mobile_disable_fakeplayer: \"off\", // -- disable feeding to other players on mobile\n skinwave_comments_displayontime: 'on', // -- display the comment when the scrub header is over it\n skinwave_comments_allow_post_if_not_logged_in: 'on', // -- allow posting in comments section if not looged in, to be logged in, skinwave_comments_account must be an account id\n\n skinwave_comments_links_to: '', // -- clicking the comments bar will lead to this link ( optional )\n skinwave_comments_enable: 'off', // -- enable the comments, publisher.php must be in the same folder as this html\n skinwave_comments_mode_outer_selector: '', // -- the outer selector if it has one\n skinwave_comments_playerid: '',\n\n skinwave_timer_static: 'off', // -- Timer indicators are static\n default_volume: 'default', // -- number / set the default volume 0-1 or \"last\" for the last known volume\n volume_from_gallery: '' // -- the volume set from the gallery item select, leave blank if the player is not called from the gallery\n , design_menu_show_player_state_button: 'off', // -- show a button that allows to hide or show the menu\n playfrom: 'off', // -- off or specific number of settings or set to \"last\"\n design_animateplaypause: 'default'\n , embedded: 'off', // // -- if embedded in a iframe\n embedded_iframe_id: '', // // -- if embedded in a iframe, specify the iframe id here\n google_analytics_send_play_event: 'off' // -- send the play event to google analytics, you need to have google analytics script already on your page\n , fakeplayer: null // -- if this is a fake player, it will feed\n , failsafe_repair_media_element: '' // -- some scripts might effect the media element used by zoomsounds, this is how we replace the media element in a certain time\n , action_audio_play: null // -- set a outer play function ( for example for tracking your analytics )\n , action_audio_play2: null // -- set a outer play function ( for example for tracking your analytics )\n , action_audio_pause: null // -- set a outer play function ( for example for tracking your analytics )\n , action_audio_end: null // -- set a outer ended function ( for example for tracking your analytics )\n , action_audio_comment: null // -- set a outer commented function ( for example for tracking your analytics )\n , action_received_time_total: null // -- event triggers at receiving time total\n , action_audio_change_media: null, // -- set a outer on change track function\n action_audio_loaded_metadata: null, // -- set a outer commented function ( for example for tracking your analytics )\n action_video_contor_60secs: null, // -- fire every 30s\n type_audio_stop_buffer_on_unfocus: 'off', // -- if set to on, when the audio player goes out of focus, it will unbuffer the file so that it will not load anymore, useful if you want to stop buffer on large files\n construct_player_list_for_sync: 'off', // -- construct a player list from the page that features single players playing one after another. searches for the .is-single-player class in the DOM\n\n\n settings_exclude_from_list: 'off', // -- a audioplayer list is formed at runtime so that when\n design_wave_color_bg: '222222', // -- waveform background color.. 000000,ffffff gradient is allowed\n design_wave_color_progress: 'ea8c52', // -- waveform progress color\n\n\n skin_minimal_button_size: '100',\n gallery_gapless_play: 'off', // -- play without pause\n preview_on_hover: 'off', // -- on mouseenter autoplay the track\n watermark_volume: '1', // -- on mouseenter autoplay the track\n controls_external_scrubbar: '', // -- on mouseenter autoplay the track\n parentgallery: null, // -- the parent gallery of the player\n scrubbar_type: 'auto', // -- \"wave\" or \"spectrum\" or \"bar\"\n\n settings_php_handler: '', // -- the path of the publisher.php file, this is used to handle comments, likes etc. - can be \"wpdefault\"\n\n view_scrubDisabled: 'off', // -- scrub can be disabled\n};\nexports.default_opts = default_opts;\n\n// settings_extrahtml -- for plays use
{{get_plays}}
\n","exports.default_opts = {\n design_skin: 'skin-default', // -- \"skin-default\" or \"skin-aura\" or \"skin-wave\"\n cueFirstMedia: 'on', // -- preload the mp3 to the first item\n autoplay: 'off', // -- autoplay the first item\n autoplayNext: 'on', // -- autoplay items after the first item\n settings_enable_linking: 'off', // -- use html5 history to remember last position in the gallery\n\n design_menu_position: 'bottom',\n navigation_method: 'mouseover', // -- 'mouseover', 'full', 'legacyscroll' or 'dzsscroll'\n design_menu_state: 'open', // -- options are \"open\" or \"closed\", this sets the initial state of the menu, even if the initial state is \"closed\", it can still be opened by a button if you set design_menu_show_player_state_button to \"on\"\n design_menu_show_player_state_button: 'off', // -- show a button that allows to hide or show the menu\n design_menu_width: 'default',\n design_menu_height: 'default',\n design_menu_space: 'default',\n settings_php_handler: '', // -- link to publisher.php ( auto assigned in wordpress to admin-ajax.php )\n design_menuitem_width: 'default',\n design_menuitem_height: 'default',\n design_menuitem_space: 'default',\n\n disable_menu_navigation: 'off',\n loop_playlist: 'on'\n , menu_facebook_share: 'auto' // -- mousemove or scroller or all\n , enable_easing: 'off' // -- enable easing for menu animation\n , settings_ap: 'default' // -- string or array\n , playlistTransition: 'fade' // -- fade or direct\n , embedded: 'off'\n , mode_showall_layout: 'one-per-row' // or \"two-per-row\" or \"three-per-row\"\n , settings_mode: 'mode-normal' // -- mode-normal or mode-showall\n , settings_mode_showall_show_number: 'on' // mode-normal or mode-showall\n , mode_normal_video_mode: 'auto' // -- auto or \"one\" ( only one audio player )\n\n};\n\n","exports.decode_json = function (arg) {\n var fout = {};\n\n if (arg) {\n\n try {\n\n fout = JSON.parse(arg);\n } catch (err) {\n console.log(err, arg);\n return null;\n }\n }\n\n return fout;\n}\n\nexports.loadScriptIfItDoesNotExist = (scriptSrc, checkForVar) => {\n return new Promise((resolve, reject) => {\n console.log({checkForVar})\n if (checkForVar) {\n resolve('loadfromvar');\n }\n var script = document.createElement('script');\n script.onload = function () {\n resolve('loadfromload');\n };\n script.onerror = function () {\n reject();\n };\n script.src = scriptSrc;\n\n document.head.appendChild(script);\n })\n}\n\n/**\n *\n * @param {string} baseUrlVar - something like 'dzsap_base_url'\n * @param scriptName\n * @returns {string[]}\n */\nexports.getBaseUrl = (baseUrlVar, scriptName) => {\n if (window[baseUrlVar]) {\n // console.log('baseUrlVar')\n return window[baseUrlVar];\n }\n\n let scripts = document.getElementsByTagName(\"script\");\n for (var scriptKey in scripts) {\n if (scripts[scriptKey] && scripts[scriptKey].src && String(scripts[scriptKey].src).indexOf(scriptName) > -1) {\n break;\n }\n }\n var baseUrl_arr = String(scripts[scriptKey].src).split('/');\n baseUrl_arr.splice(-1, 1);\n // console.log(baseUrl_arr);\n const result = baseUrl_arr.join('/');\n window[baseUrlVar] = result;\n return result;\n}\nexports.sanitizeToCssPx = (arg) => {\n\n if (String(arg).indexOf('%') > -1 || String(arg).indexOf('em') > -1 || String(arg).indexOf('px') > -1 || String(arg).indexOf('auto') > -1) {\n return arg;\n }\n return arg + 'px';\n}\n\n/**\n *\n * @param args\n * @param args.tooltipInnerHTML {string}\n * @param args.tooltipIndicatorText {string}\n * @param args.tooltipConClass {string}\n * @returns {string}\n */\nexports.setupTooltip = (args) => {\n\n var mainArgs = Object.assign({\n tooltipInnerHTML: '',\n tooltipIndicatorText: '',\n tooltipConClass: '',\n }, args)\n\n return `
${mainArgs.tooltipInnerHTML} ${mainArgs.tooltipIndicatorText}
`;\n}\n\n\nexports.isInt = function (n) {\n return typeof n == 'number' && Math.round(n) % 1 == 0;\n}\n\nexports.isValid = function (n) {\n return typeof n != 'undefined' && n != '';\n}\n\n\nexports.getRelativeX = function (mouseX, $el_) {\n if (jQuery) {\n return mouseX - jQuery($el_).offset().left;\n }\n}\n","const dzsHelpers = require('../js_common/_dzs_helpers');\nimport * as dzsapHelpers from './_dzsap_helpers';\n\nexport const ajax_submit_views = function (argp) {\n\n // console.log('ajax_submit_views()',argp);\n\n // console.log('this - ', this);\n var selfClass = this;\n var $ = jQuery;\n var data = {\n action: 'dzsap_submit_views',\n postdata: 1,\n playerid: selfClass.the_player_id,\n currip: selfClass.currIp\n };\n\n\n if (selfClass.cthis.attr('data-playerid-for-views')) {\n data.playerid = selfClass.cthis.attr('data-playerid-for-views');\n }\n\n\n if (data.playerid == '') {\n data.playerid = dzsapHelpers.dzs_clean_string(selfClass.data_source);\n }\n\n // console.log(ajax_view_submitted);\n\n\n // -- submit view\n if (selfClass.urlToAjaxHandler) {\n $.ajax({\n type: \"POST\",\n url: selfClass.urlToAjaxHandler,\n data: data,\n success: function (response) {\n if (typeof window.console != \"undefined\") {\n // console.log('Got this from the server: ' + response);\n }\n\n // -- increase number of hits\n var auxnr = selfClass.cthis.find('.counter-hits .the-number').html();\n auxnr = parseInt(auxnr, 10);\n if (selfClass.increment_views != 2) {\n auxnr++;\n }\n if (response) {\n if (dzsHelpers.decode_json(response)) {\n auxnr = dzsHelpers.decode_json(response)['number'];\n }\n }\n\n selfClass.cthis.find('.counter-hits .the-number').html(auxnr);\n\n selfClass.ajax_view_submitted = 'on';\n },\n error: function (arg) {\n if (typeof window.console != \"undefined\") {\n // console.log('Got this from the server: ' + arg, arg);\n }\n ;\n\n\n var auxlikes = selfClass.cthis.find('.counter-hits .the-number').html();\n auxlikes = parseInt(auxlikes, 10);\n auxlikes++;\n selfClass.cthis.find('.counter-hits .the-number').html(auxlikes);\n\n selfClass.ajax_view_submitted = 'on';\n }\n });\n selfClass.ajax_view_submitted = 'on';\n }\n\n}\n\n\n// export const ajax_submit_like = function (argp, playerid, pargs) {\n\n// -- from gallery -- todo:replace with universal form!!\n\n//only handles ajax call + result\n\n\n// var selfClass = this;\n// var $ = jQuery;\n//\n//\n// var mainarg = argp;\n// var data = {\n// action: 'dzsap_submit_like',\n// postdata: mainarg,\n// playerid: playerid\n// };\n//\n// var margs = {\n// refferer: null\n// }\n//\n// if (pargs) {\n// margs = $.extend(margs, pargs);\n// }\n//\n// //console.log(margs,pargs,o.settings_php_handler);\n//\n//\n// if (selfClass.urlToAjaxHandler) {\n//\n// $.ajax({\n// type: \"POST\",\n// url: selfClass.urlToAjaxHandler,\n// data: data,\n// success: function (response) {\n// if (typeof window.console != \"undefined\") {\n// // console.log('Got this from the server: ' + response);\n// }\n//\n// if (margs.refferer) {\n// margs.refferer.addClass('active');\n// }\n// },\n// error: function (arg) {\n// if (typeof window.console != \"undefined\") {\n// // console.log('Got this from the server: ' + arg, arg);\n// }\n// ;\n// }\n// });\n// }\n// }\n\n\nexport const ajax_submit_like = function (argp) {\n var selfClass = this;\n var $ = jQuery;\n\n //only handles ajax call + result\n var mainarg = argp;\n var data = {\n action: 'dzsap_submit_like',\n postdata: mainarg,\n playerid: selfClass.the_player_id\n };\n\n\n selfClass.cthis.find('.btn-like').addClass('disabled');\n\n if (selfClass.urlToAjaxHandler || selfClass.cthis.hasClass('is-preview')) {\n\n $.ajax({\n type: \"POST\",\n url: selfClass.urlToAjaxHandler,\n data: data,\n success: function (response) {\n if (typeof window.console != \"undefined\") {\n // console.log('Got this from the server: ' + response);\n }\n\n selfClass.cthis.find('.btn-like').addClass('active');\n selfClass.cthis.find('.btn-like').removeClass('disabled');\n var auxlikes = selfClass.cthis.find('.counter-likes .the-number').html();\n auxlikes = parseInt(auxlikes, 10);\n auxlikes++;\n selfClass.cthis.find('.counter-likes .the-number').html(auxlikes);\n },\n error: function (arg) {\n if (typeof window.console != \"undefined\") {\n // console.log('Got this from the server: ' + arg, arg);\n }\n ;\n\n\n selfClass.cthis.find('.btn-like').addClass('active');\n selfClass.cthis.find('.btn-like').removeClass('disabled');\n var auxlikes = selfClass.cthis.find('.counter-likes .the-number').html();\n auxlikes = parseInt(auxlikes, 10);\n auxlikes++;\n selfClass.cthis.find('.counter-likes .the-number').html(auxlikes);\n }\n });\n }\n}\n\nexport const ajax_retract_like = function (argp) {\n var selfClass = this;\n var $ = jQuery;\n\n //only handles ajax call + result\n var mainarg = argp;\n var data = {\n action: 'dzsap_retract_like',\n postdata: mainarg,\n playerid: selfClass.the_player_id\n };\n\n selfClass.cthis.find('.btn-like').addClass('disabled');\n\n\n if (selfClass.urlToAjaxHandler) {\n $.ajax({\n type: \"POST\",\n url: selfClass.urlToAjaxHandler,\n data: data,\n success: function (response) {\n if (typeof window.console != \"undefined\") {\n // console.log('Got this from the server: ' + response);\n }\n\n selfClass.cthis.find('.btn-like').removeClass('active');\n selfClass.cthis.find('.btn-like').removeClass('disabled');\n var auxlikes = selfClass.cthis.find('.counter-likes .the-number').html();\n auxlikes = parseInt(auxlikes, 10);\n auxlikes--;\n selfClass.cthis.find('.counter-likes .the-number').html(auxlikes);\n },\n error: function (arg) {\n if (typeof window.console != \"undefined\") {\n // console.log('Got this from the server: ' + arg, arg);\n }\n ;\n\n selfClass.cthis.find('.btn-like').removeClass('active');\n selfClass.cthis.find('.btn-like').removeClass('disabled');\n var auxlikes = selfClass.cthis.find('.counter-likes .the-number').html();\n auxlikes = parseInt(auxlikes, 10);\n auxlikes--;\n selfClass.cthis.find('.counter-likes .the-number').html(auxlikes);\n }\n });\n }\n}\n\n\nexport const ajax_comment_publish = function (argp) {\n // -- only handles ajax call + result\n var selfClass = this;\n var $ = jQuery;\n var o = selfClass.initOptions;\n\n console.log(' o - ', o, selfClass);\n\n var mainarg = argp;\n var data = {\n action: 'dzsap_front_submitcomment',\n postdata: mainarg,\n playerid: selfClass.the_player_id,\n comm_position: selfClass.commentPositionPerc,\n };\n\n if (window.dzsap_settings) {\n data.skinwave_comments_avatar = window.dzsap_settings.comments_avatar;\n data.skinwave_comments_account = window.dzsap_settings.comments_username;\n }\n\n if (selfClass.cthis.find('*[name=comment-email]').length > 0) {\n data.email = selfClass.cthis.find('*[name=comment-email]').eq(0).val();\n }\n\n\n if (selfClass.urlToAjaxHandler) {\n jQuery.ajax({\n type: \"POST\",\n url: selfClass.urlToAjaxHandler,\n data: data,\n success: function (response) {\n if (response.charAt(response.length - 1) == '0') {\n response = response.slice(0, response.length - 1);\n }\n if (typeof window.console != \"undefined\") {\n // console.log('Got this from the server: ' + response);\n }\n\n //console.log(data.postdata);\n\n\n var aux = '';\n\n // -- process php\n aux = '';\n aux += '@' + window.dzsap_settings.comments_username + ' says:
';\n aux += dzsapHelpers.htmlEncode(data.postdata);\n\n\n aux += '
';\n\n\n // console.log(aux);\n // selfClass._commentsHolder.append(aux);\n\n selfClass._commentsHolder.children().each(function () {\n var _t2 = $(this);\n\n if (_t2.hasClass('dzstooltip-con') == false) {\n _t2.addClass('dzstooltip-con');\n }\n })\n\n selfClass._commentsHolder.append(aux);\n\n\n if (selfClass.action_audio_comment) {\n selfClass.action_audio_comment(selfClass.cthis, aux);\n }\n\n\n //jQuery('#save-ajax-loading').css('visibility', 'hidden');\n },\n error: function (arg) {\n if (typeof window.console != \"undefined\") {\n // console.log('Got this from the server: ' + arg, arg);\n }\n ;\n selfClass._commentsHolder.append(data.postdata);\n }\n });\n }\n}\n\n\nexport const ajax_submit_total_time = function (selfClass) {\n\n if (!selfClass.isSentCacheTotalTime) {\n if (!selfClass.cthis.attr('data-sample_time_total')) {\n if (selfClass.initOptions.action_received_time_total) {\n // console.log('drawTotalTime selfClass.cthis - ', selfClass.cthis);\n selfClass.timeModel.refreshTimes();\n selfClass.initOptions.action_received_time_total(selfClass.timeModel.getVisualTotalTime(), selfClass.cthis);\n }\n }\n selfClass.isSentCacheTotalTime = true;\n }\n}\n\n\nexport const ajax_submit_download = function (argp) {\n //only handles ajax call + result\n var mainarg = argp;\n var selfClass = this;\n var data = {\n action: 'dzsap_submit_download',\n postdata: mainarg,\n playerid: selfClass.the_player_id\n };\n\n if (selfClass.starrating_alreadyrated > -1) {\n return;\n }\n\n if (selfClass.urlToAjaxHandler) {\n\n jQuery.ajax({\n type: \"POST\",\n url: selfClass.urlToAjaxHandler,\n data: data,\n success: function (response) {\n // console.log('Got this from the server: ' + response);\n\n\n },\n error: function (arg) {\n // console.log('Got this from the server: ' + arg, arg);\n\n\n }\n });\n }\n};\n\n","const dzsapSvgs = require('./_dzsap_svgs');\nconst dzsHelpers = require('../js_common/_dzs_helpers');\n\nconst dzsap_generate_keyboard_controls = function () {\n var keyboard_controls = {\n 'play_trigger_step_back': 'off'\n , 'step_back_amount': '5'\n , 'step_back': '37'\n , 'step_forward': '39'\n , 'sync_players_goto_next': ''\n , 'sync_players_goto_prev': ''\n , 'pause_play': '32'\n , 'show_tooltips': 'off'\n }\n\n\n if (window.dzsap_keyboard_controls) {\n // console.log('keyboard_controls - ',keyboard_controls);\n // console.log('window.dzsap_keyboard_controls - ',window.dzsap_keyboard_controls);\n keyboard_controls = jQuery.extend(keyboard_controls, window.dzsap_keyboard_controls);\n }\n\n keyboard_controls.step_back_amount = Number(keyboard_controls.step_back_amount);\n // for (let lab in keyboard_controls) {\n // keyboard_controls[lab] = Number(keyboard_controls[lab]);\n // }\n\n return keyboard_controls;\n};\n\n\nfunction formatTime(arg) {\n //formats the time\n var s = Math.round(arg);\n var m = 0;\n var h = 0;\n if (s > 0) {\n while (s > 3599 && s < 3000000 && isFinite(s)) {\n h++;\n s -= 3600;\n }\n while (s > 59 && s < 3000000 && isFinite(s)) {\n m++;\n s -= 60;\n }\n if (h) {\n\n return String((h < 10 ? \"0\" : \"\") + h + \":\" + String((m < 10 ? \"0\" : \"\") + m + \":\" + (s < 10 ? \"0\" : \"\") + s));\n }\n return String((m < 10 ? \"0\" : \"\") + m + \":\" + (s < 10 ? \"0\" : \"\") + s);\n } else {\n return \"00:00\";\n }\n}\n\nfunction can_history_api() {\n return !!(window.history && history.pushState);\n}\n\nfunction dzs_clean_string(arg) {\n\n if (arg) {\n\n arg = arg.replace(/[^A-Za-z0-9\\-]/g, '');\n //console.log(arg);\n arg = arg.replace(/\\./g, '');\n return arg;\n }\n\n return '';\n\n\n //console.log(arg);\n\n\n}\n\n\nfunction get_query_arg(purl, key) {\n if (purl) {\n // console.log('purl - ',purl);\n if (String(purl).indexOf(key + '=') > -1) {\n //faconsole.log('testtt');\n var regexS = \"[?&]\" + key + \"=.+\";\n var regex = new RegExp(regexS);\n var regtest = regex.exec(purl);\n //console.log(regtest);\n\n if (regtest != null) {\n var splitterS = regtest[0];\n if (splitterS.indexOf('&') > -1) {\n var aux = splitterS.split('&');\n splitterS = aux[1];\n }\n //console.log(splitterS);\n var splitter = splitterS.split('=');\n //console.log(splitter[1]);\n //var tempNr = ;\n\n return splitter[1];\n\n }\n //$('.zoombox').eq\n }\n\n } else {\n console.log('purl not found - ', purl);\n }\n}\n\nfunction add_query_arg(purl, key, value) {\n // -- key and value must be unescaped for uri\n key = encodeURIComponent(key);\n value = encodeURIComponent(value);\n\n if (!(purl)) {\n purl = '';\n }\n var s = purl;\n var pair = key + \"=\" + value;\n\n var r = new RegExp(\"(&|\\\\?)\" + key + \"=[^\\&]*\");\n\n s = s.replace(r, \"$1\" + pair);\n //console.log(s, pair);\n if (s.indexOf(key + '=') > -1) {\n\n\n } else {\n if (s.indexOf('?') > -1) {\n s += '&' + pair;\n } else {\n s += '?' + pair;\n }\n }\n //if(!RegExp.$1) {s += (s.length>0 ? '&' : '?') + kvp;};\n\n\n //if value NaN we remove this field from the url\n if (value === 'NaN') {\n var regex_attr = new RegExp('[\\?|\\&]' + key + '=' + value);\n s = s.replace(regex_attr, '');\n\n\n if (s.indexOf('?') === -1 && s.indexOf('&') > -1) {\n s = s.replace('&', '?');\n }\n }\n\n return s;\n}\n\n\nfunction dzsap_is_mobile() {\n\n // return true;\n return is_ios() || is_android_good();\n}\n\nexports.is_ie = function () {\n return !!window.MSInputMethodContext && !!document.documentMode;\n}\n\nfunction is_ios() {\n // return true;\n return ((navigator.platform.indexOf(\"iPhone\") !== -1) || (navigator.platform.indexOf(\"iPod\") !== -1) || (navigator.platform.indexOf(\"iPad\") !== -1));\n}\n\n\nfunction can_canvas() {\n // check if we have canvas support\n var oCanvas = document.createElement(\"canvas\");\n if (oCanvas.getContext(\"2d\")) {\n return true;\n }\n return false;\n}\n\nfunction is_safari() {\n return Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;\n}\n\n\nfunction is_android() {\n return is_android_good();\n}\n\nfunction select_all(el) {\n if (typeof window.getSelection !== \"undefined\" && typeof document.createRange !== \"undefined\") {\n var range = document.createRange();\n range.selectNodeContents(el);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (typeof document.selection !== \"undefined\" && typeof document.body.createTextRange !== \"undefined\") {\n var textRange = document.body.createTextRange();\n textRange.moveToElementText(el);\n textRange.select();\n }\n}\n\nfunction is_android_good() {\n //return false;\n //return true;\n var ua = navigator.userAgent.toLowerCase();\n\n //console.log('ua - ',ua);\n return (ua.indexOf(\"android\") > -1);\n}\n\nfunction htmlEncode(arg) {\n return jQuery('
').text(arg).html();\n}\n\nfunction dzsap_generate_keyboard_tooltip(keyboard_controls, lab) {\n\n\n // console.log('keyboard_controls - ',keyboard_controls,lab,keyboard_controls.lab);\n var structureDzsTooltipCommentAfterSubmit = '' + 'Shortcut' + ': ' + keyboard_controls[lab] + '';\n // left: 5px;\n structureDzsTooltipCommentAfterSubmit = structureDzsTooltipCommentAfterSubmit.replace('32', 'space');\n structureDzsTooltipCommentAfterSubmit = structureDzsTooltipCommentAfterSubmit.replace('27', 'escape');\n\n return structureDzsTooltipCommentAfterSubmit;\n\n\n}\n\n\n\n\n/**\n *\n * @param e\n * @param {number} e.keyCode\n * @param {boolean} e.ctrlKey\n * @returns {boolean}\n */\nfunction handle_keypresses(e) {\n\n // -- local .. step back / step forward\n // console.log('handle_keypresses()', {e});\n\n /**\n *\n * @param {string} checkKeyCode\n * @returns {boolean}\n */\n function isKeyPressed(checkKeyCode) {\n let isKeyPressed = false;\n if (checkKeyCode.indexOf('ctrl+') > -1) {\n if (e.ctrlKey) {\n checkKeyCode = checkKeyCode.replace('ctrl+', '');\n if (e.keyCode === Number(checkKeyCode)) {\n isKeyPressed = true;\n }\n }\n } else {\n if (e.keyCode === Number(checkKeyCode)) {\n isKeyPressed = true;\n }\n }\n return isKeyPressed;\n }\n\n var $ = jQuery;\n\n var keyboard_controls = $.extend({}, dzsap_generate_keyboard_controls());\n // console.log('keyboard_controls.pause_play - ',keyboard_controls.pause_play);\n // console.log('keyboard_controls - ',keyboard_controls);\n\n // console.log('e.keyCode - ',e.keyCode, keyboard_controls);\n\n if (dzsap_currplayer_focused && dzsap_currplayer_focused.api_pause_media) {\n\n if (isKeyPressed(keyboard_controls.pause_play)) {\n if ($(dzsap_currplayer_focused).hasClass('comments-writer-active') === false) {\n if ($(dzsap_currplayer_focused).hasClass('is-playing')) {\n dzsap_currplayer_focused.api_pause_media();\n } else {\n dzsap_currplayer_focused.api_play_media();\n }\n\n if (window.dzsap_mouseover) {\n e.preventDefault();\n return false;\n }\n }\n }\n\n\n if (isKeyPressed(keyboard_controls.step_back)) {\n dzsap_currplayer_focused.api_step_back(keyboard_controls.step_back_amount);\n }\n\n if (isKeyPressed(keyboard_controls.step_forward)) {\n dzsap_currplayer_focused.api_step_forward(keyboard_controls.step_back_amount);\n }\n\n if (isKeyPressed(keyboard_controls.sync_players_goto_next)) {\n if (dzsap_currplayer_focused && dzsap_currplayer_focused.api_sync_players_goto_next) {\n dzsap_currplayer_focused.api_sync_players_goto_next();\n }\n }\n\n\n if (isKeyPressed(keyboard_controls.sync_players_goto_prev)) {\n if (dzsap_currplayer_focused && dzsap_currplayer_focused.api_sync_players_goto_prev) {\n dzsap_currplayer_focused.api_sync_players_goto_prev();\n }\n }\n\n\n }\n}\n\n\nfunction hexToRgb(hex, palpha) {\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n var str = '';\n if (result) {\n result = {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n };\n\n\n var alpha = 1;\n\n if (palpha) {\n alpha = palpha;\n }\n\n\n str = 'rgba(' + result.r + ',' + result.g + ',' + result.b + ',' + alpha + ')';\n }\n\n\n // console.log('hexToRgb ( hex - '+hex+' ) result ', str);\n\n return str;\n\n\n}\n\nexports.assignHelperFunctionsToJquery = function ($) {\n\n $.fn.prependOnce = function (arg, argfind) {\n var _t = $(this) // It's your element\n\n\n // console.log(argfind);\n if (typeof (argfind) === 'undefined') {\n var regex = new RegExp('class=\"(.*?)\"');\n var auxarr = regex.exec(arg);\n\n\n if (typeof auxarr[1] !== 'undefined') {\n argfind = '.' + auxarr[1];\n }\n }\n\n\n // we compromise chaining for returning the success\n if (_t.children(argfind).length < 1) {\n _t.prepend(arg);\n return true;\n } else {\n return false;\n }\n };\n $.fn.appendOnce = function (arg, argfind) {\n var _t = $(this) // It's your element\n\n\n if (typeof (argfind) === 'undefined') {\n var regex = new RegExp('class=\"(.*?)\"');\n var auxarr = regex.exec(arg);\n\n\n if (typeof auxarr[1] !== 'undefined') {\n argfind = '.' + auxarr[1];\n }\n }\n // we compromise chaining for returning the success\n if (_t.children(argfind).length < 1) {\n _t.append(arg);\n return true;\n } else {\n return false;\n }\n };\n};\n\n\nexports.registerTextWidth = function ($) {\n\n $.fn.textWidth = function () {\n var _t = jQuery(this);\n var html_org = _t.html();\n if (_t[0].nodeName === 'INPUT') {\n html_org = _t.val();\n }\n var html_calcS = '' + html_org + '';\n jQuery('body').append(html_calcS);\n var _lastspan = jQuery('span.forcalc').last();\n //console.log(_lastspan, html_calc);\n _lastspan.css({\n 'font-size': _t.css('font-size'),\n 'font-family': _t.css('font-family')\n })\n var width = _lastspan.width();\n //_t.html(html_org);\n _lastspan.remove();\n return width;\n };\n}\nexports.player_checkIfWeShouldShowAComment = player_checkIfWeShouldShowAComment;\n\nfunction player_checkIfWeShouldShowAComment(selfClass, real_time_curr, real_time_total) {\n\n var $ = jQuery;\n var timer_curr_perc = Math.round((real_time_curr / real_time_total) * 100) / 100;\n if (selfClass.audioType === 'fake') {\n timer_curr_perc = Math.round((selfClass.timeCurrent / selfClass.timeTotal) * 100) / 100;\n }\n if (selfClass._commentsHolder) {\n selfClass._commentsHolder.children().each(function () {\n var _t = $(this);\n if (_t.hasClass('dzstooltip-con')) {\n var _t_posx = _t.offset().left - selfClass._commentsHolder.offset().left;\n\n\n var aux = Math.round((parseFloat(_t_posx) / selfClass._commentsHolder.outerWidth()) * 100) / 100;\n\n\n if (aux) {\n\n if (Math.abs(aux - timer_curr_perc) < 0.02) {\n selfClass._commentsHolder.find('.dzstooltip').removeClass('active');\n _t.find('.dzstooltip').addClass('active');\n } else {\n _t.find('.dzstooltip').removeClass('active');\n }\n }\n }\n })\n }\n}\n\nexports.sanitizeObjectForChangeMediaArgs = sanitizeObjectForChangeMediaArgs;\n\nfunction sanitizeObjectForChangeMediaArgs(_sourceForChange) {\n\n var changeMediaArgs = {};\n var _feed_fakePlayer = _sourceForChange;\n\n var lab = '';\n\n if (_sourceForChange.data('original-settings')) {\n return _sourceForChange.data('original-settings');\n }\n\n // -- settle source\n changeMediaArgs.source = null;\n if (_feed_fakePlayer.attr('data-source')) {\n changeMediaArgs.source = _feed_fakePlayer.attr('data-source')\n } else {\n // -- if it is a inline link\n if (_feed_fakePlayer.attr('href')) {\n changeMediaArgs.source = _feed_fakePlayer.attr('href');\n }\n }\n\n if (_feed_fakePlayer.attr('data-pcm')) {\n changeMediaArgs.pcm = _feed_fakePlayer.attr('data-pcm');\n }\n\n\n lab = 'thumb';\n if (_feed_fakePlayer.attr('data-' + lab)) {\n changeMediaArgs[lab] = _sourceForChange.attr('data-' + lab);\n }\n\n lab = 'playerid';\n if (_feed_fakePlayer.attr('data-' + lab)) {\n changeMediaArgs[lab] = _sourceForChange.attr('data-' + lab);\n }\n lab = 'type';\n if (_feed_fakePlayer.attr('data-' + lab)) {\n changeMediaArgs[lab] = _sourceForChange.attr('data-' + lab);\n }\n\n\n if (_feed_fakePlayer.attr('data-thumb_link')) {\n changeMediaArgs.thumb_link = _sourceForChange.attr('data-thumb_link');\n }\n\n\n if (_sourceForChange.find('.meta-artist').length > 0 || _sourceForChange.find('.meta-artist-con').length > 0) {\n\n changeMediaArgs.artist = _sourceForChange.find('.the-artist').eq(0).html();\n changeMediaArgs.song_name = _sourceForChange.find('.the-name').eq(0).html();\n }\n\n\n if (_sourceForChange.attr('data-thumb_for_parent')) {\n changeMediaArgs.thumb = _sourceForChange.attr('data-thumb_for_parent');\n }\n\n\n if (_sourceForChange.find('.feed-song-name').length > 0 || _sourceForChange.find('.feed-artist-name').length > 0) {\n\n changeMediaArgs.artist = _sourceForChange.find('.feed-artist-name').eq(0).html();\n changeMediaArgs.song_name = _sourceForChange.find('.feed-song-name').eq(0).html();\n }\n\n\n if (_feed_fakePlayer.attr('data-soft-watermark')) {\n changeMediaArgs.watermark = _sourceForChange.attr('data-soft-watermark');\n }\n if (_feed_fakePlayer.attr('data-watermark-volume')) {\n changeMediaArgs.watermark_volume = _sourceForChange.attr('data-watermark-volume');\n\n }\n\n\n return changeMediaArgs;\n}\n\n/**\n *\n * @param {string} colorString\n */\nexports.utils_sanitizeToColor = function (colorString) {\n if (colorString.indexOf('#') === -1 && colorString.indexOf('rgb') === -1 && colorString.indexOf('hsl') === -1) {\n return '#' + colorString;\n }\n return colorString;\n}\n\nexports.dzsapInitjQueryRegisters = function () {\n\n window.dzsap_generate_list_for_sync_players = function (pargs) {\n\n var margs = {\n 'force_regenerate': false\n\n };\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n window.dzsap_syncList_players = [];\n\n // console.log('typeof(settings) !== \"undefined\" && typeof(settings.construct_player_list_for_sync) !== \"undefined\" && settings.construct_player_list_for_sync==\\'on\\' - ',typeof(settings) !== \"undefined\" && typeof(settings.construct_player_list_for_sync) !== \"undefined\" && settings.construct_player_list_for_sync=='on', typeof(settings) !== \"undefined\", typeof(settings.construct_player_list_for_sync), settings.construct_player_list_for_sync=='on');\n\n\n if (typeof (settings) !== \"undefined\" && ((typeof (settings.construct_player_list_for_sync) !== \"undefined\" && settings.construct_player_list_for_sync === 'on') || margs.force_regenerate)) {\n\n jQuery('.audioplayer,.audioplayer-tobe').each(function () {\n var _t2 = jQuery(this);\n if (_t2.attr('data-do-not-include-in-list') !== 'on') {\n if (_t2.attr('data-type') !== 'fake' || _t2.attr('data-fakeplayer')) {\n\n window.dzsap_syncList_players.push(_t2);\n }\n }\n })\n\n // console.log('dzsap_syncList_players -5 ',dzsap_syncList_players);\n\n }\n }\n\n\n jQuery(document).off('click.dzsap_global');\n jQuery(document).on('click.dzsap_global', '.dzsap-btn-info', function () {\n\n var _t = jQuery(this);\n if (_t.hasClass('dzsap-btn-info')) {\n\n _t.find('.dzstooltip').toggleClass('active');\n return;\n }\n\n })\n jQuery(document).on('mouseover.dzsap_global', '.dzsap-btn-info', function () {\n\n var _t = jQuery(this);\n if (_t.hasClass('dzsap-btn-info')) {\n // console.log(_t.offset().left);\n if (window.innerWidth < 500) {\n // -- if we are in the left side of the screen, we move the tooltip to the right.\n if (_t.offset().left < (window.innerWidth / 2)) {\n _t.find('.dzstooltip').removeClass('talign-end').addClass('talign-start');\n }\n } else {\n _t.find('.dzstooltip').addClass('talign-end').removeClass('talign-start');\n }\n }\n\n });\n}\nexports.player_radio_isNameUpdatable = function (selfClass, radio_update_song_name, targetKey) {\n\n if (selfClass._metaArtistCon.find(targetKey).length && selfClass._metaArtistCon.find(targetKey).eq(0).text().length > 0) {\n // -- we already have artist name..\n if (selfClass._metaArtistCon.find(targetKey).eq(0).html().indexOf('{{update}}') > -1) {\n return true;\n }\n }\n\n\n return false;\n}\nexports.miscFunctions = function () {\n\n\n window.dzsap_send_total_time = function (argtime, argcthis) {\n\n\n // console.log('dzsap_send_total_time()',argtime,argcthis);\n\n var data = {\n action: 'dzsap_send_total_time_for_track'\n , id_track: argcthis.attr('data-playerid')\n , postdata: Math.round(argtime)\n };\n jQuery.post(window.dzsap_ajaxurl, data, function (response) {\n });\n\n }\n\n\n window.dzs_open_social_link = function (arg, argthis) {\n var leftPosition, topPosition;\n var w = 500, h = 500;\n //Allow for borders.\n leftPosition = (window.screen.width / 2) - ((w / 2) + 10);\n //Allow for title and status bars.\n topPosition = (window.screen.height / 2) - ((h / 2) + 50);\n var windowFeatures = \"status=no,height=\" + h + \",width=\" + w + \",resizable=yes,left=\" + leftPosition + \",top=\" + topPosition + \",screenX=\" + leftPosition + \",screenY=\" + topPosition + \",toolbar=no,menubar=no,scrollbars=no,location=no,directories=no\";\n\n\n // console.log('dzs_open_social_link()', arg, 'argthis - ', argthis);\n\n\n arg = arg.replace('{{replacewithcurrurl}}', encodeURIComponent(window.location.href));\n // console.log({argthis}, argthis.constructor);\n if (argthis && argthis.attr) {\n arg = arg.replace(/{{replacewithdataurl}}/g, argthis.attr('data-url'));\n }\n\n var aux = window.location.href;\n\n\n var auxa = aux.split('?');\n\n var cid = '';\n var cid_gallery = '';\n\n\n if (argthis) {\n\n } else {\n if (window.dzsap_currplayer_from_share) {\n\n argthis = window.dzsap_currplayer_from_share;\n }\n }\n\n\n // console.log('window.dzsap_currplayer_from_share -> ', window.dzsap_currplayer_from_share);\n // console.log('argthis -> ', argthis);\n\n\n if (argthis) {\n\n var $ = jQuery;\n\n if ($(argthis).hasClass('audioplayer')) {\n cid = $(argthis).parent().children().index(argthis);\n cid_gallery = $(argthis).parent().parent().parent().attr('id');\n } else {\n if (jQuery(argthis).parent().parent().attr('data-menu-index')) {\n\n cid = jQuery(argthis).parent().parent().attr('data-menu-index');\n }\n if (jQuery(argthis).parent().parent().attr('data-gallery-id')) {\n\n cid_gallery = jQuery(argthis).parent().parent().attr('data-gallery-id');\n }\n }\n\n }\n\n\n var shareurl = encodeURIComponent(auxa[0] + '?fromsharer=on&audiogallery_startitem_' + cid_gallery + '=' + cid + '');\n arg = arg.replace('{{shareurl}}', shareurl);\n\n console.log('shareurl -> ', shareurl);\n\n //console.log(argthis);\n //console.log('arg - ',arg);\n window.open(arg, \"sharer\", windowFeatures);\n }\n\n\n window.dzsap_wp_send_contor_60_secs = function (argcthis, argtitle) {\n\n var data = {\n video_title: argtitle\n // ,video_analytics_id: argcthis.attr('data-analytics-id')\n , video_analytics_id: argcthis.attr('data-playerid')\n , curr_user: window.dzsap_curr_user\n };\n var theajaxurl = 'index.php?action=ajax_dzsap_submit_contor_60_secs';\n\n if (window.dzsap_settings.dzsap_site_url) {\n\n theajaxurl = dzsap_settings.dzsap_site_url + theajaxurl;\n }\n\n // console.log('dzsap_wp_send_contor_60_secs()',argcthis,argtitle);\n\n\n jQuery.ajax({\n type: \"POST\",\n url: theajaxurl,\n data: data,\n success: function (response) {\n if (typeof window.console != \"undefined\") {\n // console.log('Ajax - submit view - ' + response);\n }\n\n\n },\n error: function (arg) {\n if (typeof window.console != \"undefined\") {\n // console.warn('Got this from the server: ' + arg);\n }\n ;\n }\n });\n }\n\n\n window.dzsap_init_multisharer = function () {\n // console.log('window.dzsap_init_multisharer()');\n var $ = jQuery;\n setTimeout(function () {\n // console.log(\"LOAD MULTISHARER\");\n\n\n // console.log('window.dzsap_multisharer_assets_loaded - ',window.dzsap_multisharer_assets_loaded);\n if (window.dzsap_multisharer_assets_loaded) {\n\n } else {\n if (window.dzsap_multisharer_assets_loaded !== true && window.loading_multi_sharer !== true) {\n\n // -- only if settings_php_handler is set\n\n\n // - -load script for lightbox\n window.loading_multi_sharer = true;\n var head = document.getElementsByTagName('head')[0];\n var link = document.createElement('link');\n\n if (window.dzsap_settings && window.dzsap_settings.dzsap_site_url) {\n\n link.id = 'dzsap-load-multi-sharer';\n link.rel = 'stylesheet';\n link.type = 'text/css';\n link.href = add_query_arg(window.dzsap_settings.dzsap_site_url, 'load-lightbox-css', 'on');\n link.media = 'all';\n head.appendChild(link);\n }\n\n // console.log('script for lightbox - ',add_query_arg(window.dzsap_settings.dzsap_site_url,'load-lightbox-css','on'));\n\n // console.warn(\"APPEND MULTISHARER STYLE\");\n\n setTimeout(function () {\n if (window.dzsap_box_main_con === null) {\n $('body').append('
×
');\n window.dzsap_box_main_con = $('.dzsap-main-con').eq(0);\n // console.log('dzsap_box_main_con - ', window.dzsap_box_main_con);\n }\n\n }, 1000);\n\n\n }\n }\n\n // -- remove main con function\n $(document).on('click.dzsap_global_sharer', '.dzsap-main-con .close-btn-con,.dzsap-main-con .overlay-background', function () {\n\n\n var _c = $('.dzsap-main-con').eq(0);\n\n _c.removeClass('loading-item loaded-item');\n })\n\n }, 2000)\n }\n\n\n window.dzsap_submit_like = function (argp, e) {\n //only handles ajax call + result\n var mainarg = argp;\n var data = {\n action: 'dzsap_submit_like',\n playerid: argp\n };\n\n var _t = null;\n\n if (e) {\n _t = jQuery(e.currentTarget);\n }\n\n\n if (window.dzsap_settings && window.dzsap_settings.ajax_url) {\n\n jQuery.ajax({\n type: \"POST\",\n url: window.dzsap_settings.ajax_url,\n data: data,\n success: function (response) {\n if (typeof window.console != \"undefined\") {\n console.log('Got this from the server: ' + response);\n }\n\n\n if (_t) {\n\n var htmlaux = _t.html();\n\n _t.html(htmlaux.replace('fa-heart-o', 'fa-heart'));\n }\n\n },\n error: function (arg) {\n if (typeof window.console != \"undefined\") {\n // console.log('Got this from the server: ' + arg, arg);\n }\n ;\n }\n });\n }\n }\n\n\n window.dzsap_retract_like = function (argp, e) {\n //only handles ajax call + result\n var mainarg = argp;\n var data = {\n action: 'dzsap_retract_like',\n playerid: argp\n };\n\n var _t = null;\n\n if (e) {\n _t = jQuery(e.currentTarget);\n }\n\n\n if (window.dzsap_settings && window.dzsap_settings.ajax_url) {\n\n jQuery.ajax({\n type: \"POST\",\n url: window.dzsap_settings.ajax_url,\n data: data,\n success: function (response) {\n if (typeof window.console != \"undefined\") {\n console.log('Got this from the server: ' + response);\n }\n\n\n if (_t) {\n var htmlaux = _t.html();\n\n _t.html(htmlaux.replace('fa-heart', 'fa-heart-o'));\n }\n\n },\n error: function (arg) {\n if (typeof window.console != \"undefined\") {\n // console.log('Got this from the server: ' + arg, arg);\n }\n ;\n }\n });\n }\n }\n\n}\n\nexports.jQueryAuxBindings = function ($) {\n\n // console.log('start aux bindings');\n $(document).on('click.dzsap_metas', '.audioplayer-song-changer, .dzsap-wishlist-but', function () {\n var _t = $(this);\n\n // conso\n\n if (_t.hasClass('audioplayer-song-changer')) {\n\n // console.log('.audioplayer-song-changer', _t);\n var _c = $(_t.attr('data-fakeplayer')).eq(0);\n // console.log(_t, _t.attr('data-fakeplayer'), _t.attr('data-target'), _c, _c.get(0));\n\n\n if (_c && _c.get(0) && _c.get(0).api_change_media) {\n\n _c.get(0).api_change_media(_t, {\n 'feeder_type': 'button'\n , 'call_from': 'changed audioplayer-song-changer'\n });\n }\n\n return false;\n }\n\n if (_t.hasClass('dzsap-wishlist-but')) {\n\n\n var data = {\n action: 'dzsap_add_to_wishlist',\n playerid: _t.attr('data-post_id'),\n wishlist_action: 'add',\n };\n\n\n if (_t.find('.svg-icon').hasClass('fa-star')) {\n data.wishlist_action = 'remove';\n }\n\n\n if (window.dzsap_lasto.settings_php_handler) {\n $.ajax({\n type: \"POST\",\n url: window.dzsap_lasto.settings_php_handler,\n data: data,\n success: function (response) {\n //if(typeof window.console != \"undefined\" ){ console.log('Ajax - get - comments - ' + response); }\n\n\n if (_t.find('.svg-icon').hasClass('fa-star-o')) {\n _t.find('.svg-icon').eq(0).attr('class', 'svg-icon fa fa-star');\n } else {\n\n _t.find('.svg-icon').eq(0).attr('class', 'svg-icon fa fa-star-o');\n }\n\n },\n error: function (arg) {\n if (typeof window.console != \"undefined\") {\n // console.log('Got this from the server: ' + arg, arg);\n }\n ;\n }\n });\n }\n\n return false;\n\n\n }\n\n })\n\n\n $(document).on('click.dzsiconhide', '.sticktobottom-close-con,.sticktobottom-close-con .svg-icon', function () {\n var _t = $(this);\n\n $('.dzsap-sticktobottom .audioplayer').get(0).api_pause_media();\n\n\n console.log('_t sticktobottom-close-con -7', _t);\n\n var _con = null;\n\n if (_t.parent().hasClass(\"dzsap-sticktobottom\")) {\n _con = _t.parent();\n }\n if (_t.parent().parent().hasClass(\"dzsap-sticktobottom\")) {\n _con = _t.parent().parent();\n }\n if (_t.parent().parent().parent().hasClass(\"dzsap-sticktobottom\")) {\n _con = _t.parent().parent().parent();\n }\n\n console.log('_con - ', _con, _con.hasClass('audioplayer-loaded'));\n\n if (_con.hasClass('audioplayer-loaded')) {\n\n _con.removeClass('audioplayer-loaded');\n _con.addClass('audioplayer-was-loaded');\n\n\n } else {\n\n _con.addClass('audioplayer-loaded');\n _con.addClass('audioplayer-was-loaded');\n }\n\n return false;\n })\n\n $(document).on('click.dzsiconshow', '.dzsap-sticktobottom .icon-show', function () {\n var _t = $(this);\n\n\n // _t.parent().parent().addClass('audioplayer-loaded');\n // _t.parent().parent().removeClass('audioplayer-was-loaded');\n //\n // _t.parent().parent().parent().addClass('audioplayer-loaded');\n // _t.parent().parent().parent().removeClass('audioplayer-was-loaded');\n\n return false;\n })\n\n\n if ($('.dzsap-sticktobottom.dzsap-sticktobottom-for-skin-silver').length > 0) {\n setInterval(function () {\n\n //console.log($('.dzsap-sticktobottom.dzsap-sticktobottom-for-skin-silver > .audioplayer').eq(0).hasClass('dzsap-loaded'));\n if ($('.dzsap-sticktobottom.dzsap-sticktobottom-for-skin-silver .audioplayer').eq(0).hasClass('dzsap-loaded')) {\n $('.dzsap-sticktobottom-placeholder').eq(0).addClass('active');\n\n if ($('.dzsap-sticktobottom').hasClass('audioplayer-was-loaded') === false) {\n\n $('.dzsap-sticktobottom.dzsap-sticktobottom-for-skin-silver').addClass('audioplayer-loaded')\n }\n }\n }, 1000);\n }\n\n\n if ($('.dzsap-sticktobottom.dzsap-sticktobottom-for-skin-wave').length > 0) {\n setInterval(function () {\n\n // console.log($('.dzsap-sticktobottom.dzsap-sticktobottom-for-skin-wave .audioplayer'), $('.dzsap-sticktobottom.dzsap-sticktobottom-for-skin-wave .audioplayer').eq(0).hasClass('dzsap-loaded'));\n if ($('.dzsap-sticktobottom.dzsap-sticktobottom-for-skin-wave .audioplayer').eq(0).hasClass('dzsap-loaded')) {\n $('.dzsap-sticktobottom-placeholder').eq(0).addClass('active');\n\n if ($('.dzsap-sticktobottom').hasClass('audioplayer-was-loaded') === false) {\n\n $('.dzsap-sticktobottom.dzsap-sticktobottom-for-skin-wave').addClass('audioplayer-loaded')\n }\n }\n\n\n }, 1000);\n }\n\n\n $(document).on('click.dzsap_multisharer', '.dzsap-multisharer-but', click_open_embed_ultibox);\n\n function click_open_embed_ultibox(e, pargs) {\n\n var margs = {\n 'call_from': 'default'\n\n\n };\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n\n // console.log('click_open_embed_ultibox() this - ', this);\n\n open_dzsap_lightbox({\n 'call_from': 'click_open_embed_ultibox'\n , 'lightbox_open': 'share'\n , 'overwrite_this': this\n });\n\n\n return false;\n }\n\n\n /**\n * call from player or gallery\n * @param pargs\n */\n function open_dzsap_lightbox(pargs) {\n\n var margs = {\n 'call_from': 'default'\n , 'lightbox_open': 'share'\n , 'overwrite_this': null\n\n };\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n\n // console.log('ceva');\n\n var $dzsapBoxMainCon = window.dzsap_box_main_con; // -- .dzsap-main-con\n var $playerBut = $(this);\n\n // console.log('_t - ', _t);\n\n if (margs.overwrite_this) {\n $playerBut = $(margs.overwrite_this);\n }\n console.log('open_dzsap_lightbox() $dzsapBoxMainCon -> ', $dzsapBoxMainCon, 'margs - ', margs);\n\n\n /** might be player, might be gallery */\n var $caller = null;\n if ($playerBut.data('cthis')) {\n $caller = $playerBut.data('cthis');\n\n // console.log('found cthis in data');\n }\n\n console.log('$caller - ', $caller);\n if ($caller) {\n\n window.dzsap_currplayer_from_share = $caller;\n } else {\n\n console.log('%c could not find this .. maybe we can find it in post_id', 'background-color: #da0000;', $('.audioplayer[data-playerid=\"' + $playerBut.attr('data-post_id') + '\"]'));\n\n\n if ($playerBut.attr('data-post_id')) {\n window.dzsap_currplayer_from_share = $('.audioplayer[data-playerid=\"' + $playerBut.attr('data-post_id') + '\"]').eq(0);\n $playerBut.data('cthis', window.dzsap_currplayer_from_share);\n } else {\n\n if ($playerBut.parent().parent().parent().parent().parent().parent().hasClass('audioplayer')) {\n // console.log(\"YES\");\n window.dzsap_currplayer_from_share = $playerBut.parent().parent().parent().parent().parent().parent();\n }\n }\n }\n\n\n var stringSocialNetworksBlock = '';\n\n if (window.dzsap_social_feed_for_social_networks) {\n stringSocialNetworksBlock = window.dzsap_social_feed_for_social_networks;\n }\n\n // -- aux is feed from social_feed\n\n\n if (window.dzsap_box_main_con) {\n\n // console.log('window.dzsap_box_main_con - ', window.dzsap_box_main_con);\n\n window.dzsap_box_main_con.find('.social-networks-con').html(stringSocialNetworksBlock);\n\n\n let stringShareLinkBlock = '';\n if (window.dzsap_social_feed_for_share_link) {\n stringShareLinkBlock = window.dzsap_social_feed_for_share_link;\n }\n\n\n if (stringShareLinkBlock) {\n\n\n // console.log('_t - ',_t);\n\n\n var newloc = window.location.href;\n if ($playerBut.attr('data-post-url')) {\n newloc = $playerBut.attr('data-post-url');\n }\n\n\n stringShareLinkBlock = stringShareLinkBlock.replace('{{replacewithcurrurl}}', newloc);\n stringShareLinkBlock = stringShareLinkBlock.replace('{{replacewithdataurl}}', newloc);\n window.dzsap_box_main_con.find('.share-link-con').html(stringShareLinkBlock);\n }\n\n var stringShareboxSocial = '';\n if (window.dzsap_social_feed_for_embed_link) {\n stringShareboxSocial = window.dzsap_social_feed_for_embed_link;\n }\n\n console.log('dzsap_currplayer_from_share -', dzsap_currplayer_from_share);\n if (window.dzsap_currplayer_from_share && dzsap_currplayer_from_share.data('embed_code')) {\n\n // console.log('o.embed_code - ', dzsap_currplayer_from_share.data('embed_code'));\n\n if (stringShareboxSocial) {\n\n var replace_str = dzsap_currplayer_from_share.data('embed_code');\n // console.log('dzsap_currplayer_from_share -', dzsap_currplayer_from_share);\n\n if (replace_str.indexOf('<') === -1) {\n replace_str = htmlEntities(replace_str);\n }\n stringShareboxSocial = stringShareboxSocial.replace('{{replacewithembedcode}}', (replace_str));\n $dzsapBoxMainCon.find('.embed-link-con').html(stringShareboxSocial);\n }\n\n }\n\n // console.log('_c_mc - ',_c_mc);\n // console.log('o.embed_code - ',o.embed_code);\n // console.log('aux_social - ',aux_social);\n\n $(document).on('click.dzsap', '.field-for-view', function () {\n\n console.log(\"select all test \", this);\n selectText(this);\n\n // $(this).select();\n });\n $dzsapBoxMainCon.addClass('loading-box-main-' + margs.lightbox_open);\n setTimeout(function () {\n $dzsapBoxMainCon.addClass('loading-item');\n }, 100);\n\n setTimeout(function () {\n $dzsapBoxMainCon.addClass('loaded-item');\n }, 200);\n\n\n } else {\n console.log('warning missing box-main');\n }\n }\n\n\n // console.log('init here auxBindings');\n $(document).on('keydown.dzsapkeyup keypress.dzsapkeyup', function (e) {\n // console.log('e - ',e);\n // console.log('dzsap_currplayer_focused - ',dzsap_currplayer_focused);\n\n handle_keypresses(e);\n })\n\n\n $(document).on('keydown blur', '.zoomsounds-search-field', function (e) {\n\n // console.info(e.currentTarget.value);\n var _t = $(e.currentTarget);\n\n setTimeout(function () {\n\n if (_t) {\n var _target = $('.audiogallery').eq(0);\n if (_t.attr('data-target')) {\n _target = $(_t.attr('data-target'));\n }\n if (_target.get(0) && _target.get(0).api_filter) {\n _target.get(0).api_filter('title', _t.val());\n }\n }\n }, 100);\n\n });\n\n\n $(document).on('click', '.dzsap-like-but', function (e) {\n\n var _t = $(this);\n\n\n var playerid = _t.attr('data-post_id');\n\n if (playerid && playerid != '0') {\n\n } else {\n if (_t.parent().parent().parent().parent().parent().hasClass('audioplayer')) {\n\n playerid = _t.parent().parent().parent().parent().parent().attr('data-feed-playerid');\n }\n }\n window.dzsap_submit_like(playerid, e);\n\n _t.removeClass('dzsap-like-but').addClass('dzsap-retract-like-but');\n\n return false;\n })\n\n $(document).on('click', '.dzsap-retract-like-but', function (e) {\n\n var _t = $(this);\n var playerid = _t.attr('data-post_id');\n\n if (playerid && playerid != '0') {\n\n } else {\n if (_t.parent().parent().parent().parent().parent().hasClass('audioplayer')) {\n\n playerid = _t.parent().parent().parent().parent().parent().attr('data-feed-playerid');\n }\n }\n\n\n window.dzsap_retract_like(playerid, e);\n _t.addClass('dzsap-like-but').removeClass('dzsap-retract-like-but');\n return false;\n })\n\n\n}\n\n\nfunction selectText(arg) {\n\n if (document.selection) {\n var range = document.body.createTextRange();\n range.moveToElementText(arg);\n range.select();\n } else if (window.getSelection) {\n var range = document.createRange();\n range.selectNode(arg);\n window.getSelection().removeAllRanges();\n window.getSelection().addRange(range);\n }\n}\n\nexports.selectText = selectText;\n\n\nexports.ajax_submit_views = function (argp, the_player_id, currIp, data_source, o, $, increment_views, ajax_view_submitted) {\n\n // console.log('ajax_submit_views()',argp);\n\n var data = {\n action: 'dzsap_submit_views',\n postdata: 1,\n playerid: the_player_id,\n currip: currIp\n };\n\n\n if (cthis.attr('data-playerid-for-views')) {\n data.playerid = cthis.attr('data-playerid-for-views');\n }\n\n\n if (data.playerid === '') {\n data.playerid = dzs_clean_string(data_source);\n }\n\n // console.log(ajax_view_submitted);\n\n\n // -- submit view\n if (o.settings_php_handler) {\n $.ajax({\n type: \"POST\",\n url: o.settings_php_handler,\n data: data,\n success: function (response) {\n if (typeof window.console != \"undefined\") {\n // console.log('Got this from the server: ' + response);\n }\n\n // -- increase number of hits\n var auxnr = cthis.find('.counter-hits .the-number').html();\n auxnr = parseInt(auxnr, 10);\n if (increment_views != 2) {\n auxnr++;\n }\n if (response) {\n if (decode_json(response)) {\n auxnr = decode_json(response)['number'];\n }\n }\n\n cthis.find('.counter-hits .the-number').html(auxnr);\n\n ajax_view_submitted = 'on';\n },\n error: function (arg) {\n if (typeof window.console != \"undefined\") {\n // console.log('Got this from the server: ' + arg, arg);\n }\n ;\n\n\n var auxlikes = cthis.find('.counter-hits .the-number').html();\n auxlikes = parseInt(auxlikes, 10);\n auxlikes++;\n cthis.find('.counter-hits .the-number').html(auxlikes);\n\n ajax_view_submitted = 'on';\n }\n });\n ajax_view_submitted = 'on';\n }\n\n}\n\nexports.view_player_playMiscEffects = function (selfClass) {\n\n selfClass.$conPlayPause.addClass('playing');\n\n if (selfClass.cthis.parent().hasClass('zoomsounds-wrapper-bg-center')) {\n selfClass.cthis.parent().addClass('is-playing');\n }\n}\nexports.view_player_globalDetermineSyncPlayersIndex = function (selfClass) {\n\n if (selfClass._sourcePlayer === null && window.dzsap_syncList_players) {\n window.dzsap_syncList_players.forEach(($syncPlayer, index) => {\n if (selfClass.cthis.attr('data-playerid') == $syncPlayer.attr('data-playerid')) {\n window.dzsap_syncList_index = index;\n }\n })\n }\n}\n\nexports.player_view_addMetaLoaded = function(selfClass){\n\n selfClass.cthis.addClass('meta-loaded');\n selfClass.cthis.removeClass('meta-fake');\n if (selfClass._sourcePlayer) {\n selfClass._sourcePlayer.addClass('meta-loaded');\n selfClass._sourcePlayer.removeClass('meta-fake');\n }\n if (selfClass.$totalTime) {\n // console.log('formatTime(selfClass.timeModel.getVisualTotalTime()) - ', formatTime(selfClass.timeModel.getVisualTotalTime()), selfClass.$mediaNode_.duration);\n selfClass.timeModel.refreshTimes();\n selfClass.$totalTime.html(formatTime(selfClass.timeModel.getVisualTotalTime()));\n }\n if (selfClass._sourcePlayer) {\n selfClass._sourcePlayer.addClass('meta-loaded');\n }\n}\n\n\nexports.player_determineActualPlayer = player_determineActualPlayer;\n\nfunction player_determineActualPlayer(selfClass) {\n\n var $ = jQuery;\n var $fakePlayer = $(selfClass.cthis.attr('data-fakeplayer'));\n\n // console.log({$fakePlayer});\n if ($fakePlayer.length === 0) {\n $fakePlayer = $(String(selfClass.cthis.attr('data-fakeplayer')).replace('#', '.'));\n if ($fakePlayer.length) {\n selfClass._actualPlayer = $(String(selfClass.cthis.attr('data-fakeplayer')).replace('#', '.'));\n selfClass.cthis.attr('data-fakeplayer', String(selfClass.cthis.attr('data-fakeplayer')).replace('#', '.'));\n }\n }\n\n if ($fakePlayer.length === 0) {\n selfClass.cthis.attr('data-fakeplayer', '');\n } else {\n selfClass.cthis.addClass('player-is-feeding is-source-player-for-actual-player');\n if (selfClass.cthis.attr('data-type')) {\n\n selfClass._actualPlayer = $(selfClass.cthis.attr('data-fakeplayer')).eq(0);\n selfClass.actualDataTypeOfMedia = selfClass.cthis.attr('data-type');\n selfClass.cthis.attr('data-original-type', selfClass.actualDataTypeOfMedia);\n }\n }\n}\n\nfunction htmlEntities(str) {\n return String(str).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"');\n}\n\nexports.waitForScriptToBeAvailableThenExecute = function (verifyVar, callbackFn) {\n // console.log('waitForScriptToBeAvailableThenExecute()');\n new Promise((resolve, reject) => {\n\n var checkInterval = 0;\n\n function checkIfVarExists() {\n // console.log('window.dzsap_part_starRatings_loaded - ', window.dzsap_part_starRatings_loaded);\n // console.log('verifyVar -', verifyVar);\n\n if (verifyVar) {\n\n clearInterval(checkInterval);\n resolve('var exists');\n }\n }\n\n checkIfVarExists()\n checkInterval = setInterval(checkIfVarExists, 300);\n\n setTimeout(() => {\n\n // resolve('timeout');\n reject('timeout');\n }, 5000);\n\n }).then((resolve => {\n callbackFn(resolve);\n })).catch((err) => {\n // console.log(err);\n\n\n // callbackFn('error');\n })\n}\nexports.configureAudioPlayerOptionsInitial = function (cthis, o, selfClass) {\n\n\n selfClass.cthis.addClass('preload-method-' + o.preload_method);\n\n o.wavesurfer_pcm_length = Number(o.wavesurfer_pcm_length);\n\n\n o.settings_trigger_resize = parseInt(o.settings_trigger_resize, 10);\n o.watermark_volume = parseFloat(o.watermark_volume);\n\n\n if (isNaN(parseInt(o.design_thumbh, 10)) === false) {\n o.design_thumbh = parseInt(o.design_thumbh, 10);\n }\n\n if (o.skinwave_wave_mode === '') {\n o.skinwave_wave_mode = 'canvas';\n }\n if (o.skinwave_wave_mode_canvas_normalize === '') {\n o.skinwave_wave_mode_canvas_normalize = 'on';\n }\n if (o.skinwave_wave_mode_canvas_waves_number === '' || isNaN(Number(o.skinwave_wave_mode_canvas_waves_number))) {\n o.skinwave_wave_mode_canvas_waves_number = 3;\n }\n\n\n if (o.autoplay === 'on' && o.cue === 'on') {\n o.preload_method = 'auto';\n }\n\n cthis.addClass(o.extra_classes_player)\n\n if (o.design_skin === '') {\n o.design_skin = 'skin-default';\n }\n\n\n if (selfClass.cthis.find('.feed-dzsap--embed-code').length) {\n selfClass.feedEmbedCode = selfClass.cthis.find('.feed-dzsap--embed-code').eq(0).html();\n } else {\n if (o.embed_code !== '') {\n selfClass.feedEmbedCode = o.embed_code;\n }\n }\n\n if (this.is_ios()) {\n // todo: ios not playing nice.. with audio context\n if (selfClass.initOptions.skinwave_enableSpectrum === 'on') {\n selfClass.initOptions.skinwave_enableSpectrum = 'off';\n }\n\n }\n\n var regexr = / skin-/g;\n\n\n if (regexr.test(cthis.attr('class'))) {\n\n } else {\n\n cthis.addClass(o.design_skin);\n }\n\n\n if (cthis.hasClass('skin-default')) {\n o.design_skin = 'skin-default';\n }\n if (cthis.hasClass('skin-wave')) {\n o.design_skin = 'skin-wave';\n }\n if (cthis.hasClass('skin-justthumbandbutton')) {\n o.design_skin = 'skin-justthumbandbutton';\n }\n if (cthis.hasClass('skin-pro')) {\n o.design_skin = 'skin-pro';\n }\n if (cthis.hasClass('skin-aria')) {\n o.design_skin = 'skin-aria';\n }\n if (cthis.hasClass('skin-silver')) {\n o.design_skin = 'skin-silver';\n }\n if (cthis.hasClass('skin-redlights')) {\n o.design_skin = 'skin-redlights';\n }\n if (cthis.hasClass('skin-steel')) {\n o.design_skin = 'skin-steel';\n }\n if (cthis.hasClass('skin-customcontrols')) {\n o.design_skin = 'skin-customcontrols';\n }\n\n\n if (o.design_skin === 'skin-wave') {\n if (o.scrubbar_type === 'auto') {\n o.scrubbar_type = 'wave';\n }\n }\n if (o.scrubbar_type === 'auto') {\n o.scrubbar_type = 'bar';\n }\n\n if (o.settings_php_handler === 'wpdefault') {\n o.settings_php_handler = window.ajaxurl;\n }\n if (o.action_received_time_total === 'wpdefault') {\n o.action_received_time_total = window.dzsap_send_total_time;\n }\n if (o.action_video_contor_60secs === 'wpdefault') {\n o.action_video_contor_60secs = window.action_video_contor_60secs;\n }\n\n\n if (is_ios() || is_android()) {\n o.autoplay = 'off';\n o.disable_volume = 'on';\n if (o.cueMedia === 'off') {\n o.cueMedia = 'on';\n }\n o.cueMedia = 'on';\n }\n\n if (cthis.attr('data-viewsubmitted') === 'on') {\n selfClass.ajax_view_submitted = 'on';\n\n // console.log('selfClass.ajax_view_submitted from data-viewsubmitted', cthis);\n }\n if (cthis.attr('data-userstarrating')) {\n selfClass.starrating_alreadyrated = Number(cthis.attr('data-userstarrating'));\n }\n\n\n if (cthis.hasClass('skin-minimal')) {\n o.design_skin = 'skin-minimal';\n if (o.disable_volume === 'default') {\n o.disable_volume = 'on';\n }\n\n if (o.disable_scrub === 'default') {\n o.disable_scrub = 'on';\n }\n o.disable_timer = 'on';\n }\n if (cthis.hasClass('skin-minion')) {\n o.design_skin = 'skin-minion';\n if (o.disable_volume === 'default') {\n o.disable_volume = 'on';\n }\n\n if (o.disable_scrub === 'default') {\n o.disable_scrub = 'on';\n }\n\n o.disable_timer = 'on';\n }\n\n\n if (o.design_color_bg) {\n o.design_wave_color_bg = o.design_color_bg;\n }\n\n\n if (o.design_color_highlight) {\n o.design_wave_color_progress = o.design_color_highlight;\n }\n\n\n if (o.design_skin === 'skin-justthumbandbutton') {\n if (o.design_thumbh === 'default') {\n o.design_thumbh = '';\n // res_thumbh = true;\n }\n o.disable_timer = 'on';\n o.disable_volume = 'on';\n\n if (o.design_animateplaypause === 'default') {\n o.design_animateplaypause = 'on';\n }\n }\n if (o.design_skin === 'skin-redlights') {\n o.disable_timer = 'on';\n o.disable_volume = 'off';\n if (o.design_animateplaypause === 'default') {\n o.design_animateplaypause = 'on';\n }\n\n }\n if (o.design_skin === 'skin-steel') {\n if (o.disable_timer === 'default') {\n\n o.disable_timer = 'off';\n }\n o.disable_volume = 'on';\n if (o.design_animateplaypause === 'default') {\n o.design_animateplaypause = 'on';\n }\n\n\n if (o.disable_scrub === 'default') {\n o.disable_scrub = 'on';\n }\n\n }\n if (o.design_skin === 'skin-customcontrols') {\n if (o.disable_timer === 'default') {\n\n o.disable_timer = 'on';\n }\n o.disable_volume = 'on';\n if (o.design_animateplaypause === 'default') {\n o.design_animateplaypause = 'on';\n }\n\n\n if (o.disable_scrub === 'default') {\n o.disable_scrub = 'on';\n }\n\n }\n\n if (o.skinwave_wave_mode_canvas_mode === 'reflecto') {\n o.skinwave_wave_mode_canvas_reflection_size = 0.5;\n // o.skinwave_wave_mode_canvas_waves_number=1;\n // o.skinwave_wave_mode_canvas_waves_padding=0;\n }\n\n if (o.skinwave_wave_mode_canvas_mode === 'reflecto') {\n o.skinwave_wave_mode_canvas_reflection_size = 0.5;\n // o.skinwave_timer_static='on';\n }\n\n\n if (o.embed_code === '') {\n if (cthis.find('div.feed-embed-code').length > 0) {\n o.embed_code = cthis.find('div.feed-embed-code').eq(0).html();\n }\n }\n\n if (o.design_animateplaypause === 'default') {\n o.design_animateplaypause = 'off';\n }\n\n if (o.design_animateplaypause === 'on') {\n cthis.addClass('design-animateplaypause');\n }\n\n if (window.dzsap_settings) {\n if (window.dzsap_settings.php_handler) {\n if (!o.settings_php_handler) {\n\n o.settings_php_handler = window.dzsap_settings.php_handler;\n }\n }\n }\n\n if (o.settings_php_handler) {\n selfClass.urlToAjaxHandler = o.settings_php_handler;\n }\n\n // console.log('selfClass.cthis.attr(\\'data-source\\') - ', selfClass.cthis.attr('data-source'));\n if (selfClass.cthis.attr('data-source')) {\n\n if (selfClass.cthis.attr('data-source').indexOf('{{generatenonce}}') > -1) {\n selfClass.initOptions.view_scrubDisabled = 'on';\n }\n }\n\n if (selfClass.initOptions.view_scrubDisabled === 'on') {\n selfClass.cthis.addClass('view-scrub-disabled');\n }\n\n}\nexports.playerFunctions = function (selfClass, functionType) {\n var o = selfClass.initOptions;\n\n if (functionType === 'detectIds') {\n\n // console.log('playerFunctions()', functionType);\n if (o.skinwave_comments_playerid === '') {\n if (typeof (selfClass.cthis.attr('id')) !== 'undefined') {\n selfClass.the_player_id = selfClass.cthis.attr('id');\n }\n }\n\n\n if (selfClass.the_player_id == '') {\n\n if (selfClass.cthis.attr('data-computed-playerid')) {\n selfClass.the_player_id = selfClass.cthis.attr('data-computed-playerid');\n }\n if (selfClass.cthis.attr('data-real-playerid')) {\n selfClass.the_player_id = selfClass.cthis.attr('data-real-playerid');\n }\n }\n selfClass.uniqueId = selfClass.the_player_id;\n\n // -- needs a real player id\n if (selfClass.the_player_id === '') {\n o.skinwave_comments_enable = 'off';\n }\n // console.log('o.skinwave_comments_enable - ', o.skinwave_comments_enable, o.skinwave_comments_playerid);\n }\n}\nexports.player_delete = function (selfClass) {\n\n var _con = null;\n if (selfClass.cthis.parent().parent().hasClass('dzsap-sticktobottom')) {\n _con = selfClass.cthis.parent().parent();\n }\n if (_con) {\n if (_con.prev().hasClass(\"dzsap-sticktobottom-placeholder\")) {\n _con.prev().remove();\n }\n _con.remove();\n }\n selfClass.cthis.remove();\n return false;\n}\nexports.player_viewApplySkinWaveModes = function (selfClass) {\n\n\n var o = selfClass.initOptions;\n\n selfClass.cthis.removeClass('skin-wave-mode-normal');\n\n if (o.design_skin === 'skin-wave') {\n selfClass.cthis.addClass('skin-wave-mode-' + selfClass.skinwave_mode);\n\n\n selfClass.cthis.addClass('skin-wave-wave-mode-' + o.skinwave_wave_mode);\n if (o.skinwave_enableSpectrum === 'on') {\n selfClass.cthis.addClass('skin-wave-is-spectrum');\n }\n selfClass.cthis.addClass('skin-wave-wave-mode-canvas-mode-' + o.skinwave_wave_mode_canvas_mode);\n }\n\n\n}\n\n/**\n *\n * @param hexcolor\n * @returns {string}\n */\nexports.sanitizeToHexColor = function (hexcolor) {\n if (hexcolor.indexOf('#') === -1) {\n hexcolor = '#' + hexcolor;\n }\n return hexcolor;\n}\nexports.player_adjustIdentifiers = function (selfClass) {\n\n selfClass.identifier_pcm = selfClass.the_player_id; // -- the pcm identifier to send via ajax\n\n\n var _feed_obj = null;\n\n if (selfClass.$feed_fakeButton) {\n _feed_obj = selfClass.$feed_fakeButton;\n } else {\n if (selfClass._sourcePlayer) {\n _feed_obj = selfClass._sourcePlayer;\n } else {\n _feed_obj = null;\n }\n }\n\n\n if (selfClass.identifier_pcm === 'dzs_footer') {\n selfClass.identifier_pcm = dzs_clean_string(cthis.attr('data-source'));\n }\n\n if (_feed_obj) {\n if (_feed_obj.attr('data-playerid')) {\n selfClass.identifier_pcm = _feed_obj.attr('data-playerid');\n } else {\n if (_feed_obj.attr('data-source')) {\n selfClass.identifier_pcm = _feed_obj.attr('data-source');\n }\n }\n }\n\n\n}\n/**\n * get the playFrom\n * @param selfClass\n */\nexports.player_getPlayFromTime = function (selfClass) {\n\n selfClass.playFrom = selfClass.initOptions.playfrom;\n\n if (dzsHelpers.isValid(selfClass.cthis.attr('data-playfrom'))) {\n selfClass.playFrom = selfClass.cthis.attr('data-playfrom');\n }\n\n if (isNaN(parseInt(selfClass.playFrom, 10)) === false) {\n selfClass.playFrom = parseInt(selfClass.playFrom, 10);\n }\n\n\n if (selfClass.playFrom === 'off' || selfClass.playFrom === '') {\n if (this.get_query_arg(window.location.href, 'audio_time')) {\n selfClass.playFrom = this.sanitizeToIntFromPointTime(this.get_query_arg(window.location.href, 'audio_time'));\n }\n }\n\n if (selfClass.timeModel.sampleTimeStart) {\n if (selfClass.playFrom < selfClass.timeModel.sampleTimeStart) {\n selfClass.playFrom = selfClass.timeModel.sampleTimeStart;\n }\n if (typeof selfClass.playFrom === 'string') {\n selfClass.playFrom = selfClass.timeModel.sampleTimeStart;\n }\n }\n}\n\n\n/**\n * from 1:01 to 61\n * @param arg\n * @returns {number}\n */\nexports.sanitizeToIntFromPointTime = function (arg) {\n //formats the time\n\n\n arg = String(arg).replace('%3A', ':');\n arg = String(arg).replace('#', '');\n\n if (arg && String(arg).indexOf(':') > -1) {\n\n var arr = /(\\d.*):(\\d.*)/g.exec(arg);\n\n // console.log('result arr - ',arr);\n\n var m = parseInt(arr[1], 10);\n var s = parseInt(arr[2], 10);\n\n\n return (m * 60) + s;\n } else {\n return Number(arg);\n }\n}\n\nfunction player_initSpectrum(selfClass){\n\n if (window.dzsap_audio_ctx === null) {\n if (typeof AudioContext !== 'undefined') {\n selfClass.spectrum_audioContext = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n selfClass.spectrum_audioContext = new webkitAudioContext();\n } else {\n selfClass.spectrum_audioContext = null;\n }\n window.dzsap_audio_ctx = selfClass.spectrum_audioContext;\n } else {\n selfClass.spectrum_audioContext = window.dzsap_audio_ctx;\n }\n\n\n\n console.log('selfClass.spectrum_audioContext - ', selfClass.spectrum_audioContext);\n\n if (selfClass.spectrum_audioContext) {\n\n\n // -- normal\n // setup a analyzer\n if (selfClass.spectrum_analyser === null) {\n\n selfClass.spectrum_analyser = selfClass.spectrum_audioContext.createAnalyser();\n selfClass.spectrum_analyser.smoothingTimeConstant = 0.3;\n selfClass.spectrum_analyser.fftSize = 512;\n\n console.log('selfClass.spectrum_analyser - ', selfClass.spectrum_analyser);\n\n // console.log('selfClass.audioType - ', selfClass.audioType);\n if (selfClass.audioType === 'selfHosted') {\n // console.log($mediaNode_);\n // return;\n selfClass.$mediaNode_.crossOrigin = \"anonymous\";\n selfClass.spectrum_mediaElementSource = selfClass.spectrum_audioContext.createMediaElementSource(selfClass.$mediaNode_);\n\n selfClass.spectrum_mediaElementSource.connect(selfClass.spectrum_analyser);\n if (selfClass.spectrum_audioContext.createGain) {\n selfClass.spectrum_gainNode = selfClass.spectrum_audioContext.createGain();\n }\n selfClass.spectrum_analyser.connect(selfClass.spectrum_audioContext.destination);\n\n selfClass.spectrum_gainNode.gain.value = 1;\n\n var frameCount = selfClass.spectrum_audioContext.sampleRate * 2.0;\n selfClass.spectrum_audioContext_buffer = selfClass.spectrum_audioContext.createBuffer(2, frameCount, selfClass.spectrum_audioContext.sampleRate);\n }\n }\n }\n}\nexports.player_initSpectrum = player_initSpectrum;\nexports.player_initSpectrumOnUserAction = function (selfClass) {\n\n\n\n // console.log('player_initSpectrumOnUserAction setting up listeners for player_initSpectrumOnUserAction');\n selfClass.cthis.get(0).addEventListener('mousedown', handleMouseDown, { once: true });\n selfClass.cthis.get(0).addEventListener('touchdown', handleMouseDown, { once: true });\n\n function handleMouseDown(e) {\n console.log('setting up audio context --', e);\n\n\n player_initSpectrum(selfClass);\n }\n\n\n}\n\n\nexports.player_icecastOrShoutcastRefresh = function (selfClass) {\n\n\n\n\n var url = selfClass.cthis.attr('data-source');\n\n if (selfClass.audioTypeSelfHosted_streamType === 'shoutcast') {\n url = add_query_arg(selfClass.urlToAjaxHandler, 'action', 'dzsap_shoutcast_get_streamtitle');\n url = add_query_arg(url, 'source', (selfClass.data_source));\n }\n\n\n jQuery.ajax({\n type: \"GET\",\n url: url,\n crossDomain: true,\n success: function (response) {\n\n if (response.documentElement && response.documentElement.innerHTML) {\n response = response.documentElement.innerHTML;\n }\n\n // console.log(' response - ',response);\n\n var regex_title = '';\n var regex_creator = '';\n var new_title = '';\n var new_artist = '';\n\n if (selfClass.audioTypeSelfHosted_streamType === 'icecast') {\n\n var regex_location = /(.*?)<\\/location>/g\n\n var regexMatches = null;\n if (regexMatches = regex_location.exec(response)) {\n // console.log(' aux - ', aux);\n\n if (regexMatches[1] !== selfClass.data_source) {\n selfClass.data_source = regexMatches[1];\n selfClass.setup_media({\n 'called_from': 'icecast setup'\n });\n }\n }\n }\n\n if (selfClass.radio_isGoingToUpdateSongName) {\n if (selfClass.audioTypeSelfHosted_streamType === 'icecast') {\n regex_title = /(.*?)<\\/title>/g\n\n if (regexMatches = regex_title.exec(response)) {\n new_title = regexMatches[1];\n }\n }\n if (selfClass.audioTypeSelfHosted_streamType === 'shoutcast') {\n new_title = response;\n }\n\n }\n if (selfClass.radio_isGoingToUpdateArtistName) {\n if (selfClass.audioTypeSelfHosted_streamType === 'icecast') {\n\n regex_creator = /<creator>(.*?)<\\/creator>/g;\n\n if (regexMatches = regex_creator.exec(response)) {\n new_artist = regexMatches[1];\n }\n }\n if (selfClass.audioTypeSelfHosted_streamType === 'shoutcast') {\n }\n }\n\n if (selfClass.radio_isGoingToUpdateSongName) {\n\n selfClass._metaArtistCon.find('.the-name').html(new_title);\n }\n if (selfClass.radio_isGoingToUpdateArtistName) {\n\n selfClass._metaArtistCon.find('.the-artist').html(new_artist)\n }\n },\n error: function (err) {\n console.log('error loading icecast - ', err);\n }\n });\n\n}\nexports.player_determineStickToBottomContainer = function (selfClass) {\n\n if (selfClass.cthis.parent().hasClass('dzsap-sticktobottom')) {\n selfClass.$stickToBottomContainer = selfClass.cthis.parent();\n\n }\n if (selfClass.cthis.parent().parent().hasClass('dzsap-sticktobottom')) {\n selfClass.$stickToBottomContainer = selfClass.cthis.parent().parent();\n }\n}\nexports.player_stickToBottomContainerDetermineClasses = function (selfClass) {\n\n if (selfClass.$stickToBottomContainer) {\n if (selfClass.cthis.hasClass('theme-dark')) {\n selfClass.$stickToBottomContainer.addClass('theme-dark');\n }\n\n setTimeout(function () {\n\n selfClass.$stickToBottomContainer.addClass('inited');\n }, 500)\n selfClass.$stickToBottomContainer.addClass('dzsap-sticktobottom-for-' + selfClass.initOptions.design_skin);\n selfClass.$stickToBottomContainer.prev().addClass('dzsap-sticktobottom-for-' + selfClass.initOptions.design_skin);\n\n if (selfClass.initOptions.design_skin === 'skin-wave') {\n selfClass.$stickToBottomContainer.addClass('dzsap-sticktobottom-for-' + selfClass.initOptions.design_skin + '--mode-' + selfClass.skinwave_mode)\n selfClass.$stickToBottomContainer.prev().addClass('dzsap-sticktobottom-for-' + selfClass.initOptions.design_skin + '--mode-' + selfClass.skinwave_mode)\n }\n\n\n var regex = /(skinvariation-.*?)($| )/g\n\n var aux = regex.exec(selfClass.cthis.attr('class'));\n\n if (aux && aux[1]) {\n selfClass.$stickToBottomContainer.addClass(aux[1]);\n selfClass.$stickToBottomContainer.prev().addClass(aux[1]);\n }\n }\n\n}\nexports.player_isGoingToSetupMediaNow = function (selfClass) {\n return selfClass.audioTypeSelfHosted_streamType !== 'icecast' && selfClass.audioType !== 'youtube';\n}\nexports.player_determineHtmlAreas = function (selfClass) {\n\n var o = selfClass.initOptions;\n\n\n // console.log('selfClass.cthis.children(\\'.feed-dzsap--extra-html\\')- ', selfClass.cthis.children('.feed-dzsap--extra-html'));\n let extraHtmlBottom = '';\n let extraHtmlControlsLeft = '';\n let extraHtmlControlsRight = '';\n\n // console.log('selfClass.cthis.children(\\'.feed-dzsap--extra-html\\').length - ', selfClass.cthis.children('.feed-dzsap--extra-html').length, selfClass.cthis);\n if (selfClass.cthis.children('.feed-dzsap--extra-html').length > 0 && o.settings_extrahtml === '') {\n selfClass.cthis.children('.feed-dzsap--extra-html').each(function () {\n\n extraHtmlBottom += jQuery(this).html();\n })\n selfClass.cthis.children('.feed-dzsap--extra-html').remove();\n } else {\n if (o.settings_extrahtml) {\n extraHtmlBottom = o.settings_extrahtml;\n }\n }\n\n\n if (selfClass.cthis.children('.feed-dzsap--extra-html-in-controls-left').length > 0) {\n extraHtmlControlsLeft = selfClass.cthis.children('.feed-dzsap--extra-html-in-controls-left').eq(0).html();\n }\n if (selfClass.cthis.children('.feed-dzsap--extra-html-in-controls-right').length > 0) {\n extraHtmlControlsRight = selfClass.cthis.children('.feed-dzsap--extra-html-in-controls-right').eq(0).html();\n }\n if (selfClass.cthis.children('.feed-dzsap--extra-html-bottom').length > 0) {\n extraHtmlBottom = selfClass.cthis.children('.feed-dzsap--extra-html-bottom').eq(0).html();\n }\n\n\n selfClass.extraHtmlAreas.controlsLeft = extraHtmlControlsLeft;\n selfClass.extraHtmlAreas.controlsRight = extraHtmlControlsRight;\n selfClass.extraHtmlAreas.bottom = extraHtmlBottom;\n\n\n if (selfClass.extraHtmlAreas.controlsRight) {\n selfClass.extraHtmlAreas.controlsRight = String(selfClass.extraHtmlAreas.controlsRight).replace(/{{svg_share_icon}}/g, dzsapSvgs.svg_share_icon);\n }\n\n // console.log('selfClass.feedEmbedCode - ', selfClass.feedEmbedCode);\n // console.log('selfClass.extraHtmlAreas - ', selfClass.extraHtmlAreas);\n for (var key in selfClass.extraHtmlAreas) {\n // debugger;\n selfClass.extraHtmlAreas[key] = String(selfClass.extraHtmlAreas[key]).replace('{{heart_svg}}', '\\t♥');\n selfClass.extraHtmlAreas[key] = String(selfClass.extraHtmlAreas[key]).replace('{{embed_code}}', selfClass.feedEmbedCode);\n }\n}\n\nexports.player_stopOtherPlayers = function (dzsap_list, selfClass) {\n\n var i = 0;\n for (i = 0; i < dzsap_list.length; i++) {\n // -- pause other players\n if (dzsap_list[i].get(0) && dzsap_list[i].get(0).api_pause_media && (dzsap_list[i].get(0) != selfClass.cthis.get(0))) {\n\n //console.error(\"LETS PAUSE\");\n if (dzsap_list[i].data('type_audio_stop_buffer_on_unfocus') && dzsap_list[i].data('type_audio_stop_buffer_on_unfocus') === 'on') {\n dzsap_list[i].get(0).api_destroy_for_rebuffer();\n } else {\n dzsap_list[i].get(0).api_pause_media({\n 'audioapi_setlasttime': false\n });\n }\n }\n }\n}\nexports.player_determineProperties = player_determineProperties;\n\nfunction player_determineProperties() {\n\n var source = null;\n var type = null;\n var pcm = null;\n var thumb = null;\n\n\n}\n\nexports.player_detect_skinwave_mode = player_detect_skinwave_mode;\n\nfunction player_detect_skinwave_mode() {\n\n var selfClass = this;\n\n\n selfClass.skinwave_mode = selfClass.initOptions.skinwave_mode;\n\n if (selfClass.cthis.hasClass('skin-wave-mode-small')) {\n selfClass.skinwave_mode = 'small'\n }\n if (selfClass.cthis.hasClass('skin-wave-mode-alternate')) {\n selfClass.skinwave_mode = 'alternate'\n }\n if (selfClass.cthis.hasClass('skin-wave-mode-bigwavo')) {\n selfClass.skinwave_mode = 'bigwavo'\n }\n}\n\nexports.player_constructArtistAndSongCon = function (margs) {\n\n var selfClass = this;\n\n if (selfClass.cthis.find('.meta-artist').length === 0) {\n if (selfClass.cthis.find('.feed-artist').length || selfClass.cthis.find('.feed-songname').length) {\n var structHtml = '<span class=\"meta-artist player-artistAndSong\">';\n if (selfClass.cthis.find('.feed-artist').length) {\n structHtml += '<span class=\"the-artist\">' + selfClass.cthis.find('.feed-artist').eq(0).html() + '</span>';\n }\n if (selfClass.cthis.find('.feed-songname').length) {\n structHtml += '<span class=\"the-name player-meta--songname\">' + selfClass.cthis.find('.feed-songname').eq(0).html() + '</span>';\n }\n structHtml += '</span>';\n selfClass.cthis.append(structHtml);\n }\n }\n\n if (selfClass.cthis.attr(\"data-type\") === 'fake') {\n if (selfClass.cthis.find('.meta-artist').length === 0) {\n selfClass.cthis.append('<span class=\"meta-artist\"><span class=\"the-artist\"></span><span class=\"the-name\"></span></span>')\n }\n }\n\n if (!selfClass._metaArtistCon || margs.call_from === 'reconstruct') {\n // -- reconstruct\n if (selfClass.cthis.children('.meta-artist').length > 0) {\n //console.log(cthis.hasClass('alternate-layout'));\n if (selfClass.cthis.hasClass('skin-wave-mode-alternate')) {\n //console.log(_conControls.children().last());\n\n if (selfClass._conControls.children().last().hasClass('clear')) {\n selfClass._conControls.children().last().remove();\n }\n selfClass._conControls.append(selfClass.cthis.children('.meta-artist'));\n } else {\n\n // -- normal\n if (selfClass._audioplayerInner) {\n\n selfClass._audioplayerInner.append(selfClass.cthis.children('.meta-artist'));\n }\n }\n\n }\n\n\n // -- we need meta-artist at this point\n selfClass._audioplayerInner.find('.meta-artist').eq(0).wrap('<div class=\"meta-artist-con\"></div>');\n\n //console.log('ceva');\n\n selfClass._metaArtistCon = selfClass._audioplayerInner.find('.meta-artist-con').eq(0);\n\n\n var o = selfClass.initOptions;\n\n\n if (selfClass._apControls.find('.ap-controls-right').length > 0) {\n selfClass._apControlsRight = selfClass.cthis.find('.ap-controls-right').eq(0);\n }\n if (selfClass._apControls.find('.ap-controls-left').length > 0) {\n selfClass._apControlsLeft = selfClass._apControls.find('.ap-controls-left').eq(0);\n }\n\n\n if (o.design_skin === 'skin-pro') {\n selfClass._apControlsRight = selfClass.cthis.find('.con-controls--right').eq(0)\n }\n\n if (o.design_skin === 'skin-wave') {\n\n\n if (selfClass.cthis.find('.dzsap-repeat-button').length) {\n selfClass.cthis.find('.dzsap-repeat-button').after(selfClass._metaArtistCon);\n } else {\n\n\n if (selfClass.cthis.find('.dzsap-loop-button').length && selfClass.cthis.find('.dzsap-loop-button').eq(0).parent().hasClass('feed-dzsap-for-extra-html-right') === false) {\n selfClass.cthis.find('.dzsap-loop-button').after(selfClass._metaArtistCon);\n } else {\n\n selfClass._conPlayPauseCon.after(selfClass._metaArtistCon);\n }\n }\n\n if (selfClass.skinwave_mode === 'alternate') {\n selfClass._apControlsRight.before(selfClass._metaArtistCon);\n }\n\n\n }\n if (o.design_skin === 'skin-aria') {\n selfClass._apControlsRight.prepend(selfClass._metaArtistCon);\n\n }\n if (o.design_skin === 'skin-redlights' || o.design_skin === 'skin-steel') {\n\n selfClass._apControlsRight.prepend(selfClass._metaArtistCon);\n\n\n }\n if (o.design_skin === 'skin-silver') {\n selfClass._apControlsRight.append(selfClass._metaArtistCon);\n }\n if (o.design_skin === 'skin-default') {\n selfClass._apControlsRight.before(selfClass._metaArtistCon);\n }\n\n\n }\n\n\n}\n\n\nexports.hexToRgb = hexToRgb;\nexports.handle_keypresses = handle_keypresses;\nexports.select_all = select_all;\nexports.dzsap_generate_keyboard_tooltip = dzsap_generate_keyboard_tooltip;\nexports.htmlEncode = htmlEncode;\nexports.dzsap_is_mobile = dzsap_is_mobile;\nexports.is_ios = is_ios;\nexports.is_android = is_android;\nexports.is_safari = is_safari;\nexports.is_android_good = is_android_good;\nexports.get_query_arg = get_query_arg;\nexports.add_query_arg = add_query_arg;\nexports.can_history_api = can_history_api;\nexports.dzs_clean_string = dzs_clean_string;\nexports.formatTime = formatTime;\nexports.can_canvas = can_canvas;\n\n\nexports.dzsap_generate_keyboard_controls = dzsap_generate_keyboard_controls;\n\n\n/**\n * deprecated\n * @param argarray\n * @returns {boolean}\n */\nfunction drawSpectrum(argarray) {\n\n // todo: no functino ?\n //console.log(array);\n //console.log()\n //console.log($('.scrub-bg-canvas').eq(0).get(0).width, canw);\n\n //console.log(_scrubBgCanvas.get(0).width, _scrubBgCanvas.width())\n\n\n // console.log(_scrubbarbg_canvas);\n if (selfClass._scrubbarbg_canvas) {\n\n // dzsapWaveFunctions.draw_canvas(selfClass._scrubbarbg_canvas.get(0), argarray, o.design_wave_color_bg, {call_from: 'draw_spectrum_pcm_bg'});\n // draw_canvas(_scrubbarprog_canvas.get(0), argarray, o.design_wave_color_progress);\n }\n\n return false;\n\n\n};\n\nexports.convertPluginOptionsToFinalOptions = function (elThis, defaultOptions, argOptions = null, searchedAttr = 'data-options', $es) {\n\n var finalOptions = null;\n var tempOptions = {};\n var sw_setFromJson = false;\n\n if ($es === undefined) {\n $es = jQuery;\n }\n // console.log('arguments - ', arguments);\n // console.log('$es - ', $es);\n var $elThis = $es(elThis);\n\n if (argOptions && typeof argOptions === 'object') {\n tempOptions = argOptions;\n } else {\n if ($elThis.attr(searchedAttr)) {\n try {\n tempOptions = JSON.parse($elThis.attr(searchedAttr));\n sw_setFromJson = true;\n } catch (err) {\n\n console.log('err - ', err);\n }\n }\n if (!sw_setFromJson) {\n\n if (typeof argOptions === 'undefined' || !argOptions) {\n if (typeof $elThis.attr(searchedAttr) != 'undefined' && $elThis.attr('data-options') != '') {\n var aux = $elThis.attr(searchedAttr);\n aux = 'var aux_opts = ' + aux;\n eval(aux);\n tempOptions = Object.assign({}, aux_opts);\n }\n }\n }\n }\n finalOptions = Object.assign(defaultOptions, tempOptions);\n\n return finalOptions;\n}\n\nexports.generateFakeArrayForPcm = function () {\n\n //console.log('generateFakeArray()');\n var maxlen = 256;\n\n var arr = [];\n\n for (var it1 = 0; it1 < maxlen; it1++) {\n arr[it1] = Math.random() * 100;\n\n }\n\n return arr;\n}\n\n\nexports.scrubbar_modeWave_clearObsoleteCanvas = scrubbar_modeWave_clearObsoleteCanvas;\n\nfunction scrubbar_modeWave_clearObsoleteCanvas(selfClass) {\n if (selfClass._scrubbar) {\n selfClass._scrubbar.find('.scrubbar-type-wave--canvas.transitioning-out').remove();\n }\n}\n\nexports.scrubbar_modeWave_setupCanvas = scrubbar_modeWave_setupCanvas;\n\nfunction scrubbar_modeWave_setupCanvas(pargs, selfClass) {\n\n var margs = {\n prepare_for_transition_in: false\n }\n\n if (pargs) {\n margs = Object.assign(margs, pargs);\n }\n\n // console.trace();\n\n var struct_scrubBg_str = '';\n var struct_scrubProg_str = '';\n var aux_selector = '';\n var o = selfClass.initOptions;\n\n\n struct_scrubBg_str = '<canvas class=\"scrubbar-type-wave--canvas scrub-bg-img';\n struct_scrubBg_str += '\" ></canvas>';\n\n struct_scrubProg_str = '<canvas class=\"scrubbar-type-wave--canvas scrub-prog-img';\n struct_scrubProg_str += '\" ></canvas>';\n\n // console.log('scrubbar_modeWave_setupCanvas() selfClass._scrubbar.find(\\'.scrub-bg\\') - ', selfClass._scrubbar);\n selfClass._scrubbar.find('.scrub-bg').eq(0).append(struct_scrubBg_str);\n selfClass._scrubbar.find('.scrub-prog').eq(0).append(struct_scrubProg_str);\n\n\n selfClass._scrubbarbg_canvas = selfClass._scrubbar.find('.scrub-bg-img').last();\n selfClass._scrubbarprog_canvas = selfClass._scrubbar.find('.scrub-prog-img').last();\n\n if (o.skinwave_enableSpectrum === 'on') {\n selfClass._scrubbarprog_canvas.hide();\n }\n\n\n if (margs.prepare_for_transition_in) {\n selfClass._scrubbarbg_canvas.addClass('preparing-transitioning-in');\n selfClass._scrubbarprog_canvas.addClass('preparing-transitioning-in');\n setTimeout(function () {\n selfClass._scrubbarbg_canvas.addClass('transitioning-in');\n selfClass._scrubbarprog_canvas.addClass('transitioning-in');\n }, 20);\n }\n}\n","\nimport {ConstantsDzsAp} from \"../configs/_constants\";\nconst dzsapWaveFunctions = require('./wave-render/_wave-render-functions');\nexport function retrieve_soundcloud_url (selfClass, pargs) {\n\n\n var o = selfClass.initOptions;\n // console.log(' ooo - ', o);\n if (o.soundcloud_apikey == '') {\n alert('soundcloud api key not defined, read docs!');\n }\n var aux = 'https://api.' + 'soundcloud.com' + '/resolve?url=' + selfClass.data_source + '&format=json&consumer_key=' + o.soundcloud_apikey;\n //console.log(aux);\n\n\n aux = encodeURIComponent(aux);\n\n\n var soundcloud_retriever = o.php_retriever + '?scurl=' + aux;\n\n\n jQuery.ajax({\n type: \"GET\",\n url: soundcloud_retriever\n , data: {}\n , async: true\n , dataType: 'text'\n , error: function (err, q, t) {\n\n console.log('retried soundcloud error', err, q, t);\n }\n , success: function (response) {\n\n // console.log('got response - ', response);\n var data = [];\n\n\n let newSource = '';\n try {\n data = JSON.parse(response);\n // console.log('got json - ', data);\n selfClass.audioType = 'selfHosted';\n\n\n if (data == '') {\n selfClass.cthis.addClass(ConstantsDzsAp.ERRORED_OUT_CLASS);\n selfClass.cthis.append('<div class=\"feedback-text\">soundcloud track does not seem to serve via api</div>');\n }\n\n\n //console.log('o.design_skin - ', o.design_skin);\n selfClass.original_real_mp3 = selfClass.cthis.attr('data-source');\n if (data.stream_url) {\n\n newSource = data.stream_url + '?consumer_key=' + o.soundcloud_apikey + '&origin=localhost';\n selfClass.cthis.attr('data-source', newSource);\n\n\n if (selfClass.$feed_fakeButton) {\n selfClass.$feed_fakeButton.attr('data-source', newSource);\n }\n if (selfClass._sourcePlayer) {\n selfClass._sourcePlayer.attr('data-source', newSource);\n }\n } else {\n\n selfClass.cthis.addClass(ConstantsDzsAp.ERRORED_OUT_CLASS);\n selfClass.cthis.append('<div class=\"feedback-text \">this soundcloud track does not allow streaming </div>');\n }\n selfClass.src_real_mp3 = newSource;\n\n\n if (selfClass.cthis.attr('data-pcm')) {\n\n\n selfClass.isRealPcm = true;\n }\n if (o.design_skin == 'skin-wave') {\n if (o.skinwave_wave_mode == 'canvas') {\n if (selfClass.isRealPcm == false) {\n if ((o.pcm_data_try_to_generate == 'on' && o.pcm_data_try_to_generate_wait_for_real_pcm == 'on') == false) {\n dzsapWaveFunctions.scrubModeWave__initGenerateWaveData(selfClass, {\n 'call_from': 'soundcloud init(), pcm not real..'\n });\n }\n }\n }\n }\n\n selfClass.data_source = newSource;\n selfClass.setup_media({\n 'called_from': 'change_media'\n });\n\n\n setTimeout(function () {\n\n // console.log('selfClass.isPlayPromised -3 ',selfClass.isPlayPromised);\n if (selfClass.isPlayPromised) {\n selfClass.play_media({\n 'call_from': 'change_media'\n })\n selfClass.isPlayPromised = false;\n }\n }, 300);\n } catch (err) {\n console.log('soduncloud parse error -', response, ' - ', soundcloud_retriever);\n }\n }\n });\n\n}\n","import * as dzsapHelpers from './_dzsap_helpers';\n\nconst ZoomSoundsNav = require('./components/_nav');\n\nimport {ConstantsDzsAp} from \"../configs/_constants\";\n\n// Constants.DEMO;\n\nclass DzsApPlaylist {\n constructor(argThis, argOptions, $) {\n\n this.argThis = argThis;\n this.argOptions = argOptions;\n this.$ = $;\n this.navClass = null;\n\n\n this.init();\n }\n\n init() {\n // console.log('this -> ', this);\n\n\n var $ = this.$;\n var selfGallery = this;\n //console.log(\"INITED\");\n var o = selfGallery.argOptions;\n var cgallery = $(selfGallery.argThis);\n var cid = 'ag1';\n var currNr = -1 // -- the current player that is playing\n , lastCurrNr = 0\n , nrChildren = 0\n , tempNr = 0;\n\n var i = 0;\n\n\n var dzsap_currplayer_focused = null;\n var _sliderMain, _sliderClipper, _navMain, _navClipper, _cache;\n var busy = false,\n first = true,\n destroyed = true,\n skin_redlight_give_controls_right_to_all_players = false // -- if the mode is mode-showall and the skin of the player is redlights, then make all players with controls right\n ;\n\n\n var trying_to_get_track_data = false;\n\n\n var arr_menuitems = [];\n var track_data = []; // -- the whole track data views / likes etc.\n\n var str_alertBeforeRate = 'You need to comment or rate before downloading.';\n\n\n var duration_viy = 20;\n\n var target_viy = 0;\n\n var begin_viy = 0;\n\n var change_viy = 0;\n\n selfGallery.goto_item = goto_item;\n selfGallery.handleResize = handleResize;\n\n\n selfGallery.initOptions = o;\n if (window.dzsap_settings && typeof (window.dzsap_settings.str_alertBeforeRate) != 'undefined') {\n str_alertBeforeRate = window.dzsap_settings.str_alertBeforeRate;\n }\n\n cgallery.get(0).currNr_2 = -1; // -- we use this as backup currNR for mode-showall ( hack )\n\n init();\n\n function init() {\n // -- init gallery here\n\n\n // console.log('o.settings_ap- ' , o.settings_ap);\n if (o.settings_ap === 'default') {\n if (cgallery.attr('data-player-options')) {\n o.settings_ap = dzsapHelpers.convertPluginOptionsToFinalOptions(cgallery.get(0), {}, null, 'data-player-options');\n } else {\n const _firstPlayer = cgallery.find('.audioplayer, .audioplayer-tobe').eq(0);\n if (_firstPlayer) {\n\n o.settings_ap = dzsapHelpers.convertPluginOptionsToFinalOptions(_firstPlayer.get(0), {}, null);\n }\n }\n } else {\n if (typeof o.settings_ap == 'string' && window.dzsap_apconfigs) {\n if (typeof window.dzsap_apconfigs[o.settings_ap] === 'object') {\n o.settings_ap = {...window.dzsap_apconfigs[o.settings_ap]};\n }\n }\n }\n // console.log('selfGallery.initOptions - ', selfGallery.initOptions, 'o.settings_ap - ', o.settings_ap, window.dzsap_apconfigs);\n\n\n // console.log('o.settings_ap after data-player-options - ',Object.assign({}, o.settings_ap));\n if (o.settings_ap === 'default' || typeof o.settings_ap === 'string') {\n o.settings_ap = {};\n }\n\n\n if (o.design_menu_width === 'default') {\n o.design_menu_width = '100%';\n }\n // console.log('o.design_menu_height- ' , o.design_menu_height);\n if (o.design_menu_height === 'default') {\n o.design_menu_height = '200';\n }\n // console.log('o.design_menu_height- ' , o.design_menu_height);\n\n\n if (cgallery.hasClass('skin-wave')) {\n o.design_skin = 'skin-wave';\n }\n if (cgallery.hasClass('skin-default')) {\n o.design_skin = 'skin-default';\n }\n if (cgallery.hasClass('skin-aura')) {\n o.design_skin = 'skin-aura';\n }\n\n\n cgallery.addClass(o.settings_mode);\n\n\n cgallery.append('<div class=\"slider-main\"><div class=\"slider-clipper\"></div></div>');\n\n cgallery.addClass('menu-position-' + o.design_menu_position);\n\n _sliderMain = cgallery.find('.slider-main').eq(0);\n\n\n var lengthAudioPlayersInPlaylist = cgallery.find('.items').children('.audioplayer-tobe').length;\n\n // --- if there is a single audio player in the gallery - theres no point of a menu\n\n\n o.settings_ap.disable_player_navigation = o.disable_player_navigation;\n if (lengthAudioPlayersInPlaylist === 0 || lengthAudioPlayersInPlaylist === 1) {\n o.design_menu_position = 'none';\n o.settings_ap.disable_player_navigation = 'on';\n }\n\n\n // console.log('ZoomSoundsNav - ', ZoomSoundsNav);\n\n selfGallery.navClass = new ZoomSoundsNav.ZoomSoundsNav(selfGallery);\n\n\n if (o.design_menu_position === 'top') {\n _sliderMain.before(selfGallery.navClass.get_structZoomsoundsNav());\n }\n if (o.design_menu_position === 'bottom') {\n _sliderMain.after(selfGallery.navClass.get_structZoomsoundsNav());\n }\n\n // console.log('[settingsap] o.settings_ap -', o.settings_ap);\n if (o.settings_php_handler) {\n\n } else {\n if (o.settings_ap.settings_php_handler) {\n o.settings_php_handler = o.settings_ap.settings_php_handler;\n }\n }\n\n\n if (typeof cgallery.attr('id')) {\n cid = cgallery.attr('id');\n } else {\n\n var ind = 0;\n while ($('ag' + ind).length === 0) {\n ind++;\n }\n\n\n cid = 'ag' + ind;\n\n cgallery.attr('id', cid);\n }\n\n\n _sliderClipper = cgallery.find('.slider-clipper').eq(0);\n _navMain = cgallery.find('.nav-main').eq(0);\n _navClipper = cgallery.find('.nav-clipper').eq(0);\n\n if (cgallery.children('.extra-html').length) {\n cgallery.append(cgallery.children('.extra-html'));\n }\n\n if (o.settings_mode === 'mode-showall') {\n _sliderClipper.addClass('layout-' + o.mode_showall_layout);\n }\n\n selfGallery.navClass.set_elements(_navMain, _navClipper, cgallery);\n\n\n reinit();\n\n //console.log(arr_menuitems);\n\n selfGallery.navClass.init_ready();\n\n\n parse_track_data();\n\n\n if (dzsapHelpers.can_history_api() === false) {\n o.settings_enable_linking = 'off';\n }\n\n $(window).bind('resize', handleResize);\n handleResize();\n setTimeout(handleResize, 1000);\n\n\n cgallery.get(0).api_skin_redlights_give_controls_right_to_all = function () {\n\n // -- void f()\n\n skin_redlight_give_controls_right_to_all_players = true;\n }\n\n\n if (dzsapHelpers.get_query_arg(window.location.href, 'audiogallery_startitem_' + cid)) {\n tempNr = Number(dzsapHelpers.get_query_arg(window.location.href, 'audiogallery_startitem_' + cid));\n\n lastCurrNr = tempNr;\n if (Number(dzsapHelpers.get_query_arg(window.location.href, 'audiogallery_startitem_' + cid)) && Number(dzsapHelpers.get_query_arg(window.location.href, 'audiogallery_startitem_' + cid)) > 0) {\n\n // console.log(cid,o.force_autoplay_when_coming_from_share_link)\n\n // -- caution .. coming from share link will trigger autoplay!!!\n if (o.force_autoplay_when_coming_from_share_link == 'on') {\n o.autoplay = 'on';\n }\n }\n }\n // console.log('%c o gallery','background-color: #ccc;',$.extend({},o));\n\n\n if (o.settings_mode == 'mode-normal') {\n\n goto_item(tempNr, {\n 'called_from': 'init'\n });\n }\n\n\n if (o.settings_mode === 'mode-showall') {\n // -- mode-showall\n\n _sliderClipper.children().each(function () {\n var _t = $(this);\n\n //console.log(_t);\n\n var ind = _t.parent().children('.audioplayer,.audioplayer-tobe').index(_t);\n\n if (_t.hasClass('audioplayer-tobe')) {\n //console.log(o.settings_ap);\n\n\n var player_args = Object.assign({}, o.settings_ap);\n player_args.parentgallery = cgallery;\n player_args.call_from = 'mode show-all';\n player_args.action_audio_play = mode_showall_listen_for_play;\n\n // -- showall\n _t.audioplayer(player_args);\n\n //console.log(ind);\n\n ind = String(ind + 1);\n\n if (ind.length < 2) {\n ind = '0' + ind;\n }\n\n if (o.mode_showall_layout === 'one-per-row' && o.settings_mode_showall_show_number !== 'off') {\n\n _t.before('<div class=\"number-wrapper\"><span class=\"the-number\">' + ind + '</span></div>')\n _t.after('<div class=\"clear for-number-wrapper\"></div>')\n }\n }\n\n })\n\n\n if ($.fn.isotope && o.mode_showall_layout !== 'one-per-row') {\n\n // -- we have isotope\n _sliderClipper.find('.audioplayer,.audioplayer-tobe').addClass('isotope-item');\n setTimeout(function () {\n\n _sliderClipper.prepend('<div class=\"grid-sizer\"></div>');\n _sliderClipper.isotope({\n // options\n itemSelector: '.isotope-item',\n layoutMode: 'fitRows',\n percentPosition: true,\n masonry: {\n columnWidth: '.grid-sizer'\n }\n });\n _sliderClipper.addClass('isotoped');\n setTimeout(function () {\n _sliderClipper.isotope('layout')\n }, 900);\n }, ConstantsDzsAp.PLAYLIST_TRANSITION_DURATION);\n\n\n _sliderClipper.append('<div class=\"clear\"></div>');\n }\n\n\n //console.log('dada2', skin_redlight_give_controls_right_to_all_players);\n\n\n if (skin_redlight_give_controls_right_to_all_players) {\n\n _sliderClipper.children('.audioplayer').each(function () {\n\n var _t = $(this);\n\n //console.log(_t);\n\n if (_t.find('.ap-controls-right').eq(0).prev().hasClass('controls-right') === false) {\n _t.find('.ap-controls-right').eq(0).before('<div class=\"controls-right\"> </div>');\n }\n });\n }\n\n }\n\n\n cgallery.find('.download-after-rate').bind('click', click_downloadAfterRate);\n\n cgallery.get(0).api_regenerate_sync_players_with_this_playlist = regenerate_sync_players_with_this_playlist;\n cgallery.get(0).api_goto_next = goto_next;\n cgallery.get(0).api_goto_prev = goto_prev;\n cgallery.get(0).api_goto_item = goto_item;\n cgallery.get(0).api_gallery_handle_end = gallery_handle_end;\n cgallery.get(0).api_toggle_menu_state = toggle_menu_state;\n cgallery.get(0).api_handleResize = handleResize;\n cgallery.get(0).api_player_commentSubmitted = player_commentSubmitted;\n cgallery.get(0).api_player_rateSubmitted = player_rateSubmitted;\n cgallery.get(0).api_reinit = reinit;\n cgallery.get(0).api_play_curr_media = play_curr_media;\n cgallery.get(0).api_get_nr_children = get_nr_children;\n cgallery.get(0).api_init_player_from_gallery = init_player_from_gallery;\n cgallery.get(0).api_filter = filterPlayersInPlaylist;\n cgallery.get(0).api_destroy = destroy_gallery;\n\n\n setInterval(calculate_on_interval, 1000);\n\n\n setTimeout(init_loaded, 700);\n\n\n if (o.enable_easing == 'on') {\n\n handle_frame();\n }\n //console.log(cgallery);\n\n cgallery.addClass('dzsag-inited');\n\n cgallery.addClass('transition-' + o.playlistTransition);\n cgallery.addClass('playlist-transition-' + o.playlistTransition);\n\n\n }\n\n\n function destroy_gallery() {\n\n\n if (destroyed) {\n return false;\n }\n\n\n // $(window).off('resize.dzsap');\n\n cgallery.remove();\n cgallery = null;\n\n destroyed = true;\n }\n\n function filterPlayersInPlaylist(filterBy, searchedString) {\n if (!(filterBy)) {\n filterBy = 'title';\n }\n\n /**\n *\n * @param $audioPlayer_\n * @returns {boolean} true if found\n */\n const filterForIsotope = ($audioPlayer_) => {\n // console.log($audioPlayer_);\n var $audioPlayer = $($audioPlayer_);\n var referenceVal = '';\n\n if (filterBy === 'title') {\n referenceVal = $audioPlayer.find('.the-name').text();\n }\n\n // console.log({searchedString, referenceVal, $audioPlayer});\n\n // console.log('argby - ',argby, ' | ', _t, _t.find('.the-name'));\n // console.log('$(this).find(\\'.the-name\\') - ',referenceVal, ' | ', arg);\n\n if (searchedString === '') {\n return true;\n }\n return referenceVal.toLowerCase().indexOf(searchedString.toLowerCase()) > -1;\n\n // console.log(arg2,this,arg);\n }\n\n _sliderClipper.children().each(function () {\n var isAccordingToSearch = filterForIsotope(this);\n if(isAccordingToSearch){\n $(this).addClass('is-according-to-search');\n }else{\n $(this).removeClass('is-according-to-search');\n }\n if (_sliderClipper.hasClass('isotoped')) {\n // console.log(_sliderClipper.isotope('getItemElements'));\n _sliderClipper.isotope({\n filter: '.is-according-to-search'\n });\n } else {\n if (isAccordingToSearch) {\n $(this).fadeIn('fast');\n } else {\n $(this).fadeOut('fast');\n }\n }\n });\n\n }\n\n function regenerate_sync_players_with_this_playlist() {\n\n // -- in case we play from playlist we overwrite whole footer playlist\n\n window.dzsap_syncList_players = [];\n\n _sliderClipper.children('.audioplayer,.audioplayer-tobe').each(function () {\n var _t = $(this);\n _t.addClass('feeded-whole-playlist');\n if (_t.attr('data-do-not-include-in-list') != 'on') {\n window.dzsap_syncList_players.push(_t);\n }\n })\n }\n\n\n function init_parse_track_data() {\n\n if (trying_to_get_track_data) {\n return false;\n }\n\n trying_to_get_track_data = true;\n\n var data = {\n action: 'dzsap_get_views_all',\n postdata: '1',\n };\n\n\n if (o.settings_php_handler) {\n $.ajax({\n type: \"POST\",\n url: o.settings_php_handler,\n data: data,\n success: function (response) {\n //if(typeof window.console != \"undefined\" ){ console.log('Ajax - get - comments - ' + response); }\n\n cgallery.attr('data-track-data', response);\n parse_track_data();\n\n },\n error: function (arg) {\n if (typeof window.console != \"undefined\") {\n // console.log('Got this from the server: ' + arg, arg);\n }\n ;\n }\n });\n }\n\n\n }\n\n function parse_track_data() {\n if (cgallery.attr('data-track-data')) {\n try {\n track_data = JSON.parse(cgallery.attr('data-track-data'));\n } catch (err) {\n console.log(err);\n }\n\n if (track_data && track_data.length) {\n\n selfGallery.navClass.parseTrackData(track_data);\n //console.warn(foundnr, track_data.length);\n }\n\n\n }\n\n //console.log(' track_data - ' ,track_data);\n }\n\n function get_nr_children() {\n return nrChildren;\n }\n\n function find_player_id(arg) {\n if (arg.attr('data-player-id')) {\n return arg.attr('data-player-id');\n } else {\n if (arg.attr('id')) {\n return arg.attr('id');\n } else {\n if (arg.attr('data-source')) {\n return dzsapHelpers.dzs_clean_string(arg.attr('data-source'));\n }\n }\n }\n }\n\n function reinit() {\n\n\n //console.log('reinit()', cgallery.find('.items').eq(0).children(), cgallery.find('.items').eq(0).children().length);\n\n var notInitedPlayersLength = cgallery.find('.items').eq(0).children('.audioplayer-tobe').length;\n arr_menuitems = [];\n\n var player_id = '';\n\n //console.log('reinit - ', cgallery.find('.items').eq(0).children());\n\n for (i = 0; i < notInitedPlayersLength; i++) {\n // -- construct palyers here\n var _c = cgallery.find('.items').children('.audioplayer-tobe').eq(0);\n\n //console.log('_c) - ',_c);\n\n var menuDescriptionHtml = '';\n\n if (_c.find('.menu-description').html()) {\n menuDescriptionHtml = _c.find('.menu-description').html();\n } else {\n menuDescriptionHtml = '';\n\n if (_c.find('.feed-artist').length || _c.find('.feed-songname').length) {\n\n menuDescriptionHtml = ``;\n if (_c.attr('data-thumb')) {\n menuDescriptionHtml += `<div class=\"menu-item-thumb-con\"><div class=\"menu-item-thumb\" style=\"background-image: url(${_c.attr('data-thumb')})\"></div></div>`;\n }\n menuDescriptionHtml += `<div class=\"menu-artist-info\"><span class=\"the-artist\">${_c.find('.feed-artist').html()}</span><span class=\"the-name\">${_c.find('.feed-songname').html()}</span></div>`\n }\n }\n\n var auxer = {\n 'menu_description': menuDescriptionHtml\n , 'player_id': find_player_id(_c)\n }\n\n arr_menuitems.push(auxer)\n //cgallery.find('.items').children().eq(0).find('.menu-description').remove();\n\n // console.log('_c - ',_c);\n\n\n _sliderClipper.append(_c);\n\n // if (o.settings_mode == 'mode-showall') {\n // _c.wrap('<div class=\"\"></div>')\n // }\n\n }\n\n\n // console.log('arr_menuitems - ', arr_menuitems);\n for (i = 0; i < arr_menuitems.length; i++) {\n var extra_class = '';\n if (arr_menuitems[i].menu_description && arr_menuitems[i].menu_description.indexOf('<div class=\"menu-item-thumb-con\"><div class=\"menu-item-thumb\" style=\"') == -1) {\n extra_class += ' no-thumb';\n }\n\n\n var aux = '<div class=\"menu-item' + extra_class + '\" data-menu-index=\"' + i + '\" data-gallery-id=\"' + cid + '\" data-playerid=\"' + arr_menuitems[i].player_id + '\">'\n\n if (cgallery.hasClass('skin-aura')) {\n aux += '<div class=\"menu-item-number\">' + (++nrChildren) + '</div>';\n }\n\n aux += arr_menuitems[i].menu_description;\n\n\n if (cgallery.hasClass('skin-aura') && String(arr_menuitems[i].menu_description).indexOf('menu-item-views') == 1) {\n\n if (track_data && track_data.length > 0) {\n\n aux += '<div class=\"menu-item-views\"></div>';\n } else {\n\n init_parse_track_data();\n aux += '<div class=\"menu-item-views\">' + dzsapSvgs.svg_play_icon + ' ' + '<span class=\"the-count\">{{views_' + arr_menuitems[i].player_id + '}}' + '</span></div>';\n }\n\n }\n\n\n aux += '</div>';\n\n _navClipper.append(aux);\n\n\n if (cgallery.hasClass('skin-aura')) {\n\n if (arr_menuitems[i] && arr_menuitems[i].menu_description && arr_menuitems[i].menu_description.indexOf('float-right') > -1) {\n _navClipper.children().last().addClass('has-extra-info')\n }\n }\n // nrChildren++;\n }\n }\n\n function init_loaded() {\n // -- gallery\n\n cgallery.addClass('dzsag-loaded');\n }\n\n function click_downloadAfterRate() {\n var _t = $(this);\n\n\n if (_t.hasClass('active') == false) {\n alert(str_alertBeforeRate)\n return false;\n }\n }\n\n\n function play_curr_media() {\n\n if (typeof (_sliderClipper.children().eq(currNr).get(0)) != 'undefined') {\n if (typeof (_sliderClipper.children().eq(currNr).get(0).api_play_media) != 'undefined') {\n _sliderClipper.children().eq(currNr).get(0).api_play_media({\n 'call_from': 'play_curr_media_gallery'\n });\n }\n\n }\n }\n\n function mode_showall_listen_for_play(arg) {\n\n //console.log('mode_showall_listen_for_play()',currNr, arg);\n\n if (o.settings_mode == 'mode-showall') {\n\n var ind = _sliderClipper.children('.audioplayer,.audioplayer-tobe').index(arg);\n //console.log(ind);\n currNr = ind;\n cgallery.get(0).currNr_2 = ind;\n //console.log(cgallery,currNr)\n }\n //console.log('mode_showall_listen_for_play()',currNr,this, cgallery.get(0).currNr_2);\n }\n\n function handle_frame() {\n\n // -- cgallery\n\n if (isNaN(target_viy)) {\n target_viy = 0;\n }\n\n if (duration_viy === 0) {\n requestAnimFrame(handle_frame);\n return false;\n }\n\n begin_viy = target_viy;\n change_viy = selfGallery.navClass.finish_viy - begin_viy;\n\n\n //console.log('handle_frame', finish_viy, duration_viy, target_viy);\n\n //console.log(duration_viy);\n\n\n target_viy = Number(Math.easeIn(1, begin_viy, change_viy, duration_viy).toFixed(4));\n ;\n\n\n if (dzsapHelpers.is_ios() == false && dzsapHelpers.is_android() == false) {\n _navClipper.css({\n 'transform': 'translateY(' + target_viy + 'px)'\n });\n }\n\n\n //console.log(_blackOverlay,target_bo);;\n\n requestAnimFrame(handle_frame);\n }\n\n\n function toggle_menu_state() {\n\n selfGallery.navClass.toggle_menu_state();\n }\n\n function gallery_handle_end() {\n\n if (o.autoplayNext == 'on') {\n\n goto_next();\n }\n }\n\n function player_commentSubmitted() {\n _navClipper.children('.menu-item').eq(currNr).find('.download-after-rate').addClass('active');\n\n }\n\n function player_rateSubmitted() {\n _navClipper.children('.menu-item').eq(currNr).find('.download-after-rate').addClass('active');\n }\n\n function calculateDims() {\n // console.log('calculateDims');\n\n\n // console.log('_sliderClipper.hasClass(\\'isotoped\\') - ',_sliderClipper.hasClass('isotoped'));\n if (o.settings_mode != 'mode-showall' && _sliderClipper.hasClass('isotoped') == false && o.mode_normal_video_mode != 'one') {\n // -- mode normal, not isotope\n if (_sliderClipper.children().eq(currNr).hasClass('zoomsounds-wrapper-bg-bellow') == false) {\n _sliderClipper.css('height', _sliderClipper.children().eq(currNr).outerHeight());\n\n }\n }\n\n if (_sliderClipper.hasClass('isotoped') == false) {\n // -- not isotope\n setTimeout(function () {\n _sliderClipper.css('height', 'auto');\n }, ConstantsDzsAp.PLAYLIST_TRANSITION_DURATION);\n }\n\n // _navMain.show();\n\n // return;\n\n\n selfGallery.navClass.calculateDims();\n\n if (o.embedded == 'on') {\n //console.log(window.frameElement)\n if (window.frameElement) {\n window.frameElement.height = cgallery.height();\n //console.log(window.frameElement.height, cgallery.outerHeight())\n }\n }\n }\n\n\n function calculate_on_interval() {\n // -- @called on setInterval\n\n selfGallery.navClass.calculateDims();\n\n // -- this is for player ? todo ...\n if (0 && o.gallery_gapless_play == 'on') {\n var args = {\n 'call_from': 'gapless_play'\n }\n\n if (o.parentgallery && cthis.hasClass('active-from-gallery')) {\n var _c = o.parentgallery;\n // console.log(_c);\n // console.log(_c.data('currNr'));\n\n\n var _cach = _sliderClipper.children().eq(Number(_c.data('currNr')) + 1);\n\n\n if (!(_cach.data('gapless-inited') == true)) {\n\n var args = {\n preload_method: \"auto\"\n , \"autoplay\": \"off\"\n , \"call_from\": \"gapless_play\"\n }\n\n\n _c.get(0).api_init_player_from_gallery(_cach, args);\n\n _cach.data('gapless-inited', true);\n\n setTimeout(function () {\n _cach.get(0).api_handleResize();\n }, 1000)\n }\n }\n }\n\n\n // console.log('nm_maindim - ' ,nc_maindim);\n }\n\n\n function handleResize() {\n\n if (o.settings_mode !== 'mode-showall' && _sliderClipper.hasClass('isotoped') === false) {\n setTimeout(function () {\n //console.log(_sliderClipper.children().eq(currNr), _sliderClipper.children().eq(currNr).height())\n _sliderClipper.css('height', _sliderClipper.children().eq(currNr).outerHeight());\n }, 500);\n }\n\n calculateDims();\n\n }\n\n function transition_end(newCurrNr) {\n _sliderClipper.children().eq(lastCurrNr).removeClass('transitioning-out');\n\n _sliderClipper.children().eq(newCurrNr).removeClass('transitioning-in');\n lastCurrNr = currNr;\n busy = false;\n }\n\n function transition_bg_end() {\n cgallery.parent().children('.the-bg').eq(0).remove();\n busy = false;\n }\n\n function goto_prev() {\n tempNr = currNr;\n tempNr--;\n\n var sw_goto_item = true;\n\n\n if (tempNr < 0) {\n tempNr = _sliderClipper.children().length - 1;\n\n if (o.loop_playlist == 'off') {\n sw_goto_item = false;\n }\n }\n\n if (sw_goto_item) {\n\n goto_item(tempNr);\n }\n }\n\n function goto_next() {\n // console.warn('ag','goto_next()', currNr,cgallery.get(0).currNr_2);\n tempNr = currNr;\n\n\n var sw_goto_item = true;\n\n if (o.settings_mode == 'mode-showall') {\n tempNr = cgallery.get(0).currNr_2;\n }\n tempNr++;\n if (tempNr >= _sliderClipper.children().length) {\n tempNr = 0;\n\n if (o.loop_playlist == 'off') {\n sw_goto_item = false;\n }\n }\n\n\n if (sw_goto_item) {\n\n goto_item(tempNr);\n }\n }\n\n function goto_item(newCurrNr, pargs) {\n\n\n var margs = {\n\n 'ignore_arg_currNr_check': false\n , 'ignore_linking': false // -- does not change the link if set to true\n , donotopenlink: \"off\"\n , called_from: \"default\"\n }\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n // console.log('goto_item()', arg, busy);\n\n if (busy == true) {\n return;\n }\n\n if (newCurrNr == \"last\") {\n newCurrNr = _sliderClipper.children().length - 1;\n }\n\n // console.log('goto_item()', currNr, newCurrNr, '(currNr == newCurrNr)', currNr == newCurrNr, busy, newCurrNr==\"last\");\n\n\n if (!!(currNr == newCurrNr)) {\n\n if (_sliderClipper && _sliderClipper.children().eq(currNr).get(0) && _sliderClipper.children().eq(currNr).get(0).api_play_media) {\n _sliderClipper.children().eq(currNr).get(0).api_play_media({\n 'call_from': 'gallery'\n });\n }\n return;\n }\n\n var _audioplayerToBeActive = _sliderClipper.children('.audioplayer,.audioplayer-tobe').eq(newCurrNr);\n\n // console.warn('_audioplayerToBeActive - ', _audioplayerToBeActive);\n // console.warn('currNr - ', currNr);\n var currNr_last_vol = '';\n\n if (currNr > -1) {\n if (typeof (_sliderClipper.children().eq(currNr).get(0)) != 'undefined') {\n if (typeof (_sliderClipper.children().eq(currNr).get(0).api_pause_media) != 'undefined') {\n _sliderClipper.children().eq(currNr).get(0).api_pause_media();\n }\n if (typeof (_sliderClipper.children().eq(currNr).get(0).api_get_last_vol) != 'undefined') {\n currNr_last_vol = _sliderClipper.children().eq(currNr).get(0).api_get_last_vol();\n }\n\n }\n\n\n _navClipper.children().removeClass('active active-from-gallery');\n\n\n if (o.mode_normal_video_mode == 'one') {\n\n } else {\n\n if (o.settings_mode != 'mode-showall') {\n\n\n //console.log(o.playlistTransition);\n _sliderClipper.children().eq(currNr).removeClass('active active-from-gallery');\n _navClipper.children().eq(currNr).removeClass('active active-from-gallery');\n\n\n }\n }\n\n }\n\n\n // -- setting settings\n if (o.settings_ap.design_skin === 'sameasgallery') {\n o.settings_ap.design_skin = o.design_skin;\n }\n\n // console.log('o.settings_ap HERE IT IS 2 - ',$.extend({}, o.settings_ap), currNr);\n\n\n // console.log('%c o.autoplay from gallery - ','background-color: #dadada;',o.autoplay);\n\n // -- if this is the first audio\n if (currNr == -1 && o.autoplay == 'on') {\n o.settings_ap.autoplay = 'on';\n }\n // console.log('o.settings_ap HERE IT IS 24 - ',$.extend({}, o.settings_ap));\n\n // -- if this is not the first audio\n if (currNr > -1 && o.autoplayNext == 'on') {\n o.settings_ap.autoplay = 'on';\n }\n o.settings_ap.parentgallery = cgallery;\n\n o.settings_ap.design_menu_show_player_state_button = o.design_menu_show_player_state_button;\n o.settings_ap.cue = 'on';\n if (first == true) {\n if (o.cueFirstMedia == 'off') {\n o.settings_ap.cue = 'off';\n }\n\n first = false;\n }\n\n // -- setting settings END\n\n\n var args_player = $.extend({}, o.settings_ap);\n\n // console.log('o.settings_ap HERE IT IS 3 - ',$.extend({}, o.settings_ap));\n\n args_player.volume_from_gallery = currNr_last_vol;\n args_player.call_from = 'gotoItem';\n args_player.player_navigation = o.player_navigation;\n\n // console.log('lets init player here', arg);\n if (o.mode_normal_video_mode == 'one' && newCurrNr > -1 && margs.called_from != 'init') {\n // -- video mode -> one\n\n\n // console.error('lets init player here', arg);\n\n var _c = _sliderClipper.children().eq(0).get(0);\n _audioplayerToBeActive = _sliderClipper.children().eq(0);\n\n if (_c) {\n if (_c.api_play_media) {\n\n // console.log('_sliderClipper.children().eq(arg) -5 ',_sliderClipper.children().eq(arg));\n _c.api_change_media(_sliderClipper.children().eq(newCurrNr), {\n 'called_from': 'goto_item -- mode_normal_video_mode()',\n 'modeOneGalleryIndex': newCurrNr,\n 'source_player_do_not_update': 'on',\n // ,'fakeplayer_is_feeder':'on'\n });\n\n if (o.autoplayNext == 'on') {\n setTimeout(function () {\n _c.api_play_media();\n }, 200);\n }\n }\n }\n } else {\n\n // -- init player from gallery\n init_player_from_gallery(_audioplayerToBeActive, args_player);\n\n }\n\n\n // -- actions after init\n if (o.autoplayNext === 'on') {\n if (o.settings_mode === 'mode-showall') {\n currNr = cgallery.get(0).currNr_2;\n }\n if (!!(currNr > -1 && _audioplayerToBeActive.get(0) && _audioplayerToBeActive.get(0).api_play)) {\n _audioplayerToBeActive.get(0).api_play();\n }\n }\n\n if (o.settings_ap.playfrom === undefined || o.settings_ap.playfrom === \"0\") {\n if (_audioplayerToBeActive.get(0) && _audioplayerToBeActive.get(0).api_seek_to) {\n _audioplayerToBeActive.get(0).api_seek_to(0, {call_from: 'playlist_seek_from_0'});\n } else {\n console.log('_audioplayerToBeActive not found - ', _audioplayerToBeActive);\n }\n }\n\n // console.log('o.settings_ap - ', o.settings_ap);\n // -- end actions after init\n\n dzsap_currplayer_focused = _audioplayerToBeActive.get(0);\n\n\n if (o.settings_mode !== 'mode-showall') {\n _sliderClipper.children().eq(currNr).addClass('transitioning-out');\n _audioplayerToBeActive.removeClass('transitioning-out-complete');\n _audioplayerToBeActive.addClass('transitioning-in');\n setTimeout((_arg) => {\n _arg.addClass('transitioning-out-complete')\n }, ConstantsDzsAp.PLAYLIST_TRANSITION_DURATION, _sliderClipper.children().eq(currNr));\n\n if (_audioplayerToBeActive.attr('data-type') != 'link') {\n if (margs.ignore_linking == false && o.settings_enable_linking == 'on') {\n var stateObj = {foo: \"bar\"};\n history.pushState(stateObj, null, dzsapHelpers.add_query_arg(window.location.href, 'audiogallery_startitem_' + cid, (newCurrNr)));\n }\n }\n\n if (o.playlistTransition === 'fade') {\n setTimeout(transition_end, ConstantsDzsAp.PLAYLIST_TRANSITION_DURATION, newCurrNr);\n busy = true;\n }\n if (o.playlistTransition === 'direct') {\n transition_end(newCurrNr);\n }\n }\n\n _audioplayerToBeActive.addClass('active active-from-gallery');\n _navClipper.children().eq(newCurrNr).addClass('active active-from-gallery');\n\n // -- background parent\n\n // console.log('_audioplayerToBeActive - ',_audioplayerToBeActive);\n\n\n var bgimage = '';\n\n if (_audioplayerToBeActive.attr(\"data-bgimage\")) {\n bgimage = _audioplayerToBeActive.attr(\"data-bgimage\");\n }\n\n if (_audioplayerToBeActive.attr(\"data-wrapper-image\")) {\n bgimage = _audioplayerToBeActive.attr(\"data-wrapper-image\");\n }\n\n\n if (bgimage && cgallery.parent().hasClass('ap-wrapper') && cgallery.parent().children('.the-bg').length > 0) {\n\n // console.warn(\"ENTER HIER\");\n cgallery.parent().children('.the-bg').eq(0).after('<div class=\"the-bg\" style=\"background-image: url(' + bgimage + ');\"></div>')\n cgallery.parent().children('.the-bg').eq(0).css({\n 'opacity': 1\n })\n\n\n cgallery.parent().children('.the-bg').eq(1).css({\n 'opacity': 0\n })\n cgallery.parent().children('.the-bg').eq(1).animate({\n 'opacity': 1\n }, {\n queue: false,\n duration: 1000,\n complete: transition_bg_end,\n step: function () {\n busy = true;\n }\n })\n busy = true;\n }\n\n\n //console.log('set currNr', currNr, o.settings_mode);\n\n if (o.settings_mode != 'mode-showall') {\n\n currNr = newCurrNr;\n\n cgallery.data('currNr', currNr);\n }\n\n\n //console.log('_sliderClipper.children().eq(currNr) - ',_sliderClipper.children().eq(currNr));\n if (_sliderClipper.children().eq(currNr).get(0) && _sliderClipper.children().eq(currNr).get(0).api_handleResize && _sliderClipper.children().eq(currNr).hasClass('media-setuped')) {\n\n\n //console.log('_sliderClipper.children().eq(currNr) - ',_sliderClipper.children().eq(currNr));\n _sliderClipper.children().eq(currNr).get(0).api_handleResize();\n }\n\n calculateDims();\n }\n\n function init_player_from_gallery(_cache, pargs) {\n\n var player_args = $.extend({}, o.settings_ap);\n\n\n if (pargs) {\n player_args = $.extend(player_args, pargs);\n }\n\n // console.log('init_player_from_gallery',margs_player);\n // console.log('currNr_last_vol', currNr_last_vol);\n\n if (_cache.hasClass('audioplayer-tobe')) {\n o.settings_ap.call_from = 'init player from gallery';\n // console.log('player_args - ', player_args);\n _cache.audioplayer(player_args);\n }\n }\n }\n}\n\nexport const registerToJquery = function ($) {\n $.fn.audiogallery = function (argOptions) {\n var finalOptions = {};\n var defaultOptions = require('../configs/_settingsPlaylist').default_opts;\n finalOptions = dzsapHelpers.convertPluginOptionsToFinalOptions(this, defaultOptions, argOptions);\n\n\n this.each(function () {\n\n var _ag = new DzsApPlaylist(this, finalOptions, $);\n\n // console.log('this playlist -2 ', this);\n this.linkedClassInstance = _ag;\n });\n }\n\n\n window.dzsag_init = function (selector, settings) {\n if (typeof (settings) !== \"undefined\" && typeof (settings.init_each) !== \"undefined\" && settings.init_each === true) {\n if (Object.keys(settings).length === 1) {\n settings = undefined;\n }\n\n $(selector).each(function () {\n var _t = $(this);\n _t.audiogallery(settings)\n });\n } else {\n $(selector).audiogallery(settings);\n }\n }\n}\n","\n\n\nvar playbtn_svg = '<svg class=\"svg-icon\" version=\"1.2\" baseProfile=\"tiny\" id=\"Layer_1\" xmlns=\"https://www.w3.org/2000/svg\" xmlns:xlink=\"https://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"25px\" height=\"30px\" viewBox=\"0 0 25 30\" xml:space=\"preserve\"> <path d=\"M24.156,13.195L2.406,0.25C2.141,0.094,1.867,0,1.555,0C0.703,0,0.008,0.703,0.008,1.562H0v26.875h0.008 C0.008,29.297,0.703,30,1.555,30c0.32,0,0.586-0.109,0.875-0.266l21.727-12.93C24.672,16.375,25,15.727,25,15 S24.672,13.633,24.156,13.195z\"/> </svg>';\nvar pausebtn_svg = '<svg class=\"svg-icon\" version=\"1.1\" id=\"Layer_3\" xmlns=\"https://www.w3.org/2000/svg\" xmlns:xlink=\"https://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"12px\" height=\"13px\" viewBox=\"0 0 13.415 16.333\" enable-background=\"new 0 0 13.415 16.333\" xml:space=\"preserve\"> <path fill=\"#D2D6DB\" d=\"M4.868,14.59c0,0.549-0.591,0.997-1.322,0.997H2.2c-0.731,0-1.322-0.448-1.322-0.997V1.618 c0-0.55,0.592-0.997,1.322-0.997h1.346c0.731,0,1.322,0.447,1.322,0.997V14.59z\"/> <path fill=\"#D2D6DB\" d=\"M12.118,14.59c0,0.549-0.593,0.997-1.324,0.997H9.448c-0.729,0-1.322-0.448-1.322-0.997V1.619 c0-0.55,0.593-0.997,1.322-0.997h1.346c0.731,0,1.324,0.447,1.324,0.997V14.59z\"/> </svg>';\n\n\n\n\n\nvar svg_share_icon = '<svg class=\"svg-icon\" xmlns=\"https://www.w3.org/2000/svg\" xmlns:xlink=\"https://www.w3.org/1999/xlink\" version=\"1.1\" id=\"Capa_1\" x=\"0px\" y=\"0px\" width=\"512px\" height=\"512px\" viewBox=\"0 0 511.626 511.627\" style=\"enable-background:new 0 0 511.626 511.627;\" xml:space=\"preserve\"> <g> <path d=\"M506.206,179.012L360.025,32.834c-3.617-3.617-7.898-5.426-12.847-5.426s-9.233,1.809-12.847,5.426 c-3.617,3.619-5.428,7.902-5.428,12.85v73.089h-63.953c-135.716,0-218.984,38.354-249.823,115.06C5.042,259.335,0,291.03,0,328.907 c0,31.594,12.087,74.514,36.259,128.762c0.57,1.335,1.566,3.614,2.996,6.849c1.429,3.233,2.712,6.088,3.854,8.565 c1.146,2.471,2.384,4.565,3.715,6.276c2.282,3.237,4.948,4.859,7.994,4.859c2.855,0,5.092-0.951,6.711-2.854 c1.615-1.902,2.424-4.284,2.424-7.132c0-1.718-0.238-4.236-0.715-7.569c-0.476-3.333-0.715-5.564-0.715-6.708 c-0.953-12.938-1.429-24.653-1.429-35.114c0-19.223,1.668-36.449,4.996-51.675c3.333-15.229,7.948-28.407,13.85-39.543 c5.901-11.14,13.512-20.745,22.841-28.835c9.325-8.09,19.364-14.702,30.118-19.842c10.756-5.141,23.413-9.186,37.974-12.135 c14.56-2.95,29.215-4.997,43.968-6.14s31.455-1.711,50.109-1.711h63.953v73.091c0,4.948,1.807,9.232,5.421,12.847 c3.62,3.613,7.901,5.424,12.847,5.424c4.948,0,9.232-1.811,12.854-5.424l146.178-146.183c3.617-3.617,5.424-7.898,5.424-12.847 C511.626,186.92,509.82,182.636,506.206,179.012z\" fill=\"#696969\"/> </g></svg> ';\n\n\n\nvar svg_embed_button = ' <svg class=\"svg-icon\" version=\"1.1\" id=\"Layer_1\" xmlns=\"https://www.w3.org/2000/svg\" xmlns:xlink=\"https://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"10.975px\" height=\"14.479px\" viewBox=\"0 0 10.975 14.479\" enable-background=\"new 0 0 10.975 14.479\" xml:space=\"preserve\"> <g> <path d=\"M2.579,1.907c0.524-0.524,1.375-0.524,1.899,0l4.803,4.804c0.236-0.895,0.015-1.886-0.687-2.587L5.428,0.959 c-1.049-1.05-2.75-1.05-3.799,0L0.917,1.671c-1.049,1.05-1.049,2.751,0,3.801l3.167,3.166c0.7,0.702,1.691,0.922,2.587,0.686 L1.867,4.52c-0.524-0.524-0.524-1.376,0-1.899L2.579,1.907z M5.498,13.553c1.05,1.05,2.75,1.05,3.801,0l0.712-0.713 c1.05-1.05,1.05-2.75,0-3.8L6.843,5.876c-0.701-0.7-1.691-0.922-2.586-0.686l4.802,4.803c0.524,0.525,0.524,1.376,0,1.897 l-0.713,0.715c-0.523,0.522-1.375,0.522-1.898,0L1.646,7.802c-0.237,0.895-0.014,1.886,0.686,2.586L5.498,13.553z\"/> </g> </svg> ';\n\n\n\nvar svg_prev_btn = '<svg class=\"svg-icon\" version=\"1.1\" id=\"Layer_2\" xmlns=\"https://www.w3.org/2000/svg\" xmlns:xlink=\"https://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"14px\" height=\"14px\" viewBox=\"0 0 12.5 12.817\" enable-background=\"new 0 0 12.5 12.817\" xml:space=\"preserve\"> <g> <g> <g> <path fill=\"#D2D6DB\" d=\"M2.581,7.375c-0.744-0.462-1.413-0.94-1.486-1.061C1.021,6.194,1.867,5.586,2.632,5.158l2.35-1.313 c0.765-0.427,1.505-0.782,1.646-0.789s0.257,1.03,0.257,1.905V7.87c0,0.876-0.051,1.692-0.112,1.817 C6.711,9.81,5.776,9.361,5.032,8.898L2.581,7.375z\"/> </g> </g> </g> <g> <g> <g> <path fill=\"#D2D6DB\" d=\"M6.307,7.57C5.413,7.014,4.61,6.441,4.521,6.295C4.432,6.15,5.447,5.42,6.366,4.906l2.82-1.577 c0.919-0.513,1.809-0.939,1.979-0.947s0.309,1.236,0.309,2.288v3.493c0,1.053-0.061,2.033-0.135,2.182S10.144,9.955,9.25,9.4 L6.307,7.57z\"/> </g> </g> </g> </svg>';\nvar svg_next_btn = '<svg class=\"svg-icon\" version=\"1.1\" id=\"Layer_2\" xmlns=\"https://www.w3.org/2000/svg\" xmlns:xlink=\"https://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"14px\" height=\"14px\" viewBox=\"0 0 12.5 12.817\" enable-background=\"new 0 0 12.5 12.817\" xml:space=\"preserve\"> <g> <g> <g> <path fill=\"#D2D6DB\" d=\"M9.874,5.443c0.744,0.462,1.414,0.939,1.486,1.06c0.074,0.121-0.771,0.729-1.535,1.156L7.482,8.967 C6.719,9.394,5.978,9.75,5.837,9.756C5.696,9.761,5.581,8.726,5.581,7.851V4.952c0-0.875,0.05-1.693,0.112-1.816 c0.062-0.124,0.995,0.326,1.739,0.788L9.874,5.443z\"/> </g> </g> </g> <g> <g> <g> <path fill=\"#D2D6DB\" d=\"M6.155,5.248c0.893,0.556,1.696,1.129,1.786,1.274c0.088,0.145-0.928,0.875-1.847,1.389l-2.811,1.57 c-0.918,0.514-1.808,0.939-1.978,0.947c-0.169,0.008-0.308-1.234-0.308-2.287V4.66c0-1.052,0.061-2.034,0.135-2.182 s1.195,0.391,2.089,0.947L6.155,5.248z\"/> </g> </g> </g> </svg>';\n\n\n\n\n\nvar svg_menu_state = '<svg class=\"svg-icon\" version=\"1.1\" id=\"Layer_2\" xmlns=\"https://www.w3.org/2000/svg\" xmlns:xlink=\"https://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"13.25px\" height=\"13.915px\" viewBox=\"0 0 13.25 13.915\" enable-background=\"new 0 0 13.25 13.915\" xml:space=\"preserve\"> <path d=\"M1.327,4.346c-0.058,0-0.104-0.052-0.104-0.115V2.222c0-0.063,0.046-0.115,0.104-0.115H11.58 c0.059,0,0.105,0.052,0.105,0.115v2.009c0,0.063-0.046,0.115-0.105,0.115H1.327z\"/> <path d=\"M1.351,8.177c-0.058,0-0.104-0.051-0.104-0.115V6.054c0-0.064,0.046-0.115,0.104-0.115h10.252 c0.058,0,0.105,0.051,0.105,0.115v2.009c0,0.063-0.047,0.115-0.105,0.115H1.351z\"/> <path d=\"M1.351,12.182c-0.058,0-0.104-0.05-0.104-0.115v-2.009c0-0.064,0.046-0.115,0.104-0.115h10.252 c0.058,0,0.105,0.051,0.105,0.115v2.009c0,0.064-0.047,0.115-0.105,0.115H1.351z\"/> </svg>';\nvar svg_embed_btn = '<svg class=\"svg-icon\" version=\"1.2\" baseProfile=\"tiny\" xmlns=\"https://www.w3.org/2000/svg\" xmlns:xlink=\"https://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"15px\" height=\"15px\" viewBox=\"0 0 15 15\" xml:space=\"preserve\"> <g id=\"Layer_1\"> <polygon fill=\"#E6E7E8\" points=\"1.221,7.067 0.494,5.422 4.963,1.12 5.69,2.767 \"/> <polygon fill=\"#E6E7E8\" points=\"0.5,5.358 1.657,4.263 3.944,10.578 2.787,11.676 \"/> <polygon fill=\"#E6E7E8\" points=\"13.588,9.597 14.887,8.34 12.268,2.672 10.969,3.93 \"/> <polygon fill=\"#E6E7E8\" points=\"14.903,8.278 14.22,6.829 9.714,11.837 10.397,13.287 \"/> </g> <g id=\"Layer_2\"> <rect x=\"6.416\" y=\"1.713\" transform=\"matrix(0.9663 0.2575 -0.2575 0.9663 2.1699 -1.6329)\" fill=\"#E6E7E8\" width=\"1.805\" height=\"11.509\"/> </g> </svg>';\n\n\nvar svg_footer_playlist = '<svg class=\"svg-icon\" version=\"1.1\" id=\"Layer_2\" xmlns=\"https://www.w3.org/2000/svg\" xmlns:xlink=\"https://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"13.25px\" height=\"13.915px\" viewBox=\"0 0 13.25 13.915\" enable-background=\"new 0 0 13.25 13.915\" xml:space=\"preserve\"> <path d=\"M1.327,4.346c-0.058,0-0.104-0.052-0.104-0.115V2.222c0-0.063,0.046-0.115,0.104-0.115H11.58 c0.059,0,0.105,0.052,0.105,0.115v2.009c0,0.063-0.046,0.115-0.105,0.115H1.327z\"/> <path d=\"M1.351,8.177c-0.058,0-0.104-0.051-0.104-0.115V6.054c0-0.064,0.046-0.115,0.104-0.115h10.252 c0.058,0,0.105,0.051,0.105,0.115v2.009c0,0.063-0.047,0.115-0.105,0.115H1.351z\"/> <path d=\"M1.351,12.182c-0.058,0-0.104-0.05-0.104-0.115v-2.009c0-0.064,0.046-0.115,0.104-0.115h10.252 c0.058,0,0.105,0.051,0.105,0.115v2.009c0,0.064-0.047,0.115-0.105,0.115H1.351z\"/> </svg>';\n\n\nexports.svg_footer_playlist = svg_footer_playlist;\nexports.svg_embed_btn = svg_embed_btn;\nexports.svg_prev_btn = svg_prev_btn;\nexports.svg_next_btn = svg_next_btn;\nexports.svg_menu_state = svg_menu_state;\n\nexports.svg_embed_button = svg_embed_button;\nexports.playbtn_svg = playbtn_svg;\nexports.svg_share_icon = svg_share_icon;\nexports.pausebtn_svg = pausebtn_svg;\n","const dzsapAjax = require('../_dzsap_ajax');\nconst dzsCommons = require('../../js_common/_dzs_helpers');\nimport * as dzsapHelpers from '../_dzsap_helpers';\n\nconst TOOLTIP_ALL_TALIGN_CLASSES = `talign-start talign-center talign-end`;\nconst STRUCTURE_COMMENTS_WRITER = `<div class=\"dzstooltip dzstooltip--comments-writer talign-center arrow-top style-rounded color-dark-light dims-set transition-slidedown \" style=\"width: 330px;\"> <div class=\"dzstooltip--inner\"><div class=\"comments-writer\"><div class=\"comments-writer-inner\">\n<div class=\"comments-writer--form\">\n\n <div class=\"dzsap-comments--section\">\n\n <textarea name=\"comment-text\" placeholder=\"Your comment..\" type=\"text\" class=\"comment-input\"></textarea>\n\n </div>\n <div class=\"dzsap-comments--section\">\n <input placeholder=\"Your email..\" name=\"comment-email\" type=\"text\" class=\"comment-input\">\n </div>\n <div class=\"dzsap-comments--section overflow-and-fixed \">\n\n <div class=\"flex-grow-1 \"><span\n class=\"dzsap-comments--comment-form-label\">commenting on </span> <span\n class=\"dzsap-comments--comment-form-label-time\">1:07</span></div>\n <div class=\"flex-grow-0 margin-left-auto\"><button class=\"submit-ap-comment dzs-button-dzsap float-right\">➤ Submit</button></div>\n <div class=\"clear\"></div>\n\n </div>\n </div>\n\n <div class=\"comments-writer--avatar-con\">\n <div class=\"comments-writer--avatar\" style=\"\"></div>\n </div>\n </div></div><span class=\"dzstooltip--close\"><span\n class=\"label--x-button\">✖</span></span></div></div>`;\n\n\nexport const hide_comments_writer = function (selfClass) {\n\n\n var $ = jQuery;\n\n //console.log(selfClass.$commentsWritter);\n selfClass.cthis.removeClass('comments-writer-active');\n selfClass._commentsHolder.find('.dzstooltip-con.placeholder').remove();\n selfClass.$commentsWritter.removeClass('active');\n selfClass.$commentsWritter.css({\n 'height': 0\n })\n\n\n if (selfClass.initOptions.parentgallery && $(selfClass.initOptions.parentgallery).get(0) !== undefined && $(selfClass.initOptions.parentgallery).get(0).api_handleResize !== undefined) {\n $(selfClass.initOptions.parentgallery).get(0).api_handleResize();\n }\n\n setTimeout(function () {\n\n selfClass.cthis.find('.comments-writter-temp-css,.dzsap-style-comments').remove();\n }, 300);\n};\n\nexport const comments_setupCommentsInitial = function (selfClass) {\n // console.log('comments_setupCommentsInitial()');\n\n var $ = jQuery;\n var o = selfClass.initOptions;\n\n\n if (selfClass.cthis.find('.the-comments').length > 0 && selfClass.cthis.find('.the-comments').eq(0).children().length > 0) {\n selfClass.$commentsChildren = selfClass.cthis.find('.the-comments').eq(0).children();\n }\n\n var str_comments_holder = '<div class=\"comments-holder\">';\n\n\n if (o.skinwave_comments_links_to) {\n\n str_comments_holder += '<a href=\"' + o.skinwave_comments_links_to + '\" target=\"_blank\" class=\"the-bg\"></a>';\n } else {\n\n str_comments_holder += '<div class=\"the-comments-holder-bg\"><div class=\"the-avatar comments-avatar--placeholder\"></div></div>';\n }\n\n\n str_comments_holder += '</div><div class=\"clear\"></div>' + STRUCTURE_COMMENTS_WRITER;\n\n\n // debugger;\n // if (selfClass.skinwave_mode === 'normal') {\n // selfClass._apControls.appendOnce(str_comments_holder);\n // } else {\n // selfClass.cthis.appendOnce(str_comments_holder);\n // }\n selfClass._scrubbar.appendOnce(str_comments_holder);\n selfClass._commentsHolder = selfClass.cthis.find('.comments-holder').eq(0);\n selfClass.$commentsWritter = selfClass.cthis.find('.dzstooltip--comments-writer').eq(0);\n\n\n var self = this;\n this.comments_setupCommentsHolder(selfClass, {call_from: 'default'});\n\n // console.log('selfClass._commentsHolder -> ',selfClass._commentsHolder);\n // selfClass._commentsHolder.on('click', '.the-comments-holder-bg', click_comments_bg);\n\n\n selfClass._commentsHolder.on('click', function (e) {\n self.comments_handleClickCommentsBg(selfClass, this, e);\n });\n selfClass._commentsHolder.on('mousemove', function (e) {\n ;\n\n selfClass._commentsHolder.find('.comments-avatar--placeholder').css('left', `${dzsCommons.getRelativeX(e.pageX, e.currentTarget) - 7}px`)\n\n });\n selfClass.$commentsWritter.find('.dzstooltip--close').bind('click', (e) => {\n self.comments_handleClickCancel(selfClass, e);\n });\n selfClass.$commentsWritter.find('.submit-ap-comment').bind('click', (e) => {\n self.comments_handleClickSubmit(selfClass, e);\n });\n}\nexport const comments_setupCommentsHolder = function (selfClass) {\n\n // console.log('setup_controlsselfClass._commentsHolder() - arguments - ',arguments);\n\n var $ = jQuery;\n var o = selfClass.initOptions;\n\n if (selfClass._commentsHolder && selfClass.$commentsChildren) {\n\n // console.log(' _commentsChildren - ',_commentsChildren, selfClass.cthis);\n selfClass.$commentsChildren.each(function () {\n\n var _c = $(this);\n\n\n if (o.skinwave_comments_process_in_php === 'on') {\n\n if (_c && _c.hasClass && _c.hasClass('dzstooltip-con')) {\n if (_c.find('.dzstooltip > .dzstooltip--inner').length) {\n\n } else {\n // -- convert\n\n\n // console.error(\"CONVERT\");\n _c.find('.dzstooltip').wrapInner('<div class=\"dzstooltip--inner\"></div>');\n\n\n _c.find('.the-avatar').addClass('tooltip-indicator');\n _c.find('.dzstooltip').before(_c.find('.tooltip-indicator'));\n _c.find('.dzstooltip').addClass('talign-start style-rounded color-dark-light');\n }\n }\n }\n\n selfClass._commentsHolder.append(_c);\n })\n }\n\n}\n\nfunction comments_updateCommentHolderTimerWhenReady(selfClass, percClickFromScrubWidth) {\n\n\n if (selfClass.timeModel.getVisualTotalTime()) {\n\n selfClass.$commentsWritter.find('.dzsap-comments--comment-form-label-time').html(dzsapHelpers.formatTime(percClickFromScrubWidth * selfClass.timeModel.getVisualTotalTime()));\n } else {\n setTimeout(() => {\n comments_updateCommentHolderTimerWhenReady(selfClass, percClickFromScrubWidth);\n }, 100);\n }\n\n}\n\nexport const comments_handleClickCommentsBg = function (selfClass, argThis, e) {\n\n\n var $ = jQuery;\n var o = selfClass.initOptions;\n\n var $commentsHolder = $(argThis);\n // console.log('click_comments_bg() --- ', $commentsHolder);\n var leftMouseX = parseInt(e.clientX, 10) - $commentsHolder.offset().left;\n let percClickFromScrubWidth = leftMouseX / $commentsHolder.width();\n\n\n selfClass.commentPositionPerc = `calc(${(percClickFromScrubWidth) * 100}% - 7px)`;\n\n\n comments_updateCommentHolderTimerWhenReady(selfClass, percClickFromScrubWidth);\n // debugger;\n if (o.skinwave_comments_links_to) {\n return;\n }\n if (o.skinwave_comments_allow_post_if_not_logged_in === 'off' && !(window.dzsap_settings && window.dzsap_settings.comments_username)) {\n return false;\n }\n\n // -- start\n\n var sw = true;\n\n // console.log({leftMouseX});\n\n selfClass._commentsHolder.children().each(function () {\n var $commentElement = $(this);\n //console.log(_t2);\n\n if ($commentElement.hasClass('placeholder') || $commentElement.hasClass('the-bg')) {\n return;\n }\n\n var lmx2 = $commentElement.offset().left - $commentsHolder.offset().left;\n\n //console.log(lmx2, Math.abs(lmx2-lmx));\n\n if (Math.abs(lmx2 - leftMouseX) < 20) {\n selfClass._commentsHolder.find('.dzstooltip-con.placeholder').remove();\n sw = false;\n\n return false;\n }\n })\n\n\n if (!sw) {\n return false;\n }\n\n\n // todo: assign left on tooltip\n selfClass.$commentsWritter.css({\n 'left': `${leftMouseX}px`\n })\n\n\n selfClass.$commentsWritter.css('top', ((parseInt(selfClass._commentsHolder.css('top'), 10) + 20) + 'px'))\n\n\n if (selfClass.$commentsWritter.hasClass('active') === false) {\n selfClass.$commentsWritter.addClass('active');\n selfClass.cthis.addClass('comments-writer-active');\n }\n\n\n if (window.dzsap_settings && window.dzsap_settings.comments_username) {\n selfClass.cthis.find('input[name=comment-email]').remove();\n } else {\n selfClass.$commentsWritter.find('.comments-writer--avatar-con').remove();\n }\n\n\n add_comments_placeholder(selfClass);\n\n\n}\n\nfunction add_comments_placeholder(selfClass) {\n\n var strCommentsAvatarUrl = '';\n\n if(window.dzsap_settings && window.dzsap_settings.comments_avatar){\n strCommentsAvatarUrl = window.dzsap_settings.comments_avatar;\n }\n\n selfClass._commentsHolder.remove('.dzsap-style-comments');\n selfClass._commentsHolder.append('<style class=\"dzsap-style-comments\">.dzstooltip-con:not(.placeholder) { opacity: 0.5; }</style>')\n selfClass._commentsHolder.find('.dzstooltip-con.placeholder').remove();\n selfClass._commentsHolder.append('<span class=\"dzstooltip-con placeholder\" style=\"left:' + selfClass.commentPositionPerc + ';\"><div class=\"the-avatar\" style=\"background-image: url(' + strCommentsAvatarUrl + ')\"></div></span>');\n}\n\nexport const comments_handleClickCancel = function (selfClass, e) {\n this.hide_comments_writer(selfClass);\n}\n\n\nfunction comment_submit(selfClass, comment_text, comment_email, comment_username) {\n\n var $ = jQuery;\n var o = selfClass.initOptions;\n\n var comm_author = '';\n if (comment_email) {\n var regex_mail = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\n if (regex_mail.test(comment_email) == false) {\n alert('please insert email, your email is just used for gravatar. it will not be sent or stored anywhere');\n return false;\n }\n\n comm_author = String(comment_email).split('@')[0];\n //console.log(comm_author);\n\n\n if (selfClass.$commentsSelector) {\n\n selfClass.$commentsSelector.find('*[name=comment_email],*[name=comment_user]').remove();\n }\n\n if(!window.dzsap_settings){\n window.dzsap_settings = {};\n }\n\n window.dzsap_settings.comments_username = comm_author;\n window.dzsap_settings.comments_avatar = 'https://secure.gravatar.com/avatar/' + window.MD5(String(selfClass.cthis.find('input[name=comment-email]').eq(0).val()).toLowerCase()) + '?s=20';\n }\n\n\n // console.log('comment_submit() - ', comment_text, comment_email);\n\n // return false;\n\n\n var aux = '';\n\n\n\n // -- process php\n\n aux += comment_text;\n\n\n selfClass.cthis.find('*[name=comment-text]').eq(0).val('');\n\n\n selfClass.cthis.find('.comments-writter-temp-css,.dzsap-style-comments').remove();\n\n\n (dzsapAjax.ajax_comment_publish.bind(selfClass))(aux);\n\n hide_comments_writer(selfClass);\n\n if (o.parentgallery && $(o.parentgallery).get(0) != undefined && $(o.parentgallery).get(0).api_player_commentSubmitted != undefined) {\n $(o.parentgallery).get(0).api_player_commentSubmitted();\n }\n\n}\n\n\nexport const comments_handleClickSubmit = function (selfClass, e) {\n\n var comment_email = '';\n\n if (selfClass.cthis.find('input[name=comment-email]').length) {\n comment_email = selfClass.cthis.find('input[name=comment-email]').eq(0).val();\n }\n\n\n comment_submit(selfClass, selfClass.cthis.find('*[name=comment-text]').eq(0).val(), comment_email);\n\n\n return false;\n}\n\n\nexport const comments_selector_event = function (selfClass, e) {\n var $ = jQuery;\n var _t = $(this);\n var _con = null;\n\n console.log('_t - ', _t);\n\n if (_t.parent().parent().hasClass('zoomsounds-comment-wrapper')) {\n _con = _t.parent().parent();\n }\n if (_t.parent().parent().parent().hasClass('zoomsounds-comment-wrapper')) {\n _con = _t.parent().parent().parent();\n }\n // console.log(_t, e.type);\n if (e.type == 'focusin') {\n\n // console.log(_t);\n\n\n var spx = selfClass.timeCurrent / selfClass.timeTotal * selfClass._commentsHolder.width();\n spx += 'px';\n // console.log(spx);\n\n\n selfClass.commentPositionPerc = `calc(${selfClass.timeCurrent / selfClass.timeTotal * 100}% - 7px)`;\n\n _con.addClass('active');\n\n this.add_comments_placeholder(selfClass);\n }\n if (e.type == 'focusout') {\n\n\n }\n if (e.type == 'click') {\n\n if (_t.hasClass('dzstooltip--close')) {\n\n _con.removeClass('active');\n _con.find('input').val('');\n }\n if (_t.hasClass('comments-btn-submit')) {\n\n\n var comment_email = '';\n\n if (_con.find('.comment_email').length) {\n comment_email = _con.find('.comment_email').eq(0).val();\n }\n\n\n comment_submit(selfClass, _con.find('.comment_text').eq(0).val(), comment_email);\n\n\n _con.removeClass('active');\n _con.find('input').val('');\n\n\n return false;\n }\n\n\n }\n}\n\n","import * as dzsapHelpers from '../_dzsap_helpers';\nimport * as dzsapAjax from '../_dzsap_ajax';\n\nconst {sanitizeToCssPx} = require(\"../../js_common/_dzs_helpers\");\n\nexport const ZoomSoundsNav = class {\n\n constructor(parentGallery) {\n this.parentGallery = parentGallery;\n\n this.structZoomsoundsNav = '';\n this._navMain = null;\n this._navClipper = null;\n this.cgallery = null;\n\n this.size_navMainClipSize = null;\n this.size_navMainTotalSize = null;\n this.finish_viy = 0;\n\n this.init();\n\n\n }\n\n init() {\n\n var selfGallery = this.parentGallery;\n\n this.structZoomsoundsNav = '<div class=\"nav-main zoomsounds-nav ' + selfGallery.initOptions.design_skin + ' navigation-method-' + selfGallery.initOptions.navigation_method + '\"><div class=\"nav-clipper\"></div></div>';\n\n\n // -- let us do some sanitize\n if (this.parentGallery.initOptions.navigation_method === 'full') {\n this.parentGallery.initOptions.design_menu_height = 'auto';\n }\n\n }\n\n init_ready() {\n // -- this._navMain has been set\n // console.log(this);\n\n const self = this;\n var selfGallery = this.parentGallery;\n\n if (selfGallery.initOptions.disable_menu_navigation == 'on') {\n this._navMain.hide();\n }\n\n if(!isNaN(Number(selfGallery.initOptions.design_menu_height))){\n this._navMain.css({\n 'height': sanitizeToCssPx(selfGallery.initOptions.design_menu_height)\n })\n }\n\n if (dzsapHelpers.is_ios() || dzsapHelpers.is_android()) {\n this._navMain.css({\n 'overflow': 'auto'\n })\n }\n\n\n if (selfGallery.initOptions.design_menu_state == 'closed') {\n this._navMain.css({\n 'height': 0\n })\n this.cgallery.removeClass('menu-opened');\n this.cgallery.addClass('menu-closed');\n } else {\n this.cgallery.addClass('menu-opened');\n this.cgallery.removeClass('menu-closed');\n }\n\n\n this._navClipper.on('click', '.menu-btn-like,.menu-facebook-share', click_menuitem);\n this._navClipper.on('click', '.menu-item', click_menuitem);\n\n\n function click_menuitem(e) {\n var _t = jQuery(this);\n\n if (e.type == 'click') {\n if (_t.hasClass('menu-item')) {\n var ind = _t.parent().children().index(_t);\n\n selfGallery.goto_item(ind);\n }\n if (_t.hasClass('menu-btn-like')) {\n\n\n if (_t.parent().parent().attr('data-playerid')) {\n (dzsapAjax.ajax_submit_like.bind(selfGallery))(1, _t.parent().parent().attr('data-playerid'), {\n refferer: _t\n });\n }\n\n //console.log(_t);\n return false;\n }\n if (_t.hasClass('menu-facebook-share')) {\n if (_t.parent().parent().attr('data-playerid')) {\n (dzsapAjax.ajax_submit_like.bind(selfGallery))(1, _t.parent().parent().attr('data-playerid'), {\n refferer: _t\n });\n }\n\n //console.log(_t);\n return false;\n }\n }\n\n }\n\n\n }\n\n\n get_structZoomsoundsNav() {\n return this.structZoomsoundsNav;\n }\n\n set_elements(_navMain, _navClipper, cgallery) {\n this._navMain = _navMain;\n this._navClipper = _navClipper;\n this.cgallery = cgallery;\n }\n\n calculateDims() {\n\n this.size_navMainClipSize = this._navMain.height();\n this.size_navMainTotalSize = this._navClipper.outerHeight();\n\n const self = this;\n\n if (this.parentGallery.initOptions.navigation_method === 'mouseover') {\n\n // console.log('this.size_navMainTotalSize - ' ,this.size_navMainTotalSize, 'this.size_navMainClipSize - ', this.size_navMainClipSize)\n\n if (this.size_navMainTotalSize > this.size_navMainClipSize && this.size_navMainClipSize > 0) {\n this._navMain.unbind('mousemove', navMain_mousemove);\n this._navMain.bind('mousemove', navMain_mousemove);\n } else {\n this._navMain.unbind('mousemove', navMain_mousemove);\n }\n }\n\n function navMain_mousemove(e) {\n // console.log(this, e);\n var aux_error = 20; //==erroring for the menu scroll\n var $ = jQuery;\n var _t = $(this);\n var mx = e.pageX - _t.offset().left;\n var my = e.pageY - _t.offset().top;\n\n // console.log('navMain_mousemove', nm_maindim, nc_maindim, nm_maindim <= nc_maindim);\n if (self.size_navMainTotalSize <= self.size_navMainClipSize) {\n return;\n }\n\n self.size_navMainClipSize = self._navMain.outerHeight();\n\n //console.log(mx);\n\n var vix = 0;\n var viy = 0;\n\n viy = (my / self.size_navMainClipSize) * -(self.size_navMainTotalSize - self.size_navMainClipSize + 10 + aux_error * 2) + aux_error;\n //console.log(viy);\n if (viy > 0) {\n viy = 0;\n }\n if (viy < -(self.size_navMainTotalSize - self.size_navMainClipSize + 10)) {\n viy = -(self.size_navMainTotalSize - self.size_navMainClipSize + 10);\n }\n\n self.finish_viy = viy;\n\n // console.log(viy, nm_maindim, nc_maindim, (my / nc_maindim))\n\n // console.log('self.parentGallery.initOptions - ' ,self.parentGallery.initOptions);\n if (dzsapHelpers.is_ios() == false && dzsapHelpers.is_android() == false) {\n if (self.parentGallery.initOptions.enable_easing != 'on') {\n // console.log('self._navClipper -', self._navClipper);\n self._navClipper.css({\n 'transform': 'translateY(' + self.finish_viy + 'px)'\n });\n }\n }\n\n\n }\n\n }\n\n\n\n toggle_menu_state() {\n\n const self = this;\n\n if (this._navMain.height() == 0) {\n this._navMain.css({\n 'height': this.parentGallery.initOptions.design_menu_height\n })\n\n\n this.cgallery.removeClass('menu-closed');\n this.cgallery.addClass('menu-opened');\n } else {\n\n this._navMain.css({\n 'height': 0\n })\n this.cgallery.removeClass('menu-opened');\n this.cgallery.addClass('menu-closed');\n }\n setTimeout(function () {\n self.parentGallery.handleResize();\n }, 400); // -- animation delay\n\n }\n\n parseTrackData(track_data) {\n var foundnr = 0;\n var self = this;\n this._navMain.find('.menu-item-views').each(function () {\n var _t2 = $(this);\n\n var aux_html = _t2.html();\n\n var reg_findid = /{{views_(.*?)}}/g;\n\n\n var aux = reg_findid.exec(aux_html);\n\n //console.log(aux);\n\n var id = '';\n if (aux && aux[1]) {\n\n id = aux[1];\n\n for (var i in track_data) {\n\n //console.log(id, track_data[i].views, aux[0])\n\n if (id == track_data[i].label || id == 'ap' + track_data[i].label) {\n aux_html = aux_html.replace(aux[0], track_data[i].views);\n foundnr++;\n break;\n }\n }\n\n\n _t2.html(aux_html);\n\n }\n\n\n })\n\n if (foundnr < track_data.length) {\n\n self._navMain.find('.menu-item-views').each(function () {\n\n var _t2 = $(this);\n\n var aux_html = _t2.html();\n var reg_findid = /{{views_(.*?)}}/g;\n\n var aux = reg_findid.exec(aux_html);\n\n if (aux && aux[0]) {\n\n aux_html = aux_html.replace(aux[0], 0);\n _t2.html(aux_html);\n }\n\n })\n }\n\n\n }\n}\n","\n\nwindow.dzsap_moving_playlist_item = false;\nwindow.dzsap_playlist_con = null;\nwindow.dzsap_playlist_item_moving = null;\nwindow.dzsap_playlist_item_target = null;\nconst dzsapSvgs = require('../_dzsap_svgs');\n\nexport class DzsapInnerPlaylist{\n constructor(dzsapClass) {\n this.dzsapClass = dzsapClass;\n this.$playlistInner = null;\n }\n init(){\n // console.log(this);\n\n var selfClass = this.dzsapClass;\n\n var thisClass = this;\n\n selfClass._apControlsRight.append('<div class=\"btn-footer-playlist for-hover dzstooltip-con player-but\"> <div class=\"tooltip-indicator tooltip-indicator--btn-footer-playlist\"><div class=\"the-icon-bg\"></div> ' + dzsapSvgs.svg_footer_playlist + ' </div><div class=\"dzstooltip playlist-tooltip style-default color-light-dark arrow-bottom talign-end transition-scaleup active2\"><div class=\"dzstooltip--inner\"> </div></div></div>');\n\n thisClass.$playlistInner = selfClass.cthis.find('.playlist-tooltip');\n selfClass.cthis.on('mousedown', '.the-sort-handle', handle_mouse);\n selfClass.cthis.on('click', '.playlist-menu-item', handle_mouse);\n\n setTimeout(function () {\n thisClass.playlistInner_setupStructureInPlayer();\n }, 100);\n\n setTimeout(function () {\n // player_setup_playlist_inner();\n }, 1000)\n\n\n function handle_mouse(e){\n\n var $t = jQuery(this);\n if (e.type === 'click') {\n\n if ($t.hasClass('playlist-menu-item')) {\n\n\n var ind = $t.parent().children().index($t);\n\n\n thisClass.playlistInner_gotoItem(ind, {\n 'call_from': 'handle_mouse'\n })\n\n\n }\n }\n if (e.type === 'mousedown') {\n\n // console.log('mouse down');\n\n var _con = $t.parent();\n\n _con.parent().append(_con.clone().addClass('cloner'));\n var _clone = _con.parent().children('.cloner').eq(0);\n\n dzsap_playlist_con = _con.parent();\n dzsap_moving_playlist_item = true;\n\n dzsap_playlist_item_target = _con;\n dzsap_playlist_item_moving = _clone;\n _con.addClass('target-playlist-item');\n\n\n }\n }\n\n\n }\n\n playlistInner_setupStructureInPlayer(pargs) {\n // -- setup playlist for footer\n\n var $ = jQuery;\n var thisClass = this;\n var selfClass = this.dzsapClass;\n\n var margs = {\n 'call_from': \"default\"\n }\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n\n // console.log('player_setup_playlist_inner() dzsap_syncList_players -4 ',dzsap_syncList_players,margs,selfClass.cthis);\n\n\n\n if (thisClass.$playlistInner) {\n (window.dzsap_syncList_players.length) ? thisClass.$playlistInner.parent().removeClass('is-empty') : thisClass.$playlistInner.parent().addClass('is-empty');\n // -- clear all before adding\n thisClass.$playlistInner.find('.dzstooltip--inner').html('');\n var stringPlaylistMenuItems = '';\n for (var keySyncPlayer in window.dzsap_syncList_players) {\n // -- setup inner playlist for sticky player\n\n\n var _c = window.dzsap_syncList_players[keySyncPlayer];\n\n if (_c.hasClass('number-wrapper') || _c.hasClass('for-number-wrapper')) {\n continue;\n }\n\n stringPlaylistMenuItems += '<div class=\"playlist-menu-item\"';\n\n\n $.each(_c.get(0).attributes, function () {\n // -- we remember attributes in case the page has changed and we lost..\n if (this.specified && this.name && this.name !== 'id' && this.name !== 'style') {\n\n stringPlaylistMenuItems += ' ' + this.name + '=\\'' + this.value + '\\'';\n // console.log(this.name, this.value);\n }\n });\n\n\n stringPlaylistMenuItems += '>';\n\n\n if(_c.attr('data-thumb')){\n\n stringPlaylistMenuItems += '<div class=\"pi-thumb-con\">';\n stringPlaylistMenuItems += '<div class=\"pi-thumb divimage\" style=\"background-image: url(' + _c.attr('data-thumb') + ')\">';\n stringPlaylistMenuItems += '</div>'\n stringPlaylistMenuItems += '</div>'\n }\n stringPlaylistMenuItems += '<div class=\"pi-meta-con\">';\n\n stringPlaylistMenuItems += '<div class=\"pi-the-artist\">';\n stringPlaylistMenuItems += _c.find('.the-artist').eq(0).text();\n stringPlaylistMenuItems += '</div>';\n\n stringPlaylistMenuItems += '<div class=\"pi-the-name\">';\n stringPlaylistMenuItems += _c.find('.the-name').eq(0).text();\n stringPlaylistMenuItems += '</div>';\n\n stringPlaylistMenuItems += '</div>';\n\n\n stringPlaylistMenuItems += '<div class=\"the-sort-handle\">';\n stringPlaylistMenuItems += '↕';\n stringPlaylistMenuItems += '</div>';\n stringPlaylistMenuItems += '</div>';\n\n }\n thisClass.$playlistInner.find('.dzstooltip--inner').append(stringPlaylistMenuItems);\n\n\n $(document).on('mousemove.dzsap_playlist_item', function (e) {\n\n if (window.dzsap_moving_playlist_item) {\n\n var my = e.clientY;\n\n my -= dzsap_playlist_con.offset().top;\n\n // console.log(mx,my);\n\n dzsap_playlist_item_moving.css('top', my - 20);\n\n\n dzsap_playlist_item_target.parent().children(':not(\".target-playlist-item\"):not(\".cloner\")').each(function () {\n var _t = $(this);\n\n var tmy = _t.offset().top - dzsap_playlist_con.offset().top;\n\n\n // console.log(my,tmy);\n if (my > tmy) {\n _t.after(dzsap_playlist_item_target);\n }\n })\n\n if (my < 50) {\n dzsap_playlist_item_target.parent().prepend(dzsap_playlist_item_target);\n }\n }\n });\n $(document).on('mouseup.dzsap_playlist_item', function (e) {\n\n if (window.dzsap_moving_playlist_item) {\n\n window.dzsap_moving_playlist_item = false;\n\n\n dzsap_playlist_item_moving.parent().children('.cloner').remove();\n dzsap_playlist_item_target.removeClass('target-playlist-item');\n dzsap_playlist_item_moving.remove();\n dzsap_playlist_item_moving = null;\n dzsap_playlist_item_target = null;\n }\n })\n } else {\n console.error('no tooltip .. why, should be here?');\n }\n\n\n }\n\n player_determineSyncPlayersIndex(selfClass, $targetPlayer){\n\n // console.log('selfClass.cthis - - ', selfClass.cthis);\n\n if (this.$playlistInner) {\n var _cach = this.$playlistInner.children('.dzstooltip--inner').eq(0);\n _cach.children().removeClass('current-playlist-item');\n _cach.children().each(function () {\n var _t = jQuery(this);\n\n console.log(_t.attr('data-playerid'), $targetPlayer.attr('data-playerid'));\n if (_t.attr('data-playerid') === $targetPlayer.attr('data-playerid')) {\n _t.addClass('current-playlist-item');\n selfClass.playlist_inner_currNr = _t.parent().children().index(_t);\n }\n })\n }\n\n }\n\n\n /**\n * this is the function called from playlist menu item ( footer )\n * @param arg\n * @param pargs\n */\n playlistInner_gotoItem(arg, pargs) {\n // --\n\n var $ = jQuery;\n var thisClass = this;\n var selfClass = this.dzsapClass;\n\n var margs = {\n 'call_from': \"default\"\n }\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n\n // console.log('playlist_goto_item - margs -4 ',margs, 'arg - ',arg);\n\n\n var _cach_con = null;\n\n\n if (thisClass.$playlistInner) {\n _cach_con = thisClass.$playlistInner.find('.dzstooltip--inner');\n\n var _cach = _cach_con.children().eq(arg);\n\n // console.log(_cach);\n\n var playerId = _cach.attr('data-playerid');\n\n\n // console.log('playerid && $(\\'.audioplayer[data-playerid=\"\\'+playerid+\\'\"]\\').length && $(\\'.audioplayer[data-playerid=\"\\'+playerid+\\'\"]\\').eq(0).get(0).api_play_media - ',playerid);\n // console.log('the-player - ', $('.audioplayer[data-playerid=\"'+playerid+'\"],.audioplayer-tobe[data-playerid=\"'+playerid+'\"]'));\n\n\n var $targetPlayer = $('.audioplayer[data-playerid=\"' + playerId + '\"],.audioplayer-tobe[data-playerid=\"' + playerId + '\"]');\n\n\n if (playerId && $targetPlayer.length && $targetPlayer.eq(0).get(0) && $targetPlayer.eq(0).get(0).api_play_media) {\n\n\n $('.audioplayer[data-playerid=\"' + playerId + '\"]').eq(0).get(0).api_play_media({\n\n 'called_from': 'api_sync_players_prev'\n });\n\n } else {\n\n\n if ($targetPlayer.parent().parent().parent().hasClass('audiogallery')) {\n $targetPlayer.parent().parent().parent().get(0).api_goto_item(arg);\n } else {\n\n // -- in case we change the page ;)\n\n var $dzsapFooter = $('.dzsap_footer');\n if($dzsapFooter.length && $dzsapFooter.get(0).api_change_media){\n $dzsapFooter.get(0).api_change_media($targetPlayer);\n }\n\n }\n\n\n }\n\n selfClass.playlist_inner_currNr = arg;\n\n }\n }\n\n}\n","import {extraHtmlBottomFunctionality, feedEmbedFunctionality} from \"../extra-functionality/_extraHtmlFunctions\";\nimport * as dzsapHelpers from '../_dzsap_helpers';\nimport {DzsapInnerPlaylist} from '../extra-functionality/_innerPlaylist';\n\nconst dzsapSvgs = require('../_dzsap_svgs');\nconst dzsapAjax = require('../_dzsap_ajax');\n\nexport function setup_structure_extras(selfClass, o) {\n\n // console.log('selfClass.skinwave_mode - ', selfClass.skinwave_mode);\n if (o.design_skin === 'skin-wave' && selfClass.skinwave_mode === 'bigwavo') {\n selfClass._audioplayerInner.after(selfClass._scrubbar);\n\n if (selfClass.cthis.find('.feed-description')) {\n selfClass.$conControls.after(selfClass.cthis.find('.feed-description').eq(0));\n selfClass.$conControls.next().removeClass('feed-description').addClass('song-desc');\n }\n }\n\n\n selfClass.radio_isGoingToUpdateSongName = dzsapHelpers.player_radio_isNameUpdatable(selfClass, selfClass.radio_isGoingToUpdateSongName, '.the-songname');\n selfClass.radio_isGoingToUpdateArtistName = dzsapHelpers.player_radio_isNameUpdatable(selfClass, selfClass.radio_isGoingToUpdateArtistName, '.the-artist');\n\n // console.log('selfClass.radio_isGoingToUpdateSongName - ', selfClass.radio_isGoingToUpdateSongName, 'selfClass.radio_isGoingToUpdateArtistName - ', selfClass.radio_isGoingToUpdateArtistName)\n\n\n if (o.disable_scrub === 'on') {\n selfClass.cthis.addClass('disable-scrubbar');\n }\n if (o.design_animateplaypause !== 'on') {\n // aux_str_con_controls+=' style=\"display:none\"';\n } else {\n selfClass.cthis.addClass('playing-animation');\n }\n\n const struct_embedButtonWithTooltip = `<div class=\"btn-embed-code-con dzstooltip-con \"><div class=\"btn-embed-code player-but \"> <div class=\"the-icon-bg\"></div>${dzsapSvgs.svg_embed_btn}</div><span class=\"dzstooltip transition-slidein arrow-bottom talign-end style-rounded color-dark-light \" style=\"width: 350px; \"><span class=\"dzstooltip--inner\"><span class=\"embed-code--text\"></span></span></span></div>`;\n\n if (selfClass.feedEmbedCode !== '') {\n feedEmbedFunctionality(selfClass, jQuery, dzsapHelpers, struct_embedButtonWithTooltip)\n }\n\n if (o.footer_btn_playlist === 'on') {\n if (selfClass._apControlsRight.find('.btn-footer-playlist').length === 0) {\n\n selfClass.classFunctionalityInnerPlaylist = new DzsapInnerPlaylist(selfClass);\n selfClass.classFunctionalityInnerPlaylist.init();\n }\n\n }\n\n // console.log('selfClass.cthis.find(\\'.extra-html\\').length - ', selfClass.cthis.find('.extra-html').length);\n setTimeout(function () {\n\n if (selfClass.cthis.find('.extra-html').length) {\n extraHtmlBottomFunctionality(selfClass, dzsapAjax, dzsapSvgs);\n }\n }, 100);\n\n setTimeout(function () {\n\n // console.log('selfClass.cthis.html().indexOf(\\'dzsap-multisharer-but\\')- ' , selfClass.cthis.html().indexOf('dzsap-multisharer-but'));\n if (selfClass.cthis.html().indexOf('dzsap-multisharer-but') > -1) {\n selfClass.isMultiSharer = true;\n selfClass.check_multisharer();\n }\n }, 2101);\n\n if (selfClass.cthis.find('.con-after-playpause').length) {\n selfClass.$conPlayPause.after(selfClass.cthis.find('.con-after-playpause').eq(0));\n }\n\n if (selfClass.cthis.find('.afterplayer').length > 0) {\n //console.log(cthis.children('.afterplayer'));\n selfClass.cthis.append(selfClass.cthis.find('.afterplayer'));\n }\n\n}\n\nfunction setup_structure__setup_wrapper_image(selfClass) {\n\n var img = new Image();\n\n\n if (selfClass.cthis.hasClass('zoomsounds-no-wrapper') === false) {\n\n img.onload = function () {\n // console.log('image loaded', this, this.src);\n\n\n selfClass.cthis.css('background-image', 'url(' + this.src + ')');\n // selfClass._audioplayerInner.prepend('<div class=\"zoomsounds-bg\" style=\"background-image: url('+this.src+'); \"></div>');\n setTimeout(function () {\n\n selfClass.cthis.find('.zoomsounds-bg').addClass('loaded');\n\n\n if (selfClass.cthis.hasClass('zoomsounds-wrapper-bg-bellow')) {\n\n selfClass.cthis.css('padding-top', 200);\n }\n }, 100);\n }\n\n img.src = selfClass.cthis.attr('data-wrapper-image');\n }\n\n}\n\n/**\n * setup player structure\n * @param selfClass\n * @param pargs\n * @returns {boolean}\n */\nexport const setup_structure = function (selfClass, pargs) {\n // console.log('setup_structure()');\n\n// -- setup structure here\n var $ = jQuery;\n var o = selfClass.initOptions;\n\n\n var margs = {\n 'setup_inner_player': true\n , 'setup_media': true\n , 'setup_otherstructure': true\n , 'call_from': \"default\"\n\n\n }\n\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n// console.log('%c .setup_structure', 'color: #da23da', margs);\n\n\n if (margs.call_from === 'reconstruct') {\n if (selfClass._metaArtistCon) {\n\n //selfClass._metaArtistCon.remove();\n }\n\n\n selfClass._metaArtistCon = null;\n if (selfClass.cthis.hasClass('skin-wave')) {\n o.design_skin = 'skin-wave';\n }\n if (selfClass.cthis.hasClass('skin-silver')) {\n o.design_skin = 'skin-silver';\n }\n }\n\n\n var structure_str_apControls = '<div class=\"ap-controls';\n // console.log('o.design_skin -' , o.design_skin);\n if (o.design_skin === 'skin-default') {\n structure_str_apControls += ' dzsap-color_inverse_ui_fill';\n }\n structure_str_apControls += '\"></div>'\n\n if (margs.setup_inner_player) {\n selfClass.cthis.append('<div class=\"audioplayer-inner\"></div>');\n selfClass._audioplayerInner = selfClass.cthis.children('.audioplayer-inner');\n }\n\n\n // -- end setup inner\n\n\n if (!margs.setup_otherstructure) {\n return false;\n }\n\n\n if (selfClass.cthis.attr('data-wrapper-image')) {\n setup_structure__setup_wrapper_image(selfClass);\n }\n\n\n var structure_str_scrubbar = '<div class=\"scrubbar\">';\n var aux_str_con_controls = '';\n var aux_str_con_controls_part2 = '';\n var aux_str_volume = '';\n var aux_str_time = '';\n\n\n structure_str_scrubbar += '<div class=\"scrub-bg\"></div><div class=\"scrub-buffer\"></div>';\n\n structure_str_scrubbar += '<div class=\"scrub-prog';\n\n if (o.scrubbar_type !== 'wave') {\n structure_str_scrubbar += ' dzsap-color_brand_bg';\n }\n\n structure_str_scrubbar += '\"></div><div class=\"scrubBox\"></div><div class=\"scrubBox-prog\"></div><div class=\"scrubBox-hover\"></div>';\n aux_str_time = '<div class=\"total-time\">00:00</div><div class=\"curr-time\">00:00</div>';\n\n\n if (selfClass.sample_perc_start) {\n\n structure_str_scrubbar += '<div class=\"sample-block-start\" style=\"width: ' + (selfClass.sample_perc_start * 100) + '%\"></div>'\n }\n if (selfClass.sample_perc_end) {\n\n structure_str_scrubbar += '<div class=\"sample-block-end\" style=\"left: ' + (selfClass.sample_perc_end * 100) + '%; width: ' + (100 - (selfClass.sample_perc_end * 100)) + '%\"></div>'\n }\n\n structure_str_scrubbar += '</div>'; // -- end scrubbar\n\n\n if (o.controls_external_scrubbar) {\n structure_str_scrubbar = '';\n }\n\n\n var struct_con_playpause = '';\n\n\n if (o.settings_extrahtml_before_play_pause) {\n struct_con_playpause += o.settings_extrahtml_before_play_pause;\n\n\n }\n// console.log(selfClass.cthis.find('.feed-dzsap-before-playpause'));\n\n struct_con_playpause += '<div class=\"con-playpause-con\">';\n\n if (selfClass.cthis.find('.feed-dzsap-before-playpause').length) {\n struct_con_playpause += selfClass.cthis.find('.feed-dzsap-before-playpause').eq(0).html();\n selfClass.cthis.find('.feed-dzsap-before-playpause').remove();\n\n }\n\n struct_con_playpause += '<div class=\"con-playpause';\n\n if (selfClass.keyboard_controls.show_tooltips === 'on') {\n struct_con_playpause += ' dzstooltip-con';\n }\n\n struct_con_playpause += '\">';\n if (selfClass.keyboard_controls.show_tooltips === 'on') {\n struct_con_playpause += dzsapHelpers.dzsap_generate_keyboard_tooltip(selfClass.keyboard_controls, 'pause_play');\n }\n\n\n struct_con_playpause += '<div class=\"playbtn player-but\" aria-controls=\"' + selfClass.uniqueId + '-audio\"><div class=\"the-icon-bg\"></div><div class=\"dzsap-play-icon\">';\n\n// console.log(\"HMM dada\", selfClass.cthis);\n\n struct_con_playpause += dzsapSvgs.playbtn_svg;\n\n\n struct_con_playpause += '</div>';\n struct_con_playpause += '</div>'; // -- end playbtn\n\n\n struct_con_playpause += '<div class=\"pausebtn player-but\"';\n\n\n struct_con_playpause += '><div class=\"the-icon-bg\"></div><div class=\"pause-icon\">';\n\n\n struct_con_playpause += dzsapSvgs.pausebtn_svg;\n\n\n struct_con_playpause += '</div>';// -- end pause-icon\n struct_con_playpause += '</div>'; // -- end pausebtn\n\n\n struct_con_playpause += '';\n\n\n struct_con_playpause += '</div>';\n if (selfClass.cthis.find('.feed-dzsap-after-playpause').length) {\n struct_con_playpause += selfClass.cthis.find('.feed-dzsap-after-playpause').eq(0).html();\n\n selfClass.cthis.find('.feed-dzsap-after-playpause').remove();\n }\n\n\n struct_con_playpause += '</div>';\n\n\n// struct_con_playpause = '';\n// console.log(' - struct_con_playpause - ',struct_con_playpause);\n\n\n aux_str_con_controls += '<div class=\"con-controls\"><div class=\"the-bg\"></div>' + struct_con_playpause;\n\n\n if (selfClass.extraHtmlAreas.controlsLeft) {\n aux_str_con_controls += selfClass.extraHtmlAreas.controlsLeft;\n }\n\n\n//console.log(o.disable_timer, aux_str_con_controls);\n\n\n if (o.design_skin === 'skin-pro') {\n aux_str_con_controls += '<div class=\"con-controls--right\">';\n aux_str_con_controls += '</div>';\n }\n\n\n var aux_str_con_volume = '<div class=\"controls-volume\"><div class=\"volumeicon\"></div><div class=\"volume_static\"></div><div class=\"volume_active\"></div><div class=\"volume_cut\"></div></div>';\n if (o.disable_volume === 'on') {\n aux_str_con_volume = '';\n }\n\n\n if (o.design_skin === 'skin-default' || o.design_skin === 'skin-wave') {\n\n aux_str_con_controls += '<div class=\"ap-controls-right\">';\n if (o.disable_volume !== 'on') {\n aux_str_con_controls += '<div class=\"controls-volume\"><div class=\"volumeicon\"></div><div class=\"volume_static\"></div><div class=\"volume_active\"></div><div class=\"volume_cut\"></div></div>';\n }\n\n\n // console.log('aux_str_con_controls -> ',aux_str_con_controls);\n\n aux_str_con_controls += '</div>';\n // aux_str_con_controls += '<div class=\"clear\"></div>';\n\n\n }\n\n aux_str_con_controls += '</div>'; // -- end con-controls\n\n\n/// -- end STR\n\n//console.log(o.disable_timer, aux_str_con_controls);\n\n\n if (o.design_skin === 'skin-wave' && selfClass.skinwave_mode === 'small') {\n aux_str_con_controls = '<div class=\"the-bg\"></div><div class=\"ap-controls-left\">' + struct_con_playpause + '</div>' + structure_str_scrubbar + '<div class=\"ap-controls-right\">' + aux_str_con_volume + '<div class=\"extrahtml-in-float-right for-skin-wave-small\">' + selfClass.extraHtmlAreas.controlsRight + '</div></div>';\n\n\n } else {\n\n\n // -- other skins\n\n if (o.design_skin === 'skin-aria' || o.design_skin === 'skin-silver' || o.design_skin === 'skin-redlights' || o.design_skin === 'skin-steel') {\n\n\n //o.design_skin === 'skin-redlights' ||\n let playbtnSvg = dzsapSvgs.playbtn_svg;\n let pausebtnSvg = dzsapSvgs.pausebtn_svg;\n if (o.design_skin === 'skin-steel') {\n playbtnSvg = '';\n pausebtnSvg = '';\n }\n\n aux_str_con_controls = '<div class=\"the-bg\"></div><div class=\"ap-controls-left\">';\n\n\n if (o.design_skin === 'skin-silver') {\n\n aux_str_con_controls += struct_con_playpause;\n } else {\n\n // -- TODO: maybe convert all to struct_con_playpause\n\n\n aux_str_con_controls += '<div class=\"con-playpause';\n\n if (selfClass.keyboard_controls.show_tooltips === 'on') {\n aux_str_con_controls += ' dzstooltip-con';\n }\n\n aux_str_con_controls += '\">';\n\n\n if (selfClass.keyboard_controls.show_tooltips === 'on') {\n aux_str_con_controls += dzsapHelpers.dzsap_generate_keyboard_tooltip(selfClass.keyboard_controls, 'pause_play');\n }\n\n\n aux_str_con_controls += '<div class=\"playbtn player-but playbtn-not-skin-silver\"><div class=\"dzsap-play-icon\">' + playbtnSvg + '</div></div><div class=\"pausebtn player-but\" ';\n\n\n // console.log('o.design_animateplaypause - ',o.design_animateplaypause);\n if (o.design_animateplaypause !== 'on') {\n // aux_str_con_controls+=' style=\"display:none\"';\n } else {\n selfClass.cthis.addClass('playing-animation');\n }\n\n aux_str_con_controls += '><div class=\"pause-icon\">' + pausebtnSvg + '</div></div></div>'; // -- enc con-playpause\n\n }\n\n console.log('aux_str_con_controls - ', aux_str_con_controls, selfClass.cthis, ' dzsapSvgs.playbtn_svg- ', playbtnSvg);\n\n\n // console.log('selfClass.cthis.find(\\'.feed-dzsap-after-playpause\\') - ',selfClass.cthis.find('.feed-dzsap-after-playpause'));\n if (selfClass.cthis.find('.feed-dzsap-after-playpause').length) {\n aux_str_con_controls += selfClass.cthis.find('.feed-dzsap-after-playpause').eq(0).html();\n\n\n selfClass.cthis.find('.feed-dzsap-after-playpause').remove();\n }\n\n\n aux_str_con_controls += '</div>';\n\n\n if (selfClass.extraHtmlAreas.controlsRight) {\n aux_str_con_controls += '<div class=\"controls-right\">' + selfClass.extraHtmlAreas.controlsRight + '</div>';\n\n //console.log(o._gall)\n //console.log('dada');\n\n if (o.design_skin === 'skin-redlights') {\n\n //console.log(o.parentgallery, o.parentgallery.get(0).api_skin_redlights_give_controls_right_to_all);\n if (o.parentgallery && o.parentgallery.get(0).api_skin_redlights_give_controls_right_to_all) {\n o.parentgallery.get(0).api_skin_redlights_give_controls_right_to_all();\n }\n }\n }\n\n //console.log('ceva');\n\n\n aux_str_con_controls += '<div class=\"ap-controls-right\">';\n\n if (o.design_skin === 'skin-silver') {\n\n aux_str_con_controls += '<div class=\"controls-volume controls-volume-vertical\"><div class=\"volumeicon\"></div><div class=\"volume-holder\"><div class=\"volume_static\"></div><div class=\"volume_active\"></div><div class=\"volume_cut\"></div></div></div>';\n\n\n aux_str_con_controls += '</div>' + structure_str_scrubbar;\n } else {\n\n\n if (o.design_skin === 'skin-redlights') {\n\n if (o.disable_volume != 'on') {\n aux_str_con_controls += '<div class=\"controls-volume\"><div class=\"volumeicon\"></div><div class=\"volume_static\"></div><div class=\"volume_active\"></div><div class=\"volume_cut\"></div></div>';\n }\n }\n\n aux_str_con_controls += structure_str_scrubbar;\n\n\n if (o.disable_timer != 'on') {\n aux_str_con_controls += '<div class=\"total-time\">00:00</div>';\n }\n }\n\n\n if (o.design_skin === 'skin-silver') {\n\n } else {\n aux_str_con_controls += '</div>';\n }\n\n\n }\n\n\n }\n\n\n// -- end strings\n// --------------\n\n if (margs.setup_media) {\n selfClass._audioplayerInner.append('<div class=\"the-media\"></div>');\n selfClass.$theMedia = selfClass._audioplayerInner.children('.the-media').eq(0);\n }\n if (o.design_skin !== 'skin-customcontrols') {\n selfClass._audioplayerInner.append(structure_str_apControls);\n }\n\n selfClass._apControls = selfClass._audioplayerInner.children('.ap-controls').eq(0);\n selfClass._apControls.append(aux_str_con_controls);\n\n\n if (selfClass.cthis.hasClass('skin-wave-mode-alternate')) {\n if (selfClass.cthis.find('.scrubbar').length === 0) {\n selfClass._apControls.append(structure_str_scrubbar);\n }\n } else {\n if (selfClass.cthis.find('.scrubbar').length === 0) {\n selfClass._apControls.prepend(structure_str_scrubbar);\n }\n }\n\n\n selfClass._apControlsRight = null;\n\n if (selfClass._apControls.find('.ap-controls-right').length > 0) {\n selfClass._apControlsRight = selfClass.cthis.find('.ap-controls-right');\n }\n if (selfClass._apControls.find('.ap-controls-left').length > 0) {\n selfClass._apControlsLeft = selfClass._apControls.find('.ap-controls-left').eq(0);\n }\n\n\n if (o.design_skin === 'skin-pro') {\n selfClass._apControlsRight = selfClass.cthis.find('.con-controls--right').eq(0)\n }\n\n\n// console.log('settings_extrahtml_in_float_right - ',settings_extrahtml_in_float_right);\n\n\n// -- Todo: if we have footer, playlist btn we can place it in ap-controls-right\n\n if (selfClass.cthis.find('.feed-dzsap-after-con-controls').length) {\n selfClass._apControls.append(selfClass.cthis.find('.feed-dzsap-after-con-controls').eq(0).html());\n\n\n selfClass.cthis.find('.feed-dzsap-after-con-controls').remove();\n }\n\n\n if (o.controls_external_scrubbar) {\n selfClass._scrubbar = $(o.controls_external_scrubbar).children('.scrubbar').eq(0);\n } else {\n selfClass._scrubbar = selfClass._apControls.find('.scrubbar').eq(0);\n }\n// console.info('_scrubbar - ' ,_scrubbar, o);\n\n\n selfClass.$$scrubbProg = selfClass._scrubbar.find('.scrub-prog').get(0);\n\n\n selfClass.$conControls = selfClass._apControls.children('.con-controls');\n selfClass.$conPlayPause = selfClass.cthis.find('.con-playpause').eq(0);\n selfClass._conPlayPauseCon = selfClass.cthis.find('.con-playpause-con').eq(0);\n selfClass.$controlsVolume = selfClass.cthis.find('.controls-volume').eq(0);\n\n\n (dzsapHelpers.player_constructArtistAndSongCon.bind(selfClass))(margs);\n\n\n // console.log('selfClass._scrubbar - ', selfClass._scrubbar, o.scrubbar_type);\n selfClass._scrubbar.addClass('scrubbar-inited');\n if (o.scrubbar_type === 'wave' && o.disable_timer != 'on') {\n // -- no sense in adding time if external\n if (o.controls_external_scrubbar === '') {\n selfClass._scrubbar.append(aux_str_time);\n }\n }\n\n\n if (o.design_skin != 'skin-wave' && o.disable_timer != 'on') {\n // aux_str_con_controls += '<div class=\"curr-time\">00:00</div><div class=\"total-time\">00:00</div>';\n\n // -- all skins\n selfClass._apControls.append(aux_str_time);\n }\n\n\n// -- end structure\n\n\n// -- start assocations\n if (o.disable_timer != 'on') {\n selfClass.$currTime = selfClass.cthis.find('.curr-time').eq(0);\n selfClass.$totalTime = selfClass.cthis.find('.total-time').eq(0);\n\n if (o.design_skin === 'skin-steel') {\n if (selfClass.$currTime.length === 0) {\n selfClass.$totalTime.before('<div class=\"curr-time\">00:00</div> <span class=\"separator-slash\">/</span> ');\n //console.log('WHAT WHAT IN THE BUTT', _totalTime, _totalTime.prev(), selfClass.cthis.find('.curr-time'));\n\n selfClass.$currTime = selfClass.$totalTime.prev().prev();\n\n }\n }\n\n //console.log(_currTime, _totalTime);\n }\n\n\n if (Number(o.sample_time_total) > 0) {\n\n selfClass.timeTotal = Number(o.sample_time_total);\n\n // console.log(ConstantsDzsAp.DEBUG_STYLE_ERROR, selfClass.$currTime, selfClass.timeTotal);\n if (selfClass.$totalTime) {\n\n // console.error(\"ENTER HERE\");\n selfClass.$totalTime.html(dzsapHelpers.formatTime(selfClass.time_total_for_visual));\n }\n\n //console.log(_totalTime.html());\n\n //return false;\n }\n\n\n selfClass.struct_generate_thumb();\n\n\n if (o.design_skin === 'skin-wave' && o.parentgallery && typeof (o.parentgallery) != 'undefined' && o.design_menu_show_player_state_button === 'on') {\n if (o.design_skin === 'skin-wave') {\n if (selfClass._apControlsRight) {\n\n selfClass._apControlsRight.appendOnce('<div class=\"btn-menu-state player-but\"> <div class=\"the-icon-bg\"></div> ' + dzsapSvgs.svg_menu_state + ' </div></div>');\n } else {\n console.log('selfClass._apControlsRight not found ? ');\n }\n } else {\n selfClass._audioplayerInner.appendOnce('<div class=\"btn-menu-state\"></div>');\n }\n }\n// console.log(selfClass.$controlsVolume,_theThumbCon , o.skinwave_place_thumb_after_volume);\n if (o.skinwave_place_metaartist_after_volume === 'on') {\n\n selfClass.$controlsVolume.before(selfClass._metaArtistCon);\n }\n\n\n if (o.skinwave_place_thumb_after_volume === 'on') {\n\n selfClass.$controlsVolume.before(selfClass.cthis.find('.the-thumb-con'));\n }\n// console.log(o.embed_code);\n\n\n if (o.design_skin === 'skin-wave') {\n\n\n // -- structure setup\n\n selfClass.setup_structure_scrub();\n\n\n if (o.skinwave_timer_static === 'on') {\n if (selfClass.$currTime) {\n selfClass.$currTime.addClass('static');\n }\n if (selfClass.$totalTime) {\n selfClass.$totalTime.addClass('static');\n }\n }\n\n\n selfClass._apControls.css({\n //'height': design_thumbh\n })\n\n\n //console.log('setup_lsiteners()');\n\n // console.log(\"PREPARE SCRUBBAR LOADED\");\n if (o.skinwave_wave_mode === 'canvas') {\n\n setTimeout(function () {\n selfClass.cthis.addClass('scrubbar-loaded');\n selfClass._scrubbar.parent().addClass('scrubbar-loaded');\n\n\n // console.log(\" SCRUBBAR is LOADED\",selfClass._scrubbar);\n }, 700); // -- tbc\n\n }\n\n }\n// --- END skin-wave\n\n\n selfClass.check_multisharer();\n\n if (selfClass.cthis.hasClass('skin-minimal')) {\n // -- here is skin-minimal\n\n selfClass.cthis.find('.the-bg').before('<div class=\"skin-minimal-bg skin-minimal--outer-bg\"></div><div class=\"skin-minimal-bg skin-minimal--inner-bg-under dzsap-color_brand_bg\"></div><div class=\"skin-minimal-bg skin-minimal--inner-bg\"></div><div class=\"skin-minimal-bg skin-minimal--inner-inner-bg dzsap-color_brand_bg\"></div>')\n selfClass.cthis.find('.the-bg').append('<canvas width=\"100\" height=\"100\" class=\"playbtn-canvas\"/>')\n selfClass.skin_minimal_canvasplay = selfClass.cthis.find('.playbtn-canvas').eq(0).get(0);\n\n if (selfClass.$conPlayPause) {\n\n selfClass.$conPlayPause.children('.playbtn').append(dzsapSvgs.playbtn_svg);\n selfClass.$conPlayPause.children('.pausebtn').append(dzsapSvgs.pausebtn_svg);\n }\n\n setTimeout(function () {\n selfClass.isCanvasFirstDrawn = false;\n }, 200);\n }\n\n\n if (selfClass.cthis.hasClass('skin-minion')) {\n if (selfClass.cthis.find('.menu-description').length > 0) {\n //console.log('ceva');\n selfClass.$conPlayPause.addClass('with-tooltip');\n selfClass.$conPlayPause.prepend('<span class=\"dzstooltip\" style=\"left:-7px;\">' + selfClass.cthis.find('.menu-description').html() + '</span>');\n selfClass.$conPlayPause.children('span').eq(0).css('width', selfClass.$conPlayPause.children('span').eq(0).textWidth() + 10);\n }\n }\n\n\n//console.log('o.player_navigation - ',o.player_navigation,o.parentgallery);\n\n\n if (o.player_navigation === 'default') {\n\n if (o.parentgallery) {\n\n o.player_navigation = 'on';\n }\n\n\n if (o.parentgallery && o.parentgallery.hasClass('mode-showall')) {\n o.player_navigation = 'off';\n }\n }\n\n if (o.disable_player_navigation === 'on') {\n\n o.player_navigation = 'off';\n }\n\n if (o.player_navigation === 'default') {\n\n o.player_navigation = 'off';\n }\n\n\n// console.log('o.player_navigation - ',o.player_navigation);\n\n\n if (o.player_navigation === 'on') {\n\n var prev_btn_str = '<div class=\"prev-btn player-but\"><div class=\"the-icon-bg\"></div>' + dzsapSvgs.svg_prev_btn + ' </div>';\n\n var next_btn_str = '<div class=\"next-btn player-but\"><div class=\"the-icon-bg\"></div>' + dzsapSvgs.svg_next_btn + ' </div>';\n\n\n var auxs = prev_btn_str + next_btn_str;\n\n\n //console.log(o.parentgallery);\n\n\n // console.log(o.design_skin, selfClass.skinwave_mode);\n\n // -- create player navigation here\n if ((o.design_skin === 'skin-wave' && selfClass.skinwave_mode === 'small') || o.design_skin === 'skin-aria') {\n\n\n selfClass.$conPlayPause.before(prev_btn_str)\n selfClass.$conPlayPause.after(next_btn_str)\n\n\n } else {\n if (o.design_skin === 'skin-wave') {\n\n // _conPlayPause.after(auxs);\n\n // console.log('o.player_navigation - ',o.player_navigation);\n\n\n if (o.player_navigation === 'on') {\n\n selfClass._conPlayPauseCon.prependOnce(prev_btn_str, '.prev-btn');\n selfClass._conPlayPauseCon.appendOnce(next_btn_str, '.next-btn');\n }\n\n } else if (o.design_skin === 'skin-steel') {\n\n selfClass._apControlsLeft.prependOnce(prev_btn_str, '.prev-btn');\n\n if (selfClass._apControlsLeft.children('.the-thumb-con').length > 0) {\n //console.log(_theThumbCon.prev());\n\n if (selfClass._apControlsLeft.children('.the-thumb-con').eq(0).length > 0) {\n if (selfClass._apControlsLeft.children('.the-thumb-con').eq(0).prev().hasClass('next-btn') === false) {\n selfClass._apControlsLeft.children('.the-thumb-con').eq(0).before(next_btn_str);\n }\n }\n\n } else {\n\n selfClass._apControlsLeft.appendOnce(next_btn_str, '.next-btn');\n }\n } else {\n\n selfClass._audioplayerInner.appendOnce(auxs, '.prev-btn');\n }\n }\n\n }\n\n\n//console.log(o.settings_extrahtml);\n\n\n if (selfClass.cthis.hasClass('skinvariation-wave-bigtitles')) {\n if (selfClass.cthis.find('.controls-volume').length && selfClass._metaArtistCon.find('.controls-volume').length === 0) {\n selfClass._metaArtistCon.append('<br>');\n selfClass._metaArtistCon.append(selfClass.cthis.find('.controls-volume'));\n }\n\n }\n\n if (selfClass.cthis.hasClass('skinvariation-wave-righter')) {\n\n selfClass._apControls.appendOnce('<div class=\"playbuttons-con\"></div>');\n var _c = selfClass.cthis.find('.playbuttons-con').eq(0);\n _c.append(selfClass.cthis.find('.con-playpause-con'));\n\n }\n\n\n// -- do custom tweaks\n\n if (o.design_skin === 'skin-pro') {\n\n selfClass._apControlsRight.append(selfClass.$currTime);\n selfClass._apControlsRight.append(selfClass.$totalTime);\n }\n\n\n if (o.design_skin === 'skin-silver') {\n selfClass._scrubbar.after(selfClass._apControlsRight);\n selfClass._apControlsLeft.prepend(selfClass._metaArtistCon);\n selfClass._apControlsLeft.append(selfClass.$currTime);\n selfClass._apControlsRight.append(selfClass.$totalTime);\n // aux_str_con_controls += '<div class=\"curr-time\">00:00</div>';\n\n\n // if (o.disable_timer != 'on') {\n // aux_str_con_controls += '<div class=\"total-time\">00:00</div>';\n // }\n }\n\n\n if (o.design_skin === 'skin-redlights') {\n selfClass._apControlsRight.append('<div class=\"ap-controls-right--top\"></div>');\n selfClass._apControlsRight.append('<div class=\"ap-controls-right--bottom\"></div>');\n selfClass._apControlsRight.find('.ap-controls-right--top').append(selfClass._apControlsRight.find('.meta-artist-con'));\n selfClass._apControlsRight.find('.ap-controls-right--top').append(selfClass._apControlsRight.find('.controls-volume'));\n selfClass._apControlsRight.find('.ap-controls-right--bottom').append(selfClass._apControlsRight.find('.scrubbar'));\n }\n\n\n if (margs.call_from === 'reconstruct') {\n if (selfClass.cthis.hasClass('skin-silver')) {\n selfClass._apControlsLeft.append(selfClass.cthis.find('.con-playpause'));\n }\n }\n\n\n if (selfClass.isMultiSharer) {\n selfClass.check_multisharer();\n }\n// -- replaces / sanitizes here\n selfClass.setup_structure_sanitizers();\n setup_structure_extras(selfClass, o);\n\n\n selfClass.cthis.addClass('structure-setuped');\n\n\n if (selfClass.extraHtmlAreas.afterArtist) {\n selfClass._metaArtistCon.find('.the-artist').append(selfClass.extraHtmlAreas.afterArtist);\n }\n\n // console.log('selfClass.extraHtmlAreas.bottom - ', selfClass.extraHtmlAreas.bottom);\n\n if (selfClass.extraHtmlAreas.bottom !== '') {\n selfClass.cthis.append('<div class=\"extra-html\">' + selfClass.extraHtmlAreas.bottom + '</div>');\n }\n\n\n if (selfClass.extraHtmlAreas.controlsRight) {\n var settings_extrahtml_in_float_right_str = '';\n// console.log('settings_extrahtml_in_float_right - ',settings_extrahtml_in_float_right);\n // aux_str_con_controls += ;\n\n if (String(selfClass.extraHtmlAreas.controlsRight).indexOf('dzsap-multisharer-but') > -1) {\n selfClass.isMultiSharer = true;\n }\n\n if (o.design_skin === 'skin-wave' && selfClass.skinwave_mode === 'small') {\n\n } else {\n\n settings_extrahtml_in_float_right_str += '<div class=\"extrahtml-in-float-right from-setup_structure from-js-setup_structure\">' + selfClass.extraHtmlAreas.controlsRight + '</div>';\n }\n\n\n // aux_str_con_controls += ;\n\n if (settings_extrahtml_in_float_right_str) {\n if (o.design_skin === 'skin-wave' || o.design_skin === 'skin-default') {\n\n selfClass.cthis.find('.ap-controls-right').eq(0).append(settings_extrahtml_in_float_right_str);\n // console.log('selfClass.cthis.find(\\'.ap-controls-right\\') - ', selfClass.cthis.find('.ap-controls-right'));\n }\n if (o.design_skin === 'skin-pro') {\n\n selfClass.cthis.find('.con-controls--right').eq(0).append(settings_extrahtml_in_float_right_str);\n // console.log('selfClass.cthis.find(\\'.ap-controls-right\\') - ', selfClass.cthis.find('.ap-controls-right'));\n }\n }\n }\n\n}\n","\nexport function extraHtmlBottomFunctionality(selfClass,dzsapAjax){\n\n\n var o = selfClass.initOptions;\n // console.log('extraHtmlBottomFunctionality() ' , selfClass.cthis.find('.extra-html'))\n // console.log('o.settings_extrahtml -> ', o.settings_extrahtml, index_extrahtml_toloads);\n\n\n\n if (selfClass.increment_views === 1) {\n (dzsapAjax.ajax_submit_views.bind(selfClass))();\n selfClass.increment_views = 2;\n }\n\n\n\n if (selfClass.index_extrahtml_toloads === 0) {\n //console.log('lel',cthis.find('.extra-html'))\n\n selfClass.cthis.find('.extra-html').addClass('active');\n }\n setTimeout(function () {\n selfClass.cthis.find('.extra-html').addClass('active');\n if (selfClass.cthis.find('.float-left').length === 0) {\n selfClass.cthis.find('.extra-html').append(selfClass.cthis.find('.extra-html-extra'));\n } else {\n selfClass.cthis.find('.extra-html .float-left').append(selfClass.cthis.find('.extra-html-extra'));\n }\n\n\n var _c = selfClass.cthis.find('.extra-html-extra').children().eq(0);\n\n selfClass.cthis.find('.extra-html-extra').children().unwrap();\n\n\n // console.log()\n // console.log('selfClass.cthis.html() - ', selfClass.cthis.html());\n // debugger;\n // console.log('selfClass.cthis.html().indexOf(\\'dzsap-multisharer-but\\') - ', selfClass.cthis.html().indexOf('dzsap-multisharer-but'));\n\n }, 2000);\n}\n\nexport function feedEmbedFunctionality(selfClass,$, dzsapHelpers, struct_embedButtonWithTooltip){\n\n var o = selfClass.initOptions;\n\n if (o.design_skin === 'skin-wave') {\n\n if (o.enable_embed_button === 'on') {\n if (selfClass._apControlsRight) {\n\n selfClass._apControlsRight.appendOnce(struct_embedButtonWithTooltip);\n selfClass.$embedButton = selfClass._apControlsRight.find('.btn-embed-code-con').eq(0);\n selfClass.$embedButton.find('.btn-embed-code').addClass('player-but');\n }\n }\n\n } else {\n if (o.enable_embed_button === 'on') {\n selfClass._audioplayerInner.appendOnce(struct_embedButtonWithTooltip);\n selfClass.$embedButton = selfClass._audioplayerInner.find('.btn-embed-code-con').eq(0);\n }\n }\n if (selfClass.$embedButton) {\n\n selfClass.$embedButton.find('.embed-code--text').html(selfClass.feedEmbedCode);\n }\n\n\n selfClass.cthis.on('click', '.btn-embed-code-con, .btn-embed', function () {\n var _t = $(this);\n\n // console.log(_t);\n dzsapHelpers.select_all(_t.find('.dzstooltip').get(0));\n document.execCommand('copy');\n })\n selfClass.cthis.on('click', '.copy-embed-code-btn', function () {\n var _t = $(this);\n\n dzsapHelpers.select_all(_t.parent().parent().find('.dzstooltip--inner > span').get(0));\n\n document.execCommand('copy');\n setTimeout(function () {\n dzsapHelpers.select_all(_t.get(0));\n }, 100)\n })\n}\n","import * as dzsapHelpers from '../_dzsap_helpers';\n\nimport {ConstantsDzsAp} from \"../../configs/_constants\";\nwindow.dzsap_wavesurfer_load_attempt = 0;\n\nexport const wave_mode_canvas_try_to_get_pcm = function (selfClass, pargs) {\n\n\n var margs = {};\n\n var $ = jQuery;\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n var self = this;\n\n // console.log('this -5 ', this);\n\n var o = selfClass.initOptions;\n\n if (selfClass.src_real_mp3 === 'fake') {\n return false;\n }\n\n\n async function tryToGetPcm() {\n\n function tryToLoad(resolve, reject) {\n\n if (selfClass.cthis.attr('data-pcm')) {\n\n\n } else {\n // -- we do not have pcm so we get it\n\n var data = {\n action: 'dzsap_get_pcm',\n postdata: '1',\n source: selfClass.cthis.attr('data-source'),\n playerid: selfClass.identifier_pcm\n };\n\n if (selfClass.urlToAjaxHandler) {\n $.ajax({\n type: \"POST\",\n url: selfClass.urlToAjaxHandler,\n data: data,\n success: function (response) {\n if (response) {\n\n if (response != '0' && response.indexOf(',') > -1) {\n\n response = response.replace(' data-pcm=\\'', '');\n response = response.replace('\\'', '');\n selfClass.cthis.attr('data-pcm', response);\n selfClass.isRealPcm = true;\n\n resolve({\n resolve_type: 'success'\n });\n\n } else {\n // -- response but malformed\n resolve({\n resolve_type: 'error',\n error_type: 'empty_response'\n });\n }\n\n // console.log('pcm_try_to_generate - ',pcm_try_to_generate);\n } else {\n // -- no response\n\n\n // -- cue will generate\n if (selfClass.initOptions.cue === 'on') {\n resolve({\n resolve_type: 'error',\n error_type: 'empty_response'\n });\n } else {\n selfClass.isPcmPromisingToGenerateOnMetaLoad = true; // -- we are promising generating on meta load\n if (o.pcm_data_try_to_generate_wait_for_real_pcm === 'on') {\n var default_pcm = [];\n for (var i3 = 0; i3 < 200; i3++) {\n default_pcm[i3] = Number(Math.random()).toFixed(2);\n }\n default_pcm = JSON.stringify(default_pcm);\n\n if(selfClass.initOptions.scrubbar_type==='wave'){\n self.scrubModeWave__view_transitionIn(selfClass, default_pcm);\n }\n selfClass.isRealPcm = false;\n\n scrubModeWave__checkIfWeShouldTryToGetPcm(selfClass)\n resolve({\n resolve_type: 'success'\n });\n }\n }\n }\n\n },\n error: function (arg) {\n resolve({\n resolve_type: 'error'\n });\n }\n });\n } else {\n\n }\n }\n }\n\n return new Promise((resolve, reject) => {\n tryToLoad(resolve, reject);\n });\n }\n\n try {\n tryToGetPcm().then(r => {\n if (r.resolve_type == 'success') {\n\n setTimeout(function () {\n\n\n selfClass.cthis.addClass('scrubbar-loaded');\n selfClass.calculate_dims_time();\n setTimeout(function () {\n\n // calculate_dims();\n\n }, 100);\n }, 100);\n }\n if (r.resolve_type == 'error') {\n selfClass.isPcmTryingToGenerate = true;\n scrubModeWave__initGenerateWaveData(selfClass, {\n 'call_from': 'pcm_data_try_to_generate .. no get call success'\n });\n }\n });\n } catch (error) {\n\n console.log('error - ', error);\n // Here, `error` would be an `Error` (with stack trace, etc.).\n // Whereas if you used `throw 400`, it would just be `400`.\n }\n\n\n}\n\n\nvar dzsapWaveRender = this;\n\nexport function scrubModeWave__checkIfWeShouldTryToGetPcm(selfClass, pargs) {\n\n let isWeShouldGetPcm = false;\n // console.log('scrubModeWave__checkIfWeShouldTryToGetPcm()', dzsapWaveRender);\n\n\n if (selfClass.isPcmTryingToGenerate) {\n return false;\n }\n\n\n if (selfClass.isPcmPromisingToGenerateOnMetaLoad) {\n selfClass.isPcmTryingToGenerate = true;\n isWeShouldGetPcm = true;\n }\n\n // console.log('selfClass - ', selfClass);\n if (!(selfClass.cthis.attr('data-pcm'))) {\n // console.log('selfClass - ', selfClass);\n\n\n if (!selfClass.urlToAjaxHandler) {\n\n // -- if we do not have url to ajax handler then it's clear we should generate smth..\n\n selfClass.isPcmTryingToGenerate = true;\n isWeShouldGetPcm = true;\n }\n\n }\n\n if (isWeShouldGetPcm) {\n scrubModeWave__initGenerateWaveData(selfClass, {\n 'call_from': 'pcm_data_try_to_generate .. no data-pcm'\n });\n }\n}\n\nexport function view_drawCanvases(selfClass, argpcm, calledFrom) {\n var o = selfClass.initOptions;\n\n draw_canvas(selfClass._scrubbarbg_canvas.get(0), argpcm, \"#\" + o.design_wave_color_bg, {\n call_from: calledFrom + '_bg',\n selfClass,\n 'skinwave_wave_mode_canvas_waves_number': parseInt(o.skinwave_wave_mode_canvas_waves_number, 10),\n 'skinwave_wave_mode_canvas_waves_padding': parseInt(o.skinwave_wave_mode_canvas_waves_padding, 10)\n });\n draw_canvas(selfClass._scrubbarprog_canvas.get(0), argpcm, '#' + o.design_wave_color_progress, {\n call_from: calledFrom + '_prog',\n selfClass,\n 'skinwave_wave_mode_canvas_waves_number': parseInt(o.skinwave_wave_mode_canvas_waves_number, 10),\n 'skinwave_wave_mode_canvas_waves_padding': parseInt(o.skinwave_wave_mode_canvas_waves_padding, 10),\n },\n true);\n}\n\n/**\n * called after random\n * called on wavesurfer error / success\n * @param selfClass\n * @param argpcm\n */\nexport function scrubModeWave__view_transitionIn(selfClass, argpcm) {\n\n // console.log('scrubModeWave__view_transitionIn()');\n\n\n selfClass._scrubbar.find('.scrub-bg-img,.scrub-prog-img').removeClass('transitioning-in');\n selfClass._scrubbar.find('.scrub-bg-img,.scrub-prog-img').addClass('transitioning-out');\n ;\n\n dzsapHelpers.scrubbar_modeWave_setupCanvas({\n 'prepare_for_transition_in': true\n }, selfClass);\n\n view_drawCanvases(selfClass, argpcm, 'canvas_generate_wave_data_animate_pcm');\n\n\n setTimeout(() => {\n dzsapHelpers.scrubbar_modeWave_clearObsoleteCanvas(selfClass);\n }, 300);\n\n // -- warning - not always real pcm\n selfClass.isRealPcm = true;\n selfClass.scrubbar_reveal();\n}\n\n\nexport function scrubModeWave__initGenerateWaveData(selfClass, pargs) {\n\n\n var $ = jQuery;\n var o = selfClass.initOptions;\n var margs = {\n 'call_from': 'default'\n , 'call_attempt': 0\n };\n var self = this;\n\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n if (selfClass.isRealPcm) {\n return false;\n }\n\n if (selfClass.src_real_mp3 == 'fake') {\n return false;\n }\n\n\n selfClass.isPcmTryingToGenerate = true;\n if (selfClass.isPcmTryingToGenerate) {\n\n } else {\n setTimeout(function () {\n margs.call_attempt++;\n if (margs.call_attempt < 10) {\n scrubModeWave__initGenerateWaveData(margs);\n console.log('%c [dzsap] trying to regenerate ', ConstantsDzsAp.DEBUG_STYLE_1);\n }\n }, 1000)\n return false;\n }\n\n\n // console.log('scrubModeWave__initGenerateWaveData()', margs);\n\n\n // console.log('init_generate_wave_data', selfClass.cthis.attr('data-source'));\n // console.log(selfClass.audioType);\n if (selfClass.audioType !== 'youtube') {\n\n if (window.WaveSurfer) {\n // console.log('wavesurfer already loaded');\n scrubModeWave__generateWaveData(selfClass, {\n 'call_from': 'wavesurfer already loaded'\n });\n } else {\n\n\n if (o.pcm_notice == 'on') {\n selfClass.cthis.addClass('errored-out');\n selfClass.cthis.append('<div class=\"feedback-text pcm-notice\">please wait while pcm data is generated.. </div>');\n }\n\n asyncLoadWaveSurfer(selfClass, self).then(r => console.log('[wavesurfer] loading done', r));\n\n }\n }\n}\n\n\nasync function asyncLoadWaveSurfer(selfClass, self) {\n\n\n var scripts = document.getElementsByTagName(\"script\");\n\n\n var baseUrl = '';\n for (var i23 in scripts) {\n if (scripts[i23] && scripts[i23].src) {\n if (scripts[i23].src.indexOf('audioplayer.js') > -1) {\n break;\n }\n }\n }\n var baseUrl_arr = String(scripts[i23].src).split('/');\n for (var i24 = 0; i24 < baseUrl_arr.length - 1; i24++) {\n baseUrl += baseUrl_arr[i24] + '/';\n }\n\n // console.log('baseUrl -' ,baseUrl);\n var wavesurferUrl = ConstantsDzsAp.URL_WAVESURFER;\n if (baseUrl) {\n wavesurferUrl = baseUrl + 'wavesurfer.js';\n }\n\n var $ = jQuery;\n\n function tryToLoad_waveSurferScript(resolve, reject) {\n\n window.dzsap_wavesurfer_load_attempt++;\n\n if (window.dzsap_wavesurfer_load_attempt > 2) {\n wavesurferUrl = ConstantsDzsAp.URL_WAVESURFER;\n }\n if (window.dzsap_wavesurfer_load_attempt < 6) {\n // console.log('load wavesurfer');\n $.ajax({\n url: wavesurferUrl,\n dataType: \"script\",\n success: function (arg) {\n //console.log(arg);\n scrubModeWave__generateWaveData(selfClass, {\n 'call_from': 'load_script'\n , 'wavesurfer_url': wavesurferUrl\n });\n\n resolve('done');\n },\n error: function (arg) {\n\n // console.log('[wavesurfer] errored out ... ', this, arg);\n tryToLoad_waveSurferScript(resolve, reject);\n }\n });\n }\n if (window.dzsap_wavesurfer_load_attempt > 6) {\n reject('rejected');\n }\n }\n\n let promise = new Promise((resolve, reject) => {\n tryToLoad_waveSurferScript(resolve, reject);\n });\n\n let result = await promise; // wait until the promise resolves (*)\n\n // console.log('resolved',result);\n return result;\n\n}\n\nexport function scrubModeWave__generateWaveData(selfClass, pargs) {\n\n var $ = jQuery;\n var o = selfClass.initOptions;\n\n var margs = {\n call_from: 'default'\n }\n var self = this;\n\n if (pargs) {\n $.extend(margs, pargs);\n }\n\n\n if (selfClass.src_real_mp3 !== 'fake') {\n\n } else {\n return false;\n }\n\n\n async function wavesurfer_renderPcm() {\n\n function asyncRenderPcm(resolve, reject) {\n // resolve(400);\n\n\n // -- make sure we are generating only once\n if (window.dzsap_generating_pcm) {\n setTimeout(function () {\n asyncRenderPcm(resolve, reject);\n }, 1000);\n return false;\n }\n window.dzsap_generating_pcm = true;\n\n\n var wavesurferConId = 'wavesurfer_' + Math.ceil(Math.random() * 10000);\n if (selfClass.identifier_pcm) {\n wavesurferConId = 'wavesurfer_' + selfClass.identifier_pcm;\n }\n selfClass.cthis.append('<div id=\"' + wavesurferConId + '\" class=\"hidden\"></div>');\n\n var wavesurfer = WaveSurfer.create({\n container: '#' + wavesurferConId\n , normalize: true\n , pixelRatio: 1\n });\n\n\n // -- we will not generate for this\n if (String(selfClass.cthis.attr('data-source')).indexOf('https://soundcloud.com') === 0 || selfClass.cthis.attr('data-source') === 'fake') {\n return;\n }\n if (String(selfClass.cthis.attr('data-source')).indexOf('https://api.soundcloud.com') === 0) {\n }\n\n\n // console.log('[wavesurfer] selfClass.src_real_mp3 - ' + selfClass.src_real_mp3, selfClass.src_real_mp3);\n try {\n wavesurfer.load(selfClass.src_real_mp3);\n } catch (err) {\n console.log(\"[wavesurfer] WAVE SURFER NO LOAD\");\n }\n\n\n wavesurfer.on('ready', function () {\n // wavesurfer.play();\n console.log('[dzsap] [wavesurfer] generating wave data for ', selfClass.identifier_pcm);\n\n var accuracy = 100;\n if (selfClass.$mediaNode_ && selfClass.$mediaNode_.duration && selfClass.$mediaNode_.duration > 1000) {\n accuracy = 100;\n }\n\n // console.log(selfClass.$mediaNode_, selfClass.$mediaNode_.duration);\n\n var pcmDataArr = [];\n var pcmDataString = '';\n if (wavesurfer && wavesurfer.exportPCM) {\n\n pcmDataString = wavesurfer.exportPCM(o.wavesurfer_pcm_length, accuracy, true);\n\n let isPcmDataArrValid = false;\n try {\n pcmDataArr = JSON.parse(pcmDataString);\n\n for (let i in pcmDataArr) {\n if (pcmDataArr[i] !== null && pcmDataArr[i] !== 0 && pcmDataArr[i] !== \"0\") {\n isPcmDataArrValid = true;\n }\n }\n } catch (err) {\n isPcmDataArrValid = false;\n }\n if (!isPcmDataArrValid) {\n pcmDataArr = wavesurfer.backend.getPeaks(margs.wavesurfer_pcm_length, 0, margs.wavesurfer_pcm_length);\n }\n\n for (let i in pcmDataArr) {\n if (pcmDataArr[i] !== null && pcmDataArr[i] !== 0 && pcmDataArr[i] !== \"0\") {\n pcmDataArr[i] = Math.abs(Number(Number(pcmDataArr[i]).toFixed(2)));\n }\n }\n } else {\n pcmDataArr = dzsapHelpers.generateFakeArrayForPcm();\n }\n\n pcmDataString = JSON.stringify(pcmDataArr);\n resolve({\n resolve_type: 'success',\n pcm_data: pcmDataString\n })\n });\n\n wavesurfer.on('error', function (err, err2) {\n reject({\n error_type: 'wavesurfer_error',\n error_message: err,\n })\n });\n\n\n setTimeout(() => {\n\n reject({\n error_type: 'wavesurfer_timeout',\n error_message: 'timeout',\n })\n\n }, ConstantsDzsAp.WAVESURFER_MAX_TIMEOUT);\n }\n\n // -- end promise\n\n\n let promise = new Promise((resolve, reject) => {\n asyncRenderPcm(resolve, reject);\n });\n\n return promise;\n }\n\n wavesurfer_renderPcm().then(responsePcm => {\n // console.log('%c [dzsap] [wave] success rendering pcm - ', ConstantsDzsAp.DEBUG_STYLE_PLAY_FUNCTIONS, responsePcm)\n\n scrubModeWave__sendPcm(selfClass, responsePcm.pcm_data);\n scrubModeWave__view_transitionIn(selfClass, responsePcm.pcm_data);\n }).catch(err => {\n\n var randomPcm = [];\n\n for (var i3 = 0; i3 < 200; i3++) {\n randomPcm[i3] = Math.abs(Number(Math.random()).toFixed(3));\n }\n randomPcm = JSON.stringify(randomPcm);\n\n console.log('%c [dzsap] [wave] error while generating pcm - ', ConstantsDzsAp.DEBUG_STYLE_PLAY_FUNCTIONS, err, err.error_message)\n\n scrubModeWave__sendPcm(selfClass, randomPcm);\n scrubModeWave__view_transitionIn(selfClass, randomPcm);\n });\n\n}\n\nexport function scrubModeWave__sendPcm(selfClass, pcmArray) {\n var $ = jQuery;\n\n\n try {\n if (pcmArray.constructor === Array) {\n pcmArray = String('[' + String(pcmArray) + ']');\n }\n // -- convert to absolute\n pcmArray = JSON.stringify(JSON.parse(String(pcmArray)).map(Math.abs));\n } catch (err) {\n console.log('%c [dzsap] [wave] error while generating pcm - ', ConstantsDzsAp.DEBUG_STYLE_PLAY_FUNCTIONS, err, 'ar_str - ', pcmArray, typeof pcmArray);\n }\n\n selfClass.cthis.attr('data-pcm', pcmArray);\n if (selfClass.$feed_fakeButton && selfClass.$feed_fakeButton.attr) {\n selfClass.$feed_fakeButton.attr('data-pcm', pcmArray);\n }\n if (selfClass._sourcePlayer && selfClass._sourcePlayer.attr) {\n selfClass._sourcePlayer.attr('data-pcm', pcmArray);\n }\n\n\n // console.log(\"which is fake player ? \", selfClass.cthis, selfClass._actualPlayer, _sourcePlayer);\n\n\n selfClass.cthis.find('.pcm-notice').fadeOut(\"fast\");\n selfClass.cthis.removeClass('errored-out');\n\n\n // console.log('generating wave data for '+selfClass.cthis.attr('data-source'));\n // console.log('%c selfClass.identifier_pcm before- ','color: #dd0022; background-color: #eee;', selfClass.identifier_pcm, selfClass.cthis);\n\n if (!selfClass.identifier_pcm) {\n selfClass.identifier_pcm = selfClass.cthis.attr('data-source');\n\n\n if (selfClass.original_real_mp3) {\n selfClass.identifier_pcm = selfClass.original_real_mp3;\n }\n }\n\n\n // console.log('%c selfClass.identifier_pcm- ','color: #dd0022; background-color: #eee;', selfClass.identifier_pcm, selfClass.cthis);\n\n\n const data = {\n action: 'dzsap_submit_pcm'\n , postdata: pcmArray\n , playerid: selfClass.identifier_pcm\n , source: selfClass.cthis.attr('data-source')\n };\n\n\n window.dzsap_generating_pcm = false;\n\n\n if (selfClass.urlToAjaxHandler) {\n\n\n $.ajax({\n type: \"POST\",\n url: selfClass.urlToAjaxHandler,\n data: data,\n success: function (response) {\n\n }\n });\n }\n}\n\n\n/**\n * draw canvas here\n * @param $canvas_\n * @param pcm_arr\n * @param hexcolor\n * @param pargs\n * @param isProgressScrubContext\n * @returns {boolean}\n */\nexport function draw_canvas($canvas_, pcm_arr, hexcolor, pargs, isProgressScrubContext) {\n var margs = {\n 'call_from': 'default',\n 'is_sample': false,\n 'selfClass': null,\n 'sample_time_start': 0,\n 'sample_time_end': 0,\n 'sample_time_total': 0,\n 'skinwave_wave_mode_canvas_waves_number': 2,\n 'skinwave_wave_mode_canvas_waves_padding': 1,\n };\n\n var $ = jQuery;\n if (pargs) {\n margs = Object.assign(margs, pargs);\n }\n\n hexcolor = dzsapHelpers.sanitizeToHexColor(hexcolor);\n\n var _canvas = $($canvas_);\n var __canvas = $canvas_;\n let isWithinSample = false;\n var { selfClass, skinwave_wave_mode_canvas_waves_number, skinwave_wave_mode_canvas_waves_padding } = margs;\n\n // -- sanitize\n if (isNaN(Number(skinwave_wave_mode_canvas_waves_number))) {\n skinwave_wave_mode_canvas_waves_number = 2;\n }\n\n if (isNaN(Number(skinwave_wave_mode_canvas_waves_padding))) {\n if (skinwave_wave_mode_canvas_waves_number !== 1) {\n skinwave_wave_mode_canvas_waves_padding = 1;\n } else {\n\n skinwave_wave_mode_canvas_waves_padding = 0;\n }\n }\n\n\n if (selfClass) {\n var o = selfClass.initOptions;\n }\n // console.log('o - ', o);\n\n\n // console.log('[dzsap] draw_canvas() - ', margs, margs.call_from, 'hexcolor - ', hexcolor, _canvas);\n if (_canvas && _canvas.get(0)) {\n\n } else {\n return false;\n }\n\n var _canvasContext = _canvas.get(0).getContext(\"2d\");\n\n var ar_str = pcm_arr;\n\n\n var waves = [];\n // console.log('selfClass - ', selfClass);\n if (selfClass && selfClass._scrubbar) {\n if (selfClass._scrubbarprog_canvas) {\n selfClass._scrubbarbg_canvas.width(selfClass._scrubbar.width());\n selfClass._scrubbarprog_canvas.width(selfClass._scrubbar.width());\n $canvas_.width = selfClass._scrubbar.width();\n $canvas_.height = selfClass._scrubbar.height();\n }\n }\n // ctx.translate(0.5, 0.5);\n // ctx.lineWidth = .5;\n\n _canvasContext.imageSmoothingEnabled = false;\n _canvasContext.imageSmoothing = false;\n _canvasContext.imageSmoothingQuality = \"high\";\n _canvasContext.webkitImageSmoothing = false;\n\n if (pcm_arr) {\n\n } else {\n setTimeout(function () {\n // draw_canvas(_arg,pcm_arr,hexcolor);\n }, 1000);\n return false;\n }\n\n if (typeof (ar_str) == 'object') {\n waves = ar_str;\n } else {\n try {\n\n waves = JSON.parse(ar_str);\n } catch (err) {\n // console.error('parse error - ',ar_str, ar_str!='');\n }\n }\n\n\n var barIndex = 0,\n max = 0;\n\n // console.log(ar);\n\n // -- normalizing\n for (barIndex = 0; barIndex < waves.length; barIndex++) {\n if ((waves[barIndex]) > max) {\n max = (waves[barIndex]);\n }\n }\n\n var ar_new = [];\n for (barIndex = 0; barIndex < waves.length; barIndex++) {\n ar_new[barIndex] = parseFloat(Math.abs(waves[barIndex]) / Number(max));\n }\n\n waves = ar_new;\n\n\n var widthCanvas;\n var heightCanvas;\n var gradient = null;\n\n\n if (selfClass) {\n\n __canvas.width = selfClass._scrubbar.width();\n }\n\n widthCanvas = __canvas.width;\n heightCanvas = __canvas.height;\n\n\n var barCount = skinwave_wave_mode_canvas_waves_number;\n var bar_space = skinwave_wave_mode_canvas_waves_padding;\n\n // console.log(bar_len);\n if (barCount == 1) {\n barCount = widthCanvas / barCount;\n }\n if (barCount == 2) {\n barCount = widthCanvas / 2;\n }\n if (barCount == 3) {\n barCount = (widthCanvas) / 3;\n }\n\n // console.log('bar_len - ',bar_len);\n // console.log('pcm_arr - ',pcm_arr);\n\n\n var reflection_size = parseFloat(o.skinwave_wave_mode_canvas_reflection_size);\n\n if (widthCanvas / barCount < 1) {\n barCount = Math.ceil(barCount / 3);\n\n }\n\n\n // console.log({reflection_size});\n var bar_w = Math.ceil(widthCanvas / barCount);\n var normal_size_ratio = 1 - reflection_size;\n\n // console.log(\"bar_w - \",bar_w);\n // console.log({normal_size_ratio});\n\n if (bar_w == 0) {\n bar_w = 1;\n bar_space = 0;\n }\n if (bar_w == 1) {\n bar_space = bar_space / 2;\n }\n // console.log('bar_w - ', bar_w, bar_space);\n\n\n // console.log('chh - ', chh, ' normal_size_ratio - ', normal_size_ratio, 'ar - ', ar);\n var lastBarHeight = 0;\n var searched_index = null;\n\n\n // -- left right gradient\n var temp_hex = hexcolor;\n temp_hex = temp_hex.replace('#', '');\n var hexcolors = []; // -- hex colors array\n if (temp_hex.indexOf(',') > -1) {\n hexcolors = temp_hex.split(',');\n }\n\n\n var progress_hexcolor = '';\n var progress_hexcolors = '';\n\n\n if (margs.call_from == 'spectrum') {\n progress_hexcolor = o.design_wave_color_progress;\n progress_hexcolor = progress_hexcolor.replace('#', '');\n progress_hexcolors = []; // -- hex colors array\n if (progress_hexcolor.indexOf(',') > -1) {\n progress_hexcolors = progress_hexcolor.split(',');\n\n }\n }\n\n\n var spectrum_isBarWithinProgress = false; // -- color the bar in progress colors\n\n // -- left right gradient END\n\n\n /**\n * draw with different color\n * @param i\n * @returns {boolean}\n */\n function isBeforeOrAfterSample(currBarIndex) {\n\n // console.log('sampleTimes - ', currBarIndex, selfClass.timeModel.sampleTimeStart, selfClass.timeModel.sampleTimeEnd, selfClass.timeModel.sampleTimeTotal);\n\n if ((currBarIndex / barCount < selfClass.timeModel.sampleTimeStart / selfClass.timeModel.sampleTimeTotal) || currBarIndex / barCount > selfClass.timeModel.sampleTimeEnd / selfClass.timeModel.sampleTimeTotal) {\n\n return true;\n }\n return false;\n }\n\n function view_drawBars(isReflection = false) {\n for (barIndex = 0; barIndex < barCount; barIndex++) {\n isWithinSample = false;\n _canvasContext.save();\n\n // console.log('ar[searched_index] - ', ar[searched_index]);\n searched_index = Math.ceil(barIndex * (waves.length / barCount));\n\n // -- we'll try to prevent\n if (barIndex < barCount / 5) {\n if (waves[searched_index] < 0.1) {\n waves[searched_index] = 0.1;\n }\n }\n if (waves.length > barCount * 2.5 && barIndex > 0 && barIndex < waves.length - 1) {\n waves[searched_index] = Math.abs(waves[searched_index] + waves[searched_index - 1] + waves[searched_index + 1]) / 3\n }\n // -- normalize end\n\n\n // var barh = Math.abs(ar[searched_index] * chh);\n let targetRatio = normal_size_ratio;\n if (isReflection) {\n targetRatio = reflection_size;\n }\n\n var barHeight = Math.abs(waves[searched_index] * heightCanvas * targetRatio);\n\n // -- let's try to normalize\n if (o.skinwave_wave_mode_canvas_normalize == 'on') {\n if (isNaN(lastBarHeight)) {\n lastBarHeight = 0;\n }\n barHeight = barHeight / 1.5 + lastBarHeight / 2.5;\n }\n lastBarHeight = barHeight;\n\n\n _canvasContext.lineWidth = 0;\n barHeight = Math.floor(barHeight);\n // debugger;\n // if(isReflection){\n // console.log('isReflection', {bar: waves[searched_index], barHeight, targetRatio, heightCanvas});\n // }\n\n // var y = chh * normal_size_ratio - barh_normal;\n var barPositionTop = isReflection ? heightCanvas * normal_size_ratio : Math.ceil(heightCanvas * targetRatio - barHeight);\n\n // if(isReflection){\n // console.log('isReflection', {barPositionTop});\n // }\n _canvasContext.beginPath();\n _canvasContext.rect(barIndex * bar_w, barPositionTop, bar_w - bar_space, barHeight);\n\n // console.log('[dzsap] [waveform] draw rect props - ', i * bar_w, bar_w - bar_space ,barh_normal, ' bar_w - ', bar_w, 'bar_space - ',bar_space);\n // console.log('barh_normal - ', barh_normal, ' y - ', y);\n\n\n if (margs.call_from == 'spectrum') {\n if (barIndex / barCount < selfClass.timeCurrent / selfClass.timeTotal) {\n spectrum_isBarWithinProgress = true;\n } else {\n spectrum_isBarWithinProgress = false;\n }\n }\n\n\n if (selfClass.isSample) {\n isWithinSample = isBeforeOrAfterSample(barIndex);\n }\n // console.log({isWithinSample, spectrum_isBarWithinProgress});\n\n if (spectrum_isBarWithinProgress) {\n if (isReflection && o.skinwave_wave_mode_canvas_mode !== 'reflecto') {\n _canvasContext.fillStyle = dzsapHelpers.hexToRgb(progress_hexcolor, 0.25);\n } else {\n _canvasContext.fillStyle = isWithinSample ? dzsapHelpers.hexToRgb(progress_hexcolor, 0.5) : '#' + progress_hexcolor;\n }\n\n\n if (progress_hexcolors.length) {\n\n const startColor = isReflection && o.skinwave_wave_mode_canvas_mode !== 'reflecto' ? dzsapHelpers.hexToRgb('#' + progress_hexcolors[0], 0.25) : '#' + progress_hexcolors[0];\n const endColor = isReflection && o.skinwave_wave_mode_canvas_mode !== 'reflecto' ? dzsapHelpers.hexToRgb('#' + progress_hexcolors[1], 0.25) : '#' + progress_hexcolors[1];\n\n gradient = _canvasContext.createLinearGradient(0, 0, 0, heightCanvas);\n gradient.addColorStop(0, startColor);\n gradient.addColorStop(1, endColor);\n _canvasContext.fillStyle = gradient;\n }\n\n } else {\n /**\n * normal\n */\n\n // -- NORMAL not progress\n if (isReflection && o.skinwave_wave_mode_canvas_mode !== 'reflecto') {\n _canvasContext.fillStyle = dzsapHelpers.hexToRgb(hexcolor, 0.25);\n } else {\n // console.log({hexcolor});\n _canvasContext.fillStyle = isWithinSample ? dzsapHelpers.hexToRgb(hexcolor, 0.5) : '' + hexcolor;\n }\n\n // -- if we have gradient\n if (hexcolors.length) {\n const startColor = isReflection && o.skinwave_wave_mode_canvas_mode !== 'reflecto' ? dzsapHelpers.hexToRgb(dzsapHelpers.utils_sanitizeToColor(hexcolors[0]), 0.25) : '' + dzsapHelpers.utils_sanitizeToColor(hexcolors[0]);\n const endColor = isReflection && o.skinwave_wave_mode_canvas_mode !== 'reflecto' ? dzsapHelpers.hexToRgb(dzsapHelpers.utils_sanitizeToColor(hexcolors[1]), 0.25) : '' + dzsapHelpers.utils_sanitizeToColor(hexcolors[1]);\n\n gradient = _canvasContext.createLinearGradient(0, 0, 0, heightCanvas);\n gradient.addColorStop(0, startColor);\n gradient.addColorStop(1, endColor);\n _canvasContext.fillStyle = gradient;\n }\n // if (!isReflection && isProgressScrubContext) {\n // console.log('scrubProgress - _canvasContext.fillStyle - ', _canvasContext.fillStyle, {isWithinSample});\n // }\n // if(isReflection){\n // console.log('isReflection _canvasContext.fillStyle - ', _canvasContext.fillStyle);\n // }\n }\n\n\n if (!(isWithinSample && isProgressScrubContext)) {\n\n // console.log('ctx.fillStyle - ',ctx.fillStyle);\n _canvasContext.fill();\n _canvasContext.closePath();\n }\n\n\n _canvasContext.restore();\n\n }\n\n }\n\n\n _canvasContext.clearRect(0, 0, widthCanvas, heightCanvas);\n // console.log('bar_len - ', bar_len);\n view_drawBars();\n view_drawBars(true);\n\n // -- reflection\n setTimeout(function () {\n selfClass.scrubbar_reveal();\n }, 100)\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tif(mode & 2 && typeof value == 'object' && value) {\n\t\tfor(const key in value) def[key] = () => value[key];\n\t}\n\tdef['default'] = () => value;\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import * as dzsapHelpers from '../_dzsap_helpers';\nimport * as dzsHelpers from '../../js_common/_dzs_helpers';\nimport {ConstantsDzsAp} from \"../../configs/_constants\";\n\nexport const media_tryToPlay = function (selfClass, callbackFn, errorFn) {\n async function async_media_tryToPlay() {\n function tryToPlay(resolve, reject) {\n if (selfClass.cthis.attr('data-original-type')) {\n // -- then this player is feeding\n } else {\n\n // -- no audioCtx_buffer\n if (selfClass.$mediaNode_) {\n if (selfClass.$mediaNode_.play) {\n\n\n if (dzsapHelpers.is_ios() && selfClass.spectrum_audioContext !== null && typeof selfClass.spectrum_audioContext == 'object') {\n // todo: ios not playing nice.. with audio context\n // console.log('selfClass.spectrum_audioContext - ', typeof selfClass.spectrum_audioContext, selfClass.spectrum_audioContext);\n selfClass.spectrum_audioContextBufferSource = selfClass.spectrum_audioContext.createBufferSource();\n selfClass.spectrum_audioContextBufferSource.buffer = selfClass.spectrum_audioContext_buffer;\n selfClass.spectrum_audioContextBufferSource.connect(selfClass.spectrum_audioContext.destination);\n // selfClass.spectrum_audioContextBufferSource.connect(selfClass.spectrum_analyser)\n selfClass.spectrum_audioContextBufferSource.start(0, selfClass.lastTimeInSeconds);\n resolve({\n 'resolve_type': 'playing_context'\n })\n } else {\n\n if (dzsapHelpers.is_ie()) {\n selfClass.$mediaNode_.play();\n resolve({\n 'resolve_type': 'started_playing'\n })\n } else {\n\n selfClass.$mediaNode_.play().then(r => {\n resolve({\n 'resolve_type': 'started_playing'\n })\n }).catch(err => {\n reject({\n 'error_type': 'did not want to play',\n 'error_message': err\n });\n });\n }\n }\n } else {\n if (selfClass._actualPlayer == null) {\n selfClass.isPlayPromised = true;\n }\n\n }\n } else {\n if (selfClass._actualPlayer == null) {\n selfClass.isPlayPromised = true;\n }\n }\n\n\n }\n\n }\n\n return new Promise((resolve, reject) => {\n\n tryToPlay(resolve, reject);\n\n })\n }\n\n async_media_tryToPlay().then((r) => {\n callbackFn(r);\n }).catch((err) => {\n errorFn(err);\n })\n\n}\n\nexport const setupMediaListeners = function (selfClass, setupMediaAttrs, init_loaded, volume_lastVolume, volume_setVolume) {\n\n var attempt_reload = 0;\n\n function handleAudioError(e) {\n /** @type {HTMLAudioElement} */\n const $audioElement_ = this;\n\n console.log('errored out', $audioElement_, $audioElement_.duration, e, e.target.error);\n var noSourcesLoaded = ($audioElement_.networkState === HTMLMediaElement.NETWORK_NO_SOURCE);\n if (noSourcesLoaded && dzsapHelpers.dzsap_is_mobile() === false) {\n if (selfClass.cthis.hasClass(ConstantsDzsAp.ERRORED_OUT_CLASS) === false) {\n console.log(\"%c could not load audio source - \", 'color:#ff2222;', selfClass.cthis.attr('data-source'));\n\n if (attempt_reload < ConstantsDzsAp.ERRORED_OUT_MAX_ATTEMPTS) {\n setTimeout(function (earg) {\n if (selfClass.$mediaNode_) {\n selfClass.$mediaNode_.src = '';\n }\n\n\n setTimeout(function () {\n if (selfClass.$mediaNode_) {\n selfClass.$mediaNode_.src = selfClass.data_source;\n selfClass.$mediaNode_.load();\n }\n }, 1000)\n }, 1000, e)\n attempt_reload++;\n } else {\n\n // -- IT FAILED LOADING\n\n if (selfClass.initOptions.notice_no_media === 'on') {\n selfClass.cthis.addClass(ConstantsDzsAp.ERRORED_OUT_CLASS);\n var txt = 'error - file does not exist...';\n if (e.target.error) {\n txt = e.target.error.message;\n }\n selfClass.cthis.append(dzsHelpers.setupTooltip({\n tooltipConClass: ' feedback-tooltip-con',\n tooltipIndicatorText: '<span class=\"player-but\"><span class=\"the-icon-bg\" style=\"background-color: #912c2c\"></span><span class=\"svg-icon dzsap-color-ui-inverse\" >ℹ</span></span>',\n tooltipInnerHTML: 'cannot load - ( ' + selfClass.data_source + ' ) - error: ' + txt,\n }));\n }\n }\n }\n }\n }\n\n selfClass.$mediaNode_.addEventListener('error', handleAudioError, true);\n selfClass.$mediaNode_.addEventListener('loadedmetadata', handleMediaMetaLoaded, true);\n\n function handleMediaMetaLoaded(e) {\n // console.log('[media] handleMediaLoaded', {setupMediaAttrs}, 'selfClass._sourcePlayer - ' ,selfClass._sourcePlayer);\n\n // console.log('add metaloaded here');\n dzsapHelpers.player_view_addMetaLoaded(selfClass);\n\n\n // console.log('margs.called_from - ', margs.called_from, cthis);\n if (setupMediaAttrs.called_from === 'change_media') {\n if (selfClass.cthis.hasClass('init-loaded') === false) {\n init_loaded({\n 'call_from': 'force_reload_change_media'\n })\n }\n }\n\n if (setupMediaAttrs.called_from === 'change_media' || selfClass._sourcePlayer) {\n if (volume_lastVolume) {\n setTimeout(() => {\n volume_setVolume(volume_lastVolume, {\n call_from: \"change_media\"\n });\n }, 50);\n }\n }\n\n if(selfClass._sourcePlayer){\n\n // console.log(this.duration);\n if(this.duration){\n selfClass._sourcePlayer.get(0).api_set_timeVisualTotal(this.duration)\n\n }\n }\n\n // console.log('call selfClass.view_drawCurrentTime()');\n selfClass.view_drawCurrentTime();\n }\n\n}\n\n\nexport const setupSoftWatermark = function (selfClass, type_normal_stream_type) {\n\n selfClass.$theMedia.append('<audio id=\"' + selfClass.uniqueId + '-soft-watermark\" class=\"the-watermark\" preload=\"metadata\" loop><source src=\"' + cthis.attr('data-soft-watermark') + '\" /></audio>');\n selfClass.$watermarkMedia_ = selfClass.$theMedia.find('.the-watermark').get(0);\n\n if (selfClass.$watermarkMedia_.volume) {\n selfClass.$watermarkMedia_.volume = defaultVolume * o.watermark_volume;\n }\n}\nexport const buildAudioElementHtml = function (selfClass, type_normal_stream_type, calledFrom) {\n\n var stringAudioTagOpen = '';\n var stringAudioTagSource = '';\n var stringAudioTagClose = '';\n var o = selfClass.initOptions;\n\n\n if (selfClass.data_source) {\n if (selfClass.data_source.indexOf('get_track_source') > -1) {\n o.preload_method = 'none';\n }\n }\n\n stringAudioTagOpen += '<audio';\n stringAudioTagOpen += ' id=\"' + selfClass.uniqueId + '-audio\"';\n stringAudioTagOpen += ' preload=\"' + o.preload_method + '\"';\n if (o.skinwave_enableSpectrum === 'on') {\n stringAudioTagOpen += ' crossOrigin=\"anonymous\"';\n // str_open_audio_tag += ' src=\"'+cthis.attr('data-source')+'\"';\n }\n\n if (dzsapHelpers.is_ios()) {\n if (calledFrom === 'change_media') {\n stringAudioTagOpen += ' autoplay';\n }\n }\n\n stringAudioTagOpen += '>';\n stringAudioTagSource = '';\n\n // console.log('cthis.attr(\"data-source\")', cthis.attr('data-source'));\n if (selfClass.data_source) {\n\n if (!selfClass.data_source && type_normal_stream_type !== 'icecast') {\n selfClass.data_source = selfClass.cthis.attr('data-source');\n }\n\n // console.log('selfClass.data_source'+' - '+selfClass.data_source)\n if (selfClass.data_source !== 'fake') {\n stringAudioTagSource += '<source src=\"' + selfClass.data_source + '\" type=\"audio/mpeg\">';\n if (selfClass.cthis.attr('data-sourceogg') !== undefined) {\n stringAudioTagSource += '<source src=\"' + selfClass.cthis.attr('data-sourceogg') + '\" type=\"audio/ogg\">';\n }\n } else {\n selfClass.cthis.addClass('meta-loaded meta-fake');\n }\n }\n stringAudioTagClose += '</audio>';\n\n\n return {\n stringAudioElementHtml: stringAudioTagOpen + stringAudioTagSource + stringAudioTagClose,\n stringAudioTagSource\n };\n //console.log(str_open_audio_tag, selfClass.$theMedia);\n}\n\n\nexport const media_pause = function (selfClass, callbackFn) {\n\n var $ = jQuery;\n\n\n if (selfClass.audioType === 'youtube') {\n\n // console.log('trying to pause youtube video, ',selfClass.$mediaNode_);\n if (selfClass.$mediaNode_ && selfClass.$mediaNode_.pauseVideo) {\n selfClass.$mediaNode_.pauseVideo();\n }\n }\n if (selfClass.audioType === 'selfHosted') {\n\n if (0) {\n } else {\n if (selfClass.$mediaNode_) {\n\n if (selfClass.initOptions.pause_method == 'stop') {\n\n selfClass.$mediaNode_.pause();\n selfClass.$mediaNode_.src = '';\n\n\n selfClass.destroy_cmedia();\n $(selfClass.$mediaNode_).remove();\n selfClass.$mediaNode_ = null;\n } else {\n\n if (selfClass.$mediaNode_.pause) {\n selfClass.$mediaNode_.pause();\n }\n }\n }\n if (selfClass.$watermarkMedia_ && selfClass.$watermarkMedia_.pause) {\n selfClass.$watermarkMedia_.pause();\n\n }\n\n }\n\n\n }\n\n callbackFn();\n\n}\n\n","import * as dzsapHelpers from \"../_dzsap_helpers\";\nconst dzsapMisc = require('../_dzsap_misc');\nconst dzsapWaveFunctions = require('../wave-render/_wave-render-functions');\nimport {ConstantsDzsAp} from \"../../configs/_constants\";\n\nexport function media_changeMedia(selfClass, $){\n /**\n * change media source for the player / change_media(\"song.mp3\", {type:\"audio\", fakeplayer_is_feeder:\"off\"});\n * @param _argSource - can be player dom element\n * @param pargs - {type:\"audio\", fakeplayer_is_feeder:\"off\"}\n * @returns {boolean}\n */\n return function(_argSource, pargs = {}) {\n\n\n var changeMediaArgsDefaults = {\n type: '',\n fakeplayer_is_feeder: 'off' // -- this is OFF in case there is a button feeding it, and on if it's an actual player\n , called_from: 'default'\n , source: 'default'\n , pcm: ''\n , artist: \"\"\n , song_name: \"\"\n , thumb: \"\"\n , thumb_link: \"\"\n , autoplay: \"on\"\n , cue: \"on\"\n , feeder_type: \"player\"\n , source_player_do_not_update: \"off\"\n , watermark: \"\"\n , watermark_volume: \"\"\n , playerid: \"\"\n };\n\n\n selfClass.ajax_view_submitted = 'on'; // -- view submitted from caller\n\n // console.log('margs initial -> ',Object.assign({},margs));\n // console.log('pargs initial -> ',Object.assign({},pargs));\n var handle_resize_delay = 500;\n var changeMediaArgs = {...changeMediaArgsDefaults, ...pargs};\n var o = selfClass.initOptions;\n // margs = Object.assign(margs, pargs);\n // console.log(\"_argSource -\",_argSource,'changeMediaArgs - ',Object.assign({},changeMediaArgs), 'pargs -5 ', Object.assign({},pargs));\n\n // console.log('%c change_media() -','background-color: #444; color: #dd5555;', changeMediaArgs, selfClass.cthis, pargs);\n var _sourceForChange = _argSource;\n\n\n\n var isSourceAStringSource = false;\n\n $('.current-feeder-for-parent-player').removeClass('current-feeder-for-parent-player');\n //console.log('change_media', \"margs - \", margs, cthis, selfClass._sourcePlayer, arg);\n\n if (typeof _sourceForChange === 'string') {\n isSourceAStringSource = true;\n }\n\n\n // -- let us decide if we pause old player\n var isGoingToPauseTheOldPlayer = true;\n\n if (!isSourceAStringSource && selfClass.data_source === _sourceForChange.attr('data-source')) {\n isGoingToPauseTheOldPlayer = false;\n }\n if (isSourceAStringSource && selfClass.data_source=== _sourceForChange) {\n isGoingToPauseTheOldPlayer = false;\n }\n\n // -- old feed fake player\n\n if (isGoingToPauseTheOldPlayer && selfClass._sourcePlayer) {\n selfClass._sourcePlayer.get(0).api_pause_media_visual({\n 'call_from': 'change_media'\n });\n selfClass._sourcePlayer.get(0).api_set_timeVisualTotal(0);\n }\n\n // -- we are in one mode, so we need to preserve the originalSettings of the first item\n if (!(selfClass.cthis.data('original-settings')) && selfClass.data_source !== 'fake') {\n selfClass.cthis.data('original-settings', dzsapHelpers.sanitizeObjectForChangeMediaArgs(selfClass.cthis))\n }\n\n\n // console.log('changeMediaArgs here - ', {...changeMediaArgs});\n if (!isSourceAStringSource) {\n changeMediaArgs = {...changeMediaArgs, ...dzsapHelpers.sanitizeObjectForChangeMediaArgs(_sourceForChange)};\n }\n // console.log('changeMediaArgs here - ', {...changeMediaArgs});\n\n const oldSource = selfClass.data_source;\n selfClass.data_source = changeMediaArgs.source;\n\n const isSourceHasClassForDomSource = isSourceAStringSource === false && !!(!!_sourceForChange.hasClass('audioplayer') === true || _sourceForChange.hasClass('is-zoomsounds-source-player'));\n\n\n if ((isSourceHasClassForDomSource) || changeMediaArgs.fakeplayer_is_feeder === 'on') {\n\n selfClass.set_sourcePlayer(_sourceForChange)\n selfClass.cthis.data('feeding-from', selfClass._sourcePlayer.get(0));\n selfClass._sourcePlayer.addClass('current-feeder-for-parent-player');\n }\n\n if (!isSourceAStringSource && _sourceForChange) {\n if (_sourceForChange.attr('data-playerid')) {\n selfClass.cthis.attr('data-feed-playerid', _sourceForChange.attr('data-playerid'));\n } else {\n selfClass.cthis.attr('data-feed-playerid', '');\n changeMediaArgs.playerid = '';\n }\n }\n\n\n // console.log('change_media', \"changeMediaArgs - \", changeMediaArgs);\n\n // --- if the media is the same DON'T CHANGE IT\n if (selfClass._sourcePlayer && changeMediaArgsDefaults.source_player_do_not_update !== 'on') {\n // console.error(cthis.attr('data-source'), arg.attr('data-source'));\n if (oldSource === _sourceForChange.attr('data-source')) {\n return false;\n }\n } else {\n if (oldSource === _sourceForChange) {\n return false;\n }\n\n }\n\n\n if (changeMediaArgs.type === 'detect' || changeMediaArgs.type === 'audio' || changeMediaArgs.type === 'normal') {\n changeMediaArgs.type = 'selfHosted';\n }\n\n\n selfClass.cthis.removeClass('meta-loaded');\n\n\n // -- footer placeholder\n if (selfClass.cthis.parent().hasClass('audioplayer-was-loaded')) {\n\n selfClass.cthis.parent().addClass('audioplayer-loaded');\n $('body').addClass('footer-audioplayer-loaded');\n selfClass.cthis.parent().removeClass('audioplayer-was-loaded');\n }\n\n if (selfClass.$stickToBottomContainer) {\n selfClass.$stickToBottomContainer.addClass('audioplayer-loaded');\n }\n\n\n selfClass.cthis.removeClass(ConstantsDzsAp.ERRORED_OUT_CLASS);\n\n\n selfClass.destroy_media();\n\n\n selfClass.cthis.attr('data-source', changeMediaArgs.source);\n selfClass.cthis.attr('data-soft-watermark', changeMediaArgs.watermark);\n\n\n if (changeMediaArgs.watermark_volume) {\n o.watermark_volume = changeMediaArgs.watermark_volume;\n } else {\n o.watermark_volume = 1;\n }\n\n\n //console.log('o.watermark_volume - ',o.watermark_volume);\n\n\n var original_type = changeMediaArgs.type;\n if (changeMediaArgs.type === 'mediafile') {\n changeMediaArgs.type = 'audio';\n }\n if (changeMediaArgs.type) {\n if (changeMediaArgs.type === 'soundcloud') {\n changeMediaArgs.type = 'audio';\n }\n if (changeMediaArgs.type === 'album_part') {\n changeMediaArgs.type = 'audio';\n }\n selfClass.cthis.attr('data-type', changeMediaArgs.type);\n selfClass.audioType = changeMediaArgs.type;\n o.type = changeMediaArgs.type;\n }\n\n selfClass.isPlayerLoaded = false;\n\n\n if (o.design_skin === 'skin-wave') {\n if (o.skinwave_wave_mode === 'canvas') {\n if (selfClass._sourcePlayer) {\n selfClass.src_real_mp3 = _sourceForChange.attr('data-source');\n } else {\n selfClass.src_real_mp3 = _sourceForChange;\n }\n\n if (_sourceForChange && changeMediaArgs.pcm) {\n\n selfClass.cthis.attr('data-pcm', _sourceForChange.attr('data-pcm'));\n dzsapWaveFunctions.scrubModeWave__view_transitionIn(selfClass, _sourceForChange.attr('data-pcm'));\n } else {\n\n dzsapWaveFunctions.scrubModeWave__initGenerateWaveData(selfClass, {\n 'call_from': 'change_media() regenerate_canvas_from_change_media'\n });\n }\n\n\n if (changeMediaArgs.pcm !== '') {\n\n dzsapWaveFunctions.scrubModeWave__view_transitionIn(selfClass, changeMediaArgs.pcm);\n selfClass.cthis.attr('data-pcm', changeMediaArgs.pcm);\n } else {\n selfClass._scrubbar.addClass('fast-animate-scrubbar');\n\n selfClass.cthis.removeClass('scrubbar-loaded');\n setTimeout(function () {\n }, 10)\n setTimeout(function () {\n selfClass.cthis.removeClass('fast-animate-scrubbar');\n\n\n // -- we have no new pcm data\n selfClass.isRealPcm = false;\n\n selfClass.cthis.attr('data-pcm', '');\n\n dzsapWaveFunctions.wave_mode_canvas_try_to_get_pcm(selfClass);\n dzsapWaveFunctions.scrubModeWave__initGenerateWaveData(selfClass, {\n 'call_from': 'regenerate_canvas_from_change_media - generate data for new'\n });\n\n }, 120);\n\n\n }\n\n\n }\n\n\n // console.log(' artist - ',changeMediaArgs.artist, cthis.find('.the-artist'), changeMediaArgs)\n\n\n // -- inside skin-wave\n if (changeMediaArgs.thumb) {\n\n if (selfClass.cthis.find('.the-thumb').length) {\n\n selfClass.cthis.find('.the-thumb').css('background-image', 'url(' + changeMediaArgs.thumb + ')');\n } else {\n selfClass.cthis.attr('data-thumb', changeMediaArgs.thumb);\n selfClass.setupStructure_thumbnailCon();\n }\n\n }\n }\n\n\n if (changeMediaArgs.thumb) {\n\n if (selfClass.cthis.find('.the-thumb').length) {\n\n selfClass.cthis.find('.the-thumb').css('background-image', 'url(' + changeMediaArgs.thumb + ')');\n } else {\n selfClass.cthis.attr('data-thumb', changeMediaArgs.thumb);\n selfClass.setupStructure_thumbnailCon()\n }\n\n selfClass.cthis.removeClass('does-not-have-thumb');\n selfClass.cthis.addClass('has-thumb');\n } else {\n selfClass.cthis.addClass('does-not-have-thumb');\n selfClass.cthis.removeClass('has-thumb');\n }\n\n\n if (changeMediaArgs.pcm === '') {\n selfClass.setup_pcm_random_for_now();\n }\n\n // console.log('%c selfClass._sourcePlayer.attr(\\'data-playerid\\') - ','color: #da00ff;',selfClass._sourcePlayer.attr('data-playerid'), selfClass.cthis);\n\n\n if (selfClass._sourcePlayer) {\n\n if (selfClass._sourcePlayer.attr('data-playerid')) {\n selfClass.identifier_pcm = selfClass._sourcePlayer.attr('data-playerid');\n } else {\n\n if (selfClass._sourcePlayer.attr('data-source')) {\n selfClass.identifier_pcm = selfClass._sourcePlayer.attr('data-source');\n }\n }\n }\n // console.log('%c selfClass.identifier_pcm - ','color: #da00ff;',selfClass.identifier_pcm);\n\n\n\n\n handle_resize_delay = 100;\n if (selfClass._sourcePlayer && _sourceForChange.find('.meta-artist').eq(0).html()) {\n\n }\n\n if (selfClass._sourcePlayer) {\n\n\n // -- .feed-dzsap-for-extra-html-right will be appended to the footer player\n\n var selector = '';\n var $feedExtraHtmlRightFromSource = null;\n if (selfClass._sourcePlayer.find('.feed-dzsap-for-extra-html-right').length) {\n $feedExtraHtmlRightFromSource = selfClass._sourcePlayer.find('.feed-dzsap-for-extra-html-right').eq(0);\n } else {\n // -- we use this for Shop Builder\n if (selfClass._sourcePlayer.attr('data-playerid') && $(document).find('.feed-dzsap-for-extra-html-right[data-playerid=\"' + selfClass._sourcePlayer.attr('data-playerid') + '\"]').length) {\n $feedExtraHtmlRightFromSource = $(document).find('.feed-dzsap-for-extra-html-right[data-playerid=\"' + selfClass._sourcePlayer.attr('data-playerid') + '\"]').eq(0);\n\n }\n }\n if ($feedExtraHtmlRightFromSource) {\n selfClass.cthis.find('.extrahtml-in-float-right').eq(0).html($feedExtraHtmlRightFromSource.html());\n }\n }\n\n if (changeMediaArgs.artist) {\n selfClass.cthis.find('.the-artist').html(changeMediaArgs.artist);\n }\n if (changeMediaArgs.song_name) {\n selfClass.cthis.find('.the-name').html(changeMediaArgs.song_name);\n }\n\n\n if (changeMediaArgsDefaults.source_player_do_not_update === 'on') {\n selfClass.set_sourcePlayer(null);\n }\n\n\n // console.error('changeMediaArgs.source - ',changeMediaArgs.source,changeMediaArgs.type, type);\n if (original_type === 'soundcloud' && changeMediaArgs.source.indexOf('api.soundcloud') === -1) {\n selfClass.data_source = changeMediaArgs.source;\n // console.log(\"RETRIEVE SOUNDCLOUD URL\");\n selfClass.isPlayPromised = true;\n setTimeout(function () {\n selfClass.isPlayPromised = true;\n }, 501);\n dzsapMisc.retrieve_soundcloud_url(selfClass);\n\n } else {\n\n // -- setup media for all sources\n // -- make sure source is not fake\n selfClass.setup_media({\n 'called_from': 'change_media'\n });\n }\n\n\n selfClass.timeModel.getSampleTimesFromDom(selfClass._sourcePlayer);\n\n\n if (selfClass.audioType === 'fake') {\n return false;\n }\n\n if (selfClass.initOptions.action_audio_change_media) {\n selfClass.initOptions.action_audio_change_media(changeMediaArgs.source, changeMediaArgs);\n }\n\n\n //console.log(\"IS MOBILE - \",dzsapHelpers.dzsap_is_mobile());\n // console.log('%c before autoplay changeMediaArgs - ','color: #dadada;',changeMediaArgs, dzsapHelpers.dzsap_is_mobile());\n\n // console.log({changeMediaArgs});\n if (changeMediaArgs.autoplay === 'on' && dzsapHelpers.dzsap_is_mobile() === false) {\n selfClass.play_media_visual();\n\n setTimeout(function () {\n selfClass.play_media({\n 'called_from': 'changeMediaArgs.autoplay'\n });\n }, 500);\n }\n selfClass.reinit();\n setTimeout(function () {\n\n selfClass.handleResize(null, {\n called_from: 'change_media'\n });\n }, handle_resize_delay)\n }\n}\n","import * as dzsapHelpers from \"./_dzsap_helpers\";\n\nexport class PlayerTime {\n constructor(selfClass) {\n\n this.timeCurrent = 0;\n this.timeTotal = 0;\n this.sampleTimeStart = null;\n this.sampleTimeEnd = null;\n this.sampleTimeTotal = null;\n\n this.referenceMediaCurrentTime = 0;\n this.referenceMediaTotalTime = 0;\n\n this.visualCurrentTime = null;\n this.visualTotalTime = null;\n\n // console.log('inited');\n this.dzsapInstance = selfClass;\n this.init();\n }\n\n init() {\n\n setInterval(this.check500ms, 500);\n\n\n\n }\n\n initObjects(){\n\n var selfClass = this.dzsapInstance;\n var timeInstance = this;\n\n\n // -- set current time\n selfClass.cthis.get(0).api_set_timeVisualCurrent = function (arg) {\n timeInstance.visualCurrentTime = arg;\n\n // this.visualCurrentTime = selfClass.sample_time_start + this.visualCurrentTime;\n\n }\n selfClass.cthis.get(0).api_get_time_total = function() {\n\n return timeInstance.getVisualTotalTime();\n }\n selfClass.cthis.get(0).api_get_time_curr = function() {\n return timeInstance.getVisualCurrentTime();\n };\n\n // -- set total time\n selfClass.cthis.get(0).api_set_timeVisualTotal = function (arg) {\n // time_total_for_visual = arg;\n // curr_time_first_set = true;\n // console.log('api_set_timeVisualTotal - ',arg, selfClass.cthis);\n timeInstance.visualTotalTime = arg;\n timeInstance.refreshTimes();\n // if(selfClass.cthis.attr('id')==='player1'){\n // debugger;\n // }\n };\n }\n\n\n\n /**\n * called from enterFrame and other places\n * @param pargs\n */\n refreshTimes() {\n\n var selfClass = this.dzsapInstance;\n\n\n\n // console.log('get_times () margs - ',margs,'type - ',type,o.type);\n // -- trying to get current time\n // console.log('selfClass.audioType -' , selfClass.audioType);\n if ((selfClass.audioType === 'selfHosted' || (selfClass.audioType === 'fake' && selfClass._actualPlayer))) {\n if (selfClass.dataType !== 'shoutcast') {\n\n\n if (selfClass.$mediaNode_ && isNaN(selfClass.$mediaNode_.duration) === false) {\n this.referenceMediaTotalTime = selfClass.$mediaNode_.duration;\n }\n\n if (0 && selfClass.spectrum_audioContext_buffer && selfClass.spectrum_audioContext_buffer !== 'placeholder' && selfClass.spectrum_audioContext_buffer !== 'waiting') {\n\n if (selfClass._actualPlayer === null) {\n this.referenceMediaCurrentTime = selfClass.spectrum_audioContext.currentTime;\n }\n\n } else {\n\n // -- normal\n if (selfClass.$mediaNode_) {\n if (selfClass._actualPlayer === null) {\n this.referenceMediaCurrentTime = selfClass.$mediaNode_.currentTime;\n }\n }\n }\n\n\n if (selfClass.playFrom === 'last' && selfClass.playFrom_ready) {\n if (typeof Storage !== 'undefined') {\n localStorage['dzsap_' + selfClass.the_player_id + '_lastpos'] = selfClass.timeCurrent;\n }\n }\n\n\n }\n\n\n }\n\n\n if (selfClass._sourcePlayer && selfClass._sourcePlayer.get(0)) {\n if (selfClass._sourcePlayer.get(0).api_get_time_curr) {\n if (isNaN(selfClass._sourcePlayer.get(0).api_get_time_total()) || selfClass._sourcePlayer.get(0).api_get_time_total() === '' || selfClass._sourcePlayer.get(0).api_get_time_total() < 1) {\n selfClass._sourcePlayer.get(0).api_set_timeVisualTotal(this.getVisualTotalTime());\n }\n }\n }\n\n\n // -- setting real times ( if actual player is not there )\n if (selfClass._actualPlayer === null && this.referenceMediaCurrentTime > -1) {\n selfClass.timeCurrent = this.referenceMediaCurrentTime;\n }\n\n if (selfClass._actualPlayer === null && this.referenceMediaTotalTime > -1) {\n selfClass.timeTotal = this.referenceMediaTotalTime;\n }\n\n\n\n\n if (this.sampleTimeStart) {\n\n if (this.visualCurrentTime < selfClass.pseudo_sample_time_start) {\n this.visualCurrentTime = selfClass.pseudo_sample_time_start;\n }\n\n\n if (this.sampleTimeEnd) {\n if (selfClass.timeCurrent > this.sampleTimeEnd) {\n\n var args = {\n 'call_from': 'time_curr>pseudo_sample_time_end'\n }\n selfClass.handle_end(args);\n\n selfClass.isMediaEnded = true;\n\n clearTimeout(selfClass.inter_isEnded);\n selfClass.inter_isEnded = setTimeout(function () {\n\n selfClass.isMediaEnded = false;\n }, 1000);\n }\n }\n }\n }\n\n processCurrentFrame(){\n\n var selfClass = this.dzsapInstance;\n if (selfClass._sourcePlayer) {\n if (selfClass._sourcePlayer.get(0)) {\n if (selfClass._sourcePlayer.get(0).api_get_time_curr) {\n selfClass._sourcePlayer.get(0).api_set_timeVisualCurrent(selfClass.timeCurrent);\n }\n }\n\n\n if (selfClass._sourcePlayer.get(0) && selfClass._sourcePlayer.get(0).api_seek_to_visual) {\n var temp_time_curr = selfClass.timeCurrent;\n // TODO: to be continued\n if (selfClass.pseudo_sample_time_start === 0) {\n\n if (selfClass.sample_time_start) {\n temp_time_curr -= selfClass.sample_time_start;\n }\n }\n\n\n selfClass._sourcePlayer.get(0).api_seek_to_visual(temp_time_curr / selfClass.timeTotal);\n } else {\n console.log('warning .. no seek to visual');\n }\n\n }\n\n\n // -- check end track\n if (selfClass.isSafeToChangeTrack && selfClass.timeTotal > 1 && selfClass.timeCurrent >= selfClass.timeTotal - 0.07) {\n var args = {\n 'call_from': 'selfClass.timeTotal > 0 && selfClass.timeCurrent >= selfClass.timeTotal - 0.07 ... '\n }\n\n if (selfClass._actualPlayer === null) {\n\n selfClass.handle_end(args);\n selfClass.isMediaEnded = true;\n\n\n clearTimeout(selfClass.inter_isEnded);\n selfClass.inter_isEnded = setTimeout(function () {\n selfClass.isMediaEnded = false;\n }, 1000);\n }\n }\n\n }\n\n getVisualCurrentTime(){\n\n var selfClass = this.dzsapInstance;\n // if(this.sampleTimeTotal){\n // return this.sampleTimeTotal;\n // }\n\n if (selfClass._actualPlayer === null && this.referenceMediaCurrentTime > -1) {\n return this.referenceMediaCurrentTime;\n }\n // todo: actualPlayer\n\n\n\n if(this.visualCurrentTime){\n return this.visualCurrentTime;\n }\n\n\n if(selfClass.playFrom){\n return selfClass.playFrom;\n }\n\n // todo: offsetVisual\n // if (selfClass._actualPlayer === null) {\n // if (selfClass.pseudo_sample_time_start === 0) {\n // if (selfClass.sample_time_start > 0) {\n // time_curr_for_visual = selfClass.sample_time_start + time_curr_for_real;\n // }\n // }\n // }\n\n return 0;\n }\n\n /**\n *\n * @returns {null|number}\n */\n getVisualTotalTime(){\n var selfClass = this.dzsapInstance;\n // if(selfClass.cthis.attr('id')==='player1'){\n // console.log('player1');\n // }\n if(this.sampleTimeTotal){\n return this.sampleTimeTotal;\n }\n\n\n if (selfClass._actualPlayer === null){\n if(this.referenceMediaTotalTime > -1) {\n return this.referenceMediaTotalTime;\n }\n }else{\n // -- has footer player\n\n if(this.visualTotalTime){\n return this.visualTotalTime;\n }\n //-- last resort\n if(this.referenceMediaTotalTime > -1) {\n return this.referenceMediaTotalTime;\n }\n }\n\n\n return 0;\n }\n\n /**\n * compare target scrub time with sample times\n * @param targetTime\n * @returns {*}\n */\n getActualTargetTime(targetTime){\n if (this.sampleTimeStart) {\n if (targetTime < this.sampleTimeStart) {\n targetTime = this.sampleTimeStart;\n }\n if (targetTime > this.sampleTimeEnd) {\n targetTime = this.sampleTimeEnd;\n }\n }\n\n return targetTime;\n }\n\n getSampleTimesFromDom($targetPlayer = null) {\n var selfClass = this.dzsapInstance;\n\n selfClass.sample_time_start = 0;\n selfClass.sample_time_total = 0;\n selfClass.sample_time_start = 0;\n selfClass.pseudo_sample_time_end = 0;\n\n\n if($targetPlayer===null){\n $targetPlayer = selfClass.cthis;\n }\n\n\n\n if ($targetPlayer.attr('data-sample_time_start')) {\n this.sampleTimeStart = Number($targetPlayer.attr('data-sample_time_start'));\n }\n if ($targetPlayer.attr('data-sample_time_end')) {\n this.sampleTimeEnd = Number($targetPlayer.attr('data-sample_time_end'));\n }\n if ($targetPlayer.attr('data-sample_time_total')) {\n this.sampleTimeTotal = Number($targetPlayer.attr('data-sample_time_total'));\n }\n\n // console.log($targetPlayer, this, this.sampleTimeStart, this.sampleTimeEnd);\n\n selfClass.sample_perc_start = selfClass.sample_time_start / selfClass.sample_time_total;\n selfClass.sample_perc_end = selfClass.sample_time_end / selfClass.sample_time_total;\n\n\n if ((this.sampleTimeTotal && this.sampleTimeStart) || (this.sampleTimeStart && this.sampleTimeEnd)) {\n selfClass.isSample = true;\n } else {\n selfClass.isSample = false;\n }\n\n }\n}\n","/*\n * Author: Audio Player with Playlist\n * Website: https://digitalzoomstudio.net/\n * Portfolio: https://bit.ly/nM4R6u\n * Version: 6.00\n * */\n\nimport * as dzsapHelpers from './jsinc/_dzsap_helpers';\nimport * as mediaFunctions from \"./jsinc/media/_media_functions\";\nimport {media_changeMedia} from './jsinc/media/_onePlayer_changeMedia';\nimport {PlayerTime} from './jsinc/_dzsap_time_model';\nimport {\n ajax_retract_like,\n ajax_submit_download,\n ajax_submit_like,\n ajax_submit_total_time,\n ajax_submit_views\n} from \"./jsinc/_dzsap_ajax\";\n\nimport {ConstantsDzsAp} from \"./configs/_constants\";\n\nconst dzsHelpers = require('./js_common/_dzs_helpers');\n\nconst dzsapComments = require('./jsinc/components/_comments');\nconst dzsapSvgs = require('./jsinc/_dzsap_svgs');\nconst dzsapPlaylist = require('./jsinc/_dzsap_playlist');\nconst dzsapMisc = require('./jsinc/_dzsap_misc');\nconst dzsapStructure = require('./jsinc/components/_structure');\nconst dzsapWaveFunctions = require('./jsinc/wave-render/_wave-render-functions');\n\n\nvar dzsap_list = []; // -- this is for the players\n\nvar dzsap_globalidind = 20;\n\nvar isDzsapListForSyncBuilt = false;\nvar dzsap_list_for_sync_inter_build = 0;\n\nwindow.loading_multi_sharer = false;\n\nwindow.dzsap_player_interrupted_by_dzsap = null;\nwindow.dzsap_audio_ctx = null;\nwindow.dzsap__style = null;\nwindow.dzsap_sticktobottom_con = null;\n\nwindow.dzsap_self_options = {};\n\nwindow.dzsap_generating_pcm = false;\nwindow.dzsap_box_main_con = null;\nwindow.dzsap_lasto = null;\nwindow.dzsap_syncList_players = []; // -- used for next .. prev .. footer playlist\nwindow.dzsap_syncList_index = 0; // -- used for next .. prev .. footer playlist\n\n\nwindow.dzsap_player_index = 0; // -- the player index on the page\n\n\nclass DzsAudioPlayer {\n constructor(argThis, argOptions, $) {\n\n this.argThis = argThis;\n this.argOptions = argOptions;\n this.$ = $;\n\n this.ajax_view_submitted = 'auto';\n this.increment_views = 0;\n this.the_player_id = '';\n this.currIp = '127.0.0.1';\n this.index_extrahtml_toloads = 0;\n this.starrating_alreadyrated = -1;\n this.data_source = '';\n this._actualPlayer = null;\n\n this.urlToAjaxHandler = null;\n\n\n this.playFrom = '';\n\n\n this._audioplayerInner = null;\n this._metaArtistCon = null;\n this._conControls = null;\n this._conPlayPauseCon = null;\n this._apControls = null;\n this._apControlsLeft = null;\n this._apControlsRight = null;\n this._commentsHolder = null;\n this.$mediaNode_ = null;\n this._scrubbar = null;\n this._scrubbarbg_canvas = null;\n this._scrubbarprog_canvas = null;\n this.$feed_fakeButton = null;\n this._sourcePlayer = null;\n this.$realVisualPlayer = null; // -- real visual player can be _sourcePlayer if this is a fake feed or this if not\n this.$theMedia = null;\n this.$conPlayPause = null;\n this.$conControls = null;\n this.$$scrubbProg = null;\n this.$controlsVolume = null;\n this.$currTime = null;\n this.$totalTime = null;\n this.$watermarkMedia_ = null;\n this.$commentsWritter = null;\n this.$commentsChildren = null;\n this.$commentsSelector = null;\n this.$embedButton = null;\n this.$stickToBottomContainer = null;\n\n\n this.audioType = 'normal';\n this.audioTypeSelfHosted_streamType = '';\n this.skinwave_mode = 'normal';\n this.action_audio_comment = null; // -- set a outer ended function ( for example for tracking your analytics\n\n this.commentPositionPerc = 0;// --the % at which the comment will be placed\n\n this.spectrum_audioContext = null;\n this.spectrum_audioContextBufferSource = null;\n this.spectrum_audioContext_buffer = null;\n this.spectrum_mediaElementSource = null;\n this.spectrum_analyser = null;\n this.spectrum_gainNode = null;\n\n this.isMultiSharer = false;\n\n this.lastArray = null;\n this.last_lastArray = null;\n\n this.player_playing = false;\n this.isPlayerLoaded = false;\n\n this.actualDataTypeOfMedia = 'audio'; // \"audio\" or\n\n this.youtube_retryPlayTimeout = 0;\n this.lastTimeInSeconds = 0;\n\n\n // -- pcm\n this.uniqueId = '';\n this.identifier_pcm = ''; // -- can be either player id or source if player id is not set\n this.isRealPcm = false;\n this.isPcmTryingToGenerate = false;\n this.isPcmPromisingToGenerateOnMetaLoad = false // -- we are promising generating on meta load\n this.isPlayPromised = false // -- we are promising generating on meta load\n this.isCanvasFirstDrawn = false // -- the first draw on canvas\n\n this.src_real_mp3 = '';\n this.original_real_mp3 = '' // -- this is the original real mp3 for sainvg and identifying in the database\n\n // -- theme specific\n this.skin_minimal_canvasplay = null;\n\n this.classMisc = null;\n this.classFunctionalityInnerPlaylist = null;\n this.feedEmbedCode = '';\n\n this.youtube_currentId = 0;\n this.youtube_isInited = false;\n\n this.extraHtmlAreas = {\n bottom: '',\n afterArtist: '',\n controlsLeft: '',\n controlsRight: '',\n }\n\n // -- time vars\n this.sample_time_start = 0;\n this.sample_time_end = 0;\n this.sample_time_total = 0;\n this.pseudo_sample_time_start = 0\n this.pseudo_sample_time_end = 0\n this.pseudo_sample_time_total = 0\n this.playlist_inner_currNr = 0\n\n this.timeCurrent = 0; // -- *deprecated\n this.timeModel = new PlayerTime(this);\n\n this.isSample = false;\n this.isSafeToChangeTrack = false // -- only after 2 seconds of init is it safe to change track\n this.isMediaEnded = false;\n this.isSentCacheTotalTime = false;\n this.radio_isGoingToUpdateSongName = false;\n this.radio_isGoingToUpdateArtistName = false;\n\n this.inter_isEnded = 0;\n\n\n this.classInit();\n }\n\n set_sourcePlayer($arg) {\n this._sourcePlayer = $arg;\n }\n\n classInit() {\n // console.log('this -> ', this);\n\n // console.log('process - ', process);\n\n var $ = this.$;\n var o = this.argOptions;\n var cthis = $(this.argThis);\n\n var selfClass = this;\n\n\n selfClass.cthis = cthis;\n selfClass.initOptions = o;\n\n var cthisId = 'ap1'\n ;\n var ww, cthisWidth, th // -- controls width\n , scrubbarWidth = 0 // -- scrubbar width\n , scrubbarProgX = 0 // -- scrubbar prog pos\n ;\n var _theThumbCon\n , $innerPlaylistTooltip = null\n , $scrubBgCanvas = null,\n _scrubBgCanvasCtx = null;\n var isMuted = false,\n youtube_isInited = false,\n destroyed = false,\n google_analytics_sent_play_event = false,\n destroyed_for_rebuffer = false\n , loop_active = false // -- if loop_active the track will loop\n , dzsap_can_canvas = false\n , curr_time_first_set = false\n , isScrubShowingCurrentTime = false\n , setuped_listeners = false\n , isSetupedMedia = false // -- linked with loaded\n ;\n var last_time_total = 0\n , currTime_outerWidth = 0\n , player_index_in_gallery = -1 // -- the player index in gallery\n ;\n\n\n var volume_lastVolume = 1,\n last_vol_before_mute = 1\n ;\n var inter_checkReady\n , inter_audiobuffer_workaround_id = 0\n , inter_60_secs_contor = 0\n , inter_trigger_resize;\n var data_station_main_url = ''\n ;\n\n var res_thumbh = false\n , volume_dragging = false\n , volume_set_by_user = false // -- this shows if the user actioned on the volume\n , is_under_400 = false\n\n\n ; // resize thumb height\n\n\n var skin_minimal_button_size = 0;\n\n // -- touch controls\n var scrubbar_moving = false\n , scrubbar_moving_x = 0\n , aux3 = 0\n ;\n\n\n var dataSrc = '';\n var canvasWidth = 100;\n var canh = 100;\n var scrubbar_h = 75\n , design_thumbh\n ;\n\n\n var stringAudioElementHtml = '';\n\n\n var controls_left_pos = 0;\n var controls_right_pos = 0;\n\n\n var defaultVolume = 1;\n\n var action_audio_end = null\n , action_audio_play = null\n , action_audio_play2 = null\n , action_audio_pause = null\n\n\n var isNotRenderingEnterFrame = true\n , sw_spectrum_fakeit = 'auto'\n ;\n\n\n var duration_viy = 20;\n var begin_viy = 0;\n var change_viy = 0;\n\n\n var draw_canvas_inter = 0;\n\n\n // console.log(cthis, o);\n\n\n window.dzsap_player_index++;\n\n\n selfClass.timeModel.getSampleTimesFromDom();\n\n\n init();\n\n function init() {\n //console.log(typeof(o.parentgallery)=='undefined');\n\n\n // console.log('cthis - - on init - ', cthis);\n\n\n if (cthis.hasClass('dzsap-inited')) {\n return false;\n }\n\n // selfClass.youtube_checkReady = dzsap_youtube_checkReady;\n selfClass.play_media_visual = play_media_visual;\n selfClass.play_media = play_media;\n selfClass.pause_media = pause_media;\n selfClass.seek_to = seek_to;\n selfClass.reinit = reinit;\n selfClass.handle_end = handleMediaEnd;\n selfClass.init_loaded = init_loaded;\n selfClass.scrubbar_reveal = scrubbar_reveal;\n selfClass.calculate_dims_time = calculate_dims_time;\n selfClass.struct_generate_thumb = setupStructure_thumbnailCon;\n selfClass.check_multisharer = check_multisharer;\n selfClass.setup_structure_scrub = setup_structure_scrub;\n selfClass.setup_structure_sanitizers = setup_structure_sanitizers;\n selfClass.destroy_cmedia = destroy_cmedia;\n selfClass.view_drawCurrentTime = view_drawCurrentTime;\n selfClass.setupStructure_thumbnailCon = setupStructure_thumbnailCon;\n selfClass.setup_pcm_random_for_now = setup_pcm_random_for_now;\n selfClass.handleResize = handleResize;\n selfClass.destroy_media = destroy_media;\n\n cthis.css({'opacity': ''});\n cthis.addClass('dzsap-inited');\n window.dzsap_player_index++;\n\n\n // console.log('cthis - ',cthis,o);\n\n selfClass.keyboard_controls = dzsapHelpers.dzsap_generate_keyboard_controls();\n\n dzsapHelpers.configureAudioPlayerOptionsInitial(cthis, o, selfClass);\n\n\n (dzsapHelpers.player_detect_skinwave_mode.bind(selfClass))()\n\n\n classMiscInit();\n\n if (o.design_skin === 'skin-default') {\n if (o.design_thumbh === 'default') {\n design_thumbh = cthis.height() - 40;\n res_thumbh = true;\n }\n }\n\n\n if (dzsapHelpers.dzsap_is_mobile()) {\n $('body').addClass('is-mobile');\n if (o.mobile_delete === 'on') {\n dzsapHelpers.player_delete(selfClass);\n }\n // -- disable fakeplayer on mobile for some reason\n if (o.mobile_disable_fakeplayer === 'on') {\n selfClass.cthis.attr('data-fakeplayer', '');\n }\n }\n\n\n dzsapHelpers.player_viewApplySkinWaveModes(selfClass);\n\n // console.log(o.design_wave_color_bg, o.design_wave_color_prog); 1\n\n\n if (o.design_thumbh === 'default') {\n design_thumbh = 200;\n }\n\n\n dzsapHelpers.playerFunctions(selfClass, 'detectIds');\n\n // console.log('selfClass.the_player_id - ',selfClass.the_player_id);\n\n\n\n\n if (cthis.attr('data-fakeplayer')) {\n dzsapHelpers.player_determineActualPlayer(selfClass);\n }\n // console.log('selfClass._actualPlayer - ', selfClass._actualPlayer);\n\n selfClass.cthis.addClass('scrubbar-type-' + o.scrubbar_type);\n\n\n dzsapHelpers.player_determineHtmlAreas(selfClass);\n\n\n if (o.construct_player_list_for_sync === 'on') {\n if (isDzsapListForSyncBuilt === false) {\n window.dzsap_syncList_players = [];\n\n isDzsapListForSyncBuilt = true;\n\n $('.audioplayer.is-single-player,.audioplayer-tobe.is-single-player').each(function () {\n var _t23 = $(this);\n\n\n if (_t23.hasClass('dzsap_footer')) {\n return;\n }\n\n // console.log(_t23);\n if (_t23.attr('data-do-not-include-in-list') !== 'on') {\n window.dzsap_syncList_players.push(_t23);\n }\n })\n\n // console.log(window.dzsap_syncList_players);\n\n clearTimeout(dzsap_list_for_sync_inter_build);\n\n dzsap_list_for_sync_inter_build = setTimeout(function () {\n isDzsapListForSyncBuilt = false;\n }, 500);\n\n }\n }\n\n // console.log('window.dzsap_syncList_players - ',window.dzsap_syncList_players);\n\n\n dzsapHelpers.player_getPlayFromTime(selfClass);\n\n\n dzsapHelpers.player_adjustIdentifiers(selfClass);\n\n\n if (cthis.attr('data-type') === 'youtube') {\n o.type = 'youtube';\n selfClass.audioType = 'youtube';\n }\n if (cthis.attr('data-type') === 'soundcloud') {\n o.type = 'soundcloud';\n selfClass.audioType = 'soundcloud';\n\n o.skinwave_enableSpectrum = 'off';\n cthis.removeClass('skin-wave-is-spectrum');\n }\n if (cthis.attr('data-type') === 'mediafile') {\n o.type = 'audio';\n selfClass.audioType = 'audio';\n }\n // todo: move shoutcast\n if (cthis.attr('data-type') === 'shoutcast') {\n o.type = 'shoutcast';\n selfClass.audioType = 'audio';\n o.disable_timer = 'on';\n o.skinwave_enableSpectrum = 'off';\n // -- might still use it for skin-wave\n\n if (o.design_skin === 'skin-default') {\n o.disable_scrub = 'on';\n }\n // o.disable_scrub = 'on';\n }\n\n\n if (selfClass.audioType === 'audio' || selfClass.audioType === 'normal' || selfClass.audioType === '') {\n selfClass.audioType = 'selfHosted';\n }\n\n\n // console.log('init()');\n if (selfClass.audioType === 'youtube') {\n const baseUrl = dzsHelpers.getBaseUrl('dzsap_youtube_script', 'audioplayer.js');\n const scriptUrl = baseUrl ? baseUrl + '/parts/youtube/dzsap-youtube-functions.js' : '';\n dzsHelpers.loadScriptIfItDoesNotExist(scriptUrl, window.dzsap_youtube_functions_inited).then((resolveStr) => {\n dzsap_youtube_functions_init(selfClass);\n });\n }\n\n\n selfClass.audioTypeSelfHosted_streamType = '';\n\n // console.log('type - ',type, cthis.attr('data-streamtype'));\n\n\n if (selfClass.audioType === 'selfHosted') {\n if (cthis.attr('data-streamtype') && cthis.attr('data-streamtype') !== 'off') {\n selfClass.audioTypeSelfHosted_streamType = cthis.attr('data-streamtype');\n data_station_main_url = cthis.attr('data-source');\n cthis.addClass('is-radio-type');\n\n } else {\n selfClass.audioTypeSelfHosted_streamType = '';\n }\n }\n\n // -- no shoutcast autoupdate at the moment 2 3 4 5 6 7 8\n if (selfClass.audioTypeSelfHosted_streamType === 'shoutcast') {\n // selfClass.audioTypeSelfHosted_streamType = '';\n\n // -- todo: we\n }\n\n\n // console.log('selfClass.audioTypeSelfHosted_streamType - ', selfClass.audioTypeSelfHosted_streamType, 'cthis.attr(\\'data-source\\') - ', cthis.attr('data-source'), 'selfClass.audioType - ', selfClass.audioType);\n\n selfClass.src_real_mp3 = cthis.attr('data-source');\n if (selfClass.audioType === 'selfHosted') {\n selfClass.src_real_mp3 = cthis.attr('data-source');\n }\n\n // -- we disable the function if audioplayer inited\n if (cthis.hasClass('audioplayer')) {\n return;\n }\n //console.log('ceva');\n\n if (cthis.attr('id') !== undefined) {\n cthisId = cthis.attr('id');\n } else {\n cthisId = 'ap' + dzsap_globalidind++;\n }\n\n\n selfClass.youtube_currentId = 'ytplayer_' + cthisId;\n\n\n cthis.removeClass('audioplayer-tobe');\n cthis.addClass('audioplayer');\n\n view_drawScrubProgress();\n setTimeout(function () {\n view_drawScrubProgress()\n }, 1000);\n\n\n // -- try to get pcm data via ajax\n // console.log(cthis);\n if (o.skinwave_wave_mode === 'canvas' && (o.design_skin === 'skin-wave' || cthis.attr('data-fakeplayer'))) {\n dzsapWaveFunctions.wave_mode_canvas_try_to_get_pcm(selfClass);\n }\n\n\n //===ios does not support volume controls so just let it die\n //====== .. or autoplay FORCE STAFF\n\n\n // console.log('o.autoplay here - ',o.autoplay, cthis); 22\n\n if (o.cueMedia === 'off') {\n\n // -- cue is forcing autoplay on\n cthis.addClass('cue-off');\n o.autoplay = 'on';\n }\n\n // console.log('o.autoplay here - ',o.autoplay, cthis);\n\n\n selfClass.data_source = cthis.attr('data-source') || '';\n\n\n //====sound cloud INTEGRATION //\n if (cthis.attr('data-source') !== undefined && String(cthis.attr('data-source')).indexOf('https://soundcloud.com/') > -1) {\n selfClass.audioType = 'soundcloud';\n }\n //console.log(o.type);\n if (selfClass.audioType === 'soundcloud') {\n dzsapMisc.retrieve_soundcloud_url(selfClass);\n }\n // -- END soundcloud INTEGRATION//\n\n\n dzsapStructure.setup_structure(selfClass); // -- inside init()\n\n //console.log(cthis, dzsapHelpers.is_ios(), o.type);\n //trying to access the youtube api with ios did not work\n\n\n // debugger;\n if (o.scrubbar_type === 'wave' && (selfClass.audioType === 'selfHosted' || selfClass.audioType === 'soundcloud' || selfClass.audioType === 'fake') && o.skinwave_comments_enable === 'on') {\n dzsapComments.comments_setupCommentsInitial(selfClass);\n }\n\n //console.log();\n\n\n if (o.autoplay === 'on' && o.cueMedia === 'on') {\n selfClass.increment_views = 1;\n }\n\n\n // -- soundcloud will setupmedia when api done\n\n // console.log('o.cueMedia -', o.cueMedia, selfClass.audioType);\n if (o.cueMedia === 'on' && selfClass.audioType !== 'soundcloud') {\n if (dzsapHelpers.is_android() || dzsapHelpers.is_ios()) {\n cthis.find('.playbtn').bind('click', play_media);\n }\n // console.log('source - ',cthis.attr('data-source'), dataSrc);\n\n\n if (selfClass.data_source && selfClass.data_source.indexOf('{{generatenonce}}') > -1) {\n\n // console.log(cthis, selfClass.data_source);\n\n var original_id = '';\n\n var aux = /id=(\\d*?)/g.exec(selfClass.data_source);\n\n if (aux) {\n\n original_id = aux[1];\n }\n\n // -- generate nonce\n $.ajax({\n type: \"POST\",\n url: selfClass.data_source,\n data: {},\n success: function (response) {\n if (response) {\n\n // console.log('response - ',{response});\n if (response.indexOf(original_id) > -1) {\n\n cthis.attr('data-source', response);\n setup_media({'called_from': 'nonce generated', 'newSource': response});\n }\n }\n }\n })\n ;\n } else {\n\n const isGoingToSetupMediaNow = dzsapHelpers.player_isGoingToSetupMediaNow(selfClass);\n\n if (selfClass.audioType === 'selfHosted') {\n if (selfClass.audioTypeSelfHosted_streamType === 'icecast' || selfClass.audioTypeSelfHosted_streamType === 'shoutcast') {\n // -- if we have icecast we can update currently playing song\n\n\n if (selfClass.audioTypeSelfHosted_streamType === 'icecast' || (selfClass.radio_isGoingToUpdateArtistName || selfClass.radio_isGoingToUpdateSongName)) {\n\n dzsapHelpers.player_icecastOrShoutcastRefresh(selfClass);\n }\n setInterval(function () {\n dzsapHelpers.player_icecastOrShoutcastRefresh(selfClass);\n }, 10000)\n }\n }\n\n if (isGoingToSetupMediaNow) {\n setup_media({'called_from': 'normal setup media .. --- icecast must wait'});\n }\n\n }\n\n\n } else {\n\n\n //console.log(' -- cue is of so set autoplay to on')\n // o.autoplay = 'on';\n cthis.find('.playbtn').bind('click', handleClickForSetupMedia);\n cthis.find('.scrubbar').bind('click', handleClickForSetupMedia);\n handleResize(null, {\n called_from: 'init'\n });\n }\n\n\n // -- we call the api functions here\n //console.log('api sets');\n\n\n dzsapHelpers.player_determineStickToBottomContainer(selfClass);\n dzsapHelpers.player_stickToBottomContainerDetermineClasses(selfClass);\n\n // console.log('_sticktobottom -> ',_sticktobottom, cthis,cthis.parent().attr('class'),cthis.parent().parent().attr('class'));\n\n selfClass.timeModel.initObjects();\n\n // -- api calls\n selfClass.setup_media = setup_media;\n\n cthis.get(0).classInstance = selfClass;\n\n cthis.get(0).api_init_loaded = init_loaded; // -- force resize event\n cthis.get(0).api_destroy = destroy_it; // -- destroy the player and the listeners\n\n cthis.get(0).api_play = play_media; // -- play the media\n\n cthis.get(0).api_set_volume = volume_setVolume; // -- set a volume\n cthis.get(0).api_get_last_vol = volume_getLast; // -- play the media\n\n cthis.get(0).api_get_source = () => {\n return selfClass.data_source;\n }; // -- play the media\n\n cthis.get(0).api_click_for_setup_media = handleClickForSetupMedia; // -- play the media\n\n cthis.get(0).api_handleResize = handleResize; // -- force resize event\n cthis.get(0).api_set_playback_speed = set_playback_speed; // -- set the playback speed, only works for local hosted mp3\n cthis.get(0).api_change_media = media_changeMedia(selfClass, $); // -- change the media file from the API\n cthis.get(0).api_seek_to_perc = seek_to_perc; // -- seek to percentage ( for example seek to 0.5 skips to half of the song )\n cthis.get(0).api_seek_to = seek_to; // -- seek to percentage ( for example seek to 0.5 skips to half of the song )\n cthis.get(0).api_seek_to_visual = seek_to_visual; // -- seek to perchange but only visually ( does not actually skip to that ) , good for a fake player\n cthis.get(0).api_visual_set_volume = volume_setOnlyVisual; // -- set a volume\n cthis.get(0).api_destroy_listeners = destroy_listeners; // -- set a volume\n\n cthis.get(0).api_pause_media = pause_media; // -- pause the media\n cthis.get(0).api_pause_media_visual = pause_media_visual; // -- pause the media, but only visually\n cthis.get(0).api_play_media = play_media; // -- play the media\n cthis.get(0).api_play_media_visual = play_media_visual; // -- play the media, but only visually\n cthis.get(0).api_handle_end = handleMediaEnd; // -- play the media, but only visually\n cthis.get(0).api_change_visual_target = change_visual_target; // -- play the media, but only visually\n cthis.get(0).api_change_design_color_highlight = view_updateColorHighlight; // -- play the media, but only visually\n cthis.get(0).api_draw_scrub_prog = view_drawScrubProgress; // -- render the scrub progress\n cthis.get(0).api_draw_curr_time = view_drawCurrentTime; // -- render the current time\n cthis.get(0).api_get_times = selfClass.timeModel.refreshTimes; // -- refresh the current time\n cthis.get(0).api_check_time = handleEnterFrame; // -- do actions required in the current frame\n cthis.get(0).api_sync_players_goto_next = syncPlayers_gotoNext; // -- in the sync playlist, go to the next song\n cthis.get(0).api_sync_players_goto_prev = syncPlayers_gotoPrev; // -- in the sync playlist, go to the previous song\n cthis.get(0).api_regenerate_playerlist_inner = function () {\n // -- call with window.dzsap_generate_list_for_sync_players({'force_regenerate': true})\n if (selfClass.classFunctionalityInnerPlaylist) {\n selfClass.classFunctionalityInnerPlaylist.playlistInner_setupStructureInPlayer();\n }\n\n }; // -- regenerate the playlist innter\n\n\n cthis.get(0).api_step_back = function (arg) {\n if (!arg) {\n arg = selfClass.keyboard_controls.step_back_amount;\n }\n seek_to(selfClass.timeCurrent - arg);\n }\n cthis.get(0).api_step_forward = function (arg) {\n\n if (arg) {\n\n } else {\n arg = selfClass.keyboard_controls.step_back_amount;\n }\n seek_to(selfClass.timeCurrent + arg);\n } // --\n /**\n *\n * @param {number} argSpeed - 0 to 1\n */\n cthis.get(0).api_playback_speed = function (argSpeed) {\n if (selfClass.$mediaNode_ && selfClass.$mediaNode_.playbackRate) {\n selfClass.$mediaNode_.playbackRate = argSpeed;\n }\n } // -- slow to 2/3 of the current song\n\n\n cthis.get(0).api_set_action_audio_play = function (arg) {\n action_audio_play = arg;\n }; // -- set action on audio play\n cthis.get(0).api_set_action_audio_pause = function (arg) {\n action_audio_pause = arg;\n }; // -- set action on audio pause\n cthis.get(0).api_set_action_audio_end = function (arg) {\n action_audio_end = arg;\n cthis.data('has-action-end', 'on');\n }; // -- set action on audio end\n cthis.get(0).api_set_action_audio_comment = function (arg) {\n selfClass.action_audio_comment = arg;\n }; // -- set the function to call on audio song comment\n cthis.get(0).api_try_to_submit_view = try_to_submit_view; // -- try to submit a new play analytic\n\n //console.log(cthis.get(0));\n\n //console.log(o);\n if (o.action_audio_play) {\n action_audio_play = o.action_audio_play;\n }\n ;\n if (o.action_audio_pause) {\n action_audio_pause = o.action_audio_pause;\n }\n ;\n if (o.action_audio_play2) {\n action_audio_play2 = o.action_audio_play2;\n }\n ;\n\n if (o.action_audio_end) {\n action_audio_end = o.action_audio_end;\n cthis.data('has-action-end', 'on');\n }\n\n\n handleEnterFrame({\n 'fire_only_once': true\n });\n\n\n //console.log(o.design_skin);\n if (o.design_skin === 'skin-minimal') {\n handleEnterFrame({\n 'fire_only_once': true\n });\n }\n\n\n cthis.on('click', '.dzsap-repeat-button,.dzsap-loop-button,.btn-zoomsounds-download,.zoomsounds-btn-step-backward,.zoomsounds-btn-step-forward,.zoomsounds-btn-go-beginning,.zoomsounds-btn-slow-playback,.zoomsounds-btn-reset, .tooltip-indicator--btn-footer-playlist', handle_mouse);\n // cthis.on('mouseover',handle_mouse);\n cthis.on('mouseenter', handle_mouse);\n cthis.on('mouseleave', handle_mouse);\n\n\n selfClass.$conPlayPause.on('click', handleClick_playPause);\n //cthis.on('click','.con-playpause', click_playpause);\n\n\n cthis.on('click', '.skip-15-sec', function () {\n cthis.get(0).api_step_forward(15);\n });\n\n\n $(window).on('resize.dzsap', handleResize);\n handleResize(null, {\n called_from: 'init'\n });\n\n if (selfClass._scrubbar && selfClass._scrubbar.get(0)) {\n\n selfClass._scrubbar.get(0).addEventListener('touchstart', function (e) {\n if (selfClass.player_playing) {\n\n scrubbar_moving = true;\n }\n }, {passive: true})\n }\n\n // selfClass._scrubbar.on('touchstart', function(e) {\n // if(selfClass.player_playing){\n //\n // scrubbar_moving = true;\n // }\n // }, {passive: true})\n $(document).on('touchmove', function (e) {\n if (scrubbar_moving) {\n scrubbar_moving_x = e.originalEvent.touches[0].pageX;\n\n\n aux3 = scrubbar_moving_x - selfClass._scrubbar.offset().left;\n\n if (aux3 < 0) {\n aux3 = 0;\n }\n if (aux3 > selfClass._scrubbar.width()) {\n aux3 = selfClass._scrubbar.width();\n }\n\n seek_to_perc(aux3 / selfClass._scrubbar.width(), {\n call_from: \"touch move\"\n });\n\n\n return false;\n //console.log(aux3);\n\n\n }\n });\n\n $(document).on('touchend', function (e) {\n scrubbar_moving = false;\n });\n\n\n // console.log('skinwave_comments_mode_outer_selector - ',o.skinwave_comments_mode_outer_selector);\n\n if (o.skinwave_comments_mode_outer_selector) {\n selfClass.$commentsSelector = $(o.skinwave_comments_mode_outer_selector);\n\n if (selfClass.$commentsSelector.data) {\n\n selfClass.$commentsSelector.data('parent', cthis);\n\n if (window.dzsap_settings && window.dzsap_settings.comments_username) {\n selfClass.$commentsSelector.find('.comment_email,*[name=comment_user]').remove();\n }\n\n selfClass.$commentsSelector.on('click', '.dzstooltip--close,.comments-btn-submit', dzsapComments.comments_selector_event);\n selfClass.$commentsSelector.on('focusin', 'input', dzsapComments.comments_selector_event);\n selfClass.$commentsSelector.on('focusout', 'input', dzsapComments.comments_selector_event);\n\n } else {\n console.log('%c, data not available .. ', 'color: #990000;', $(o.skinwave_comments_mode_outer_selector));\n }\n }\n\n\n // console.log(\"hmm\",cthis);\n cthis.off('click', '.btn-like');\n cthis.on('click', '.btn-like', selfClass.classMisc.handleClickLike);\n\n\n dzsapHelpers.waitForScriptToBeAvailableThenExecute(window.dzsap_part_starRatings_loaded, function () {\n window.dzsap_init_starRatings_from_dzsap(selfClass);\n })\n\n\n setTimeout(function () {\n\n handleResize(null, {\n called_from: 'init_timeout'\n });\n\n\n if (o.skinwave_wave_mode === 'canvas') {\n\n calculate_dims_time();\n\n setTimeout(function () {\n calculate_dims_time();\n\n\n }, 100)\n }\n\n }, 100)\n\n\n cthis.find('.btn-menu-state').eq(0).bind('click', handleClickMenuState);\n\n\n //console.log('init');\n\n\n cthis.on('click', '.prev-btn,.next-btn', handle_mouse);\n }\n\n\n function calculate_dims_time() {\n var reflection_size = parseFloat(o.skinwave_wave_mode_canvas_reflection_size);\n\n reflection_size = 1 - reflection_size;\n\n var scrubbarh = selfClass._scrubbar.height();\n if (o.design_skin === 'skin-wave') {\n // console.log('selfClass.skinwave_mode - ',selfClass.skinwave_mode);\n if (selfClass.skinwave_mode === 'small') {\n scrubbarh = 60;\n }\n\n if (selfClass._commentsHolder) {\n if (reflection_size === 0) {\n selfClass._commentsHolder.css('top', selfClass._scrubbar.offset().top - cthis.offset().top + scrubbarh * reflection_size - selfClass._commentsHolder.height());\n } else {\n selfClass._commentsHolder.css('top', selfClass._scrubbar.offset().top - selfClass._scrubbar.parent().offset().top + scrubbarh * reflection_size);\n selfClass.$commentsWritter.css('top', selfClass._scrubbar.offset().top - selfClass._scrubbar.parent().offset().top + scrubbarh * reflection_size);\n }\n }\n\n if (selfClass.$currTime) {\n selfClass.$currTime.css('top', scrubbarh * reflection_size - selfClass.$currTime.outerHeight());\n }\n if (selfClass.$totalTime) {\n selfClass.$totalTime.css('top', scrubbarh * reflection_size - selfClass.$totalTime.outerHeight());\n }\n }\n\n cthis.attr('data-reflection-size', reflection_size);\n }\n\n function change_visual_target(arg, pargs) {\n // -- change the visual target, the main is the main palyer selfClass.player_playing and the visual target is the player which is a visual representation of this\n\n console.log('change_visual_target() - ', arg);\n\n var margs = {}\n\n\n // return false;\n\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n\n if (selfClass._sourcePlayer && selfClass._sourcePlayer.get(0) && selfClass._sourcePlayer.get(0).api_pause_media_visual) {\n selfClass._sourcePlayer.get(0).api_pause_media_visual({\n 'call_from': 'change_visual_target'\n });\n }\n\n selfClass.set_sourcePlayer(arg);\n\n // console.log('new selfClass._sourcePlayer - ', selfClass._sourcePlayer);\n\n var $sourcePlayer_ = selfClass._sourcePlayer.get(0);\n if (selfClass.player_playing) {\n if (selfClass._sourcePlayer && $sourcePlayer_ && $sourcePlayer_.api_play_media_visual) {\n $sourcePlayer_.api_play_media_visual();\n }\n }\n\n if ($sourcePlayer_ && $sourcePlayer_.api_draw_curr_time) {\n\n\n $sourcePlayer_.api_set_timeVisualCurrent(selfClass.timeCurrent);\n $sourcePlayer_.api_get_times({\n 'call_from': ' change visual target .. in api '\n });\n $sourcePlayer_.api_check_time({\n 'fire_only_once': true\n });\n $sourcePlayer_.api_draw_curr_time();\n $sourcePlayer_.api_draw_scrub_prog();\n }\n\n setTimeout(function () {\n\n // console.log('__c.api_draw_curr_time - ',__c.api_draw_curr_time);\n if ($sourcePlayer_ && $sourcePlayer_.api_draw_curr_time) {\n $sourcePlayer_.api_get_times();\n $sourcePlayer_.api_check_time({\n 'fire_only_once': true\n });\n $sourcePlayer_.api_draw_curr_time();\n $sourcePlayer_.api_draw_scrub_prog();\n }\n }, 800);\n\n }\n\n function view_updateColorHighlight(arg) {\n // --\n\n //console.log(arg);\n\n o.design_wave_color_progress = arg;\n if (o.skinwave_wave_mode === 'canvas') {\n dzsapWaveFunctions.view_drawCanvases(selfClass, cthis.attr('data-pcm'), 'canvas_change_pcm');\n\n }\n\n }\n\n function reinit() {\n\n if (selfClass.audioType === 'normal' || selfClass.audioType === 'detect' || selfClass.audioType === 'audio') {\n selfClass.audioType = 'selfHosted';\n }\n }\n\n\n function destroy_listeners() {\n\n\n if (destroyed) {\n return false;\n }\n\n\n isNotRenderingEnterFrame = true;\n\n }\n\n function classMiscInit() {\n\n class classMisc {\n\n handleClickLike() {\n console.log('zoomsounds - click_like()', this);\n var _t = $(this);\n if (cthis.has(_t).length === 0) {\n return;\n }\n\n if (_t.hasClass('active')) {\n (ajax_retract_like.bind(selfClass))();\n } else {\n (ajax_submit_like.bind(selfClass))();\n }\n }\n\n\n }\n\n selfClass.classMisc = new classMisc();\n }\n\n function destroy_it() {\n\n\n if (destroyed) {\n return false;\n }\n\n if (selfClass.player_playing) {\n pause_media();\n }\n\n\n $(window).off('resize.dzsap');\n\n cthis.remove();\n cthis = null;\n\n destroyed = true;\n }\n\n function handleClickForSetupMedia(e, pargs) {\n // console.log('click_for_setup_media', cthis, pargs);\n\n\n var margs = {\n\n 'do_not_autoplay': false\n };\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n cthis.find('.playbtn').unbind('click', handleClickForSetupMedia);\n cthis.find('.scrubbar').unbind('click', handleClickForSetupMedia);\n\n setup_media(margs);\n\n\n if (dzsapHelpers.is_android() || dzsapHelpers.is_ios()) {\n play_media({\n 'called_from': 'click_for_setup_media'\n });\n }\n }\n\n\n function handleClickMenuState(e) {\n if (o.parentgallery && typeof (o.parentgallery.get(0)) !== \"undefined\") {\n o.parentgallery.get(0).api_toggle_menu_state();\n }\n }\n\n\n function init_checkIfReady(pargs) {\n // console.log('check_ready()', cthis, selfClass.$mediaNode_, selfClass.$mediaNode_.readyState);\n //=== do a little ready checking\n\n\n var margs = {\n\n 'do_not_autoplay': false\n };\n\n if (selfClass._actualPlayer && dzsapHelpers.is_ios()) {\n return false;\n }\n\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n // console.log(selfClass.$mediaNode_.readyState);\n if (selfClass.audioType === 'youtube') {\n init_loaded(margs);\n } else {\n if (typeof (selfClass.$mediaNode_) !== 'undefined' && selfClass.$mediaNode_) {\n\n\n // return false;\n if (selfClass.$mediaNode_.nodeName !== \"AUDIO\" || o.type === 'shoutcast') {\n init_loaded(margs);\n } else {\n if (dzsapHelpers.is_safari()) {\n\n if (selfClass.$mediaNode_.readyState >= 1) {\n //console.log(\"CALL INIT LOADED FROM \",selfClass.$mediaNode_.readyState);\n\n if (selfClass.isPlayerLoaded === false) {\n }\n\n init_loaded(margs);\n clearInterval(inter_checkReady);\n\n if (o.action_audio_loaded_metadata) {\n o.action_audio_loaded_metadata(cthis);\n }\n }\n } else {\n if (selfClass.$mediaNode_.readyState >= 2) {\n //console.log(\"CALL INIT LOADED FROM \",selfClass.$mediaNode_.readyState);\n if (selfClass.isPlayerLoaded === false) {\n }\n init_loaded(margs);\n clearInterval(inter_checkReady);\n\n // console.log(selfClass.$mediaNode_.duration);\n\n\n // console.log(o.action_audio_loaded_metadata)\n if (o.action_audio_loaded_metadata) {\n o.action_audio_loaded_metadata(cthis);\n }\n }\n }\n\n }\n }\n\n }\n\n }\n\n function scrubbar_reveal() {\n setTimeout(function () {\n selfClass.cthis.addClass('scrubbar-loaded');\n }, 1000);\n }\n\n\n function setupStructure_thumbnailCon() {\n\n // return false;\n\n\n if (cthis.attr('data-thumb')) {\n cthis.addClass('has-thumb');\n var aux_thumb_con_str = '';\n\n if (cthis.attr('data-thumb_link')) {\n aux_thumb_con_str += '<a href=\"' + cthis.attr('data-thumb_link') + '\"';\n } else {\n aux_thumb_con_str += '<div';\n }\n aux_thumb_con_str += ' class=\"the-thumb-con\"><div class=\"the-thumb\" style=\" background-image:url(' + cthis.attr('data-thumb') + ')\"></div>';\n\n\n if (cthis.attr('data-thumb_link')) {\n aux_thumb_con_str += '</a>';\n } else {\n aux_thumb_con_str += '</div>';\n }\n\n\n if (cthis.children('.the-thumb-con').length) {\n aux_thumb_con_str = cthis.children('.the-thumb-con').eq(0);\n }\n\n\n if (o.design_skin !== 'skin-customcontrols') {\n if (o.design_skin === 'skin-wave' && (selfClass.skinwave_mode === 'small' || selfClass.skinwave_mode === 'alternate')) {\n\n if (selfClass.skinwave_mode === 'alternate') {\n\n // console.log(\"WHERE IS INNER ? \",selfClass._audioplayerInner);\n selfClass._audioplayerInner.prepend(aux_thumb_con_str);\n } else {\n\n selfClass._apControlsLeft.prepend(aux_thumb_con_str);\n }\n } else if (o.design_skin === 'skin-steel') {\n\n\n selfClass._apControlsLeft.prepend(aux_thumb_con_str);\n } else {\n\n selfClass._audioplayerInner.prepend(aux_thumb_con_str);\n }\n }\n\n _theThumbCon = selfClass._audioplayerInner.children('.the-thumb-con').eq(0);\n } else {\n\n cthis.removeClass('has-thumb');\n }\n }\n\n\n function setup_structure_sanitizers() {\n\n if (cthis.hasClass('zoomsounds-wrapper-bg-bellow') && cthis.find('.dzsap-wrapper-buts').length === 0) {\n // console.log('NO WRAPPER BUTS - ',cthis.find('.ap-controls-right'));\n\n cthis.append('<div class=\"temp-wrapper\"></div>');\n cthis.find('.temp-wrapper').append(selfClass.extraHtmlAreas.controlsRight);\n cthis.find('.temp-wrapper').children('*:not(.dzsap-wrapper-but)').remove();\n cthis.find('.temp-wrapper > .dzsap-wrapper-but').unwrap();\n cthis.find('.dzsap-wrapper-but').each(function () {\n var aux = $(this).html();\n // console.log('aux - ',aux);\n\n aux = aux.replace('{{heart_svg}}', '\\t♥');\n aux = aux.replace('{{svg_share_icon}}', dzsapSvgs.svg_share_icon);\n\n\n if ($(this).get(0) && $(this).get(0).outerHTML.indexOf('dzsap-multisharer-but') > -1) {\n selfClass.isMultiSharer = true;\n // console.log(\"selfClass.isMultiSharer -5 sw\",selfClass.isMultiSharer);\n\n }\n\n $(this).html(aux);\n }).wrapAll('<div class=\"dzsap-wrapper-buts\"></div>');\n }\n\n if (o.design_skin === 'skin-customcontrols') {\n\n\n // console.log('cthis.html() - ',cthis.html());\n cthis.html(String(cthis.html()).replace('{{svg_play_icon}}', dzsapSvgs.svg_play_icon));\n cthis.html(String(cthis.html()).replace('{{svg_pause_icon}}', dzsapSvgs.pausebtn_svg));\n\n }\n }\n\n\n /**\n * called if we have .dzsap-multisharer-but in html\n */\n function check_multisharer() {\n\n // -- we setup a box main here as a child of body\n\n // console.log('selfClass.isMultiSharer -', selfClass.isMultiSharer);\n\n selfClass.cthis.find('.dzsap-multisharer-but').data('cthis', cthis);\n // console.log(\"WE SETUP HERE\", cthis.find('.dzsap-multisharer-but').data('cthis'), 'selfClass.isMultiSharer - ',selfClass.isMultiSharer);\n selfClass.cthis.data('embed_code', selfClass.feedEmbedCode);\n\n\n if (selfClass.isMultiSharer) {\n window.dzsap_init_multisharer()\n }\n\n }\n\n function setup_pcm_random_for_now(pargs) {\n\n\n var margs = {\n call_from: 'default'\n }\n\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n var default_pcm = [];\n\n if (!(o.pcm_data_try_to_generate === 'on' && o.pcm_data_try_to_generate_wait_for_real_pcm === 'on')) {\n for (var i3 = 0; i3 < 200; i3++) {\n default_pcm[i3] = Number(Math.random()).toFixed(2);\n }\n default_pcm = JSON.stringify(default_pcm);\n\n cthis.addClass('rnd-pcm-for-now')\n cthis.attr('data-pcm', default_pcm);\n }\n\n\n dzsapHelpers.scrubbar_modeWave_setupCanvas({}, selfClass);\n ;\n\n }\n\n\n function setup_structure_scrub() {\n // console.log('setup_structure_scrub()', 'o.skinwave_enableSpectrum -', o.skinwave_enableSpectrum, 'o.skinwave_wave_mode - ', o.skinwave_wave_mode);\n if (o.skinwave_enableSpectrum !== 'on') {\n if (o.skinwave_wave_mode === 'canvas') {\n\n if (cthis.attr('data-pcm')) {\n selfClass.isRealPcm = true;\n dzsapHelpers.scrubbar_modeWave_setupCanvas({}, selfClass);\n } else {\n setup_pcm_random_for_now();\n }\n\n\n }\n\n\n } else {\n\n // -- spectrum ON\n\n dzsapHelpers.scrubbar_modeWave_setupCanvas({}, selfClass);\n // -- old spectrum code\n $scrubBgCanvas = selfClass.cthis.find('.scrub-bg-img').eq(0);\n _scrubBgCanvasCtx = $scrubBgCanvas.get(0).getContext(\"2d\");\n }\n\n }\n ;\n\n\n /**\n * order -> init, setup_media, init_loaded\n * called from init() if not icecast or soundcloud\n * @param pargs\n * @returns {boolean}\n */\n function setup_media(pargs) {\n\n // console.groupCollapsed('setup_media()')\n // console.trace();\n // console.groupEnd()\n\n // return;\n\n\n var setupMediaAttrs = {\n\n 'do_not_autoplay': false,\n 'called_from': 'default',\n 'newSource': '',\n };\n\n\n if (pargs) {\n setupMediaAttrs = $.extend(setupMediaAttrs, pargs);\n }\n // console.log('%c --- #setup_media()', ConstantsDzsAp.DEBUG_STYLE_1, cthis.attr('data-source'), o.cueMedia, selfClass.ajax_view_submitted, setupMediaAttrs, 'cthis - ', cthis, 'o.preload_method -', o.preload_method, 'source - ', selfClass.data_source);\n\n\n // -- these types should not exist\n if (selfClass.audioType === 'icecast' || selfClass.audioType === 'shoutcast') {\n selfClass.audioType = 'selfHosted';\n }\n\n if (o.cueMedia === 'off') {\n //console.log(selfClass.ajax_view_submitted);\n if (selfClass.ajax_view_submitted === 'auto') {\n\n\n // -- why is view submitted ?\n selfClass.increment_views = 1;\n\n // console.log(o.settings_extrahtml);\n selfClass.ajax_view_submitted = 'off';\n\n ;\n }\n }\n\n\n //console.log(type, o.type, loaded);\n\n if (selfClass.isPlayerLoaded === true) {\n return;\n }\n\n\n if (cthis.attr('data-original-type') === 'youtube') {\n return;\n }\n\n // console.log(\"SETUP MEDIA\", margs, type);\n\n\n if (selfClass.audioType === 'youtube') {\n if (o.settings_exclude_from_list !== 'on' && dzsap_list && dzsap_list.indexOf(cthis) === -1) {\n if (dzsap_list) {\n\n if (cthis.attr('data-do-not-include-in-list') !== 'on') {\n dzsap_list.push(cthis);\n }\n }\n }\n\n\n // -- clear on change media\n if (setupMediaAttrs.called_from === 'change_media') {\n youtube_isInited = false;\n if (selfClass.$mediaNode_ && selfClass.$mediaNode_.destroy) {\n\n selfClass.$mediaNode_.destroy();\n console.log(\"DESTROYED LAST PLAYERS\");\n }\n selfClass.$theMedia.children().remove();\n }\n\n\n selfClass.$theMedia.append('<div id=\"' + selfClass.youtube_currentId + '\"></div>');\n\n if (window.YT) {\n dzsap_youtube_checkReady(selfClass, selfClass.youtube_currentId);\n }\n\n\n cthis.addClass('media-setuped');\n dzsapHelpers.player_view_addMetaLoaded(selfClass);\n\n }\n // -- END youtube\n\n\n if (setupMediaAttrs.newSource) {\n selfClass.data_source = setupMediaAttrs.newSource;\n }\n\n if (dzsapHelpers.is_ios()) {\n o.preload_method = 'metadata';\n }\n\n // console.log('selfClass.data_source - ', selfClass.data_source);\n\n const stringAudioElement = mediaFunctions.buildAudioElementHtml(selfClass, selfClass.audioTypeSelfHosted_streamType, 'setup_media');\n stringAudioElementHtml = stringAudioElement.stringAudioElementHtml;\n const stringAudioTagSource = stringAudioElement.stringAudioTagSource;\n\n if (selfClass.audioType === 'selfHosted' || selfClass.audioType === 'soundcloud') {\n\n // console.log(' .final_aux - ', str_audio_element, selfClass.$theMedia);\n\n\n // -- change media\n // debugger;\n if (setupMediaAttrs.called_from === 'change_media' || setupMediaAttrs.called_from === 'nonce generated') {\n if (selfClass.$watermarkMedia_ && selfClass.$watermarkMedia_.pause) {\n selfClass.$watermarkMedia_.pause();\n }\n selfClass.$theMedia.find('.the-watermark').remove();\n selfClass.$watermarkMedia_ = null;\n if (dzsapHelpers.is_ios() || dzsapHelpers.is_android()) {\n\n // -- we append only the source to mobile devices as we need the thing to autoplay without user action\n\n if (selfClass.$mediaNode_) {\n selfClass.$theMedia.children().remove();\n $(selfClass.$mediaNode_).append(stringAudioTagSource);\n\n\n if (selfClass.$mediaNode_.load) {\n selfClass.$mediaNode_.load();\n }\n }\n\n } else {\n // -- normal desktop\n\n // console.log('%c .str_audio_element - ', 'background-color: #dada20;',str_audio_element);\n\n if (!(setupMediaAttrs.called_from === 'nonce generated' && selfClass._actualPlayer)) {\n\n selfClass.$theMedia.append(stringAudioElementHtml);\n selfClass.$mediaNode_ = (selfClass.$theMedia.children('audio').get(0));\n }\n }\n // -- end change media\n } else {\n\n // console.log('str_audio_element - ', {str_audio_element});\n\n selfClass.$theMedia.children().remove();\n selfClass.$theMedia.append(stringAudioElementHtml);\n selfClass.$mediaNode_ = (selfClass.$theMedia.children('audio').get(0));\n // console.log(\"selfClass.$theMedia.html() - \",selfClass.$theMedia.html());\n\n if (dzsapHelpers.is_ios() || dzsapHelpers.is_android()) {\n if (setupMediaAttrs.called_from === 'retrieve_soundcloud_url') {\n setTimeout(function () {\n pause_media();\n }, 500);\n }\n }\n }\n\n if (cthis.attr('data-soft-watermark')) {\n mediaFunctions.setupSoftWatermark();\n }\n\n\n if (selfClass.$mediaNode_ && selfClass.$mediaNode_.addEventListener && selfClass.cthis.attr('data-source') !== 'fake') {\n mediaFunctions.setupMediaListeners(selfClass, setupMediaAttrs, init_loaded, volume_lastVolume, volume_setVolume)\n }\n\n }\n\n // console.log(\"MEDIA SETUPED\",selfClass.$conPlayPause);\n selfClass.cthis.addClass('media-setuped');\n //selfClass.$conPlayPause.off('click');\n\n\n if (setupMediaAttrs.called_from === 'change_media') {\n return false;\n }\n\n if (selfClass.audioType !== 'youtube') {\n if (selfClass.cthis.attr('data-source') === 'fake') {\n if (dzsapHelpers.is_ios() || dzsapHelpers.is_android()) {\n init_loaded(setupMediaAttrs);\n }\n } else {\n if (dzsapHelpers.is_ios()) {\n\n setTimeout(function () {\n init_loaded(setupMediaAttrs);\n }, 1000);\n\n\n } else {\n\n // -- check_ready() will fire init_loaded()\n inter_checkReady = setInterval(function () {\n init_checkIfReady(setupMediaAttrs);\n }, 50);\n //= setInterval(check_ready, 50);\n }\n\n }\n\n\n if (o.preload_method === 'none') {\n\n // console.log(window.dzsap_player_index);\n setTimeout(function () {\n if (selfClass.$mediaNode_) {\n\n $(selfClass.$mediaNode_).attr('preload', 'metadata');\n }\n }, (Number(window.dzsap_player_index) + 18000));\n }\n\n\n if (o.design_skin === 'skin-customcontrols' || o.design_skin === 'skin-customhtml') {\n cthis.find('.custom-play-btn,.custom-pause-btn').off('click');\n cthis.find('.custom-play-btn,.custom-pause-btn').on('click', handleClick_playPause);\n }\n\n if (o.failsafe_repair_media_element) {\n setTimeout(function () {\n\n if (selfClass.$theMedia.children().eq(0).get(0) && selfClass.$theMedia.children().eq(0).get(0).nodeName === \"AUDIO\") {\n //console.log('ceva');\n return false;\n }\n selfClass.$theMedia.html('');\n selfClass.$theMedia.append(stringAudioElementHtml);\n\n var aux_wasplaying = selfClass.player_playing;\n\n pause_media();\n selfClass.$mediaNode_ = (selfClass.$theMedia.children('audio').get(0));\n\n\n if (aux_wasplaying) {\n aux_wasplaying = false;\n setTimeout(function () {\n\n play_media({\n 'called_from': 'aux_was_playing'\n });\n }, 20);\n }\n }, o.failsafe_repair_media_element);\n\n o.failsafe_repair_media_element = '';\n\n }\n }\n\n // console.log('o.scrubbar_type - ', o.scrubbar_type);\n if (o.scrubbar_type === 'wave' && o.skinwave_enableSpectrum === 'on') {\n dzsapHelpers.player_initSpectrumOnUserAction(selfClass);\n\n }\n\n\n // dzsapHelpers.is_ios() ||\n\n\n isSetupedMedia = true;\n\n\n }\n\n function destroy_cmedia() {\n // -- destroy cmedia\n\n $(selfClass.$mediaNode_).remove();\n selfClass.$mediaNode_ = null;\n isSetupedMedia = false;\n selfClass.isPlayerLoaded = false;\n }\n\n function destroy_media() {\n //console.log(\"destroy_media()\", cthis)\n pause_media();\n\n\n if (selfClass.$mediaNode_) {\n\n //console.log(selfClass.$mediaNode_, selfClass.$mediaNode_.src);\n if (selfClass.$mediaNode_.children) {\n\n //selfClass.$mediaNode_.children().remove();\n }\n\n //console.log(selfClass.$mediaNode_.innerHTML);\n if (o.type === 'audio') {\n selfClass.$mediaNode_.innerHTML = '';\n selfClass.$mediaNode_.load();\n }\n //console.log(selfClass.$mediaNode_.innerHTML);\n\n //selfClass.$mediaNode_.remove();\n }\n\n if (dzsapHelpers.is_ios() || dzsapHelpers.is_android()) {\n } else {\n if (selfClass.$theMedia) {\n\n selfClass.$theMedia.children().remove();\n selfClass.isPlayerLoaded = false;\n }\n }\n\n destroy_cmedia();\n\n }\n\n function setup_listeners() {\n\n\n if (setuped_listeners) {\n return false;\n }\n // console.log('setup_listeners()');\n\n setuped_listeners = true;\n\n\n // -- adding scrubbar listeners\n selfClass._scrubbar.unbind('mousemove');\n selfClass._scrubbar.unbind('mouseleave');\n selfClass._scrubbar.unbind('click');\n selfClass._scrubbar.bind('mousemove', handleMouseOnScrubbar);\n selfClass._scrubbar.bind('mouseleave', handleMouseOnScrubbar);\n selfClass._scrubbar.bind('click', handleMouseOnScrubbar);\n\n // cthis.on('');\n\n\n selfClass.$controlsVolume.on('click', '.volumeicon', volume_handleClickMuteIcon);\n\n selfClass.$controlsVolume.bind('mousemove', volume_handleMouse);\n selfClass.$controlsVolume.bind('mousedown', volume_handleMouse);\n\n\n // $(document).undelegate(window, 'mouseup', mouse_volumebar);\n $(document).on('mouseup', window, volume_handleMouse);\n\n if (o.design_skin === 'skin-silver') {\n cthis.on('click', '.volume-holder', volume_handleMouse);\n }\n\n cthis.find('.playbtn').unbind('click');\n\n\n // console.log('setup_listeners()');\n\n setTimeout(handleResize, 300);\n // setTimeout(handleResize,1000);\n setTimeout(handleResize, 2000);\n\n if (o.settings_trigger_resize > 0) {\n inter_trigger_resize = setInterval(handleResize, o.settings_trigger_resize);\n }\n\n\n cthis.addClass('listeners-setuped');\n\n\n return false;\n\n // console.log('ceva');\n }\n\n\n function volume_getLast() {\n return volume_lastVolume;\n }\n\n function init_loaded(pargs) {\n\n if (cthis.attr('id') === 'apminimal') {\n }\n // console.log('init_loaded() - ', pargs, cthis, cthis.hasClass('loaded'));\n if (cthis.hasClass('dzsap-loaded')) {\n return;\n }\n\n var margs = {\n\n 'do_not_autoplay': false\n , 'call_from': 'init'\n };\n\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n // console.log('[dzsap] [init] init_loaded()',margs);\n\n setTimeout(function () {\n selfClass.isSafeToChangeTrack = true;\n }, 5000);\n\n\n if (typeof (selfClass.$mediaNode_) !== \"undefined\" && selfClass.$mediaNode_) {\n if (selfClass.$mediaNode_.nodeName === 'AUDIO') {\n //console.log(selfClass.$mediaNode_);\n selfClass.$mediaNode_.addEventListener('ended', handleMediaEnd);\n }\n }\n\n\n //console.log(\"CLEAR THE TIMEOUT HERE\")\n clearInterval(inter_checkReady);\n clearTimeout(inter_checkReady);\n setup_listeners();\n //console.log('setuped_listeners', cthis.hasClass('dzsap-loaded'), cthis)\n\n\n setTimeout(function () {\n\n //console.log(selfClass.$currTime, )\n if (selfClass.$currTime && selfClass.$currTime.outerWidth() > 0) {\n currTime_outerWidth = selfClass.$currTime.outerWidth();\n }\n }, 1000);\n\n\n // -- this comes from cue off, no pcm data\n\n\n if(selfClass._actualPlayer || selfClass.initOptions.scrubbar_type==='wave'){\n dzsapWaveFunctions.scrubModeWave__checkIfWeShouldTryToGetPcm(selfClass, {\n called_from: 'init_loaded()'\n });\n }\n\n\n //console.log('type - ',type);\n //console.log('initLoaded() - margs - ',margs);\n\n\n if (selfClass.audioType !== 'fake' && margs.call_from !== 'force_reload_change_media') {\n if (o.settings_exclude_from_list !== 'on' && dzsap_list && dzsap_list.indexOf(cthis) === -1) {\n if (selfClass._actualPlayer === null) {\n dzsap_list.push(cthis);\n }\n }\n\n\n if (o.type_audio_stop_buffer_on_unfocus === 'on') {\n\n\n cthis.data('type_audio_stop_buffer_on_unfocus', 'on');\n\n cthis.get(0).api_destroy_for_rebuffer = function () {\n if (o.type === 'audio') {\n selfClass.playFrom = selfClass.$mediaNode_.currentTime;\n }\n destroy_media();\n destroyed_for_rebuffer = true;\n }\n\n }\n }\n\n //console.log(\"CHECK TIME\",cthis);\n\n\n //console.log(selfClass.ajax_view_submitted);\n\n if (selfClass.ajax_view_submitted === 'auto') {\n setTimeout(function () {\n if (selfClass.ajax_view_submitted === 'auto') {\n selfClass.ajax_view_submitted = 'off';\n }\n }, 1000);\n }\n\n //console.log('---- ADDED LOADED BUT FROM WHERE', cthis);\n selfClass.isPlayerLoaded = true;\n\n if (selfClass.data_source !== 'fake') {\n\n cthis.addClass('dzsap-loaded');\n }\n\n // console.log(playfrom);\n\n if (o.default_volume === 'default') {\n defaultVolume = 1;\n }\n\n if (isNaN(Number(o.default_volume)) === false) {\n defaultVolume = Number(o.default_volume);\n } else {\n if (o.default_volume === 'last') {\n\n\n if (localStorage !== null && selfClass.the_player_id) {\n\n //console.log(selfClass.the_player_id);\n\n\n if (localStorage.getItem('dzsap_last_volume_' + selfClass.the_player_id)) {\n\n defaultVolume = localStorage.getItem('dzsap_last_volume_' + selfClass.the_player_id);\n } else {\n\n defaultVolume = 1;\n }\n } else {\n\n defaultVolume = 1;\n }\n }\n }\n\n if (o.volume_from_gallery) {\n defaultVolume = o.volume_from_gallery;\n }\n\n\n // console.log(pargs);\n // console.log('[dzsap] [volume] defaultVolume - ', defaultVolume);\n volume_setVolume(defaultVolume, {\n call_from: \"from_init_loaded\"\n });\n\n\n if (selfClass.pseudo_sample_time_start) {\n selfClass.playFrom = (selfClass.pseudo_sample_time_start);\n }\n // console.log('playfrom -> ',playfrom);\n if (dzsHelpers.isInt(selfClass.playFrom)) {\n seek_to(selfClass.playFrom, {\n call_from: 'from_playfrom'\n });\n }\n\n\n // TODO: debug\n // localStorage['dzsap_' + selfClass.the_player_id + '_lastpos'] = 10;\n if (selfClass.playFrom === 'last') {\n // -- here we save last position\n if (typeof Storage !== 'undefined') {\n setTimeout(function () {\n selfClass.playFrom_ready = true;\n })\n\n\n if (typeof localStorage['dzsap_' + selfClass.the_player_id + '_lastpos'] !== 'undefined') {\n\n // console.log(\"LETS SEEK TO lastposition -3 \",localStorage['dzsap_' + selfClass.the_player_id + '_lastpos'])\n seek_to(localStorage['dzsap_' + selfClass.the_player_id + '_lastpos'], {\n 'call_from': 'last_pos'\n });\n }\n }\n }\n //return false ;\n\n // console.log(cthis, o.autoplay);\n\n\n if (margs.do_not_autoplay !== true) {\n\n if (o.autoplay === 'on' && o.cueMedia === 'on') {\n // console.log('margs.do_not_autoplay - ', margs.do_not_autoplay, margs,o);\n play_media({\n 'called_from': 'do not autoplay not true ( init_loaded() ) '\n });\n }\n ;\n }\n\n if (selfClass.$mediaNode_ && selfClass.$mediaNode_.duration) {\n // console.log('init_loaded');\n // console.trace();\n dzsapHelpers.player_view_addMetaLoaded(selfClass);\n }\n\n\n // -- init loaded()\n\n\n // console.log('called check_time() - ',cthis);\n\n reinit();\n\n handleEnterFrame({\n 'fire_only_once': false\n });\n\n if (o.autoplay === 'off') {\n isNotRenderingEnterFrame = true;\n }\n\n cthis.addClass('init-loaded');\n\n setTimeout(function () {\n //console.log(cthis.find('.wave-download'));\n\n selfClass.timeModel.refreshTimes({\n 'call_from': 'set timeout 500'\n });\n handleEnterFrame({\n 'fire_only_once': true\n });\n\n cthis.find('.wave-download').bind('click', handle_mouse);\n }, 500);\n\n setTimeout(function () {\n //console.log(cthis.find('.wave-download'));\n\n selfClass.timeModel.refreshTimes({\n 'call_from': 'set timeout 1000'\n });\n\n handleEnterFrame({\n 'fire_only_once': true\n });\n\n\n }, 1000);\n\n\n setTimeout(function () {\n\n // console.log('selfClass.$mediaNode_.duration - ',selfClass.$mediaNode_.duration)\n }, 2000);\n\n\n // console.log('init_loaded - ',o.action_video_contor_60secs);\n if (inter_60_secs_contor === 0 && o.action_video_contor_60secs) {\n inter_60_secs_contor = setInterval(count_60secs, 30000);\n }\n\n\n }\n\n\n function count_60secs() {\n // console.log('count it',o.action_video_contor_60secs,cthis.hasClass('is-playing'));\n if (o.action_video_contor_60secs && cthis.hasClass('is-playing')) {\n o.action_video_contor_60secs(cthis, '');\n }\n }\n\n\n function handle_mouse(e) {\n var $t = $(this);\n\n // console.log('handle_mouse() _t - ',_t);\n\n if (e.type === 'click') {\n if ($t.hasClass('wave-download')) {\n (ajax_submit_download.bind(selfClass))();\n }\n if ($t.hasClass('prev-btn')) {\n handleClick_prevBtn();\n }\n if ($t.hasClass('next-btn')) {\n handleClick_nextBtn();\n }\n if ($t.hasClass('tooltip-indicator--btn-footer-playlist')) {\n\n $t.parent().find('.dzstooltip').toggleClass('active');\n }\n if ($t.hasClass('zoomsounds-btn-go-beginning')) {\n\n var _target = cthis;\n if (selfClass._actualPlayer) {\n _target = selfClass._actualPlayer;\n }\n\n _target.get(0).api_seek_to_0();\n }\n if ($t.hasClass('zoomsounds-btn-step-backward')) {\n\n var _target = cthis;\n if (selfClass._actualPlayer) {\n _target = selfClass._actualPlayer;\n }\n\n _target.get(0).api_step_back();\n }\n if ($t.hasClass('zoomsounds-btn-step-forward')) {\n\n var _target = cthis;\n if (selfClass._actualPlayer) {\n _target = selfClass._actualPlayer;\n }\n\n _target.get(0).api_step_forward();\n }\n if ($t.hasClass('zoomsounds-btn-slow-playback')) {\n var _target = cthis;\n if (selfClass._actualPlayer) {\n _target = selfClass._actualPlayer;\n }\n\n _target.get(0).api_playback_slow();\n }\n if ($t.hasClass('zoomsounds-btn-reset')) {\n var _target = cthis;\n if (selfClass._actualPlayer) {\n _target = selfClass._actualPlayer;\n }\n\n _target.get(0).api_playback_reset();\n }\n if ($t.hasClass('btn-zoomsounds-download')) {\n (ajax_submit_download.bind(selfClass))();\n }\n if ($t.hasClass('dzsap-repeat-button')) {\n\n // console.log(\"REPEAT\");\n if (selfClass.player_playing) {\n }\n seek_to(0, {\n call_from: \"repeat\"\n });\n }\n if ($t.hasClass('dzsap-loop-button')) {\n\n if ($t.hasClass('active')) {\n $t.removeClass('active');\n loop_active = false;\n } else {\n\n $t.addClass('active');\n loop_active = true;\n\n }\n console.log('loop_active - ', loop_active, cthis);\n\n\n }\n }\n if (e.type === 'mouseover') {\n }\n if (e.type === 'mouseenter') {\n // console.log('mouseenter');\n\n if (o.preview_on_hover === 'on') {\n seek_to_perc(0);\n\n play_media({\n 'called_from': 'preview_on_hover'\n });\n console.log('mouseover');\n }\n\n window.dzsap_mouseover = true;\n }\n if (e.type === 'mouseleave') {\n // console.log('mouseleave');\n\n\n if (o.preview_on_hover === 'on') {\n seek_to_perc(0);\n\n pause_media();\n }\n window.dzsap_mouseover = false;\n }\n }\n\n\n function view_drawCurrentTime() {\n\n // -- draw current time -- called onEnterFrame when playing\n // console.log('draw_curr_time() -7');\n\n let currentTime = selfClass.timeModel.getVisualCurrentTime();\n let totalTime = selfClass.timeModel.getVisualTotalTime();\n\n if (selfClass.initOptions.scrubbar_type === 'wave') {\n if (selfClass.initOptions.skinwave_enableSpectrum === 'on') {\n // -- spectrum ON\n // -- easing\n if (selfClass.player_playing) {\n\n } else {\n return false;\n }\n if ($scrubBgCanvas) {\n\n canvasWidth = $scrubBgCanvas.width();\n canh = $scrubBgCanvas.height();\n\n $scrubBgCanvas.get(0).width = canvasWidth;\n $scrubBgCanvas.get(0).height = canh;\n }\n\n\n var drawMeter = function () {\n\n //console.log(selfClass.initOptions.type);\n\n if (selfClass.initOptions.type === 'soundcloud' || sw_spectrum_fakeit === 'on') {\n\n selfClass.lastArray = dzsapHelpers.generateFakeArrayForPcm();\n\n } else {\n\n if (selfClass.spectrum_analyser) {\n selfClass.lastArray = new Uint8Array(selfClass.spectrum_analyser.frequencyBinCount);\n selfClass.spectrum_analyser.getByteFrequencyData(selfClass.lastArray);\n }\n }\n\n\n if (selfClass.lastArray && selfClass.lastArray.length) {\n\n\n //fix when some sounds end the value still not back to zero\n var len = selfClass.lastArray.length;\n for (var i = len - 1; i >= 0; i--) {\n //selfClass.lastArray[i] = 0;\n\n if (i < len / 2) {\n\n selfClass.lastArray[i] = selfClass.lastArray[i] / 255 * canh;\n } else {\n\n selfClass.lastArray[i] = selfClass.lastArray[len - i] / 255 * canh;\n }\n }\n ;\n\n\n if (selfClass.last_lastarray) {\n for (var i3 = 0; i3 < selfClass.last_lastarray.length; i3++) {\n begin_viy = selfClass.last_lastarray[i3]; // -- last value\n change_viy = selfClass.lastArray[i3] - begin_viy; // -- target value - last value\n duration_viy = 3;\n selfClass.lastArray[i3] = Math.easeIn(1, begin_viy, change_viy, duration_viy);\n }\n }\n // -- easing END\n\n dzsapWaveFunctions.draw_canvas($scrubBgCanvas.get(0), selfClass.lastArray, '' + selfClass.initOptions.design_wave_color_bg, {\n 'call_from': 'spectrum',\n selfClass,\n 'skinwave_wave_mode_canvas_waves_number': parseInt(selfClass.initOptions.skinwave_wave_mode_canvas_waves_number),\n 'skinwave_wave_mode_canvas_waves_padding': parseInt(selfClass.initOptions.skinwave_wave_mode_canvas_waves_padding)\n })\n\n\n if (selfClass.lastArray) {\n selfClass.last_lastarray = selfClass.lastArray.slice();\n }\n\n\n }\n\n }\n\n drawMeter();\n\n\n // -- end spectrum\n }\n\n if (selfClass.$currTime && selfClass.$currTime.length) {\n\n if (selfClass.initOptions.skinwave_timer_static !== 'on') {\n\n if (scrubbarProgX < 0) {\n scrubbarProgX = 0;\n }\n scrubbarProgX = parseInt(scrubbarProgX, 10);\n\n\n if (scrubbarProgX < 2 && cthis.data('promise-to-play-footer-player-from')) {\n // console.error(\"WE RETURN IT\")\n return false;\n }\n\n // -- move currTime\n selfClass.$currTime.css({\n 'left': scrubbarProgX\n });\n\n // console.log('spos - ',spos);\n // console.log('sw - ',sw);\n if (scrubbarProgX > scrubbarWidth - currTime_outerWidth) {\n //console.log(sw, currTime_outerWidth);\n selfClass.$currTime.css({\n 'left': scrubbarWidth - currTime_outerWidth\n })\n }\n if (scrubbarProgX > scrubbarWidth - 30 && scrubbarWidth) {\n selfClass.$totalTime.css({\n 'opacity': 1 - (((scrubbarProgX - (scrubbarWidth - 30)) / 30))\n });\n } else {\n if (selfClass.$totalTime.css('opacity') !== '1') {\n selfClass.$totalTime.css({\n 'opacity': ''\n });\n }\n }\n ;\n }\n ;\n }\n }\n\n if (totalTime !== last_time_total) {\n view_updateTotalTime(totalTime)\n }\n\n if (selfClass.$currTime) {\n\n\n if (isScrubShowingCurrentTime === false) {\n selfClass.$currTime.html(dzsapHelpers.formatTime(currentTime));\n }\n\n // console.log({totalTime}, cthis);\n if (selfClass.timeModel.getVisualTotalTime() && selfClass.timeModel.getVisualTotalTime() > -1) {\n selfClass.cthis.addClass('time-total-visible');\n\n // side effect\n ajax_submit_total_time(selfClass);\n\n }\n }\n\n\n if (selfClass.spectrum_audioContext) {\n if (selfClass.$totalTime) {\n selfClass.$totalTime.html(dzsapHelpers.formatTime(totalTime));\n }\n }\n\n }\n\n function view_updateTotalTime(totalTime) {\n\n if (selfClass.$totalTime) {\n selfClass.$totalTime.html(dzsapHelpers.formatTime(totalTime));\n selfClass.$totalTime.fadeIn('fast');\n }\n }\n\n /**\n * draw the scrub width\n * @returns {string|boolean}\n */\n function view_drawScrubProgress() {\n // return false;\n let currentTime = selfClass.timeModel.getVisualCurrentTime();\n let totalTime = selfClass.timeModel.getVisualTotalTime();\n // console.log({currentTime,totalTime});\n\n\n scrubbarProgX = (currentTime / totalTime) * scrubbarWidth;\n\n // console.log('sw - ',sw);\n\n\n if (isNaN(scrubbarProgX)) {\n scrubbarProgX = 0;\n }\n if (scrubbarProgX > scrubbarWidth) {\n scrubbarProgX = scrubbarWidth;\n }\n\n if (currentTime < 0) {\n scrubbarProgX = 0;\n }\n\n if (totalTime === 0 || isNaN(totalTime)) {\n scrubbarProgX = 0;\n }\n\n // console.log('spos -3 ',spos, 'promise-to-play-footer-player-from -',cthis.data('promise-to-play-footer-player-from'), \"||\", cthis);\n\n if (scrubbarProgX < 2 && cthis.data('promise-to-play-footer-player-from')) {\n // console.error(\"WE RETURN IT\")\n return false;\n }\n\n if (selfClass.spectrum_audioContext_buffer === null) {\n if (selfClass.$$scrubbProg) {\n selfClass.$$scrubbProg.style.width = parseInt(scrubbarProgX, 10) + 'px';\n }\n }\n\n }\n\n function handleClick_prevBtn() {\n\n\n // console.log('click_prev_btn()')\n if (o.parentgallery && (o.parentgallery.get(0))) {\n o.parentgallery.get(0).api_goto_prev();\n } else {\n\n syncPlayers_gotoPrev();\n }\n }\n\n function handleClick_nextBtn() {\n if (o.parentgallery && (o.parentgallery.get(0))) {\n o.parentgallery.get(0).api_goto_next();\n } else {\n\n syncPlayers_gotoNext();\n }\n }\n\n\n /**\n * fired on requestAnimFrame\n * @param pargs\n * @returns {boolean}\n */\n function handleEnterFrame(pargs) {\n\n\n // -- enter frame\n // console.log('handleTickChange()', cthis);\n\n var margs = {\n 'fire_only_once': false\n }\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n if (destroyed) {\n console.log(\"DESTROYED\");\n return false;\n }\n\n\n // console.log(sw_suspend_enter_frame);\n if (margs.fire_only_once === false && isNotRenderingEnterFrame) {\n requestAnimationFrame(handleEnterFrame);\n // console.log(\"SUSPENDED ENTER FRAME HERE\");\n return false;\n }\n // console.log(\"REACHED\");\n\n\n selfClass.timeModel.refreshTimes({\n 'call_from': 'checK_time'\n });\n\n if (selfClass.audioType === 'selfHosted') {\n\n }\n\n\n view_drawScrubProgress();\n\n\n selfClass.timeModel.processCurrentFrame();\n // console.log('cthis -5 ', cthis, selfClass._sourcePlayer);\n\n\n // -- skin minimal\n if (o.design_skin === 'skin-minimal') {\n\n\n if (selfClass.player_playing || selfClass.isCanvasFirstDrawn === false) {\n\n\n var ctx_minimal = selfClass.skin_minimal_canvasplay.getContext('2d');\n //console.log(ctx);\n\n\n var ctx_w = selfClass.skin_minimal_canvasplay.width;\n var ctx_h = selfClass.skin_minimal_canvasplay.height;\n\n // console.log(ctx_w);\n var pw = ctx_w / 100;\n var ph = ctx_h / 100;\n\n if (selfClass._actualPlayer) {\n\n }\n scrubbarProgX = Math.PI * 2 * (selfClass.timeModel.getVisualCurrentTime() / selfClass.timeModel.getVisualTotalTime());\n\n if (isNaN(scrubbarProgX)) {\n scrubbarProgX = 0;\n }\n if (scrubbarProgX > Math.PI * 2) {\n scrubbarProgX = Math.PI * 2;\n }\n\n ctx_minimal.clearRect(0, 0, ctx_w, ctx_h);\n //console.log(ctx_w, ctx_h);\n\n\n // -- use design_wave_color_progress for drawing skin-minimal circle\n\n\n ctx_minimal.beginPath();\n ctx_minimal.arc((50 * pw), (50 * ph), (40 * pw), 0, Math.PI * 2, false);\n ctx_minimal.fillStyle = \"rgba(0,0,0,0.1)\";\n ctx_minimal.fill();\n\n\n // console.log(spos);\n ctx_minimal.beginPath();\n ctx_minimal.arc((50 * pw), (50 * ph), (34 * pw), 0, scrubbarProgX, false);\n //ctx_minimal.fillStyle = \"rgba(0,0,0,0.3)\";\n ctx_minimal.lineWidth = (10 * pw);\n ctx_minimal.strokeStyle = 'rgba(0,0,0,0.3)';\n ctx_minimal.stroke();\n\n\n selfClass.isCanvasFirstDrawn = true;\n\n\n }\n //console.log('ceva');\n }\n\n\n // console.log(o.design_skin);\n\n // -- enter_frame\n // console.log(\"REACHED2\");\n view_drawCurrentTime();\n\n\n // -- debug handleTickChange\n // inter_check = setTimeout(handleTickChange, 2000);\n if (margs.fire_only_once !== true) {\n requestAnimationFrame(handleEnterFrame);\n }\n\n\n }\n\n function\n\n handleClick_playPause(e) {\n //console.log('click_playpause', 'selfClass.player_playing - ',selfClass.player_playing);\n\n if (cthis.hasClass('prevent-bubble')) {\n\n if (e && e.stopPropagation) {\n e.preventDefault();\n e.stopPropagation();\n ;\n // return false;\n }\n\n }\n\n var _t = $(this);\n\n var isToggleCancelled = false;\n //console.log(_t);\n\n\n if (!cthis.hasClass('listeners-setuped')) {\n\n\n $(selfClass.$mediaNode_).attr('preload', 'auto');\n\n setup_listeners();\n init_loaded();\n\n\n var inter_checkTotalTime = setInterval(function () {\n\n // console.log(selfClass.$mediaNode_, selfClass.$mediaNode_.duration);\n if (selfClass.$mediaNode_ && selfClass.$mediaNode_.duration && isNaN(selfClass.$mediaNode_.duration) === false) {\n\n\n clearInterval(inter_checkTotalTime);\n }\n }, 1000);\n }\n\n\n if (o.design_skin === 'skin-minimal') {\n\n var center_x = _t.offset().left + skin_minimal_button_size / 2;\n var center_y = _t.offset().top + skin_minimal_button_size / 2;\n var mouse_x = e.pageX;\n var mouse_y = e.pageY;\n\n var perc = -(mouse_x - center_x - (skin_minimal_button_size / 2)) * 0.005;\n if (mouse_y < center_y) {\n perc = 0.5 + (0.5 - perc)\n }\n\n if (Math.abs(mouse_y - center_y) > 20 || Math.abs(mouse_x - center_x) > 20) {\n\n seek_to_perc(perc, {\n call_from: \"skin_minimal_scrub\"\n })\n isToggleCancelled = true;\n\n handleEnterFrame({\n 'fire_only_once': true\n });\n }\n }\n\n\n //unghi = acos (x - centruX) = asin(centruY - y)\n\n\n if (isToggleCancelled === false) {\n\n //console.log(\"selfClass.player_playing -> \",selfClass.player_playing);\n if (selfClass.player_playing === false) {\n play_media({\n 'called_from': 'click_playpause'\n });\n } else {\n pause_media();\n }\n }\n\n\n return false;\n }\n\n\n /**\n *\n * @param targetIncrement\n */\n function\n\n syncPlayers_gotoItem(targetIncrement = 0) {\n\n\n var targetIndex = 0;\n if (selfClass.classFunctionalityInnerPlaylist) {\n // -- playlist Inner\n\n targetIndex = selfClass.playlist_inner_currNr + targetIncrement;\n if (targetIndex >= 0) {\n selfClass.classFunctionalityInnerPlaylist.playlistInner_gotoItem(targetIndex, {\n 'call_from': 'api_sync_players_prev'\n });\n }\n } else {\n if (window.dzsap_syncList_players && window.dzsap_syncList_players.length > 0) {\n for (var keySyncPlayer in window.dzsap_syncList_players) {\n var $playerInSyncList = selfClass.cthis;\n\n if (selfClass._sourcePlayer) {\n $playerInSyncList = selfClass._sourcePlayer;\n }\n\n\n if (window.dzsap_syncList_players[keySyncPlayer].get(0) === $playerInSyncList.get(0)) {\n\n keySyncPlayer = parseInt(keySyncPlayer, 10);\n targetIndex = window.dzsap_syncList_index + targetIncrement;\n if (targetIndex >= 0 && targetIndex < window.dzsap_syncList_players.length) {\n let $currentSyncPlayer_ = window.dzsap_syncList_players[targetIndex].get(0);\n // console.log('THIS IS _c ',_c);\n\n if ($currentSyncPlayer_ && $currentSyncPlayer_.api_play_media) {\n setTimeout(function () {\n $currentSyncPlayer_.api_play_media({\n 'called_from': 'api_sync_players_prev'\n });\n }, 200);\n\n }\n }\n }\n }\n } else {\n console.log('[dzsap] [syncPlayers] no players found')\n }\n\n }\n\n if (window.dzsap_syncList_players && window.dzsap_syncList_index >= window.dzsap_syncList_players.length) {\n window.dzsap_syncList_index = 0;\n }\n\n // console.log('selfClass.playlist_inner_currNr- ', selfClass.playlist_inner_currNr);\n\n }\n\n function\n\n syncPlayers_gotoPrev() {\n\n\n if (selfClass._actualPlayer) {\n selfClass._actualPlayer.get(0).api_sync_players_goto_prev();\n\n return false;\n }\n\n\n syncPlayers_gotoItem(-1);\n\n }\n\n\n /**\n * go to next inner playlistItem for single player\n * @returns {boolean}\n */\n function\n\n syncPlayers_gotoNext() {\n\n\n // console.log('sync_players_goto_next() - ', cthis, 'selfClass._actualPlayer - ',selfClass._actualPlayer);\n\n\n if (selfClass._actualPlayer) {\n selfClass._actualPlayer.get(0).api_sync_players_goto_next();\n\n return false;\n }\n\n\n syncPlayers_gotoItem(1);\n }\n\n function\n\n handleMediaEnd(pargs) {\n\n\n var margs = {\n 'called_from': 'default'\n }\n\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n //console.log('end');\n if (selfClass.isMediaEnded) {\n return false;\n }\n\n // console.log('%c [dzsap] [play] handle_end()', ConstantsDzsAp.DEBUG_STYLE_PLAY_FUNCTIONS, margs);\n\n\n selfClass.isMediaEnded = true;\n\n selfClass.inter_isEnded = setTimeout(function () {\n selfClass.isMediaEnded = false;\n }, 1000);\n\n\n if (selfClass._actualPlayer && margs.call_from !== 'fake_player') {\n // -- lets leave fake player handle handle_end\n return false;\n }\n\n\n seek_to(0, {\n 'call_from': 'handle_end'\n });\n\n if (o.loop === 'on' || loop_active) {\n play_media({\n 'called_from': 'track_end'\n });\n return false;\n } else {\n pause_media();\n }\n\n if (o.parentgallery && typeof (o.parentgallery) !== 'undefined') {\n var args = {\n 'call_from': 'player_handle_end'\n }\n o.parentgallery.get(0).api_gallery_handle_end();\n }\n\n\n setTimeout(function () {\n\n\n if (selfClass.cthis.hasClass('is-single-player') || (selfClass._sourcePlayer && selfClass._sourcePlayer.hasClass('is-single-player'))) {\n\n // -- called on handle end\n syncPlayers_gotoNext();\n }\n\n }, 100);\n\n setTimeout(function () {\n\n if (selfClass._sourcePlayer && (selfClass._sourcePlayer.hasClass('is-single-player') || selfClass._sourcePlayer.hasClass('feeded-whole-playlist'))) {\n //action_audio_end(selfClass._sourcePlayer,args);\n selfClass._sourcePlayer.get(0).api_handle_end({\n 'call_from': 'handle_end() fake_player'\n });\n return false;\n //args.child_player = selfClass._sourcePlayer;\n }\n\n if (action_audio_end) {\n\n\n var args = {};\n\n\n // console.log(cthis, selfClass._sourcePlayer)\n\n\n action_audio_end(cthis, args);\n }\n }, 200);\n\n }\n\n\n function\n\n handleResize(e, pargs) {\n\n\n var margs = {\n\n 'called_from': 'default'\n }\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n if (cthis) {\n\n }\n\n // console.log('handleResize()', e, margs);\n\n ww = $(window).width();\n cthisWidth = cthis.width();\n th = cthis.height();\n\n\n if ($scrubBgCanvas && typeof ($scrubBgCanvas.width) === 'function') {\n canvasWidth = $scrubBgCanvas.width();\n canh = $scrubBgCanvas.height();\n\n }\n\n\n if (cthisWidth <= 720) {\n cthis.addClass('under-720');\n } else {\n\n cthis.removeClass('under-720');\n }\n if (cthisWidth <= 500) {\n // -- width under 500\n\n\n // -- move\n if (cthis.hasClass('under-500') === false) {\n if (o.design_skin === 'skin-wave' && selfClass.skinwave_mode === 'normal') {\n selfClass._apControls.append(selfClass._metaArtistCon);\n }\n }\n\n cthis.addClass('under-500');\n\n\n } else {\n // -- width under 500\n\n\n if (cthis.hasClass('under-500') === false) {\n if (o.design_skin === 'skin-wave' && selfClass.skinwave_mode === 'normal') {\n // selfClass._apControls.append(selfClass._metaArtistCon);\n selfClass._conPlayPauseCon.after(selfClass._metaArtistCon);\n }\n }\n\n cthis.removeClass('under-500');\n }\n\n\n scrubbarWidth = cthisWidth;\n if (o.design_skin === 'skin-default') {\n scrubbarWidth = cthisWidth;\n }\n if (o.design_skin === 'skin-pro') {\n scrubbarWidth = cthisWidth;\n }\n if (o.design_skin === 'skin-silver' || o.design_skin === 'skin-aria') {\n scrubbarWidth = cthisWidth;\n\n scrubbarWidth = selfClass._scrubbar.width();\n //console.log(sw);\n\n\n }\n\n\n if (o.design_skin === 'skin-justthumbandbutton') {\n cthisWidth = cthis.children('.audioplayer-inner').outerWidth();\n scrubbarWidth = cthisWidth;\n }\n if (o.design_skin === 'skin-redlights' || o.design_skin === 'skin-steel') {\n scrubbarWidth = selfClass._scrubbar.width();\n }\n\n\n //console.log(sw);\n\n\n if (o.design_skin === 'skin-wave') {\n scrubbarWidth = selfClass._scrubbar.outerWidth(false);\n // console.log('scrubbar width - ', sw, selfClass._scrubbar);\n\n scrubbar_h = selfClass._scrubbar.outerHeight(false);\n\n if (selfClass._commentsHolder) {\n\n selfClass._commentsHolder.css({\n 'width': scrubbarWidth\n })\n\n selfClass._commentsHolder.addClass('active');\n\n\n }\n\n }\n\n //console.log(o.design_skin, tw, sw);\n\n\n if (res_thumbh === true) {\n\n // console.log(cthis.get(0).style.height);\n\n\n if (o.design_skin === 'skin-default') {\n\n\n if (cthis.get(0) !== undefined) {\n // if the height is auto then\n if (cthis.get(0).style.height === 'auto') {\n cthis.height(200);\n }\n }\n\n var cthis_height = selfClass._audioplayerInner.height();\n if (typeof cthis.attr('data-initheight') === 'undefined' && cthis.attr('data-initheight') !== '') {\n cthis.attr('data-initheight', selfClass._audioplayerInner.height());\n } else {\n cthis_height = Number(cthis.attr('data-initheight'));\n }\n\n // console.log('cthis_height - ', cthis_height, cthis.attr('data-initheight'));\n\n if (o.design_thumbh === 'default') {\n\n design_thumbh = cthis_height - 44;\n }\n\n }\n\n selfClass._audioplayerInner.find('.the-thumb').eq(0).css({\n // 'height': design_thumbh\n })\n }\n\n\n //===display none + overflow hidden hack does not work .. yeah\n //console.log(cthis, selfClass._scrubbar.children('.scrub-bg').width());\n\n if (cthis.css('display') !== 'none') {\n selfClass._scrubbar.find('.scrub-bg-img').eq(0).css({\n 'width': selfClass._scrubbar.children('.scrub-bg').width()\n });\n selfClass._scrubbar.find('.scrub-prog-img').eq(0).css({\n 'width': selfClass._scrubbar.children('.scrub-bg').width()\n });\n // selfClass._scrubbar.find('.scrub-prog-canvas').eq(0).css({\n // 'width': selfClass._scrubbar.children('.scrub-bg').width()\n // });\n // selfClass._scrubbar.find('.scrub-prog-img-reflect').eq(0).css({\n // 'width': selfClass._scrubbar.children('.scrub-bg').width()\n // });\n // selfClass._scrubbar.find('.scrub-prog-canvas-reflect').eq(0).css({\n // 'width': selfClass._scrubbar.children('.scrub-bg').width()\n // });\n }\n\n\n // console.log('is_under_400 - ',is_under_400);\n // console.log('tw - ',tw);\n cthis.removeClass('under-240 under-400');\n if (cthisWidth <= 240) {\n cthis.addClass('under-240');\n }\n if (cthisWidth <= 500) {\n cthis.addClass('under-400');\n\n if (is_under_400 === false) {\n is_under_400 = true;\n }\n if (selfClass.$controlsVolume) {\n }\n\n } else {\n\n\n if (is_under_400 === true) {\n is_under_400 = false;\n }\n }\n\n\n var aux2 = 50;\n\n // console.log('o.design_skin - ', o.design_skin, cthis);\n // -- skin-wave\n if (o.design_skin === 'skin-wave') {\n\n controls_left_pos = 0;\n if (cthis.find('.the-thumb').length > 0) {\n controls_left_pos += cthis.find('.the-thumb').width() + 20;\n }\n\n controls_left_pos += 70;\n\n var sh = selfClass._scrubbar.eq(0).height();\n\n\n if (selfClass.skinwave_mode === 'small') {\n controls_left_pos -= 80;\n sh = 5;\n\n controls_left_pos += 13;\n selfClass.$conPlayPause.css({\n //'left' : controls_left_pos\n })\n\n controls_left_pos += selfClass.$conPlayPause.outerWidth() + 10;\n\n\n }\n\n\n if (selfClass._metaArtistCon && selfClass._metaArtistCon.css('display') !== 'none') {\n\n\n if (!(o.design_skin === 'skin-wave' && selfClass.skinwave_mode === 'small')) {\n selfClass._metaArtistCon.css({\n //'left': controls_left_pos\n });\n\n if (o.design_skin === 'skin-wave' && selfClass.skinwave_mode !== 'small') {\n selfClass._metaArtistCon.css({\n //'width': tw - controls_left_pos - selfClass._apControlsRight.outerWidth()\n });\n }\n }\n\n controls_left_pos += selfClass._metaArtistCon.outerWidth();\n\n //console.log(selfClass._metaArtistCon, selfClass._metaArtistCon.outerWidth());\n }\n\n\n controls_right_pos = 0;\n\n if (selfClass.$controlsVolume && selfClass.$controlsVolume.css('display') !== 'none') {\n controls_right_pos += 55;\n }\n\n\n // ---------- calculate dims small\n if (selfClass.skinwave_mode === 'small') {\n\n selfClass._scrubbar.css({\n //'left' : controls_left_pos\n })\n\n\n //sw = ( tw - controls_left_pos - controls_right_pos );\n\n\n scrubbarWidth = selfClass._scrubbar.width();\n\n }\n\n\n if (o.skinwave_wave_mode === 'canvas') {\n if (cthis.attr('data-pcm')) {\n if (selfClass._scrubbarbg_canvas.width() === 100) {\n selfClass._scrubbarbg_canvas.width(selfClass._scrubbar.width());\n }\n // console.log('selfClass.data_source - ', selfClass.data_source);\n if (selfClass.data_source !== 'fake') {\n // -- if inter definied then clear timeout and call\n if (draw_canvas_inter) {\n clearTimeout(draw_canvas_inter);\n draw_canvas_inter = setTimeout(draw_canvas_inter_func, 300);\n } else {\n draw_canvas_inter_func();\n draw_canvas_inter = 1;\n }\n }\n }\n }\n }\n\n\n if (o.design_skin === 'skin-minimal') {\n\n\n // console.log('skin_minimal_button_size - ' ,skin_minimal_button_size);\n\n skin_minimal_button_size = selfClass._apControls.width();\n if (selfClass.skin_minimal_canvasplay) {\n selfClass.skin_minimal_canvasplay.style.width = skin_minimal_button_size;\n selfClass.skin_minimal_canvasplay.width = skin_minimal_button_size;\n selfClass.skin_minimal_canvasplay.style.height = skin_minimal_button_size;\n selfClass.skin_minimal_canvasplay.height = skin_minimal_button_size;\n\n\n // skin_minimal_button_size = sanitize_to_css_size(skin_minimal_button_size);\n\n\n $(selfClass.skin_minimal_canvasplay).css({\n 'width': skin_minimal_button_size\n , 'height': skin_minimal_button_size\n });\n }\n\n\n }\n\n\n if (o.design_skin === 'skin-default') {\n if (selfClass.$currTime) {\n //console.log(o.design_skin, parseInt(selfClass._metaArtistCon.css('left'),10) + selfClass._metaArtistCon.outerWidth() + 10);\n var _metaArtistCon_l = parseInt(selfClass._metaArtistCon.css('left'), 10);\n var _metaArtistCon_w = selfClass._metaArtistCon.outerWidth();\n\n if (selfClass._metaArtistCon.css('display') === 'none') {\n selfClass._metaArtistCon_w = 0;\n }\n if (isNaN(selfClass._metaArtistCon_l)) {\n selfClass._metaArtistCon_l = 20;\n }\n }\n\n }\n\n if (o.design_skin === 'skin-minion') {\n //console.log();\n aux2 = parseInt(selfClass.$conControls.find('.con-playpause').eq(0).offset().left, 10) - parseInt(selfClass.$conControls.eq(0).offset().left, 10) - 18;\n selfClass.$conControls.find('.prev-btn').eq(0).css({\n 'top': 0,\n 'left': aux2\n })\n aux2 += 36;\n selfClass.$conControls.find('.next-btn').eq(0).css({\n 'top': 0,\n 'left': aux2\n })\n }\n\n\n if (o.embedded === 'on') {\n //console.log(window.frameElement)\n if (window.frameElement) {\n //window.frameElement.height = cthis.height();\n //console.log(window.frameElement.height, cthis.outerHeight())\n\n\n var args = {\n height: cthis.outerHeight()\n };\n\n\n if (o.embedded_iframe_id) {\n\n args.embedded_iframe_id = o.embedded_iframe_id;\n }\n\n\n var message = {\n name: \"resizeIframe\",\n params: args\n };\n window.parent.postMessage(message, '*');\n }\n\n }\n\n\n view_drawScrubProgress();\n\n // draw_curr_time();\n\n\n if (o.settings_trigger_resize > 0) {\n\n if (o.parentgallery && $(o.parentgallery).get(0) !== undefined && $(o.parentgallery).get(0).api_handleResize !== undefined) {\n $(o.parentgallery).get(0).api_handleResize();\n }\n }\n\n }\n\n\n function\n\n draw_canvas_inter_func() {\n // console.log('draw_canvas_inter_func', 'skinwave_wave_mode_canvas_waves_number - ', o.skinwave_wave_mode_canvas_waves_number);\n\n\n // console.log(cthis,\"_scrubbarbg_canvas.get(0) -> \",_scrubbarbg_canvas.get(0));\n dzsapWaveFunctions.view_drawCanvases(selfClass, cthis.attr('data-pcm'), 'canvas_normal_pcm');\n\n draw_canvas_inter = 0;\n }\n\n function\n\n volume_handleMouse(e) {\n var _t = $(this);\n /**\n * from 0 to 1\n * @type number\n */\n var mouseXRelativeToVolume = null;\n\n //var mx = e.clientX - selfClass.$controlsVolume.offset().left;\n if (selfClass.$controlsVolume.find('.volume_static').length) {\n\n mouseXRelativeToVolume = Number((e.pageX - (selfClass.$controlsVolume.find('.volume_static').eq(0).offset().left)) / (selfClass.$controlsVolume.find('.volume_static').eq(0).width()));\n }\n\n if (!mouseXRelativeToVolume) {\n return false;\n }\n if (e.type === 'mousemove') {\n if (volume_dragging) {\n\n if (_t.parent().hasClass('volume-holder') || _t.hasClass('volume-holder')) {\n // todo: nothing ?\n }\n\n if (o.design_skin === 'skin-redlights') {\n mouseXRelativeToVolume *= 10;\n mouseXRelativeToVolume = Math.round(mouseXRelativeToVolume);\n //console.log(mouseXRelativeToVolume);\n mouseXRelativeToVolume /= 10;\n }\n\n\n volume_setVolume(mouseXRelativeToVolume, {\n call_from: \"set_by_mousemove\"\n });\n isMuted = false;\n }\n\n }\n if (e.type === 'mouseleave') {\n\n }\n if (e.type === 'click') {\n\n //console.log(_t, _t.offset().left)\n\n\n if (_t.parent().hasClass('volume-holder')) {\n\n\n mouseXRelativeToVolume = 1 - ((e.pageY - (selfClass.$controlsVolume.find('.volume_static').eq(0).offset().top)) / (selfClass.$controlsVolume.find('.volume_static').eq(0).height()));\n\n }\n if (_t.hasClass('volume-holder')) {\n mouseXRelativeToVolume = 1 - ((e.pageY - (selfClass.$controlsVolume.find('.volume_static').eq(0).offset().top)) / (selfClass.$controlsVolume.find('.volume_static').eq(0).height()));\n\n // console.log(mouseXRelativeToVolume);\n\n }\n\n //console.log(mouseXRelativeToVolume);\n\n volume_setVolume(mouseXRelativeToVolume, {\n call_from: \"set_by_mouseclick\"\n });\n isMuted = false;\n }\n\n if (e.type === 'mousedown') {\n\n volume_dragging = true;\n cthis.addClass('volume-dragging');\n\n\n if (_t.parent().hasClass('volume-holder')) {\n\n\n mouseXRelativeToVolume = 1 - ((e.pageY - (selfClass.$controlsVolume.find('.volume_static').eq(0).offset().top)) / (selfClass.$controlsVolume.find('.volume_static').eq(0).height()));\n\n }\n\n // console.log('mouseXRelativeToVolume - ', mouseXRelativeToVolume);\n\n volume_setVolume(mouseXRelativeToVolume, {\n call_from: \"set_by_mousedown\"\n });\n isMuted = false;\n }\n if (e.type === 'mouseup') {\n\n volume_dragging = false;\n cthis.removeClass('volume-dragging');\n\n }\n\n }\n\n function\n\n handleMouseOnScrubbar(e) {\n var mousex = e.pageX;\n\n\n if ($(e.target).hasClass('sample-block-start') || $(e.target).hasClass('sample-block-end')) {\n return false;\n }\n\n if (e.type === 'mousemove') {\n selfClass._scrubbar.children('.scrubBox-hover').css({\n 'left': (mousex - selfClass._scrubbar.offset().left)\n });\n\n\n if (o.scrub_show_scrub_time === 'on') {\n\n // console.log('selfClass.$currTime - ',selfClass.$currTime);\n\n if (selfClass.timeModel.getVisualTotalTime()) {\n var aux = (mousex - selfClass._scrubbar.offset().left) / selfClass._scrubbar.outerWidth() * selfClass.timeModel.getVisualTotalTime();\n\n\n if (selfClass.$currTime) {\n selfClass.$currTime.html(dzsapHelpers.formatTime(aux));\n selfClass.$currTime.addClass('scrub-time');\n\n }\n\n isScrubShowingCurrentTime = true;\n }\n }\n\n }\n if (e.type === 'mouseleave') {\n\n isScrubShowingCurrentTime = false;\n\n if (selfClass.$currTime) {\n selfClass.$currTime.removeClass('scrub-time');\n\n }\n\n view_drawCurrentTime();\n\n }\n if (e.type === 'click') {\n\n\n if (cthis.hasClass('prevent-bubble')) {\n\n if (e && e.stopPropagation) {\n e.preventDefault();\n e.stopPropagation();\n ;\n // return false;\n }\n }\n\n\n if (scrubbarWidth === 0) {\n\n scrubbarWidth = selfClass._scrubbar.width();\n }\n if (scrubbarWidth === 0) {\n scrubbarWidth = 300;\n }\n var targetPositionOnScrub = ((e.pageX - (selfClass._scrubbar.offset().left)) / (scrubbarWidth) * selfClass.timeModel.getVisualTotalTime());\n\n\n if (selfClass.pseudo_sample_time_start === 0) {\n\n if (selfClass.sample_time_start > 0) {\n targetPositionOnScrub -= selfClass.sample_time_start;\n }\n }\n\n if (selfClass._actualPlayer) {\n\n\n setTimeout(function () {\n if (selfClass._actualPlayer.get(0) && selfClass._actualPlayer.get(0).api_pause_media) {\n\n selfClass._actualPlayer.get(0).api_seek_to_perc(targetPositionOnScrub / selfClass.timeModel.getVisualTotalTime(), {\n 'call_from': 'from_feeder_to_feed'\n });\n }\n }, 50);\n }\n\n\n seek_to(targetPositionOnScrub, {\n 'call_from': 'handleMouseOnScrubbar'\n });\n\n if (o.autoplay_on_scrub_click === 'on') {\n\n if (selfClass.player_playing === false) {\n play_media({\n 'called_from': 'handleMouseOnScrubbar'\n });\n }\n }\n\n if (cthis.hasClass('from-wc_loop')) {\n return false;\n }\n }\n\n }\n\n function\n\n seek_to_perc(argperc, pargs) {\n seek_to((argperc * selfClass.timeModel.getVisualTotalTime()), pargs);\n }\n\n /**\n * seek to seconds\n * @param targetTimeMediaScrub - number of settings\n * @param pargs -- optiona arguments\n * @returns {boolean}\n */\n function\n\n seek_to(targetTimeMediaScrub, pargs) {\n //arg = nr seconds\n\n var margs = {\n 'call_from': 'default'\n , 'deeplinking': 'off' // -- default or \"auto\" or \"user action\"\n , 'call_from_type': 'default' // -- default or \"auto\" or \"user action\"\n };\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n if (margs.call_from === 'from_feeder_to_feed') {\n\n }\n // console.log('%c seek_to() - margs - ', ConstantsDzsAp.DEBUG_STYLE_1, margs, 'arg - ', targetTimeMediaScrub);\n // console.trace();\n\n if (margs.deeplinking === 'on') {\n var newlink = dzsapHelpers.add_query_arg(window.location.href, 'audio_time', targetTimeMediaScrub);\n\n\n var stateObj = {foo: \"bar\"};\n history.pushState(stateObj, null, newlink);\n }\n\n\n // console.log('seek_to arg - ',arg, 'type - ',type, cthis);\n targetTimeMediaScrub = dzsapHelpers.sanitizeToIntFromPointTime(targetTimeMediaScrub);\n\n\n // console.log('targetTime before sample time start', targetTime, 'selfClass.timeModel.sampleTimeEnd - ', selfClass.timeModel.sampleTimeEnd);\n targetTimeMediaScrub = selfClass.timeModel.getActualTargetTime(targetTimeMediaScrub);\n // console.log('targetTime after sample time start', targetTime);\n\n\n // console.log('cthis.hasClass(\\'first-played\\') - ',cthis.hasClass('first-played'));\n\n // console.log('curr_time_first_set - ',curr_time_first_set);\n if (selfClass._actualPlayer) {\n var args = {\n type: selfClass.actualDataTypeOfMedia,\n fakeplayer_is_feeder: 'on'\n }\n if (selfClass._actualPlayer.length && selfClass._actualPlayer.data('feeding-from') !== cthis.get(0)) {\n // -- the actualPlayer is not rendering this feed player\n if (margs.call_from !== 'handle_end' && margs.call_from !== 'from_playfrom' && margs.call_from !== 'last_pos' && margs.call_from !== 'playlist_seek_from_0') {\n // -- if it is not user action, ( handle_end or anything else )\n args.called_from = 'seek_to from player source->' + (cthis.attr('data-source')) + ' < - ' + 'old call from - ' + margs.call_from;\n if (selfClass._actualPlayer.get(0).api_change_media) {\n selfClass._actualPlayer.get(0).api_change_media(cthis, args);\n } else {\n console.log('not inited ? ', selfClass._actualPlayer);\n }\n } else {\n // -- NORMAL call\n\n cthis.data('promise-to-play-footer-player-from', targetTimeMediaScrub);\n }\n }\n\n\n setTimeout(function () {\n\n if (selfClass._actualPlayer.get(0) && selfClass._actualPlayer.get(0).api_pause_media) {\n if (margs.call_from !== 'from_playfrom' && margs.call_from !== 'last_pos') {\n selfClass._actualPlayer.get(0).api_seek_to(targetTimeMediaScrub, {\n 'call_from': 'from_feeder_to_feed'\n });\n }\n }\n }, 50);\n\n return false;\n }\n\n\n if (selfClass.audioType === 'youtube') {\n try {\n selfClass.$mediaNode_.seekTo(targetTimeMediaScrub);\n } catch (err) {\n console.log('yt seek err - ', err);\n }\n }\n\n handleEnterFrame({\n 'fire_only_once': true\n })\n setTimeout(function () {\n handleEnterFrame({\n 'fire_only_once': true\n })\n }, 20);\n\n\n if (selfClass.audioType === 'selfHosted') {\n if (0) {\n\n //console.log('arg - ',arg);\n selfClass.lastTimeInSeconds = targetTimeMediaScrub;\n\n pause_media({\n 'audioapi_setlasttime': false\n });\n play_media({\n 'called_from': 'audio_buffer ( seek_to() )'\n });\n } else {\n\n // console.log('seek to -> ', arg);\n if (selfClass.$mediaNode_ && typeof (selfClass.$mediaNode_.currentTime) !== 'undefined') {\n\n try {\n selfClass.$mediaNode_.currentTime = targetTimeMediaScrub;\n } catch (e) {\n console.log('error on scrub', e, ' arg - ', targetTimeMediaScrub);\n\n }\n\n // console.log('selfClass.$mediaNode_.currentTime -> ',selfClass.$mediaNode_.currentTime);\n }\n\n return false;\n\n }\n\n }\n\n\n }\n\n /**\n * seek to ( only visual )\n * @param argperc\n */\n function\n\n seek_to_visual(argperc) {\n\n\n curr_time_first_set = true;\n\n\n handleEnterFrame({\n 'fire_only_once': true\n })\n setTimeout(function () {\n handleEnterFrame({\n 'fire_only_once': true\n })\n }, 20);\n }\n\n /**\n * playback speed\n * @param {float} arg 0 - 10\n */\n function\n\n set_playback_speed(arg) {\n\n if (selfClass.audioType === 'youtube') {\n selfClass.$mediaNode_.setPlaybackRate(arg);\n }\n if (selfClass.audioType === 'selfHosted') {\n selfClass.$mediaNode_.playbackRate = arg;\n\n }\n\n }\n\n /**\n * outputs a volume from 0 to 1\n * @param {number} arg 0 <-> 1\n * @param pargs\n * @returns {boolean}\n */\n function\n\n volume_setVolume(arg, pargs) {\n\n var margs = {\n\n 'call_from': 'default'\n };\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n if (arg > 1) {\n arg = 1;\n }\n if (arg < 0) {\n arg = 0;\n }\n\n // console.log('[dzsap] [volume] volume_setVolume()', arg, margs, selfClass.cthis);\n\n\n if (margs.call_from === 'from_fake_player_feeder_from_init_loaded') {\n // -- lets prevent call from the init_loaded set_volume if the volume has been changed\n if (selfClass._sourcePlayer) {\n if (o.default_volume !== 'default') {\n volume_set_by_user = true;\n }\n if (volume_set_by_user) {\n return false;\n } else {\n volume_set_by_user = true;\n // console.log(\"SET VOLUME BY USER\", cthis);\n }\n }\n }\n\n if (margs.call_from === 'set_by_mouseclick' || margs.call_from === 'set_by_mousemove') {\n volume_set_by_user = true;\n }\n\n // console.log(\"set_volume()\",arg, cthis, margs);\n\n if (selfClass.audioType === 'youtube') {\n if (selfClass.$mediaNode_ && selfClass.$mediaNode_.setVolume) {\n selfClass.$mediaNode_.setVolume(arg * 100);\n }\n }\n if (selfClass.audioType === 'selfHosted') {\n if (selfClass.$mediaNode_) {\n\n selfClass.$mediaNode_.volume = arg;\n\n if (selfClass.$watermarkMedia_) {\n selfClass.$watermarkMedia_.volume = arg * o.watermark_volume;\n }\n } else {\n if (selfClass.$mediaNode_) {\n $(selfClass.$mediaNode_).attr('preload', 'metadata');\n }\n }\n }\n\n //console.log(selfClass.$controlsVolume.children('.volume_active'));\n\n\n volume_setOnlyVisual(arg, margs);\n\n if (selfClass._sourcePlayer) {\n margs.call_from = ('from_fake_player')\n if (selfClass._sourcePlayer.get(0) && selfClass._sourcePlayer.get(0).api_visual_set_volume(arg, margs)) {\n selfClass._sourcePlayer.get(0).api_visual_set_volume(arg, margs);\n }\n }\n\n if (selfClass._actualPlayer) {\n // console.log('try to set volume on actual player ( fake player ) ', 'selfClass._actualPlayer - ', selfClass._actualPlayer, margs);\n if (margs.call_from !== ('from_fake_player')) {\n // margs.call_from = ('from_fake_player_feeder')\n if (margs.call_from === 'from_init_loaded') {\n\n margs.call_from = ('from_fake_player_feeder_from_init_loaded')\n } else {\n\n margs.call_from = ('from_fake_player_feeder')\n }\n if (selfClass._actualPlayer && selfClass._actualPlayer.get(0) && selfClass._actualPlayer.get(0).api_set_volume) {\n selfClass._actualPlayer.get(0).api_set_volume(arg, margs);\n }\n }\n }\n\n }\n\n\n function volume_setOnlyVisual(arg, margs) {\n\n // console.log('')\n\n\n if (selfClass.$controlsVolume.hasClass('controls-volume-vertical')) {\n selfClass.$controlsVolume.find('.volume_active').eq(0).css({\n 'height': (selfClass.$controlsVolume.find('.volume_static').eq(0).height() * arg)\n });\n } else {\n\n if(selfClass.initOptions.design_skin==='skin-redlights'){\n\n selfClass.$controlsVolume.find('.volume_active').eq(0).css({\n 'clip-path':'inset(0% '+(Math.abs(1-arg)*100)+'% 0% 0%)'\n });\n }else{\n\n selfClass.$controlsVolume.find('.volume_active').eq(0).css({\n 'width': (selfClass.$controlsVolume.find('.volume_static').eq(0).width() * arg)\n });\n }\n }\n\n\n if (o.design_skin === 'skin-wave' && o.skinwave_dynamicwaves === 'on') {\n //console.log(arg);\n selfClass._scrubbar.find('.scrub-bg-img').eq(0).css({\n 'transform': 'scaleY(' + arg + ')'\n })\n selfClass._scrubbar.find('.scrub-prog-img').eq(0).css({\n 'transform': 'scaleY(' + arg + ')'\n })\n\n }\n\n\n if (localStorage !== null && selfClass.the_player_id) {\n\n //console.log(selfClass.the_player_id);\n\n localStorage.setItem('dzsap_last_volume_' + selfClass.the_player_id, arg);\n\n }\n\n volume_lastVolume = arg;\n }\n\n\n function\n\n volume_handleClickMuteIcon(e) {\n\n if (isMuted === false) {\n last_vol_before_mute = volume_lastVolume;\n volume_setVolume(0, {\n call_from: \"from_mute\"\n });\n isMuted = true;\n } else {\n volume_setVolume(last_vol_before_mute, {\n call_from: \"from_unmute\"\n });\n isMuted = false;\n }\n }\n\n function\n\n pause_media_visual(pargs) {\n\n\n var margs = {\n 'call_from': 'default'\n };\n\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n // console.log('pause_media_visual',margs);\n\n if (o.design_animateplaypause !== 'on') {\n selfClass.$conPlayPause.children('.playbtn').css({\n 'display': 'block'\n });\n selfClass.$conPlayPause.children('.pausebtn').css({\n 'display': 'none'\n });\n } else {\n\n }\n\n\n selfClass.$conPlayPause.removeClass('playing');\n cthis.removeClass('is-playing');\n selfClass.player_playing = false;\n\n //console.log(\"PAUSE MEDIA VISUAL\")\n\n\n if (cthis.parent().hasClass('zoomsounds-wrapper-bg-center')) {\n cthis.parent().removeClass('is-playing');\n }\n\n\n if (o.parentgallery) {\n o.parentgallery.removeClass('player-is-playing');\n }\n\n\n isNotRenderingEnterFrame = true;\n\n\n if (action_audio_pause) {\n action_audio_pause(cthis);\n }\n }\n\n function\n\n pause_media(pargs) {\n //console.log('pause_media()', cthis);\n\n\n var margs = {\n 'audioapi_setlasttime': true,\n 'donot_change_media': false,\n 'call_actual_player': true,\n };\n\n if (destroyed) {\n return false;\n }\n\n if (pargs) {\n margs = $.extend(margs, pargs);\n }\n\n\n pause_media_visual({\n 'call_from': 'pause_media'\n });\n\n\n if (margs.call_actual_player && margs.donot_change_media !== true) {\n if (selfClass._actualPlayer !== null) {\n var args = {\n type: selfClass.actualDataTypeOfMedia,\n fakeplayer_is_feeder: 'on'\n }\n if (selfClass._actualPlayer && selfClass._actualPlayer.length && selfClass._actualPlayer.data('feeding-from') !== cthis.get(0)) {\n args.called_from = 'pause_media from player ' + cthis.attr('data-source');\n selfClass._actualPlayer.get(0).api_change_media(cthis, args);\n }\n setTimeout(function () {\n if (selfClass._actualPlayer.get(0) && selfClass._actualPlayer.get(0).api_pause_media) {\n selfClass._actualPlayer.get(0).api_pause_media();\n }\n }, 100);\n\n selfClass.player_playing = false;\n cthis.removeClass('is-playing');\n if (cthis.parent().hasClass('zoomsounds-wrapper-bg-center')) {\n cthis.parent().removeClass('is-playing');\n }\n return;\n }\n }\n\n\n mediaFunctions.media_pause(selfClass, () => {\n // console.log('selfClass._sourcePlayer - ', selfClass._sourcePlayer, '(cthis) - ', cthis);\n if (selfClass._sourcePlayer) {\n if (selfClass._sourcePlayer.get(0) && selfClass._sourcePlayer.get(0).api_pause_media_visual) {\n selfClass._sourcePlayer.get(0).api_pause_media_visual({\n 'call_from': 'pause_media in child player'\n });\n }\n }\n })\n\n\n selfClass.player_playing = false;\n cthis.removeClass('is-playing');\n\n\n if (cthis.parent().hasClass('zoomsounds-wrapper-bg-center')) {\n cthis.parent().removeClass('is-playing');\n }\n\n }\n\n function\n\n play_media_visual(margs) {\n\n\n if (o.design_animateplaypause !== 'on') {\n selfClass.$conPlayPause.children('.playbtn').css({\n 'display': 'none'\n });\n selfClass.$conPlayPause.children('.pausebtn').css({\n 'display': 'block'\n });\n }\n\n\n //return false;\n selfClass.player_playing = true;\n isNotRenderingEnterFrame = false;\n\n //return false;\n cthis.addClass('is-playing');\n cthis.addClass('first-played');\n\n if (selfClass.classFunctionalityInnerPlaylist) {\n selfClass.classFunctionalityInnerPlaylist.player_determineSyncPlayersIndex(selfClass, selfClass._sourcePlayer);\n }\n dzsapHelpers.view_player_globalDetermineSyncPlayersIndex(selfClass);\n // console.log('window.dzsap_syncList_index - ', window.dzsap_syncList_index, window.dzsap_syncList_players);\n\n dzsapHelpers.view_player_playMiscEffects(selfClass);\n\n if (o.parentgallery) {\n o.parentgallery.addClass('player-is-playing');\n }\n\n\n if (selfClass.$stickToBottomContainer) {\n selfClass.$stickToBottomContainer.addClass('audioplayer-loaded');\n }\n\n //console.log(cthis, margs);\n\n if (action_audio_play) {\n action_audio_play(cthis);\n }\n if (action_audio_play2) {\n action_audio_play2(cthis);\n }\n\n\n }\n\n function\n\n play_media(pargs) {\n\n // console.log(dzsap_list);\n\n\n var margs = {\n 'api_report_play_media': true\n , 'called_from': 'default'\n , 'retry_call': 0\n }\n if (pargs) {\n margs = $.extend(margs, pargs)\n }\n\n if (!isSetupedMedia) {\n setup_media({'called_from': margs.called_from + '[play_media .. not setuped]'});\n }\n\n\n // console.log('.play_media() -3 ',margs,cthis, 'type - ',type, 'selfClass.$mediaNode_ - ', selfClass.$mediaNode_);\n //return false ;\n //return;\n\n if (margs.called_from === 'api_sync_players_prev') {\n // console.log('o.parentgallery - ',o.parentgallery);\n\n player_index_in_gallery = cthis.parent().children('.audioplayer,.audioplayer-tobe').index(cthis);\n\n if (o.parentgallery && o.parentgallery.get(0) && o.parentgallery.get(0).api_goto_item) {\n o.parentgallery.get(0).api_goto_item(player_index_in_gallery);\n }\n }\n // console.log('selfClass.spectrum_audioContext_buffer - ', selfClass.spectrum_audioContext_buffer);\n if (dzsapHelpers.is_ios() && selfClass.spectrum_audioContext_buffer === 'waiting') {\n setTimeout(function () {\n pargs.call_from_aux = 'waiting audioCtx_buffer or ios';\n play_media(pargs);\n }, 500);\n return false;\n }\n\n if (margs.called_from === 'click_playpause') {\n // -- lets setup the playlist\n }\n\n\n if (cthis.hasClass('media-setuped') === false && selfClass._actualPlayer === null) {\n console.log('warning: media not setuped, there might be issues', cthis.attr('id'));\n }\n\n\n if (margs.called_from.indexOf('feed_to_feeder') > -1) {\n if (cthis.hasClass('dzsap-loaded') === false) {\n init_loaded();\n var delay = 300;\n if (dzsapHelpers.is_android_good()) {\n delay = 0;\n }\n if (margs.call_from_aux !== 'with delay') {\n if (delay) {\n setTimeout(function () {\n margs.call_from_aux = 'with delay';\n play_media(margs);\n }, delay);\n } else {\n play_media(margs);\n }\n return false;\n }\n\n }\n }\n\n\n //console.log(o.type);\n if (selfClass.audioType !== 'fake') {\n\n //return false;\n }\n\n\n dzsapHelpers.player_stopOtherPlayers(dzsap_list, selfClass);\n\n\n if (destroyed_for_rebuffer) {\n setup_media({\n 'called_from': 'play_media() .. destroyed for rebuffer'\n });\n if (dzsHelpers.isInt(selfClass.playFrom)) {\n seek_to(selfClass.playFrom, {\n 'call_from': 'destroyed_for_rebuffer_playfrom'\n });\n }\n destroyed_for_rebuffer = false;\n }\n\n // console.log(o.google_analytics_send_play_event, window._gaq, google_analytics_sent_play_event);\n if (o.google_analytics_send_play_event === 'on' && window._gaq && google_analytics_sent_play_event === false) {\n //if(window.console){ console.log( 'sent event'); }\n window._gaq.push(['_trackEvent', 'ZoomSounds Play', 'Play', 'zoomsounds play - ' + dataSrc]);\n google_analytics_sent_play_event = true;\n }\n // console.log(o.google_analytics_send_play_event, window.ga, google_analytics_sent_play_event);\n\n if (!window.ga) {\n if (window.__gaTracker) {\n window.ga = window.__gaTracker;\n }\n }\n\n if (o.google_analytics_send_play_event === 'on' && window.ga && google_analytics_sent_play_event === false) {\n if (window.console) {\n console.log('sent event');\n }\n google_analytics_sent_play_event = true;\n window.ga('send', {\n hitType: 'event',\n eventCategory: 'zoomsounds play - ' + dataSrc,\n eventAction: 'play',\n eventLabel: 'zoomsounds play - ' + dataSrc\n });\n }\n\n //===media functions\n\n if (selfClass._sourcePlayer) {\n\n //console.log(cthis, selfClass._sourcePlayer);\n\n if (selfClass._sourcePlayer.get(0) && selfClass._sourcePlayer.get(0).api_pause_media_visual) {\n selfClass._sourcePlayer.get(0).api_play_media_visual({\n 'api_report_play_media': false\n });\n }\n\n }\n\n // console.log(\"TYPE IS \",type, selfClass._actualPlayer);\n\n if (selfClass._actualPlayer) {\n // -- the actual player is the footer player\n\n //console.log(\"SUBMIT PLAY TO fakeplayer\", selfClass._actualPlayer);\n var args = {\n type: selfClass.actualDataTypeOfMedia,\n fakeplayer_is_feeder: 'on',\n call_from: 'play_media_audioplayer'\n }\n\n try {\n if (margs.called_from === 'click_playpause') {\n // -- let us reset up the playlist\n\n\n if (o.parentgallery) {\n o.parentgallery.get(0).api_regenerate_sync_players_with_this_playlist();\n selfClass._actualPlayer.get(0).api_regenerate_playerlist_inner();\n }\n\n // console.log(\"we regenerate playlist here\");\n }\n\n if (selfClass._actualPlayer && selfClass._actualPlayer.length && selfClass._actualPlayer.data('feeding-from') !== cthis.get(0)) {\n\n args.called_from = 'play_media from player 22 ' + cthis.attr('data-source') + ' < - ' + 'old call from - ' + margs.called_from;\n\n if (selfClass._actualPlayer.get(0).api_change_media) {\n selfClass._actualPlayer.get(0).api_change_media(cthis, args);\n }\n\n if (cthis.hasClass('first-played') === false) {\n if (cthis.data('promise-to-play-footer-player-from')) {\n seek_to(cthis.data('promise-to-play-footer-player-from'));\n setTimeout(function () {\n cthis.data('promise-to-play-footer-player-from', '');\n }, 1000);\n }\n }\n\n }\n setTimeout(function () {\n if (selfClass._actualPlayer.get(0) && selfClass._actualPlayer.get(0).api_play_media) {\n selfClass._actualPlayer.get(0).api_play_media({\n 'called_from': '[feed_to_feeder]'\n });\n }\n }, 100);\n\n\n // console.log('ajax view submitted', cthis, selfClass.ajax_view_submitted);\n if (selfClass.ajax_view_submitted === 'off') {\n (ajax_submit_views.bind(selfClass))();\n }\n return;\n\n\n } catch (err) {\n console.log('no fake player..', err);\n }\n }\n\n\n if (selfClass.audioType === 'youtube') {\n dzsap_youtube_playMedia(selfClass, margs, youtube_isInited, selfClass.youtube_currentId);\n }\n if (selfClass.audioType === 'selfHosted') {\n\n\n }\n\n\n //console.log('watermark - .play', selfClass.$watermarkMedia_)\n if (selfClass.$watermarkMedia_) {\n //console.log('watermark - .play', selfClass.$watermarkMedia_, selfClass.$watermarkMedia_.play)\n if (selfClass.$watermarkMedia_.play) {\n selfClass.$watermarkMedia_.play();\n }\n }\n\n if (selfClass.audioType === 'youtube') {\n play_media_visual(margs);\n }\n\n mediaFunctions.media_tryToPlay(selfClass, () => {\n\n //return false;\n play_media_visual(margs);\n\n\n if (o.scrubbar_type === 'wave' && o.skinwave_enableSpectrum === 'on') {\n dzsapHelpers.player_initSpectrum(selfClass);\n }\n\n\n //console.log(selfClass.ajax_view_submitted);\n\n\n if (selfClass._sourcePlayer) {\n window.dzsap_currplayer_focused = selfClass._sourcePlayer.get(0);\n if (selfClass._sourcePlayer.get(0) && selfClass._sourcePlayer.get(0).api_pause_media_visual) {\n selfClass._sourcePlayer.get(0).api_try_to_submit_view();\n }\n\n } else {\n\n window.dzsap_currplayer_focused = cthis.get(0);\n try_to_submit_view();\n }\n\n\n if (selfClass.keyboard_controls.play_trigger_step_back === 'on') {\n if (dzsap_currplayer_focused) {\n dzsap_currplayer_focused.api_step_back(selfClass.keyboard_controls.step_back_amount);\n }\n }\n }, (err) => {\n console.log('error autoplay playing - ', err);\n setTimeout(() => {\n pause_media();\n console.log('trying to pause')\n }, 30);\n })\n\n\n }\n\n\n function\n\n try_to_submit_view() {\n // console.log('try_to_submit_view', cthis, selfClass.ajax_view_submitted);\n if (selfClass.ajax_view_submitted === 'auto') {\n selfClass.ajax_view_submitted = 'off';\n }\n if (selfClass.ajax_view_submitted === 'off') {\n\n (ajax_submit_views.bind(selfClass))();\n }\n }\n\n\n }\n}\n\n\nfunction register_dzsap_plugin() {\n (function ($) {\n\n\n window.dzsap_list_for_sync_build = function () {\n };\n\n\n Math.easeIn = function (t, b, c, d) {\n // console.log('math.easein')\n\n return -c * (t /= d) * (t - 2) + b;\n\n };\n\n\n dzsapHelpers.assignHelperFunctionsToJquery($);\n\n\n // -- define player here\n $.fn.audioplayer = function (argOptions) {\n var finalOptions = {};\n var defaultOptions = Object.assign({}, require('./configs/_settingsPlayer').default_opts);\n finalOptions = dzsapHelpers.convertPluginOptionsToFinalOptions(this, defaultOptions, argOptions);\n\n\n // console.log('finalOptions -- ',finalOptions);\n this.each(function () {\n var _ap = new DzsAudioPlayer(this, finalOptions, $);\n return this;\n })\n }\n\n\n // -- defined gallery here\n // --\n // AUDIO GALLERY\n // --\n\n\n dzsapPlaylist.registerToJquery($);\n ;\n\n })(jQuery);\n}\n\n\nfunction register_dzsap_callScriptsOnReady() {\n jQuery(document).ready(function ($) {\n\n\n // -- main call\n\n\n $('body').append('<style class=\"dzsap--style\"></style>');\n\n window.dzsap__style = $('.dzsap--style');\n\n\n // -- remove focus on input focus\n $(document).on('focus.dzsap', 'input', function () {\n // console.log(\"FOCUS - \");\n window.dzsap_currplayer_focused = null;\n })\n\n\n $('audio.zoomsounds-from-audio').each(function () {\n var _t = $(this);\n //console.log(_t);\n\n _t.after('<div class=\"audioplayer-tobe auto-init skin-silver\" data-source=\"' + _t.attr('src') + '\"></div>');\n\n _t.remove();\n })\n\n\n dzsag_init('.audiogallery.auto-init', {\n init_each: true\n });\n\n\n dzsapHelpers.jQueryAuxBindings($);\n\n\n });\n\n\n dzsapHelpers.registerTextWidth(jQuery);\n\n}\n\n\nwindow.dzsap_currplayer_focused = null;\nwindow.dzsap_currplayer_from_share = null;\nwindow.dzsap_mouseover = false;\n\n\nwindow.dzsap_init_allPlayers = function ($) {\n\n $('.audioplayer.auto-init,.audioplayer-tobe.auto-init').each(function () {\n var _t2 = $(this);\n\n if (_t2.hasClass('audioplayer-tobe') === true) {\n if (window.dzsap_init) {\n dzsap_init(_t2, {\n init_each: true\n });\n }\n }\n })\n}\n\n\nasync function dzsap_jQueryInit(callback, reject) {\n\n return new Promise((resolve, reject) => {\n\n if (window.jQuery) {\n resolve('jQuery loaded');\n } else {\n var script = document.createElement('script');\n script.onload = function () {\n if (window.jQuery) {\n resolve('jQuery loaded');\n } else {\n reject('error loading');\n }\n };\n script.src = ConstantsDzsAp.URL_JQUERY;\n\n document.head.appendChild(script);\n }\n\n setTimeout(() => {\n reject('error loading');\n }, 15000);\n })\n}\n\ndzsap_jQueryInit().then(() => {\n\n register_dzsap_plugin();\n register_dzsap_callScriptsOnReady();\n // console.log('document.readyState - ', document.readyState);\n jQuery(document).ready(function ($) {\n // console.log('document.readyState - ', document.readyState);\n window.dzsap_init_allPlayers($)\n });\n}).catch((err) => {\n console.log(err);\n})\n\n\nwindow.dzsap_init = function (selector, settings) {\n\n //console.log(selector);\n if (typeof (settings) !== \"undefined\" && typeof (settings.init_each) !== \"undefined\" && settings.init_each === true) {\n var element_count = 0;\n for (var e in settings) {\n element_count++;\n }\n if (element_count === 1) {\n settings = undefined;\n }\n\n jQuery(selector).each(function () {\n var _t = jQuery(this);\n if (settings && typeof (settings.call_from) === 'undefined') {\n settings.call_from = 'dzsap_init';\n }\n\n\n _t.audioplayer(settings)\n });\n } else {\n jQuery(selector).audioplayer(settings);\n }\n\n window.dzsap_lasto = settings;\n\n\n dzsapHelpers.dzsapInitjQueryRegisters();\n};\ndzsapHelpers.miscFunctions();\n"],"sourceRoot":""}