var SmartyAjax = {
  category: function(update_id, url, method, params, callback) {

  pathname=location.pathname;
  host=location.host;
  hash=location.hash;

  params=params.split(':').join('":"');
  params=params.split(',').join('","');
  params='"'+params+'"';
  
  params = params+',"pathname":"'+pathname+'","host":"'+host+'","hash":"'+hash+'"';

  params = jQuery.parseJSON('{'+params+'}');

  pn_CID = pathname.indexOf("categoryID"); // заменил на params.categoryID из за woman_clothes и т.д.
  ha_CID = hash.indexOf("categoryID");

  if(params.categoryID>0) catID = params.categoryID;
  else                    catID = searchAfter( hash ,"categoryID/");

  if(catID<=0) catID=1;

  if( (params['changeURL'] == 1 && $('#cat_val').length==0) || pathname!='/c' ) window.location=HTTP_HOST_S+'c#categoryID/'+catID; //changeURL
  else         window.location.hash='categoryID/'+catID;


  function searchAfter(str,afret){
	indexFirstAppearance = str.indexOf(afret);
	if(indexFirstAppearance>=0){
	  indexA=afret.length+indexFirstAppearance;
	  indexB=indexA+3; //длина искомого значения = 2
	  find=str.substring(indexA,indexB);
	  find=find.replace("/",""); //убираем из строки знак '/'
  
	  return( find );
	} else return( false );
  
  }

  if( params['changeURL'] == 1 || $('#cat_val').length==0 ){ // NO loaded category.tpl.html было раньше - $('#cat_val').length==0
  params3 = '"f":"show_category_tpl_html"';
  params3 = jQuery.parseJSON('{'+params3+'}');
  params3['categoryID']=catID;
	  jQuery.ajax({
		  async:true, // false == waiting
		  type: method,
		  url: url,
		  data: params3,
		  success: function(data, textStatus, XMLHttpRequest){
			$('#main_content_template').html( data );
		  }
	  });
  }

  if($('#cat_val').length>0 && params.categoryID==0) { // loaded category.tpl.html && приводим сортировку к надлежащему виду для отправки по гет
  
	sncd = jQuery("#sort_name_cost_date option:selected").attr('value');
	Ch='_';
	indexCh = sncd.indexOf(Ch);
	ChBn = Ch.length+indexCh;
	ChBe = ChBn+1;
	ChB=sncd.substring(ChBn,ChBe);
	ChA=sncd.substring(0,indexCh);
	if(ChB=='d')ChB='ASC';
	else ChB='DESC';
	params['sort']=ChA;
	params['direction']=ChB;
  
	params['PerPage']=jQuery("#PerPage option:selected").attr('value');
	
	params['brief_description']={};
	params['brief_description'][0]=jQuery("#asic_opt option:selected").attr('value');
  
	from=jQuery('#min_send').attr("value");
	to=jQuery('#max_send').attr("value");
	params["price"] = {"from":from,"to":to};
  }

  params['categoryID']=catID;
  params['ajaxn']=1;
    
	jQuery.ajax({
		async:true, // false == waiting
		type: method,
		//dataType: 'json',
		url: url,
		data: params,
		beforeSend: function(a){
		  jQuery.modal("<div><h3>updating...</h3></div>", { closeHTML:"", containerCss:{ backgroundColor:"#fff", borderColor:"#fff", height:100, padding:0, width:130 }, overlayClose:true}); 
		},
		success: function(data, textStatus, XMLHttpRequest){ 
		  $('#cat_content').html( data );
		  SmartyAjax.category_tree("category_tree", url, method, 'categoryID:'+catID+',f:category_tree' , callback);
		},
		complete: function(a,b){
		  jQuery.modal.close(); 
		}
	});
  },
  category_tree: function(update_id, url, method, params, callback) {

    params=params.split(':').join('":"');
    params=params.split(',').join('","');
    params='"'+params+'"';
	params = jQuery.parseJSON( '{'+params+'}' );

	jQuery.ajax({
	  async:true, // false == waiting
	  type: method,
	  //dataType: 'json',
	  url: url,
	  data: params,
	  beforeSend: function(a){
		$('#'+update_id).html( "<div><h3>updating...</h3></div>" );
	  },
	  success: function(data, textStatus, XMLHttpRequest){
		$('#category_tree').html( data );
	  }
	});
  },
  
  update: function(update_id, url, method, params, callback) {

    params=params.split(':').join('":"');
    params=params.split(',').join('","');
    params='"'+params+'"';
    params = jQuery.parseJSON('{'+params+'}');
  
  if(params.getval==1) params.val = $('#'+update_id).html();

	jQuery.ajax({
		async:true, // false == waiting
		type: method,
		//dataType: 'json',
		url: url,
		data: params,
		beforeSend: function(a){
		  $('#'+update_id).css("color", "red");
		  //$('#'+update_id).html("<div><h3>updating...</h3></div>"); 
		},
		success: function(data, textStatus, XMLHttpRequest){
		  if(params.value==1) $('#'+update_id).attr( 'value',data );
		  if(params.html==1) $('#'+update_id).html( data );
		  else $('#'+update_id).val( data );
		  //alert(update_id);
		},
		complete: function(a,b){
		  $('#'+update_id).css("color", "black");
		}
	});
  },

  upd_val: function(update_id, url, method, params, what, callback) {

    params=params.split(':').join('":"');
    params=params.split(',').join('","');
    params='"'+params+'"';
    params = jQuery.parseJSON('{'+params+'}');

	if( typeof(params['val'])=="undefined" ){
	  if(params['insert']=='html')         params['val'] = $('#'+update_id).html();
	  else if(params['insert']=='select')  params['val'] = $('#'+update_id+' option:selected').attr('value');
	  else                                 params['val'] = $('#'+update_id).val(); 
	}//добавляем к передаваемым параметрам val(значение)
	if( typeof(params['what'])=="undefined" ) params['what'] = what;


	jQuery.ajax({
		async:true, // false == waiting
		type: method,
		//dataType: 'json',
		url: url,
		data: params,
		beforeSend: function(a){
		  if(params['insert']=='select'){
  		    $('#'+update_id+'').css("color","red");
		  } else $('#'+update_id).css("color", "red");
		},
		success: function(data, textStatus, XMLHttpRequest){
		  if(params['insert']=='html') $('#'+update_id).html(data); //если передается параметр 'html'
		  else if(params['insert']=='select'){
		    $('#'+update_id+' [value="'+data+'"]').attr("selected", "selected");
		  } else $('#'+update_id).val(data);
		},
		complete: function(a,b){
		  if(params['insert']=='select'){
		    $('#'+update_id+'').css("color","black");
			$('#'+update_id+'').css("font-size","14px");
			$('#'+update_id+'').css("font-weight","300");
		    $('#'+update_id+' option:selected').css("font-size","16px");
			$('#'+update_id+' option:selected').css("font-weight","900");
			$('#'+update_id+' option:selected').css("color","red");
		  } else $('#'+update_id).css("color", "black");
		}
	});

  },
  
  call: function(url, method, params, callback, params_func) {

    params=params.split(':').join('":"');
    params=params.split(',').join('","');
    params='"'+params+'"';
    params = jQuery.parseJSON('{'+params+'}');
  
  if(params.getVal==1){
    param2={};
    jQuery.each(params, function(i,k){
	  if(k=='upd') param2[i]= $('#'+params.updID+'_'+i).val();
	});
    params['val']=param2;
  }
  
  
	jQuery.ajax({
		async:true, // false == waiting
		type: method,
		url: url,
		data: params,
		success: callback
	});
  }

}
/*
function(data){
$('#'+update_id).attr('value', data );
$('#cont_alt_links').append('<p>Test</p>');
}
*/