$(document).ready(function() {
	
	$('select.templateSelectorSource.cluster_group').change(function() {
		var cluster_group = $(this).attr('value');
		
		if ($(this).hasClass('reinstall-template')) { 
		}
		else {
			$("option.least-used-cloud").remove();
			var selected_clouds = $("select.templateSelectorSource.cluster option");
		      selected_clouds.each(function() { 
		        $("select#cloudSelectorHolding").append(this);
		      });

			var clouds = $("select#cloudSelectorHolding option.cloud-group-" + cluster_group);
			var least_used_cloud_id = $("select#cloudGroupSelectorHolding option.cloud-group-" + cluster_group).attr('value');
		    var least_used_cloud_label = $("select#cloudGroupSelectorHolding option.cloud-group-" + cluster_group).text();
			
			if($("select#cloudGroupSelectorHolding option.cloud-group-" + cluster_group).hasClass('fusion')) {
				var storage_type =  "fusion"
			} else {
				var storage_type =  "regular"
			}
			if (least_used_cloud_label != '') {
		    	$("select.templateSelectorSource.cluster").append("<option class='least-used-cloud " + storage_type + "' value='"+ least_used_cloud_id +"'>Least Used (" + least_used_cloud_label + ")</option>");
			}
	        clouds.each(function(i){ 
	        	$("select.templateSelectorSource.cluster").append(this);
	        });
			
		}
	});
  
  $('select.templateSelectorSource').change(function() {
    
    if($(this).hasClass('cluster_group')) { 
      var type = 'cluster_group';
      var cluster_group = $(this).attr('value');
	  $("select.templateSelectorSource.cluster option").attr('selected', '');
      // $("select.templateSelectorSource.cluster option.least-used-cloud").attr('selected', 'selected');
	  $("select.templateSelectorSource.os option").attr('selected', '');
	  var cluster = $("select.templateSelectorSource.cluster").attr('value');
      var os = $("select.templateSelectorSource.os").attr('value');

	if($('#content .page-content .vps-form #virtual_machine_fusion_nodes_required')) {
		var curr_fusion_nodes = parseInt($('#content .page-content .vps-form #virtual_machine_fusion_nodes_required').val());
	} else {
		var curr_fusion_nodes = parseInt($('#content .page-content .vps-form .slider-wrap #fusion-nodes #slider input').val());
	}
	
	if (curr_fusion_nodes > 0) {
		$('#content .page-content .vps-form .template-selector option.regular').attr("disabled","disabled");
		$('#content .page-content .vps-form .template-selector option.fusion').removeAttr("disabled");
	} else {
		$('#content .page-content .vps-form .template-selector option.fusion').attr("disabled","disabled");
		$('#content .page-content .vps-form .template-selector option.regular').removeAttr("disabled");
	}

    $("select.templateSelectorSource.cluster option").each(function(){
       if ($(this).attr('disabled')) {
          if ($(this).hasClass('least-used-cloud')) {
              $(this).removeClass('least-used-cloud');
              $("select#cloudSelectorHolding").append(this);
            } else {
              $("select#cloudSelectorHolding").append(this);
            }
         }
      });
      
    } else if($(this).hasClass('cluster')) {
   	  var type = 'cluster';
      var cluster = $(this).attr('value');
      $("select.templateSelectorSource.os option").attr('selected', '');
	  var cluster_group = $("select.templateSelectorSource.cluster_group").attr('value');
      var os = $("select.templateSelectorSource.os").attr('value');

      var live_os = $("select.templateSelectorSource.os option");
      live_os.each(function() {
        $("select.templateSelectorHoldingOS").append(this);
      });
          
      var temp_os = $("select.templateSelectorHoldingOS option");
      temp_os.each(function(){
        $("select.templateSelectorSource.os").append(this);
      });
      
      var selected_templates = $("select#templateSelectorLive option");
      selected_templates.each(function() {
        $("select#templateSelectorHolding").append(this);
      });

      var temp_selector = $("select.templateSelectorSource.os option");
      temp_selector.each(function(){
        var os_check = (this.value);
        var templates = $("select#templateSelectorHolding option.cluster-" + cluster + ".os-" + os_check);
        if(templates.length == 0) {
          $("select.templateSelectorHoldingOS").append(this);
        }
      });

    } else {
  	  var type = 'os';
	  var cluster_group = $("select.templateSelectorSource.cluster_group").attr('value');
      var cluster = $("select.templateSelectorSource.cluster").attr('value');
      var os = $(this).attr('value');
	}
    
    // downcase os name
    os = os.toLowerCase();
    
    if(os && cluster && cluster_group) {
      // clear current selection
      var selected_templates = $("select#templateSelectorLive option");
      selected_templates.each(function() { 
        $("select#templateSelectorHolding").append(this);
		$("div#template-info").html('<p><i>Individual template info will appear here when the template is selected</i></p>');
      });
      
      // get templates which are appropriate here
      var templates = $("select#templateSelectorHolding option.cluster-" + cluster + ".os-" + os);
      templates.each(function(i){ 
        $("select#templateSelectorLive").append(this);
      });
      $("select#templateSelectorLive option").attr('selected', '');
    } else {
      var selected_templates = $("select#templateSelectorLive option");
      selected_templates.each(function() { 
        $("select#templateSelectorHolding").append(this);
      });   
    }
    
    
  });

  $("select#templateSelectorLive").change(function () {
	var selectedTemplate = $(this).attr('value');
	var templates = $("div#infoSelectorHolding span");
      templates.each(function(){
		if($(this).attr('value') == selectedTemplate)
		{
			$("div#template-info").html($(this).html());
		}
      });
	
  });
  
});
