6     function SearchPerspective(options){
 
   7         var old_callback = options.callback || function() { };
 
   9         this.noupdate_hash_onenter = true;
 
  10         this.vsplitbar = 'ZNAJDŹ I ZAMIEŃ';
 
  12         options.callback = function(){
 
  16             this.$element = $("#side-search");
 
  17             this.$searchInput = $('#search-input', this.$element);
 
  18             this.$replaceInput = $('#replace-input', this.$element);
 
  19             this.$searchButton = $('#search-button', this.$element);
 
  20             this.$replaceButton = $('#replace-button', this.$element);
 
  22             this.$replaceButton.attr("disabled","disabled");
 
  23             this.options = Array();
 
  26             this.$searchInput.change(function(event){
 
  27                 self.searchCursor = null;
 
  29             this.$replaceInput.change(function(event){
 
  30                 self.searchCursor = null;
 
  33             $("#side-search input:checkbox").each(function() {
 
  34                 self.options[this.id] = this.checked;
 
  36                 self.options[this.id] = this.checked;
 
  37                 self.searchCursor = null;
 
  40             this.$searchButton.click(function(){
 
  42                     alert('Brak wyników.');
 
  45             this.$replaceButton.click(function(){
 
  49             old_callback.call(this);
 
  52         $.wiki.Perspective.call(this, options);
 
  55     SearchPerspective.prototype = new $.wiki.Perspective();
 
  57     SearchPerspective.prototype.search = function(){
 
  59         var query = self.$searchInput.val();
 
  62             self.editor = $.wiki.perspectiveForTab('#CodeMirrorPerspective').codemirror
 
  64         if (!self.searchCursor) {
 
  65             self.searchCursor = self.editor.getSearchCursor(
 
  66                 self.$searchInput.val(), 
 
  67                 self.options['search-from-cursor'], 
 
  68                 !self.options['search-case-sensitive']
 
  71         if (self.searchCursor.findNext()) {
 
  72             self.searchCursor.select();
 
  73             self.$replaceButton.removeAttr("disabled");
 
  77             self.searchCursor = null;
 
  78             this.$replaceButton.attr("disabled","disabled");
 
  83     SearchPerspective.prototype.replace = function(){
 
  85         var query = self.$replaceInput.val();
 
  87         if (!self.searchCursor) {
 
  91         self.searchCursor.select();
 
  92         self.searchCursor.replace(query);
 
  93         if(self.options['replace-all'] && self.search()) {
 
  98     SearchPerspective.prototype.onEnter = function(success, failure){
 
 101         $.wiki.Perspective.prototype.onEnter.call(this);
 
 102         self.$searchCursor = null;
 
 104         $('.vsplitbar').not('.active').trigger('click');
 
 105         $(".vsplitbar-title").html("↓ ZNAJDŹ I ZAMIEŃ ↓");        
 
 107         if ($.wiki.activePerspective() != 'CodeMirrorPerspective')
 
 108             $.wiki.switchToTab('#CodeMirrorPerspective');
 
 111     SearchPerspective.prototype.onExit = function(success, failure) {
 
 115     $.wiki.SearchPerspective = SearchPerspective;