function removeAllOptions(selectbox) {
	var i;
	for(i=selectbox.options.length-1;i>=0;i--) {
		selectbox.remove(i);
	}
}

function addOptionDynamic(selectbox, value, text, index) {
	selectbox.options[index] = new Option(text, value);
}

function removeAllOptionsNew(selectbox) {
	var i;
	for(i=selectbox.options.length-1;i>=1;i--) {
		selectbox.remove(i);
	}
}

function addOptionNew(selectbox, value, text, index) {
	selectbox.options[index] = new Option(text, value);
}

function ProductRequest(value , search_criteria) {
  updateElement('products', 'Loading...', '');
  $.ajax({
	url: '/product-search/' + value + '/' + search_criteria + '/',
	async: false,
	success: function(data){ updateElement('products', data, search_criteria) }
  });
}

function RegionRequest(value, element, sel) {
  $.ajax({
	url: '/ajax/region-search/' + value + '/',
	async: false,
	success: function(data){updateElement(element, data, sel)}
  });
}

function Sub_Category_Request(value, element, selected) {
    if(value != ''){
        $.ajax({
            url: '/sub_category/' + value + '/',
            async: false,
            success: function(data){ updateElement(element, data, selected) }
        });
    }
}

function Sub_Sub_Category_Request(value, element, selected) {
    if(value != ''){
        $.ajax({
            url: '/sub_sub_category/' + value + '/',
            async: false,
            success: function(data){
              data = data + "!OTHER,"
              updateElement(element, data, selected);
            }
        });
    }
}

function RegionRequest_backend(value, element, selected) {
  $.ajax({
	url: '/ajax/region-search-supp/' + value + '/',
	async: false,
	success: function(data){ updateElement_backend(element, data, selected) }
  });
}

function updateElement_backend(theelement, data, selected) {
    removeAllOptions(document.getElementById(theelement));
    y = 0;
    var data_array = data.split("!");
    if(selected != ''){
        sel_list = selected.split(',')
    }
    for (i=0; i<data_array.length; i++) {
        temp_data =data_array[i].split(",")
		addOptionDynamic(document.getElementById(theelement), temp_data[1], temp_data[0], y)
        if(selected != ''){
            for (x=0; x<sel_list.length; x++){
                if(sel_list[x] == temp_data[1]){
                    document.getElementById(theelement).options[y].selected = 'selected'
                }
            }
        }
        y++;
    }
}

function updateElement(theelement, data, selected) {

    removeAllOptions(document.getElementById(theelement));
    y = 1;
    var data_array = data.split("!");
	addOptionDynamic(document.getElementById(theelement),'','Please Select', 0);
    for (i=0; i<data_array.length; i++) {
        temp_data =data_array[i].split(",")
		addOptionDynamic(document.getElementById(theelement), temp_data[1], temp_data[0], y);
        if (temp_data[1] == selected)
            document.getElementById(theelement).options[y].selected = 'selected';
        y++;
    }
}

function select_form(s_category, s_supplier){
	if(s_category != '' && s_category != 'None'){
		document.getElementById(s_category).selected=true;
	}
	if(s_supplier != '' && s_supplier != 'None'){
		document.getElementById(s_supplier).selected=true;
	}
}

// New Search Ajax Function
function updateElementNew(element_to_change, data, selected_option){

  var data_array = data.split("~");
  var y = 1;
  
  for (i=0; i<data_array.length-1; i++) {
	if(data_array[i] == 'All Sub Sub Categories'){
	  addOptionNew(document.getElementById(element_to_change), '', data_array[i], y);
	}
	else{
	  addOptionNew(document.getElementById(element_to_change), data_array[i], data_array[i], y);
	}
	y++;
  }
}

function AjaxFetchData(url_prefix, passed_value1, passed_value2, selected_option, element_to_change, mode){
    document.getElementById(element_to_change).disabled = 'disabled';
    if(passed_value2 != false){
        $.ajax({
            url: '/'+url_prefix+'/'+passed_value1+'/'+passed_value2+'/'+mode+'/',
            async: false,
            cache: false,
            success: function(data){ updateElementNew(element_to_change, data, selected_option) }
        });
    }
    else{
        $.ajax({
            url: '/'+url_prefix+'/'+passed_value1+'/'+mode+'/',
            async: false,
            cache: false,
            success: function(data){ updateElementNew(element_to_change, data, selected_option) }
        });
    }
    document.getElementById(element_to_change).disabled = '';
}

function del_session(){
    $.ajax({
        url: '/ajax/delses/',
        async: false,
        cache: false,
        success: function(data){
            if(data != 'none'){
                alert(data)
            }
        }
    });
}
