function disableShare() 
{
 if ($('.number div').html() == '0') {
   if ($('.input.select.share.disabled').size() == 0) {
     $('.input.select.share').addClass("disabled");
     $('#create-list').addClass("disabled");
   };
 } else {
   $('.input.select.share.disabled').removeClass("disabled");
   $('#create-list').removeClass("disabled");
 }
}



function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function yearsVerbiage(number)
{
  if (number == "1") {
    return "<strong>1</strong> year";
    }
  else {
    return "<strong>" + number + "</strong> years";
  }
}

function starsVerbiage(number)
{
  var verbiage = "";
  switch (number) {
    case 0: verbiage = "<strong>0</strong> (Bad)";break;
    case 0.5: verbiage = "<strong>0.5</strong> (Bad)";break;
    case 1: verbiage = "<strong>1</strong> (Bad)";break;
    case 1.5: verbiage = "<strong>1.5</strong> (Bad)";break;
    case 2: verbiage = "<strong>2</strong> (Low)";break;
    case 2.5: verbiage = "<strong>2.5</strong> (Low)";break;
    case 3: verbiage = "<strong>3</strong> (Average)";break;
    case 3.5: verbiage = "<strong>3.5</strong> (Average)";break;
    case 4: verbiage = "<strong>4</strong> (Good)";break;
    case 4.5: verbiage = "<strong>4.5</strong> (Good)";break;
    case 5: verbiage = "<strong>5</strong> (Great)";break;
    default: verbiage = "error";
  }
  return verbiage;
}

function starTheFranchises(){
  if ($.cookie("savvy_cookie_starred") !== null && $.cookie("savvy_cookie_starred") != "") {
    starred = $.cookie("savvy_cookie_starred").split(",");
    for (var i = 0; i < starred.length; i++) {
      $(".franchise#" + starred[i]).not(".starred").addClass("starred");
    }
  }
}


function loadFranchises(){
  if($(".input.nav.button.starred").not(".active").size() == 1 && window.location.pathname.substring(1,5) != "list" && $('.no_more_records').size() == 0){
    $.stop_scroll = false;
    var form = $("#filter_form");
    $.ajax({
      type: "POST",
      url: form.attr('action'),
      data: form.serialize(),
      success: function(html){
        $('.yield').append(html);
        var temp_val = parseInt($('input[name="filters[page]"]').val()) + 1;
        $('input[name="filters[page]"]').val(temp_val);
        starTheFranchises();
        Elastic.reset();
        height_handler();
      },
      error: function(html){
        alert(html);
      }
    });
  }
  
}

function unserialize(s) 
{
  var data = s.split("&");
  for (var i = 0; i < data.length; i++) {
    var pair = decodeURIComponent(data[i]).split("=");
    $("[name='" + pair[0] + "']", "#filter_form").val(pair[1]);
  }
  _form = "#filter_form";

  // Unserialize Available Capital Range Slider
  $("#available-capital-range-slider").slider("values",0, $("[name='filters[available_capital_range_start]']", _form).val());
  $("#available-capital-range-slider").slider("values",1, $("[name='filters[available_capital_range_end]']", _form).val());

  // Unserialize Work From Home
  if ($("input[name='filters[work_from_home]']").val() == "true") {
    $("input:checkbox[name='home']").attr('checked','true');
  }
  
  // Unserialize Average Time to Profitability
  var x = 0;
  var temp_month_profi = $("input[name='filters[average_month_to_profitability]']").val();
  while (temp_month_profi[x] !== undefined)
    {
    switch (temp_month_profi[x]) {
      case "1": $("input#profit-small").attr('checked','true');break;
      case "2": $("input#profit-medium").attr('checked','true');break;
      case "3": $("input#profit-big").attr('checked','true');break;
      }
      x++;
    }
  
  // Unserialize Industry
  temp_categories = $("input[name='filters[categories_ids]']").val().split(",");
  temp_categories.pop();
  $(".selected_industry").html(temp_categories.length);
  for (i=0; i < temp_categories.length; i++) {
    $(".select-box input[id='" + temp_categories[i] +"-category']").attr('checked','true');
  }
  
  // Unserialize Service and Product
  if ($("input[name='filters[service_or_product]']").val() == "service") {
    $("input:checkbox[name='service']").attr('checked','true');
  }
  if ($("input[name='filters[service_or_product]']").val() == "product") {
    $("input:checkbox[name='product']").attr('checked','true');
  }
  if ($("input[name='filters[service_or_product]']").val() == "all") {
    $("input:checkbox[name='product']").attr('checked','true');
    $("input:checkbox[name='service']").attr('checked','true');
  }
  
  // Unserialize Recession Proof
  $("#recession-proof-slider").slider("values",0, parseFloat($("[name='filters[recession_proof_start]']", _form).val())/10);
  $("#recession-proof .input.min strong").parent().html(starsVerbiage(parseFloat($("[name='filters[recession_proof_start]']", _form).val())/10));
  $("#recession-proof-slider").slider("values",1, parseFloat($("[name='filters[recession_proof_end]']", _form).val())/10);
  $("#recession-proof .input.max strong").parent().html(starsVerbiage(parseFloat($("[name='filters[recession_proof_end]']", _form).val())/10));
  
  // Unserialize Brand Strength
  $("#brand-strength-slider").slider("values",0, parseFloat($("[name='filters[brand_strength_start]']", _form).val())/10);
  $("#brand-strength .input.min strong").parent().html(starsVerbiage(parseFloat($("[name='filters[brand_strength_start]']", _form).val())/10));
  $("#brand-strength-slider").slider("values",1, parseFloat($("[name='filters[brand_strength_end]']", _form).val())/10);
  $("#brand-strength .input.max strong").parent().html(starsVerbiage(parseFloat($("[name='filters[brand_strength_end]']", _form).val())/10));
  
  // Unserialize Franchisor Support
  $("#franchisor-support-slider").slider("values",0, parseFloat($("[name='filters[franchisor_support_start]']", _form).val())/10);
  $("#franchisor-support .input.min strong").parent().html(starsVerbiage(parseFloat($("[name='filters[franchisor_support_start]']", _form).val())/10));
  $("#franchisor-support-slider").slider("values",1, parseFloat($("[name='filters[franchisor_support_end]']", _form).val())/10);
  $("#franchisor-support .input.max strong").parent().html(starsVerbiage(parseFloat($("[name='filters[franchisor_support_end]']", _form).val())/10));
  
  return false;
}

$(document).ready(function() {
  $('input.input-default').inputDefault();
  $.stop_scroll = false;
    
  $('#ajax-loading').ajaxStart(function() {
     $(this).show();
   });
   
   $('#ajax-loading').ajaxComplete(function() {
     //if(!dontHideLoading) {
       $(this).hide();
     //}
   });
   
   
   $(".sort_by a").live("click", function(){
     var temp_sort = $(this).attr("id");
     $("input[name='filters[sort]']").val(temp_sort);
     setTimeout("$('#filter_form').submit();", 500);
     return false;
   });
   

     
     
   $(".input.button .franchises").live("click", function(){
     if ($(".input.nav.button.starred").not(".active").size() == 1) {
       $('html, body').animate({scrollTop:0}, 'fast');
       $(".input.button .franchises").parent().addClass("active");
       $("a.tab.top-lists").click();
       $('.found-results').hide();
       $('.yield').html("&nbsp;");
       $.ajax({
         type: "POST",
         url: '/starred',
         data: "ids=" + $.cookie("savvy_cookie_starred"),
         success: function(html){
           $('.yield').html(html);
           starTheFranchises();
           Elastic.reset();
           height_handler();
          $.stop_scroll = true;
         },
         error: function(html){
           alert(html);
         }
       });
     }
   });
   
   
   $("a#select_all").click( function(){
      $(".select-content input:checkbox").attr("checked", true);
   });

   $("a#select_none").click( function(){
     $(".select-content input:checkbox").attr("checked", false);
   });
   
   $("a.tab.search").click(function(){
     if(window.location.pathname.substring(1,5) == "list"){
       window.location.href = "/";
     } else {
       if($(".input.nav.button.starred").hasClass("active")) {
         $.stop_scroll = false;
         $(".input.nav.button.starred").removeClass("active");
         $('#filter_form').submit();
       }
    }
   });
   
   

   if ($.cookie("savvy_cookie_starred_num") === null ) {
     $.cookie("savvy_cookie_starred_num", 0);
   }

   
   $('.number div').html($.cookie("savvy_cookie_starred_num"));
   
   $("a.bookmark").live("click", function(){
     temp_numb = parseInt($('.number div').html());
     var self = $(this);
     if (self.parent().parent().hasClass('starred')) {
       self.parent().parent().removeClass('starred');
       $('.number div').html(temp_numb-1);
       $.cookie("savvy_cookie_starred_num", temp_numb-1);
       temp_id = parseInt(self.parent().parent().attr("id"));
       starred = $.cookie("savvy_cookie_starred").split(",");
       temp_id += '';
       index_to_delete = starred.indexOf(temp_id);
       starred.splice(index_to_delete,1);
       $.cookie("savvy_cookie_starred", starred.join(","));
       disableShare();
       if($.stop_scroll === true) {
         self.parent().parent().slideUp();
       }
       
     } else {
       self.parent().parent().addClass('starred');
       $('.number div').html(temp_numb+1);
       $.cookie("savvy_cookie_starred_num", temp_numb+1);
       temp_id = parseInt(self.parent().parent().attr("id"));
       starred = $.cookie("savvy_cookie_starred");
       if (starred == "" || starred === null){
         starred = temp_id;
       } else {
         starred = starred + "," + temp_id;
       }
       $.cookie("savvy_cookie_starred", starred);
       disableShare();
     }
     return false;
   });
   
   
   $(document).endlessScroll({
     fireOnce: true,
     fireDelay: false,
     loader: "<div class='loading'>loading<div>",
     callback: function(page){
       loadFranchises();
     },
     ceaseFire: function(){
       return $.stop_scroll;
     }
   });
     
   $(".submit_form").live("mouseup", function(){
     $('html, body').animate({scrollTop:0}, 'fast');
     $("a.tab.search").click();
     setTimeout("$('#filter_form').submit();", 500);
   });
    
    
    $('.average_month_profit input:checkbox').live("click", function(){
      var output = "";
      var x = 0;
      checkboxes = $('.average_month_profit input:checkbox[checked="true"]').size();
      
      while (checkboxes != x)
      {
        output += $('.average_month_profit input:checkbox[checked="true"]')[x].value;
        x++;
      }
      $('input[name="filters[average_month_to_profitability]"]').val(output);
    });
    
    
    
    $('.select-content input:checkbox, .multiple_selection_links a').live("click", function(){
      var output = "";
      var x = 0;
      checkboxes = $('.select-content input:checkbox[checked="true"]').size();
      $(".selected_industry").html(checkboxes);
      while (checkboxes != x)
      {
        output += $('.select-content input:checkbox[checked="true"]')[x].value;
        output += ",";
        x++;
      }
      // output = output.substring(x-1,-1);
      $('input[name="filters[categories_ids]"]').val(output);
    });
    
    $("#service.checkbox, #service_label, #product.checkbox, #product_label").live("click", function(){
      if ($("#service.checkbox").attr("checked") && $("#product.checkbox").attr("checked")) {
        $('input[name="filters[service_or_product]"]').val("all");
      } else if ($("#service.checkbox").attr("checked")) {
        $('input[name="filters[service_or_product]"]').val("service");
      } else if ($("#product.checkbox").attr("checked")){
        $('input[name="filters[service_or_product]"]').val("product");
      } else {
        $('input[name="filters[service_or_product]"]').val("none");
      }
    });
    

    
    
  $("#filter_form").submit( function() {
    $('input[name="filters[page]"]').val(1);
    $('.found-results').show();
    var form = $("#filter_form");
    $('.yield').html("");
    $.stop_scroll = false;
    $.ajax({
      type: "POST",
      url: form.attr('action'),
      data: form.serialize(),
      success: function(html){
        var temp_val = parseInt($('input[name="filters[page]"]').val()) + 1;
        $('input[name="filters[page]"]').val(temp_val);
        $.cookie("savvy_cookie", form.serialize());
        $('.yield').html(html);
        $('.franchises-found strong').html($('.total_records_hide').html());
        starTheFranchises();
        Elastic.reset();
        height_handler();
      },
      error: function(html){
        $('.yield').html();
      }
    });
    // loadFranchises();      
    return false;
  });
  
  
  $("input:checkbox[name='home']").live('click', function() {
    if ($("input:checkbox[name='home']").attr('checked')) {
      $("input[name='filters[work_from_home]']").val("true");
    } else {
      $("input[name='filters[work_from_home]']").val("false");
    }
  });
  
  $("#recession-proof-slider").slider({
    range: true,
    step: 0.5,
    min: 0,
    max: 5,
    values: [0, 5],
    slide: function(event, ui) {
      temp_start = parseFloat(ui.values[0]) * 10;
      temp_end = parseFloat(ui.values[1]) * 10;
      $("#recession-proof .input.min strong").parent().html(starsVerbiage(ui.values[0]));
      $("input[name='filters[recession_proof_start]']").val(temp_start);
      $("#recession-proof .input.max strong").parent().html(starsVerbiage(ui.values[1]));
      $("input[name='filters[recession_proof_end]']").val(temp_end);
    }
  });
  temp_start = parseFloat($("#recession-proof-slider").slider("values",0)) * 10;
  temp_end = parseFloat($("#recession-proof-slider").slider("values",1)) * 10;
  $("#recession-proof .input.min strong").parent().html(starsVerbiage($("#recession-proof-slider").slider("values",0)));
  $("input[name='filters[recession_proof_start]']").val(temp_start);	
  $("#recession-proof .input.max strong").parent().html(starsVerbiage($("#recession-proof-slider").slider("values",1)));
  $("input[name='filters[recession_proof_end]']").val(temp_end);	


  $("#brand-strength-slider").slider({
    range: true,
    step: 0.5,
    min: 0,
    max: 5,
    values: [0, 5],
    slide: function(event, ui) {
      temp_start = parseFloat(ui.values[0]) * 10;
      temp_end = parseFloat(ui.values[1]) * 10;
      $("#brand-strength .input.min strong").parent().html(starsVerbiage(ui.values[0]));
      $("input[name='filters[brand_strength_start]']").val(temp_start);
      $("#brand-strength .input.max strong").parent().html(starsVerbiage(ui.values[1]));
      $("input[name='filters[brand_strength_end]']").val(temp_end);
    }
  });
  temp_start = parseFloat($("#brand-strength-slider").slider("values",0)) * 10;
  temp_end = parseFloat($("#brand-strength-slider").slider("values",1)) * 10;
  $("#brand-strength .input.min strong").parent().html(starsVerbiage($("#brand-strength-slider").slider("values",0)));
  $("input[name='filters[brand_strength_start]']").val(temp_start);	
  $("#brand-strength .input.max strong").parent().html(starsVerbiage($("#brand-strength-slider").slider("values",1)));
  $("input[name='filters[brand_strength_end]']").val(temp_end);	


  $("#franchisor-support-slider").slider({
    range: true,
    step: 0.5,
    min: 0,
    max: 5,
    values: [0, 5],
    slide: function(event, ui) {
      temp_start = parseFloat(ui.values[0]) * 10;
      temp_end = parseFloat(ui.values[1]) * 10;
      $("#franchisor-support .input.min strong").parent().html(starsVerbiage(ui.values[0]));
      $("input[name='filters[franchisor_support_start]']").val(temp_start);
      $("#franchisor-support .input.max strong").parent().html(starsVerbiage(ui.values[1]));
      $("input[name='filters[franchisor_support_end]']").val(temp_end);
    }
  });
  temp_start = parseFloat($("#franchisor-support-slider").slider("values",0)) * 10;
  temp_end = parseFloat($("#franchisor-support-slider").slider("values",1)) * 10;
  $("#franchisor-support .input.min strong").parent().html(starsVerbiage($("#franchisor-support-slider").slider("values",0)));
  $("input[name='filters[franchisor_support_start]']").val(temp_start);	  
  $("#franchisor-support .input.max strong").parent().html(starsVerbiage($("#franchisor-support-slider").slider("values",1)));
  $("input[name='filters[franchisor_support_end]']").val(temp_end);	


  $("#available-capital-range-slider").slider({
    range: true,
    step: 1000,
    min: 50000,
    max: 1000000,
    values: [50000, 1000000],
    slide: function(event, ui) {
      $("#available-capital-range .input.min strong").html('$' + addCommas(ui.values[0]));
      $("input[name='filters[available_capital_range_start]']").val(ui.values[0]);
      $("#available-capital-range .input.max strong").html('$' + addCommas(ui.values[1]));
      $("input[name='filters[available_capital_range_end]']").val(ui.values[1]);
    }
  });

  $("#available-capital-range .input.min strong").html('$' + addCommas($("#available-capital-range-slider").slider("values",0)));
  $("input[name='filters[available_capital_range_start]']").val($("#available-capital-range-slider").slider("values",0));	
  $("#available-capital-range .input.max strong").html('$' + addCommas($("#available-capital-range-slider").slider("values",1)));
  $("input[name='filters[available_capital_range_end]']").val($("#available-capital-range-slider").slider("values",1));

  $('.ui-slider a:even').addClass('ui-left');
  $('.ui-slider a:odd').addClass('ui-right');
  $('.ui-slider a').addClass('submit_form');
  
  
  
  if ($.cookie("savvy_cookie") !== null && window.location.pathname.substring(1,5) != "list") {
    temp_cookie = $.cookie("savvy_cookie");
    unserialize(temp_cookie);
    setTimeout("$('#filter_form').submit();", 500);
  }
  

  $("#contact_form").submit( function() {
    if($.cookie("savvy_cookie_starred_num") == '0'){
      alert('Please star  the franchises you are interested in');
      return false;
    }
    franchises = $.cookie("savvy_cookie_starred");
    $('#info-franchises').val(franchises);
    return true;
  });
    
  $(function(){
  	$("#email-dialog").dialog({
  		autoOpen: false,
  		bgiframe: true,
  		draggable: false,
  		height: 320,
  		modal: true,
  		resizable: false,
  		buttons:{
        'Share': function(){
      		$("#email-dialog form").submit();
      	},
      	Cancel: function(){
      	  $(this).dialog('close');
      	}
      }
  	});
  });
  $('#email-it').click(function(){
    $("#email-franchise-ids").val($.cookie("savvy_cookie_starred"));
    $('#email-dialog').dialog('open');
    return false;
  });
  
  
  $(function(){
  	$("#next-version").dialog({
  		autoOpen: false,
  		bgiframe: true,
  		draggable: false,
  		height: 620,
  		width: 645,
  		modal: true,
  		resizable: false
  	});
  });
  $('#whats-next').click(function(){
    $('#next-version').dialog('open');
    return false;
  });
  
  
  $(function(){
  	$("#create-list-dialog").dialog({
  		autoOpen: false,
  		bgiframe: true,
  		draggable: false,
  		height: 275,
  		modal: true,
  		resizable: false,
  		buttons:{
        'Share': function(){
          $("#create-list-dialog form").submit();
      	},
      	Cancel: function(){
      	  $(this).dialog('close');
      	}
      }
  	});
  });
  
  
  $('#create-list').click(function(){
    if ($('.number div').html() != '0'){
      $("input[name='list[franchise_ids]']").val($.cookie("savvy_cookie_starred"));
      $('#create-list-dialog').dialog('open');
    };
    return false;
  });  
  
  $(function(){
  	$("#tweet-list-dialog").dialog({
  		autoOpen: false,
  		bgiframe: true,
  		draggable: false,
  		height: 275,
  		modal: true,
  		resizable: false,
  		buttons:{
        'Tweet it': function(){
          $.ajax({
            type: "POST",
            url: "/tweetit",
            data: $("#tweet-list-dialog form").serialize(),
            success: function(msg){
              $("#tweet-list-dialog").dialog('close');
              window.open('http://twitter.com/?status=' + msg, "newWindow");
            }
          });
      	},
      	Cancel: function(){
      	  $(this).dialog('close');
      	}
      }
  	});
  });
  
  $('#tweet-it-link').click(function(){
    $("#tweet-franchise-ids").val($.cookie("savvy_cookie_starred"));
    $('#tweet-list-dialog').dialog('open');
    return false;
  });
  
  disableShare();
  
  
  
  $(function(){
    $("#tabs").tabs({ 
      fx:{ opacity: 'toggle', duration:'fast'}
    });
  });
  
 });

var height_handler =  function(){
  $('.main-content').css('height', '');
   if ($('.main-content').height() < $(window).height()){
     $('.main-content').css('height', $(window).height() + 'px'); 
   }
   Elastic.refresh();
 };
 
jQuery(document).bind('elastic:initialize', function(){
  height_handler;
  $('#elastic_preloader').hide();  
});

jQuery(window).bind('resize', function(){
  height_handler();
});
 
 
jQuery(function($){
  $(function(){
    if(window.location.pathname.substring(1,5) == "list") {
      $.stop_scroll = true;
      $("a.top-lists").click();
    };
  })
});
 
 
 
 