| Current Path : /home/balossw/www/temp/common/cms/media/js/ |
| Current File : /home/balossw/www/temp/common/cms/media/js/jquery.form.js |
/*
jQuery(function () {
jQuery('select:not([size])').filter('[processed!=done]').createJsSelect().attr('processed','done');
jQuery('input[type="checkbox"][processed!=done]').createJsCheckbox().attr('processed','done');
});
jQuery.fn.createJsSelect = function () {
return this.each(function() {
var jselect = $(this);
var jselect_container = jselect.parents('.select-container');
var jselect_textfield = null, jselect_options = null;
if (jselect_container.size()==0) {
jselect_container = $("<span class=\"select-container\"></span>");
jselect_textfield = $("<span class=\"select-textfield textfield\"></span>");
jselect_options = $("<ul class=\"select-options\"></ul>");
jselect.wrap(jselect_container);
jselect.before(jselect_textfield,jselect_options);
} else {
jselect_container = jselect_container.find('.select-textfield');
jselect_options = jselect_container.find('.select-options');
}
jselect.css({display: 'none'});
jselect_container.css({position: 'relative'});
jselect_options.css({position: 'absolute', 'list-style': 'none', 'white-space': 'nowrap', 'margin': 0, 'padding': 0, 'z-index': 100, display: 'none'});
jselect_textfield.css({display: 'inline-block', 'white-space': 'nowrap', 'cursor': 'default', width: '150px'});
if (jselect_textfield.attr('tabindex')==null) jselect_textfield.attr('tabindex',0);
var current_value = jselect.val();
var joptions = jselect.find('option');
joptions.each(function() {
var joption = $(this);
var text = joption.text();
var value = joption.attr('value');
var selected = value==current_value;
var jitem = $("<li val=\""+value+"\""+(selected ? " class=\"selected\"" : '')+">"+text+"</li>");
jselect_options.append(jitem);
});
var jselect_items = jselect_options.find('li');
jselect_items.css({cursor: 'default'});
function selectItem(jitem) {
jselect.val(jitem.attr('val'));
jselect_textfield.text(jitem.text());
jselect_options.find('.selected').removeClass('selected');
jitem.addClass('selected');
}
jselect_items.click(function(event){
selectItem($(event.target));
jselect_options.fadeOut();
});
jselect_textfield.click(function(event){
var position = jselect_textfield.position();
jselect_options.css({left: position.left, top: position.top+jselect_textfield.outerHeight()}).fadeIn();
})
.keydown(function(event){
switch (event.keyCode) {
case 37 : // Left
case 38 : // Up
var previous = jselect_items.filter('li.selected').prev('li');
if (previous.size()>0) selectItem(previous);
event.preventDefault();
break;
case 39 : // Right
case 40 : // Down
var next = jselect_items.filter('li.selected').next('li');
if (next.size()>0) selectItem(next);
event.preventDefault();
break;
case 13 : // Enter
var current = jselect_items.filter('li.selected');
if (current.size()>0) selectItem(current);
jselect_options.fadeOut();
event.preventDefault();
break;
}
})
.blur(function(event){
jselect_options.fadeOut();
})
;
jselect_textfield.text(jselect.find('option:selected').text());
});
}
jQuery.fn.createJsCheckbox = function () {
return this.each(function() {
var jcheckbox = $(this);
var jcheckbox_container = jcheckbox.parents('.checkbox-container');
var jcheckbox_textfield = null;
if (jcheckbox_container.size()==0) {
jcheckbox_container = $("<span class=\"checkbox-container\"></span>");
jcheckbox_textfield = $("<span class=\"checkbox-textfield\"></span>");
jcheckbox.wrap(jcheckbox_container);
jcheckbox.before(jcheckbox_textfield);
} else {
jcheckbox_textfield = jcheckbox_container.find('.checkbox-textfield');
}
if (jcheckbox_textfield.attr('tabindex')==null) jcheckbox_textfield.attr('tabindex',0);
jcheckbox.css({display: 'none'});
function invert() {
var checked = jcheckbox.attr('checked')!=false;
if (checked) {
jcheckbox.removeAttr('checked');
jcheckbox_textfield.removeClass('checked');
} else {
jcheckbox.attr('checked','checked');
jcheckbox_textfield.addClass('checked');
}
}
function updateUI() {
if (jcheckbox.attr('checked')!=false) jcheckbox_textfield.addClass('checked');
else jcheckbox_textfield.removeClass('checked');
}
jcheckbox.change(function(event){
updateUI();
})
.mouseup(function(){
updateUI();
})
;
jcheckbox_textfield.css({display: 'inline-block'})
.click(function(){
invert();
})
.keyup(function(event){
if (event.keyCode==32) invert();
})
;
updateUI();
});
}
*/