(function($){ $.fn.kalturaEditableName = function(opts) { // support mutltiple elements if (this.length > 1){ this.each(function() { $(this).kalturaEditableName(opts) }); return this; } // private vars; var _currentContent; var _$inputBox; var _$wait; var self = this, $self = jQuery(this); // private function; var _onNameClick = function(args) { jQuery(self).unbind('click'); _$wait = jQuery('Saving...'); _$wait.hide(); _$inputBox = jQuery(''); _$inputBox.attr('name', options.name); _$inputBox.blur(_onInputBlur); _$inputBox.keypress(_onInputKeyPress); _currentContent = jQuery.trim(jQuery(this).text()); _$inputBox.val(_currentContent); jQuery(self).empty().append(_$inputBox).append(_$wait); _$inputBox.focus(); } var _onInputBlur = function(args) { _save(); } var _onInputKeyPress = function(args) { if (args.keyCode == 13) _save(); if (args.keyCode == 27) _finishEditing(); } var _save = function() { if (_currentContent != _$inputBox.val()) // if changed { var params = {}; params[options.namePostParam] = _$inputBox.val(); params[options.idPostParam] = self.attr('id').replace(options.idPrefix, ''); _$inputBox.hide(); _$wait.show(); jQuery.ajax({ url: options.url, data: params, type: 'POST', success: _onSaveHandler }); } else { _finishEditing(); } } var _onSaveHandler = function() { _currentContent = _$inputBox.val(); _finishEditing(); } var _finishEditing = function() { jQuery(self).click(_onNameClick).empty().append(_currentContent); } // options var defaultOptions = { name: 'name' }; var options = $.extend({}, defaultOptions, opts); this.intialize = function() { this.click(_onNameClick); return $self; }; return this.intialize(); } $.fn.kalturaPlayerSelector = function(opts) { var self = this; // options var defaultOptions = { url: null, defaultId: null, swfBaseUrl: null, previewId: null, entryId: '_KMCLOGO', id: 'kplayer', width: 240, onSelect: null }; var options = $.extend({}, defaultOptions, opts); var _players = []; var _$playersList = jQuery(options.playersList); var _showLoader = function() { var swf = new SWFObject(Kaltura_PluginUrl + '/images/loader.swf', 'kloader', 35, 35, '9', '#000000'); swf.addParam('wmode', 'transparent'); swf.write(options.previewId); jQuery('#kloader').css('margin-top', '40px'); } var _hideLoader = function() { jQuery('#kloader').remove(); } var _getPlayer = function(uiConfId) { for(var i = 0; i < _players.length; i++) { if (_players[i].id == uiConfId) return _players[i]; }; } var _onPlayersLoadedSuccess = function(data) { if (data && data.objects) { _players = data.objects; _$playersList.empty(); jQuery.each(data.objects, function(index){ var player = data.objects[index]; var option = jQuery(''); _hideLoader(); } var _onPlayerChange = function(args) { var uiConfId = _$playersList.val(); var player = _getPlayer(uiConfId); var swfUrl = options.swfBaseUrl; swfUrl += ('/uiconf_id/' + uiConfId); if (options.entryId) swfUrl += ('/entry_id/' + options.entryId); var height = _calculateHeight(player, options.width); var swf = new SWFObject(swfUrl, options.id, options.width, height, "9", "#000000"); swf.addParam("flashVars", ""); swf.addParam("wmode", "opaque"); swf.addParam("allowScriptAccess", "always"); swf.addParam("allowFullScreen", "true"); swf.addParam("allowNetworking", "all"); swf.write(options.previewId); if (typeof(options.onSelect) == "function") options.onSelect(); } var _calculateHeight = function(player, width) { var ratio = jQuery(options.dimensions).filter(':checked').val(); ratio = '4:3' // don't preview 16:9, the player doesn't look good in small size var spacer = player.height - (player.width / 4) * 3; // assume the width and height saved in kaltura is 4/3 if (ratio == '16:9') var height = (width / 16) * 9 + spacer; else var height = (width / 4) * 3 + spacer; return parseInt(height); } var _disableSubmit = function() { jQuery(options.submit).attr('disabled', true); } var _enableSubmit = function() { jQuery(options.submit).removeAttr('disabled'); } this.intialize = function() { _disableSubmit(); _showLoader(); _$playersList.append(''); //jQuery(options.dimensions).click(_onPlayerChange); jQuery.ajax({ url: options.url, cache: false, success: _onPlayersLoadedSuccess, error: _onPlayersLoadedError, dataType: 'json' }); return self; }; return this.intialize(); } $.fn.kalturaEntryStatusChecker = function(opts) { var self = this; var defaultOptions = { url: null, idPrefix: null, idSelector: null, loader: null, interval: 20*1000 // every 20 seconds }; var options = $.extend({}, defaultOptions, opts); var _players = []; var _$playersList = jQuery(options.playersList); var _queueCheck = function () { if (self.find('li.statusConverting').size() > 0) { setTimeout(_checkStatuses, options.interval); } } var _checkStatuses = function() { if (options.loader) options.loader.show(); var entryIds = []; self.find('li.statusConverting ' + options.idSelector).each(function(index, element) { var entryId = element.id.replace(options.idPrefix, ''); entryIds.push(entryId); }); jQuery.ajax({ url: options.url, data: { 'entryIds[]': entryIds }, dataType: 'json', cache: false, success: _checkStatusesSuccess, error: _checkStatusesError }); } var _checkStatusesSuccess = function(data) { if (data) { jQuery.each(data, function(entryId, status) { if (status == 2) { var $li = self.find('li #' + options.idPrefix + entryId).parent(); var $img = $li.find('img'); $img.show(); $img.attr('src', $img.attr('src') + "?" + new Date().getTime()); $li.attr('class', 'statusReady'); } else if(status == -1 || status == -2 || status == 3) { self.find('li #' + options.idPrefix + entryId).parent().attr('class', 'statusError'); } }); } _queueCheck(); if (options.loader) options.loader.hide(); } var _checkStatusesError = function() { _queueCheck(); if (options.loader) options.loader.hide(); } this.intialize = function() { var $li = self.find('li.statusConverting').parent(); $li.each(function(index, element) { jQuery(element).find('img').hide(); }); _queueCheck(); return self; }; return this.intialize(); } $(function() { if ($('body').hasClass('settings_page_interactive_video')) { $.getScript(Kaltura_PluginUrl + '/js/jquery.validate.min.js', function() { $.validator.messages.required = ""; var validator = $("form.registration").validate({ rules: { first_name: "required", last_name: "required", email: { required: true, email: true }, phone: "required", company: "required", job_title: "required", describe_yourself: "required", country: "required", state: "required", would_you_like: "required", agree_to_terms: "required" }, messages: { agree_to_terms: "You must agree to the Kaltura Terms of Use" }, invalidHandler: function(form, validator) { var errors = validator.numberOfInvalids(); if (errors) { } else { } }, errorPlacement: function(error, element) { if (element.attr('name') == 'agree_to_terms') error.appendTo(element.parent()); //error.appendTo( element.parent("td").next("td") ); }, }); $('select[name=country]').change(); }); $('select[name=country]').change(function() { var notApplicable = 'Not Applicable'; if ($(this).val() == 'US') { if ($('select[name=state]').val() == notApplicable) { $('select[name=state] option:first').attr('value', ''); $('select[name=state]').val('').closest('tr').show(); } } else { $('select[name=state] option:first').attr('value', notApplicable); $('select[name=state]').val(notApplicable).closest('tr').hide(); } }); } }); })(jQuery);