📄 bs_radio.class.js
字号:
/********************************************************************************************* BlueShoes Framework; This file is part of the php application framework.* NOTE: This code is stripped (obfuscated). To get the clean documented code goto * www.blueshoes.org and register for the free open source *DEVELOPER* version or * buy the commercial version.* * In case you've already got the developer version, then this is one of the few * packages/classes that is only available to *PAYING* customers.* To get it go to www.blueshoes.org and buy a commercial version.* * @copyright www.blueshoes.org* @author Samuel Blume <sam at blueshoes dot org>* @author Andrej Arn <andrej at blueshoes dot org>*/if (!Bs_Objects) {var Bs_Objects = [];};function bs_radio_onClickLabel() {var srcElm = event.srcElement;if (typeof(srcElm.forValue) == 'undefined') {srcElm = srcElm.parentElement;if (typeof(srcElm.forValue) == 'undefined') {srcElm = srcElm.parentElement;if (typeof(srcElm.forValue) == 'undefined') {return;}}}srcElm.bsRadioObj.onClick(srcElm.forValue);}function Bs_Radio() {this._objectId;this.options = new Object();this.value = null;this.disabled = false;this.guiNochange = false;this.allowNoSelection = false;this.radioFieldName;this.imgDir = '/_bsJavascript/components/radio/img/bobby/';this.imgType = 'gif';this.imgWidth = '12';this.imgHeight = '12';this.captionAsTitleText = false;this.cssClass;this.cssStyle;this.useMouseover = false;this.pixelate = 0;this.invertActive = false;this.iconType = 'image';this._attachedEvents;this.constructor = function() {this._id = Bs_Objects.length;Bs_Objects[this._id] = this;this._objectId = "Bs_Radio_"+this._id;}this.initByField = function(fieldName) {this.radioFieldName = fieldName;this.options = new Object;var elms = document.getElementsByName(fieldName);for (var i=0; i<elms.length; i++) {var elm = elms[i];var activateable = (elm.disabled) ? 'no' : 'yes';var deactivateable = (elm.disabled) ? 'no' : 'yes';this.addOption(elm.value, '', false, activateable, deactivateable);if (elm.checked) this.value = elm.value;}}this.convertField = function(fieldName) {this.initByField(fieldName);var allLabels = document.getElementsByTagName('label');var elms = document.getElementsByName(fieldName);for (var i=elms.length; i>0; i--) {var elm = elms[i -1];var elmValue = elm.value;elm.outerHTML = this.render(elmValue);var forId = fieldName + '_' + elmValue;for (var j=0; j<allLabels.length; j++) {if (allLabels[j]['htmlFor'] == forId) {allLabels[j].forValue = elmValue;allLabels[j].bsRadioObj = this;allLabels[j].attachEvent('onclick', bs_radio_onClickLabel);break;}}}}this.drawInto = function(value, tagId) {if (bs_isNull(value)) {var out = this.renderAsTable();} else {var out = this.render(value);}var tag = document.getElementById(tagId);if (tag != null) {tag.innerHTML = out;return true;}return false;}this.draw = function(value) {document.write(this.render(value));}this.renderAsTable = function(direction, tableTag) {var ret = new Array();if (bs_isNull(tableTag)) {ret[ret.length] = '<table border="0">';} else {ret[ret.length] = tableTag;}if (direction == 'horizontal') {ret[ret.length] = '<tr>';var i = 0;for (var value in this.options) {ret[ret.length] = '<td>';if (i > 0) ret[ret.length] = ' ';ret[ret.length] = this.render(value) + '</td>';i++;}ret[ret.length] = '</tr>';} else {for (var value in this.options) {ret[ret.length] = '<tr><td>' + this.render(value) + '</td></tr>';}}ret[ret.length] = '</table>';return ret.join('');}this.render = function(value) {if (typeof(this.options[value]) == 'undefined') return '';if (this.options[value]['hide']) return '';var out = new Array();var outI = 0;var valueId = this._objectId + value;if (!bs_isNull(this.options[value]['furtherOptions']) && !bs_isNull(this.options[value]['furtherOptions']['captionAsTitleText'])) {var captionAsTitleText = this.options[value]['furtherOptions']['captionAsTitleText'];} else {if (typeof(this.captionAsAltText) != 'undefined') {var captionAsTitleText = this.captionAsAltText;} else {var captionAsTitleText = this.captionAsTitleText;}}var userSelectable = !(this.disabled || this.guiNochange || (this.options[value]['activateable'] != 'yes'));var isSelected = (this.value == value);if (userSelectable) {out[outI++] = '<span';if (typeof(this.cssClass) != 'undefined') {out[outI++] = ' class="' + this.cssClass + '"';}if (typeof(this.cssStyle) != 'undefined') {out[outI++] = ' style="' + this.cssStyle + '"';}if (!this.guiNochange) {out[outI++] = ' onClick="Bs_Objects['+this._id+'].onClick(\'' + value + '\');"';}out[outI++] = ' style="cursor:hand;"';out[outI++] = ' onMouseOver="Bs_Objects['+this._id+'].onMouseOver(\'' + value + '\');"';out[outI++] = ' onMouseOut="Bs_Objects['+this._id+'].onMouseOut(\'' + value + '\');"';out[outI++] = '>';}var img = '';var imgCssStyle = '';img += this._getIconPrefix(value);if (this.iconType == 'css') {if (!userSelectable) {imgCssStyle += 'filter:progid:DXImageTransform.Microsoft.BasicImage(grayScale=1), progid:DXImageTransform.Microsoft.BasicImage(opacity=.5);';}if (isSelected) {if (this.invertActive) imgCssStyle += 'filter:progid:DXImageTransform.Microsoft.BasicImage(invert=1);';imgCssStyle += 'border:2px solid gray;';} else {if ((this.pixelate > 0) && userSelectable) {imgCssStyle += 'filter:progid:DXImageTransform.Microsoft.Pixelate(maxsquare=' + this.pixelate + ');';}}} else {img += (userSelectable) ? 'enabled' : 'disabled';img += '_';img += (isSelected) ? '1' : '0';img += '.' + this.imgType;}out[outI++] = '<img id="' + valueId + 'Icon" src="' + this.imgDir + img + '" border="0"';if (!bs_isNull(this.imgWidth)) out[outI++] = ' width="' + this.imgWidth + '"';if (!bs_isNull(this.imgHeight)) out[outI++] = ' height="' + this.imgHeight + '"';out[outI++] = ' style="' + imgCssStyle + '"';if (this.options[value]['caption'].indexOf('<') == -1) {out[outI++] = ' alt="' + this.options[value]['caption'] + '"';}if (captionAsTitleText) {out[outI++] = ' title="' + this.options[value]['caption'] + '"';}out[outI++] = '>';if (!captionAsTitleText && (this.options[value]['caption'] != '')) {out[outI++] = ' ' + this.options[value]['caption'];}if (userSelectable) {out[outI++] = '</span>';}if (typeof(this.radioFieldName) != 'undefined') {var radioFieldName = this.radioFieldName;} else {var radioFieldName = valueId + 'Field';this.radioFieldName = radioFieldName;}out[outI++] = '<input type="radio" name="' + radioFieldName + '" value="' + value + '" style="display:none; visibility:hidden;"';if (isSelected) out[outI++] = ' checked';out[outI++] = '>';return out.join('');}this.addOption = function(value, caption, hide, activateable, deactivateable, furtherOptions) {if (bs_isNull(hide)) hide = false;if (bs_isNull(activateable)) activateable = 'yes';if (bs_isNull(deactivateable)) deactivateable = 'yes';value += '';this.options[value] = new Object;this.options[value]['caption'] = caption;this.options[value]['hide'] = hide;this.options[value]['activateable'] = activateable;this.options[value]['deactivateable'] = deactivateable;if (typeof(furtherOptions) == 'object') {this.options[value]['furtherOptions'] = furtherOptions;}}this.getValue = function() {return this.value;}this.onClick = function(value) {var newValueReal = value;if (this.value == value) {if (this.allowNoSelection) {newValueReal = null;} else {return;}}if (typeof(this.value) != 'undefined') {var oldSelectedImg = document.getElementById(this._objectId + this.value + 'Icon');if (oldSelectedImg) {if (this.iconType == 'css') {oldSelectedImg.style.border = 'none';if (this.pixelate > 0) {oldSelectedImg.style.filter = 'progid:DXImageTransform.Microsoft.Pixelate(maxsquare=' + this.pixelate + ')';} else {oldSelectedImg.style.filter = '';}} else {oldSelectedImg.src = this.imgDir + this._getIconPrefix(this.value) + 'enabled_0.' + this.imgType;}}}if (newValueReal != null) {var newSelectedImg = document.getElementById(this._objectId + value + 'Icon');if (newSelectedImg) {if (this.iconType == 'css') {imgCssStyle = '';if (this.invertActive) newSelectedImg.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(invert=1)';newSelectedImg.style.border = '2px solid gray';} else {newSelectedImg.src = this.imgDir + this._getIconPrefix(value) + 'enabled_1.' + this.imgType;}}}this.value = newValueReal;var col = document.getElementsByName(this.radioFieldName);for (var i=0; i<col.length; i++) {if (col[i].value == this.value) {col[i].checked = true;} else {col[i].checked = false;}}if (this.eventOnClick) this._fireEvent(this.eventOnClick);if (this.eventOnChange) this._fireEvent(this.eventOnChange);if (this.hasEventAttached('onChange')) this.fireEvent('onChange');}this.onMouseOver = function(value) {if (this.useMouseover && (this.iconType == 'image')) {var img = document.getElementById(this._objectId + value + 'Icon');if (!img.swapOver0) {img.swapOver0 = new Image();img.swapOver0.src = this.imgDir + 'enabled_0_over.gif';img.swapOver1 = new Image();img.swapOver1.src = this.imgDir + 'enabled_1_over.gif';img.swapOver2 = new Image();img.swapOver2.src = this.imgDir + 'enabled_2_over.gif';img.swapOut0 = new Image();img.swapOut0.src = this.imgDir + 'enabled_0.gif';img.swapOut1 = new Image();img.swapOut1.src = this.imgDir + 'enabled_1.gif';img.swapOut2 = new Image();img.swapOut2.src = this.imgDir + 'enabled_2.gif';}img.src = img['swapOver' + this.value].src;}if (this.pixelate > 0) {var img = document.getElementById(this._objectId + value + 'Icon');img.style.filter = '';}}this.onMouseOut = function(value) {if (this.useMouseover && (this.iconType == 'image')) {var img = document.getElementById(this._objectId + value + 'Icon');img.src = img['swapOut' + this.value].src;}if ((this.pixelate > 0) && (this.value != value)) {var img = document.getElementById(this._objectId + value + 'Icon');img.style.filter = 'progid:DXImageTransform.Microsoft.Pixelate(maxsquare=' + this.pixelate + ')';}}this.attachEvent = function(trigger, yourEvent) {if (typeof(this._attachedEvents) == 'undefined') {this._attachedEvents = new Array();}if (typeof(this._attachedEvents[trigger]) == 'undefined') {this._attachedEvents[trigger] = new Array(yourEvent);} else {this._attachedEvents[trigger][this._attachedEvents[trigger].length] = yourEvent;}}this.hasEventAttached = function(trigger) {return (this._attachedEvents && this._attachedEvents[trigger]);}this.fireEvent = function(trigger) {if (this._attachedEvents && this._attachedEvents[trigger]) {var e = this._attachedEvents[trigger];if ((typeof(e) == 'string') || (typeof(e) == 'function')) {e = new Array(e);}for (var i=0; i<e.length; i++) {if (typeof(e[i]) == 'function') {e[i](this);} else if (typeof(e[i]) == 'string') {eval(e[i]);}}}}this._fireEvent = function(e) {if (e) {if (typeof(e) != 'array') {e = new Array(e);}for (var i=0; i<e.length; i++) {if (typeof(e[i]) == 'function') {e[i](this);} else if (typeof(e[i]) == 'string') {eval(e[i]);}}}}this._getIconPrefix = function(value) {if (!bs_isNull(this.options[value]['furtherOptions']) && !bs_isNull(this.options[value]['furtherOptions']['iconPrefix'])) {return this.options[value]['furtherOptions']['iconPrefix'];}return '';}this.constructor();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -