//alert( 'rubrics.js' );

var rubrics_cnt = 1;

var show_debug_container = 0;

/******************************************************************************************/
/*     MAIN FUNCTIONS                                                                     */
/******************************************************************************************/



function ChangedRubric( id_rubricator, field_name, order, level, selected_id )
{
  //alert( 'ChangedRubric( ' + id_rubricator + ', ' + field_name + ', ' + order + ', ' + level + ', ' + selected_id + ' )' );


  var text_id = 'd_' + field_name + '_' + order + '_';
  var add_fld_id = field_name + '_' + order + '_' + level + '_add';

  sub_id = (text_id + (level+1)) + '';  //alert( 'sub_id = ' + sub_id );
  removeBlock( sub_id );

  // --------------- add subrubric

  if ( selected_id > 0 )
  {
    var edit = El( field_name + '_edit' );
    edit = (edit ? edit.value : '' );

    var url = SiteRoot + 'index.php?module=rubrics&view=rq&topic=add_subrubric&id_rubricator=' + id_rubricator + '&id=' + selected_id + '&level=' + level + '&order=' + order + '&edit=' + edit;

    //alert( 'url = ' + url );

    new_text_id = (text_id + (level+1)) + '';   //alert( new_text_id );
    this_text_id = (text_id + level) + '';      //alert( this_text_id );

      //alert( El( this_text_id ).innerHTML  );

    var d = CreateNewSubLevel( new_text_id );   

    if ( El( this_text_id ) )
      El( this_text_id ).appendChild(d);

      //alert( El( this_text_id ).innerHTML  );

    //doLoad( new_text_id, url, 0 );

    //return;

    JsHttpRequest.query(

      url,

      { 'q' : 0 },

      function(result, text) 
      {
        if ( El(new_text_id) )
          El(new_text_id).innerHTML = text;

        //if ( show_debug_container )
          //El('addr_debug').value = El('r1_container').innerHTML;
      }

    );

      //alert( 'req done' );

    var o = El( text_id + level + '_addnew' );
    if ( o )
    {
      o.className = 'hidden rubric_add';
      El( add_fld_id ).value = '';
    }

      //alert( '1' );

  }
  else
  {
    El( text_id + level + '_addnew' ).className = 'visible rubric_add';
  }

      //alert( '2' );

  // --------------- show|hide rubric details

  var min_details_level = El( 'r' + id_rubricator + '_rubric_details_' + order + '_level' );
  min_details_level = ( min_details_level ) ? min_details_level.value : 3;
  var show_details = ( (level > min_details_level) || ( (level == min_details_level) && (selected_id > 0) ) ) ? 'visible' : 'hidden'; 

  var o = El( 'r' + id_rubricator + '_rubric_details_' + order );
  if ( o )
  {
    o.className = show_details;
  }

      //alert( '3' );
}

function CreateNewSubLevel( new_text_id )
{
    var d = document.createElement("div");
    var attr = document.createAttribute("id");
    attr.value = new_text_id;
    d.setAttributeNode(attr);

    /*var attr = document.createAttribute("class");
    attr.value = 'rubric_div';
    d.setAttributeNode(attr);*/

    d.innerHTML = '<img src="./img/loader.gif">';

    return d;
}


function removeBlock( div_id )
{
  //alert( 'removeBlock( '+div_id+' )' );

  //var o = El( div_id ); alert( 'o = ' + o );

  if ( El( div_id ) )
  {
    El( div_id ).parentNode.removeChild( El( div_id ) );
  }
}

function removeElementById(nodeId) {
    document.getElementById(nodeId).parentNode.removeChild(
                            document.getElementById(nodeId));
}


function AddRubric( field_name, id_rubricator, order, level )
{
  //alert( 'AddRubric( ' + field_name + ', ' + id_rubricator + ', ' + order + ', ' + level + ' )' );

  var text_id = 'd_' + field_name + '_' + order + '_' + level;

  var form_name = 'f_' + field_name + '_' + order + '_' + level + '_addnew';

  var input_name = field_name + '_' + order + '_' + level + '_add';
  var input = El( input_name );
  var value = ( input ? input.value : '' );
  var parent_input_name = field_name + '_' + order + '_' + (level-1);
  var parent_input = El( parent_input_name );
  var id_parent = ( parent_input ? parent_input.value : '' );
  var edit = El( 'r' + id_rubricator + '_edit' ).value;

  var url = SiteRoot + 'index.php?module=rubrics&view=rq&topic=new_subrubric&id_rubricator=' + id_rubricator + 
            '&id_parent=' + id_parent + '&level=' + level + '&order=' + order + '&edit=' + edit;

  //alert( 'AddRubric(): url = ' + url + ', value = ' + value );


  El(text_id).innerHTML = '<img src="./img/loader.gif">';


  JsHttpRequest.query(

    url,

    {
      'new_rubric_value' : value
    },

    function(result, text) 
    {
      if ( El(text_id) )
        El(text_id).innerHTML = text;


      // --------------- show|hide rubric details

      var min_details_level = El( 'rubric_details_' + order + '_level' );
      min_details_level = ( min_details_level ) ? min_details_level.value : 3;

      var level1 = level+1;
      var show_details = ( (level1 > min_details_level) || ( (level1 == min_details_level) && (selected_id > 0) ) ) ? 'visible' : 'hidden'; 

      var o = El( 'r' + id_rubricator + '_rubric_details_' + order );
      if ( o )
      {
        o.className = show_details;
      }

      if ( show_debug_container )
        El('addr_debug').value = El('r1_container').innerHTML;
    }

  );

  return false;
}


// -----------------------------------------------

function addRubricForm( id_rubricator, container_id, name, module, topic )
{
  //alert( 'addRubricForm( ' + container_id + ', '+ topic + ' )' );

  var o_rubrics_cnt = El("rubrics_cnt");
  if ( o_rubrics_cnt )
    rubrics_cnt = o_rubrics_cnt.value;

	rubrics_cnt++;

  if ( o_rubrics_cnt )
    o_rubrics_cnt.value = rubrics_cnt;

	var div_id = name + rubrics_cnt;

  var edit = El( 'r' + id_rubricator + '_edit' );
  edit = (edit ? edit.value : '' );

	var url = SiteRoot + 'index.php?module='+module+'&view=rq&topic=' + topic + '&id_rubricator=' + id_rubricator + 
            '&id=' + rubrics_cnt + '&edit=' + edit;
	var req = new JsHttpRequest();
	

  var d = document.createElement("div");
  var attr = document.createAttribute("id");
  attr.value = div_id;
  d.setAttributeNode(attr);

  var attr = document.createAttribute("class");
  attr.value = 'rubric_form';
  d.setAttributeNode(attr);

  El( container_id ).appendChild(d);



  //alert( 'url = ' + url );

  req.onreadystatechange = function()
  {
		if (req.readyState == 4)
		{
      El(div_id).innerHTML = req.responseText;

			if ( show_debug_container )
        El('addr_debug').value = El(container_id).innerHTML;
		}  
  }

  document.getElementById(div_id).innerHTML = '<img src="./img/loader.gif">';


  req.open( null, url, true );
  req.send( { q: rubrics_cnt } );

	
}

function removeRubricForm( div_id )
{
	El( div_id ).parentNode.removeChild( El( div_id ) );

  if ( show_debug_container )
     El('addr_debug').value = El('r1_container').innerHTML;
}

//alert( 'rubrics.js end' );
