dependencies_size = 0;

function prev_function() {
	var prevbutton = get_item('prev');
	prevbutton.blur();

	var current = get_item('current');
	var current_value = current.value;

	current_value--;

	while(category = get_item('cat' + current_value) ) {

		close_all();

		if(category.checked) {
			current.value = current_value;
			var pack = get_item('id' + current_value);
			pack.style.display = '';
			lookforname(category);
			break;
		}
		current_value--;
	}	
	check_previous(current_value);
}

function next_function() {
	
	var nextbutton = get_item('next');
	nextbutton.blur();

	var current = get_item('current');
	var current_value = current.value;
	
	current_value++;
	while(category = get_item('cat' + current_value) ) {
		if(category.checked) {
			
			close_all();
			current.value = current_value;
			var pack = get_item('id' + current_value);
			pack.style.display = '';

			lookforname(category);
			break;
		}
		current_value++;
	}	
		var prev = get_item('prev');
		prev.disabled = false;	
		prev.className = 'prev_button';
	check_next(current_value);
	
}

function close_all() {
	var i=-2;
	while(get_item('cat' + i) ) {
		
		var pack1 = get_item('id' + i);
		pack1.style.display = 'none';
		i++;
	}
}

function check_previous(id) {
	var checkcurent = get_item('current');
	var checkcurent_value = checkcurent.value;
	if(checkcurent_value == -2) {
		var prev = get_item('prev');
		prev.disabled = true;	
		prev.className = 'prev_disabled';
	}
	
	var nextb = get_item('next');
	nextb.className = "next_button";
	nextb.disabled = false;
}

function check_next(id) {
	
	var checkcurent = get_item('current');
	var checkcurent_value = checkcurent.value;
	
	checkcurent_value = parseInt(checkcurent_value) + 1;

	if(!get_item('id' + checkcurent_value)) {
		var nextb = get_item('next');
		if(nextb.className == "generate_button") {

			var displayreport = get_item('generate_step1');
			displayreport.style.display = "none";

			var displayreport = get_item('generate_step2');
			displayreport.style.display = "";

			checkresults('generate');
			
			var navigation = get_item('navigation');
			navigation.style.display = 'none';

		}
		else {
			var total_value = get_item('total_value');
			if (parseInt(total_value.value) > 734000000) {
			  nextb.className = "generate_button_disabled";
			  nextb.disabled = true;
			}
			else {
			  nextb.className = "generate_button";
			}
		}
	}
}

function checkresults(strLink) {

	var formobj = get_item('nimblexForm');
 	var nextb = get_item('next');
	nextb.className = "generate_button_disabled";
	nextb.disabled = true;
	create_get_string(formobj, strLink);

}

function ajaxFunction(getstring, strLink)
  {
  var xmlHttp;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      try
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
      catch (e)
        {
        alert("Your browser does not support AJAX!");
        return false;
        }
      }
    }
    xmlHttp.onreadystatechange=function()
      {
      if(xmlHttp.readyState==4)
	{
		if(strLink == 'results') {
			var displayreport = get_item('displayreport');
			displayreport.innerHTML=xmlHttp.responseText;
			var item = get_item('dfs');
			if(!item || item.innerHTML != 'nofreespace')
			{
			  var nextb = get_item('next');
			  nextb.className = "next_button";
			  nextb.disabled = false;
			}
		}
		else if (strLink == 'generate') {
			var displayreport = get_item('generate');
			displayreport.innerHTML=xmlHttp.responseText;
		}
		else if (strLink == 'dependences') {
			dependencies_size = xmlHttp.responseText;
			
		}
	}
      }

    xmlHttp.open("GET",app_web_root + strLink + '/' + getstring,true);
    xmlHttp.send(document.nimblexForm.element);
}

  function create_get_string(obj, strLink) {
      var getstr = "?";
	
      for (i=0; i<obj.elements.length; i++) {

         if (obj.elements[i].tagName == "INPUT") {
	    if (obj.elements[i].type == "text") {

               getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
            }
	    if (obj.elements[i].type == "hidden") {

               getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
            }
            if (obj.elements[i].type == "checkbox") {
               if (obj.elements[i].checked) {
                  getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
               } else {
                  //getstr += obj.elements[i].name + "=&";
               }
            }
            if (obj.elements[i].type == "radio") {
               if (obj.elements[i].checked) {
                  getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
               }
            }
         }
         if (obj.elements[i].tagName == "SELECT") {
            var sel = obj.elements[i];
            getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
         }
      }

      ajaxFunction(getstr, strLink);
   }

function ajaxCalcSize(slink, checking) {
	
	var handleSuccess = function(o){
		if(o.responseText !== undefined){
			if(o.responseText) {
				var response = o.responseText;
				response = response.split('separation_tag');
				var size = response[0];
				var modules = response[1];
				if(size) {
					size_calc_dep(size);
				}

				if(modules) {
					packages_ids = modules.split(',');
					for(i=0; i<packages_ids.length; i++) {

						var pack =  get_item('pack' + packages_ids[i])
		            			var req = get_item('req' + packages_ids[i]);

					if(checking == 1) {
						if(pack.checked == false) {
							pack.checked = true;
							var span = pack.parentNode;
							span.getElementsByTagName('div')[0].className = "imgTrue";

							size_calc(packages_ids[i]);
						}

						req.value++;
					}
					else if (checking == 0) {
						req.value--;
					}
					}
				}
			}
		}
	}

	var handleFailure = function(o){
		if(o.responseText !== undefined){
		}
	}

	var callback =
	{
	  success:handleSuccess,
	  failure:handleFailure,
	  argument: { foo:"foo", bar:"bar" }
	};
	var sUrl = app_web_root + 'dependences?' + slink;

	var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
}