1(function($){ 2 var defaultOptions={preloadImg:true}; 3 var jqTransformImgPreloaded=false; 4 var jqTransformPreloadHoverFocusImg=function(strImgUrl){ 5 strImgUrl=strImgUrl.replace(/^url\((.*)\)/,'$1').replace(/^\"(.*)\"$/,'$1'); 6 var imgHover=new Image(); 7 imgHover.src=strImgUrl.replace(/\.([a-zA-Z]*)$/,'-hover.$1'); 8 var imgFocus=new Image(); 9 imgFocus.src=strImgUrl.replace(/\.([a-zA-Z]*)$/,'-focus.$1')}; 10 11 12 /*************************** 13 Labels 14 ***************************/ 15 var jqTransformGetLabel=function(objfield){ 16 var selfForm=$(objfield.get(0).form); 17 var oLabel=objfield.next(); 18 if(!oLabel.is('label')){ 19 oLabel=objfield.prev(); 20 if(oLabel.is('label')){ 21 var inputname=objfield.attr('id'); 22 if(inputname){ 23 oLabel=selfForm.find('label[for="'+inputname+'"]')} 24 } 25 } 26 if(oLabel.is('label')){return oLabel.css('cursor','pointer')} 27 return false}; 28 var jqTransformHideSelect=function(oTarget){ 29 var ulVisible=$('.jqTransformSelectWrapper ul:visible'); 30 ulVisible.each(function(){ 31 var oSelect=$(this).parents(".jqTransformSelectWrapper:first").find("select").get(0); 32 if( !(oTarget&&oSelect.oLabel&&oSelect.oLabel.get(0)== oTarget.get(0)) ){$(this).hide()} 33 })}; 34 var jqTransformCheckExternalClick=function(event){ 35 if ($(event.target).parents('.jqTransformSelectWrapper').length=== 0){ jqTransformHideSelect($(event.target))} 36 }; 37 var jqTransformAddDocumentListener=function (){ 38 $(document).mousedown(jqTransformCheckExternalClick)}; 39 var jqTransformReset=function(f){ 40 var sel; 41 $('.jqTransformSelectWrapper select',f).each(function(){sel=(this.selectedIndex<0)?0:this.selectedIndex; $('ul',$(this).parent()).each(function(){$('a:eq('+sel+')',this).click()})}); 42 $('a.jqTransformCheckbox,a.jqTransformRadio',f).removeClass('jqTransformChecked'); 43 $('input:checkbox,input:radio',f).each(function(){if(this.checked){$('a',$(this).parent()).addClass('jqTransformChecked')}})}; 44 /*************************** 45 Check Boxes 46 ***************************/ 47 $.fn.jqTransCheckBox=function(){ 48 return this.each(function(){ 49 if($(this).hasClass('jqTransformHidden')){return} 50 var $input=$(this); 51 var inputSelf=this; 52 var oLabel=jqTransformGetLabel($input); 53 oLabel&&oLabel.click(function(){aLink.trigger('click')}); 54 var aLink=$('<a href="#" class="jqTransformCheckbox"></a>'); 55 $input.addClass('jqTransformHidden').wrap('<span class="jqTransformCheckboxWrapper"></span>').parent().prepend(aLink); 56 $input.change(function(){ 57 this.checked&&aLink.addClass('jqTransformChecked')||aLink.removeClass('jqTransformChecked'); 58 return true}); 59 aLink.click(function(){ 60 if($input.attr('disabled')){return false} 61 $input.trigger('click').trigger("change"); 62 return false}); 63 this.checked&&aLink.addClass('jqTransformChecked')})}; 64 /*************************** 65 Radio Buttons 66 ***************************/ 67 $.fn.jqTransRadio=function(){ 68 return this.each(function(){ 69 if($(this).hasClass('jqTransformHidden')){return} 70 var $input=$(this); 71 var inputSelf=this; 72 oLabel=jqTransformGetLabel($input); 73 oLabel&&oLabel.click(function(){aLink.trigger('click')}); 74 var aLink=$('<a href="#" class="jqTransformRadio" rel="'+this.name+'"></a>'); 75 $input.addClass('jqTransformHidden').wrap('<span class="jqTransformRadioWrapper"></span>').parent().prepend(aLink); 76 $input.change(function(){ 77 inputSelf.checked&&aLink.addClass('jqTransformChecked')||aLink.removeClass('jqTransformChecked'); 78 return true}); 79 aLink.click(function(){ 80 if($input.attr('disabled')){return false} 81 $input.trigger('click').trigger('change'); 82 $('input[name="'+$input.attr('name')+'"]',inputSelf.form).not($input).each(function(){ 83 $(this).attr('type')=='radio'&&$(this).trigger('change')});return false}); 84 // set the default state 85 inputSelf.checked&&aLink.addClass('jqTransformChecked')})}; 86 /*************************** 87 Select 88 ***************************/ 89 $.fn.jqTransSelect=function(){ 90 return this.each(function(index){ 91 var $select=$(this); 92 if($select.hasClass('jqTransformHidden')){return} 93 if($select.attr('multiple')){return} 94 var oLabel=jqTransformGetLabel($select); 95 var $wrapper=$select 96 .addClass('jqTransformHidden') 97 .wrap('<div class="jqTransformSelectWrapper"></div>') 98 .parent() 99 .css({zIndex: 10-index}); 100 $wrapper.prepend('<div></div><a href="#" class="jqTransformSelectOpen"></a><ul></ul>'); 101 var $ul=$('ul',$wrapper).css('width',$select.width()).hide(); 102 $('option',this).each(function(i){
103 var oLi=$('<li><a href="#" index="'+i+'">'+$(this).html()+'</a></li>'); 104 $ul.append(oLi)}); 105 $ul.find('a').click(function(){ 106 $('a.selected',$wrapper).removeClass('selected'); 107 $(this).addClass('selected'); 108 /* Fire the onchange event */ 109 if ($select[0].selectedIndex != $(this).attr('index')&&$select[0].onchange){ $select[0].selectedIndex=$(this).attr('index'); $select[0].onchange()} 110 $select[0].selectedIndex=$(this).attr('index'); 111 $('div:eq(0)',$wrapper).html($(this).html()); 112 $ul.hide(); 113 return false}); 114 $('a:eq('+this.selectedIndex+')',$ul).click(); 115 $('div:first',$wrapper).click(function(){$("a.jqTransformSelectOpen",$wrapper).trigger('click')}); 116 oLabel&&oLabel.click(function(){$("a.jqTransformSelectOpen",$wrapper).trigger('click')}); 117 this.oLabel=oLabel; 118 var oLinkOpen=$('a.jqTransformSelectOpen',$wrapper) 119 .click(function(){ 120 if( $ul.css('display')== 'none' ){jqTransformHideSelect()} 121 if($select.attr('disabled')){return false} 122 $ul.slideToggle('fast',function(){ 123 var offSet=($('a.selected',$ul).offset().top-$ul.offset().top); 124 $ul.animate({scrollTop: offSet})}); 125 return false}); 126 var iSelectWidth=$select.outerWidth(); 127 var oSpan=$('div:first',$wrapper); 128 var newWidth=$wrapper.width(); 129 $ul.css('width',newWidth); 130 $ul.css({display:'block',visibility:'hidden'}); 131 var iSelectHeight=($('li',$ul).length)*($('li:first',$ul).height()); 132 (iSelectHeight<$ul.height())&&$ul.css({height:iSelectHeight,'overflow':'hidden'}); 133 $ul.css({display:'none',visibility:'visible',top:$wrapper.height()+2})})}; 134 $.fn.jqTransform=function(options){ 135 var opt=$.extend({},defaultOptions,options); 136 return this.each(function(){ 137 var selfForm=$(this); 138 if(selfForm.hasClass('jqtransformdone')){return} 139 selfForm.addClass('jqtransformdone'); 140 $('input:checkbox',this).jqTransCheckBox(); 141 $('input:radio',this).jqTransRadio(); 142 if( $('select',this).jqTransSelect().length>0 ){jqTransformAddDocumentListener()} 143 selfForm.bind('reset',function(){var action=function(){jqTransformReset(this)}; window.setTimeout(action,10)})}) 144 }; 145})(jQuery); 146$(function(){ 147 $('.jqTransform').jqTransform({imgPath:'../images/img/'}) 148});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.