(function($){
    $.fn.clearSelect = function() {
        return this.each(function(){
            if(this.tagName=='SELECT') {
                this.options.length = 0;
                $(this).attr('disabled','disabled');
            }
        });
    }

    $.fn.clearField = function(selector) {
        this.nextAll(selector).remove();
        return this;
    }

    $.fn.fillSelect = function(dataArray, ltype) { 
        return this.clearSelect().each(function(){
            if(this.tagName=='SELECT') {
                var currentSelect = this;
																this.id=ltype;
                var start = new Option(null_select, '-1');
                if($.support.cssFloat) {
                    currentSelect.add(start,null);
                } else {
                    currentSelect.add(start);
                }
                $.each(dataArray,function(index,data){ 
                    if(data.name) {
                        var option = new Option(data.name,data.id);
																								option.id = ltype;
                        if($.support.cssFloat) {
                            currentSelect.add(option,null);
                        } else {
                            currentSelect.add(option);
                        }
                    }
                });
                $(this).removeAttr('disabled').find('option:first').attr('selected', 'selected');
            }
        });
    }
})(jQuery);


function getCategory(pcategory, level, level_type) {
    $.ajax({
        url: 'ajax/product_group_list.php',
        type: 'POST',
								async: false,
        data: 'pcategory='+ pcategory +'&level='+ level +'&level_type='+ level_type,
        dataType: 'JSON',
        timeout: 5000,
        beforeSend: function(){
												$('select[name^=category_]').attr('disabled', 'disabled');
        },
        complete: function(){ 
            $('select[name^=category_]').removeAttr('disabled');
        },
        success: function(response){  
            var data = eval('('+ response +')');
           
												if(data.count === 'undefined' || data.count == 0) {
                $('select[name=category_'+ (data.level - 1) +']')
                    .clearField('select[name^=category]')
                    .clearField('span');
                return false;
            }
												
            if( $('select[name=category_'+ data.level +']').length ) {
                $('select[name=category_'+ data.level +']')
                    .clearField('select[name^=category]')
                    .clearField('span')
                    .fillSelect(data.item,data.level_type);
            } else {
                $('#categories select:last').after('<span><br></span> <select class="posting" name="category_'+ data.level +'"></select>');
                $('select[name=category_'+ data.level +']').fillSelect(data.item, data.level_type);
            }

            $('select[name=category_'+ data.level +']').unbind('change');
            $('select[name=category_'+ data.level +']').change(function(){ return clickEvent($(this)); });
            return false;
        },
        error: function(){
            $('#msg').append('<p>Some error with categories. Please, try later ;)</p>');
            return false;
        }
    });
}


function clickEvent(select)
{
    var id = select.find('option:selected').attr('value');
				var sid = select.find('option:selected').attr('id');

    $("#product_name").attr('value','');
					
    if (id == '-1') {
    	select.clearField('select[name^=category]').clearField('span');
					$("#product_name_group").hide();
				 $("#lock_section").hide();								
 			 $("#posting_lock").attr('value',null);
					
    	return false;
    }

    var level = parseInt(select.attr('name').replace('category_', '')) + 1;
 
				if (level == 1) {

       if (id == 1) {
								 
									 $("#lock_section").show();
								
							}
							else {
								
									 $("#lock_section").hide();								
  							 $("#posting_lock").attr('value',null);
							}
							
							
				}
					
				if (sid == 'P2')
				 $("#product_name_group").show();	
				else	$("#product_name_group").hide();	

    return getCategory(id, level, sid);
}


/*----------------------*/

function MakeProductThread(product_id) {
    $.ajax({
        url: 'ajax/product_hierarchy.php',
        type: 'POST',
								async: false,
        data: 'product_id='+ product_id,
        dataType: 'JSON',
        timeout: 5000,
        beforeSend: function(){
												$('select[name^=category_]').attr('disabled', 'disabled');
        },
        complete: function(){
            $('select[name^=category_]').removeAttr('disabled');
        },
        success: function(response){  
            var data = eval('('+ response +')');  
												for (i=0;i<data.product_thread.length;i++)
												{

	
	              if($('select[name^=category_'+i+']').attr('id') != 'P')
 															 val = data.product_thread[i];
															else	val = data.product_thread[i-1]+'-'+data.firm_id;

															$('select[name^=category_'+i+']').attr('value',val);
															clickEvent($('select[name^=category_'+i+']'));
															
															if($('select[name^=category_'+i+']').attr('id') == 'P')
															{
																  $('select[name^=category_'+(i+1)+']').attr('value',data.product_thread[i]);
   															clickEvent($('select[name^=category_'+(i+1)+']'));
															}
												}
            return false;
        },
        error: function(){
            alert('!!!!!!!!!!!');
            return false;
        }
    });
}
