var oSrv = {
	processing: function(o){
		this.storeProcessing(o);
		o.html('<div class="loading"></div>');
	},
	storeProcessing: function(o){
		if(o.data('loadInProcess')){
			/*alert('данные в процессе получения');*/
			throw 'loadInProcess';
		}
		o.data('loadInProcess',true)
	},
	errorDisplay: function(jO, url, data){
		var oId = jO.attr('id');
		jO.html('<div class="loading-error">Ошибка загрузки. <a href="#">Попробовать ещё раз</a></div>');
		jQuery('a',jO).click(function(){oSrv.load(oId, url, data); return false});
	},
	getElement: function(oId){
		var o = document.getElementById(oId);
		if(!o){alert('Элемент с ид = "' + oId + '" не найден'); throw 'elementNotFound';}
		return jQuery(o);
	},
	load: function(oId, url, data){
		try{
			var jTarget = this.getElement(oId);
			this.processing(jTarget);
		    var options = {
				type: "GET",
				url: url ? url : './common.dhtml.php',
				data: data? data : {},
				success: function(d){jTarget.html(d)},
	            error: function(){ oSrv.errorDisplay(jTarget, url, data)},
				complete: function(){jTarget.data('loadInProcess', false)},
				dataType: 'html'};
			return jQuery.ajax(options);
		}catch(e){}
	},
	loadOnce: function(oId, url, data){
		try{
			var jTarget = this.getElement(oId);
			if(!jTarget.data('loadOnceComplete')){
				jTarget.data('loadOnceComplete', true);
				return this.load(oId, url, data);
			}
		}catch(e){}
	}
};
function spCorrectContentImageSize(o){
    if(o.width > 800){
        o.width = 500;
        jQuery(o).fancyzoom({autoresize:false, imgDir:'/images/fancyzoom/'});
    }
}

displayForm = function (elementId)
{
	var content = [];
	jQuery('#' + elementId + ' input').each(function(){
		var el = jQuery(this);
		if ( (el.attr('type').toLowerCase() == 'radio'))
		{
			if ( this.checked )
				content.push([
					'"', el.attr('name'), '": ',
					'value="', ( this.value ), '"',
					( this.disabled ? ', disabled' : '' )
				].join(''));
		}
		else
			content.push([
				'"', el.attr('name'), '": ',
				( this.checked ? 'checked' : 'not checked' ), 
				( this.disabled ? ', disabled' : '' )
			].join(''));
	});
	alert(content.join('\n'));
}

changeStyle = function(skin)
{
	jQuery('#myform :checkbox').checkbox((skin ? {cls: skin} : {}));
}

redirectToInstrument = function(e, item) {
  if(null === item.u) return;
  document.location = item.u;
};

setAutocompleteForInput = function(input_selector, action, options, result_callback) {  
  var default_options = {
    minChars: 3,
    width: 350,
    autoFill: false,
    max: 50,
    delay: 700,
    dataType: "json",
    parse: function(data) {
      return jQuery.map(data, function(row) {
        return {
          data: row,
          value: row.n,
          result: row.n
        }
      });
    },
    formatResult: function(row){
      return row.t;
    },
    formatItem: function(row, i, max) {
      if(null === row.u) return row.n;
      return  (row.s ? '<div style="float:right">' + row.s + '</div>' : '') +  '<div>' + row.n  + '</div>';
    }
  };
  
  if (typeof options != 'object') options = {};
  
  for (prop in options)
  {
    default_options[prop] = options[prop];
  }
 
  var autocomplete = jQuery(input_selector).autocomplete(action, default_options);
  if (result_callback)
  {
    autocomplete.result(result_callback);
  }
}

jQuery(function() {
    jQuery(".custom-select").selectbox();
    /*--check box--*/
    jQuery('input.custom:checkbox:not([safari])').checkbox();
    jQuery('input.custom[safari]:checkbox').checkbox({cls:'jquery-safari-checkbox'});
    jQuery('input.custom:radio').checkbox();
    /*--image resize--*/
    jQuery("div.content-body img").each(function(i){
        if(this.width){
            spCorrectContentImageSize(this);
        }else{
            this.onload = function(){spCorrectContentImageSize(this)};
        }
    }); 
    /*--tabs--*/
    if (typeof (jQuery.fn.tabs) != 'undefined') {
       jQuery("#tabs").tabs();
       jQuery("#tabs-2").tabs();
       jQuery("#tabs-profile").tabs();       
       jQuery("#tabs2-profile").tabs();              
    }
	
	// Автокомплит для поиска 
    setAutocompleteForInput(
      '#commonSearchInstrumentId', 
      jQuery("#commonSearchInstrumentFormId").attr("action"), 
      {}, 
      redirectToInstrument
    );
});

