if (typeof(Alchemy) === 'undefined') {
var Alchemy = {};
}
(function ($) {
// Setting jQueryUIs global animation duration
$.fx.speeds._default = 400;
// The Alchemy JavaScript Object contains all Functions
$.extend(Alchemy, {
inPlaceEditor : function (options) {
var defaults = {
save_label: 'save',
cancel_label: 'cancel'
};
var settings = jQuery.extend({}, defaults, options);
var cancel_handler = function(element) {
jQuery(element).css({overflow: 'hidden'});
return true;
};
var submit_handler = function(element, id, value) {
$(element).css({overflow: 'hidden'});
id = id.match(/\d+/)[0];
$.ajax({
url: Alchemy.routes.admin_picture_path(id),
type: 'PUT',
data: {
name: value,
size: Alchemy.getUrlParam('size')
}
});
return false;
};
$('#alchemy .rename').click(function () {
$(this).css({overflow: 'visible'});
});
$('#alchemy .rename').inPlaceEdit({
submit : submit_handler,
cancel : cancel_handler,
html : ' \
'
});
},
pleaseWaitOverlay : function(show) {
if (typeof(show) == 'undefined') {
show = true;
}
var $overlay = $('#overlay');
$overlay.css("visibility", show ? 'visible': 'hidden');
},
toggleElement : function (id, url, token, text) {
var toggle = function() {
$('#element_'+id+'_folder').hide();
$('#element_'+id+'_folder_spinner').show();
$.post(url, {
authenticity_token: encodeURIComponent(token)
}, function(request) {
$('#element_'+id+'_folder').show();
$('#element_'+id+'_folder_spinner').hide();
});
}
if (Alchemy.isPageDirty()) {
Alchemy.openConfirmWindow({
title: text.title,
message: text.message,
okLabel: text.okLabel,
cancelLabel: text.cancelLabel,
okCallback: toggle
});
return false;
} else {
toggle();
}
},
ListFilter : function(selector) {
var text = $('#search_field').val().toLowerCase();
var $boxes = $(selector);
$boxes.map(function() {
$this = $(this);
$this.css({
display: $this.attr('name').toLowerCase().indexOf(text) != -1 ? '' : 'none'
});
});
},
fadeImage : function(image, spinner_selector) {
try {
$(spinner_selector).hide();
$(image).fadeIn(600);
} catch(e) {
Alchemy.debug(e);
};
},
removePicture : function(selector) {
var $form_field = $(selector);
var $element = $form_field.parents('.element_editor');
if ($form_field) {
$form_field.val('');
$form_field.prev().remove();
$form_field.parent().addClass('missing');
Alchemy.setElementDirty($element);
}
},
saveElement : function(form) {
// disabled for now. I think we don't need this.
return true;
// remove this comment if you have problems with saving tinymce content
// var $rtf_contents = $(form).find('div.content_rtf_editor');
// if ($rtf_contents.size() > 0) {
// $rtf_contents.each(function() {
// var id = $(this).children('textarea.tinymce').attr('id');
// tinymce.get(id).save();
// });
// }
},
setElementSaved : function(selector) {
var $element = $(selector);
Alchemy.setElementClean(selector);
Alchemy.enableButton(selector + ' button.button');
},
resizeFrame : function() {
var options = {
left: 65,
right: 0
};
var $mainFrame = $('#main_content');
var $topFrame = $('#top_menu');
var view_height = $(window).height();
var view_width = $(window).width();
var topFrameHeight = $topFrame.height();
var mainFrameHeight = view_height - topFrameHeight;
var width = view_width - options.left - options.right;
if ($mainFrame.length > 0) {
$mainFrame.css({
top: topFrameHeight,
width: width,
height: mainFrameHeight
});
}
if ($topFrame.length > 0) {
$topFrame.css({
width: width,
height: topFrameHeight
});
}
},
Tooltips : function() {
var xOffset = 10;
var yOffset = 20;
$(".tooltip").hover(function(e) {
this.original_title = this.title;
if (this.original_title == '') {
this.tooltip_content = $(this).next('.tooltip_content').html();
} else {
this.tooltip_content = this.original_title;
}
if (this.tooltip_content != null) {
this.title = "";
$("body").append(""+ this.tooltip_content +"
");
$("#tooltip")
.css("top",(e.pageY - xOffset) + "px")
.css("left",(e.pageX + yOffset) + "px")
.fadeIn(400);
}
},
function() {
this.title = this.original_title;
$("#tooltip").remove();
});
$(".tooltip").mousemove(function(e) {
$("#tooltip")
.css("top",(e.pageY - xOffset) + "px")
.css("left",(e.pageX + yOffset) + "px");
});
},
SelectBox : function(selector) {
$(selector).sb({animDuration: 0, fixedWidth: true});
},
Buttons : function(options) {
$("button, input:submit, a.button").button(options);
},
handleEssenceCheckbox: function (checkbox) {
var $checkbox = $(checkbox);
if (checkbox.checked) {
$('#' + checkbox.id + '_hidden').remove();
} else {
$checkbox.after('');
}
},
selectOrCreateCellTab: function (cell_name, label) {
if ($('#cell_'+cell_name).size() === 0) {
$('#cells').tabs('add', '#cell_'+cell_name, label);
$('#cell_'+cell_name).addClass('sortable_cell');
}
$('#cells').tabs('select', 'cell_'+cell_name);
},
debug : function(e) {
if (window['console']) {
console.debug(e);
console.trace();
}
},
getUrlParam : function(name){
var results = new RegExp('[\\?&]' + name + '=([^]*)').exec(window.location.href);
if (results)
return results[1] || 0;
},
locale : 'en'
});
})(jQuery);