//select_innerHTML fixes a bug with IE and innnerHTML on select objects, see http://elmicoxcodes.blogspot.com/2007/02/innerhtml-and-select-option-in-ie.html. This bug is still present in IE 8
function select_innerHTML(objeto,innerHTML){
/******
* select_innerHTML - corrige o bug do InnerHTML em selects no IE
* Veja o problema em: http://support.microsoft.com/default.aspx?scid=kb;en-us;276228
* Versão: 2.1 - 04/09/2007
* Autor: Micox - Náiron José C. Guimarães - micoxjcg@yahoo.com.br
* @objeto(tipo HTMLobject): o select a ser alterado
* @innerHTML(tipo string): o novo valor do innerHTML
*******/
    objeto.innerHTML = ""
    var selTemp = document.createElement("micoxselect")
    var opt;
    selTemp.id="micoxselect1"
    document.body.appendChild(selTemp)
    selTemp = document.getElementById("micoxselect1")
    selTemp.style.display="none"
    if(innerHTML.toLowerCase().indexOf("<option")<0){//se não é option eu converto
        innerHTML = "<option>" + innerHTML + "</option>"
    }
    innerHTML = innerHTML.toLowerCase().replace(/<option/g,"<span").replace(/<\/option/g,"</span")
    selTemp.innerHTML = innerHTML
      
    
    for(var i=0;i<selTemp.childNodes.length;i++){
  var spantemp = selTemp.childNodes[i];
  
        if(spantemp.tagName){     
            opt = document.createElement("OPTION")
    
   if(document.all){ //IE
    objeto.add(opt)
   }else{
    objeto.appendChild(opt)
   }       
    
   //getting attributes
   for(var j=0; j<spantemp.attributes.length ; j++){
    var attrName = spantemp.attributes[j].nodeName;
    var attrVal = spantemp.attributes[j].nodeValue;
    if(attrVal){
     try{
      opt.setAttribute(attrName,attrVal);
      opt.setAttributeNode(spantemp.attributes[j].cloneNode(true));
     }catch(e){}
    }
   }
   //getting styles
   if(spantemp.style){
    for(var y in spantemp.style){
     try{opt.style[y] = spantemp.style[y];}catch(e){}
    }
   }
   //value and text
   opt.value = spantemp.getAttribute("value")
   opt.text = spantemp.innerHTML
   //IE
   opt.selected = spantemp.getAttribute('selected');
   opt.className = spantemp.className;
  } 
 }    
 document.body.removeChild(selTemp)
 selTemp = null
}


var selected_resource;

function fetch_schematics(data){

//selected_resource = document.getElementById(resourceselect).value;
//selected_profession = document.getElementById(professionselect).value;



	document.getElementById('schem_listing').innerHTML = "Loading...";



    new Ajax.Request('ajax.php?id=fetch_schematics',

  {

    method:'post',

    //parameters: {resource: selected_resource,
    //	profession: selected_profession},
    parameters: data,

    onSuccess: function(transport){

      var response = transport.responseText || "no response text";

      response = response.split("<CONTENT SEPERATOR>");
      document.getElementById('schem_listing').innerHTML = response[0];
      select_innerHTML('resource',response[1]);
      //document.getElementById(resourceselect).innerHTML = response[1];

    },

    onFailure: function(){ alert('Something went wrong...') }

  });



}







function sub_update_schem(sub_the_content, sub_div, sub_btn_status){

	var sub_the_content;

	var sub_btn_status;

	var sub_div;

	var sub_shopping_list = document.getElementById('shopping').innerHTML;

	var sub_xp_gain = document.getElementById('xp_gain').innerHTML;

	if(sub_btn_status == 'false')

	{

	    new Ajax.Request(sub_the_content,

	  {

	  	asynchronous: false,

	    method:'post',

	    parameters: {shopping: sub_shopping_list,

		mode: 'add',

		xp: sub_xp_gain},

	    onSuccess: function(transport){

	    	var response = transport.responseText || "no response text";

			response = response.split("<CONTENT SEPERATOR>");

	    	document.getElementById(sub_div).innerHTML = response[0];

	    	document.getElementById('shopping').innerHTML = response[1];

			document.getElementById('tr_'+sub_div).style.display = "";

			document.getElementById('total_resources').innerHTML = response[2];

	    	document.getElementById('xpr').innerHTML = response[3];

 	   },

    	onFailure: function(){ alert('Something went wrong...') }

		});

	}

}





function fade_schematic(duration, from, to, queue){

	if (this.is_ie == false) {

	new Effect.Opacity('resource_list', {duration:duration, from:from, to:to, queue: { scope: queue}});

	new Effect.Opacity('shopping', {duration:duration, from:from, to:to, queue: { scope: queue}});

	new Effect.Opacity('total_resources', {duration:duration, from:from, to:to, queue: { scope: queue}});

	new Effect.Opacity('xp_gain', {duration:duration, from:from, to:to, queue: { scope: queue}});

	new Effect.Opacity('xpr', {duration:duration, from:from, to:to, queue: { scope: queue}});

	}

}





function update_schem(the_content,div){

	var the_content;

	var div;

	var shopping_list;

	var xp_gain;

	var btn_status = document.getElementById('btn_'+div).checked;

	var downto = 0.3;

	var durationin = 0.1;

	var durationout = 0.5;

	fade_schematic(durationin, 1.0, downto, 'in');

	var children;

		children = $('resource_list').descendants();



	children.each(function(a) {



  	var child_id = $(a).readAttribute('id');



  	if(child_id != null)

  	{

  		if(child_id.length > 4)

  		{

  		if(child_id.substr(0, 4) == 'btn_')

  		{

  				document.getElementById(child_id).disabled = true;



		}

		}

	}

	});





	xp_gain = document.getElementById('xp_gain').innerHTML;

	if(btn_status == 1)

	{

		shopping_list = document.getElementById('shopping').innerHTML;

	    document.getElementById(div).innerHTML = 'Loading...';

	    new Ajax.Request(the_content,

	  {

	    method:'post',

	    parameters: {shopping: shopping_list,

		mode: 'add',

		xp: xp_gain},

	    onSuccess: function(transport){

	      var response = transport.responseText || "no response text";

			response = response.split("<CONTENT SEPERATOR>");

	      document.getElementById(div).innerHTML = response[0];

	      document.getElementById('shopping').innerHTML = response[1];
document.getElementById(div).style.display = "";

		document.getElementById('total_resources').innerHTML = response[2];

	    document.getElementById('xpr').innerHTML = response[3];

	    },

    onComplete: function(){

	fade_schematic(durationout, downto, 1.0, 'out');

		var children;

		children = $('resource_list').descendants();



	children.each(function(a) {



  	var child_id = $(a).readAttribute('id');



  	if(child_id != null)

  	{

  		if(child_id.length > 4)

  		{

  		if(child_id.substr(0, 4) == 'btn_')

  		{

  				document.getElementById(child_id).disabled = false;



		}

		}

	}

	});

	},

	    onFailure: function(){ alert('Something went wrong...') }

	  });

	}

	if(btn_status == 0)

	{

		var children;

		children = $(div).descendants();



	children.each(function(a) {



  	var child_id = $(a).readAttribute('id');



  	if(child_id != null)

  	{

  		if(child_id.length > 4)

  		{

  		if(child_id.substr(0, 4) == 'btn_')

  		{

  			if(this.is_ie == true)

  			{

  				var sendon = $(a).attributes['onclick'].nodeValue;

  			}

  			else

  			{

				var sendon = $(a).readAttribute('onclick');

			}

  		sendon = 'sub_'+sendon;

		sendon = sendon.substr(0, sendon.length-1);

		sendon = (sendon+',"'+$(a).checked+'")')

  		eval(sendon);

  		}

  		}

	}

	});







	document.getElementById(div).innerHTML = '';

document.getElementById(div).style.display = "none";


	shopping_list = document.getElementById('shopping').innerHTML;

    new Ajax.Request(the_content,

  {

    method:'post',

    parameters: {shopping: shopping_list, mode: 'remove',

	xp: xp_gain},

    onSuccess: function(transport){

      var response = transport.responseText || "no response text";

		response = response.split("<CONTENT SEPERATOR>");

      document.getElementById(div).innerHTML = response[0];

      document.getElementById('shopping').innerHTML = response[1];

      document.getElementById('total_resources').innerHTML = response[2];

      document.getElementById('xpr').innerHTML = response[3];

    },

    onComplete: function(){

	fade_schematic(durationout, downto, 1.0, 'out');

			var children;

		children = $('resource_list').descendants();



	children.each(function(a) {



  	var child_id = $(a).readAttribute('id');



  	if(child_id != null)

  	{

  		if(child_id.length > 4)

  		{

  		if(child_id.substr(0, 4) == 'btn_')

  		{

  				document.getElementById(child_id).disabled = false;



		}

		}

	}

	});

		},

    onFailure: function(){ alert('Something went wrong...') }

  });



}

}