
var Main = {
 
  init:function()
  {

    $("#sort_by").change(function() {
      url = $("#url").val();
      window.location = "/idx/results" + url + $("#sort_by").val();
    });

    $(".scrollable").scrollable();

    $(".items img").mouseover(function() {
      if ($(this).hasClass("active")) { return; }
      var url = $(this).attr("src").replace("_t", "");
      var wrap = $("#image_wrap").fadeTo("fast", 1);
      var img = new Image();

      img.onload = function() {
        wrap.fadeTo("fast", 1);
        $("#main_image").attr('src', url);
      };

      img.src = url;
      $(".items img").removeClass("active");
      $(this).addClass("active");

    }).filter(":first").mouseover();
    
    /*For Public Property Search...require at least 1 so it does not 404*/
     $("#public_search2").click(function() {
      if((!$("#public_street").val().length) &&
          !$("#public_streetnum").val().length  &&
          !$("#public_cities").val() &&
          !$("#public_street_direction").val().length &&
          !$("#public_zip").val().length &&
          !$("#public_county").val().length) {
        alert("Please provide some search options.");
        return(false);
      }
      });

    $("#quick_search_top").click(function() {
      if($("#cnzm").val() == "City, Address, ZIP, or MLS Number") {
        alert("Please provide a location.");
        return(false);
        
        
      }
      
      if(($("#min_price").val().length) && 
      	($("#max_price").val().length) && 
      	(parseFloat($("#min_price").val()) > parseFloat($("#max_price").val()))) {
          alert("Minimum price is greater than maximum price.");
          return (false);     
       }
       
        if(($("#min_sqft").val().length) && 
      	($("#max_sqft").val().length) && 
      	(parseFloat($("#min_sqft").val()) > parseFloat($("#max_sqft").val()))) {
          alert("Minimum sqft is greater than maximum sqft.");
          return (false);     
       }
       
  
/* 
      if(	!$("#price").val().length &&
		!$("#min_beds_top").val().length &&
		!$("#min_baths_top").val().length) {
        alert("Please provide some search options.");
        return(false);
      }
*/ 
    });


    $("#quick_search").click(function() {
      if(	!$("#mls").val().length &&
		!$("#address").val().length) {
        alert("Please provide some search options.");
        return(false);
      }
      
      
    });

    $("#search").click(function() {
      if(	!$("#cities").val() &&
		!$("#zip").val().length &&
		!$("#county").val().length &&
		!$("#min_price").val().length &&
		!$("#min_beds").val().length &&
		!$("#min_baths").val().length &&
		!$("#min_sqft").val().length &&
		!$("#min_lot_size").val().length &&
		!$("#property_sub_type").val().length &&
    !$("#min_images").val().length &&
    !$("#min_dues").val().length &&
    !$("#min_garages").val().length &&
		!$("#min_year_built").val().length) {
        alert("Please provide some search options.");
        return(false);
      }
      
      if(($("#min_price").val().length) && 
      	($("#max_price").val().length) && 
      	(parseFloat($("#min_price").val()) > parseFloat($("#max_price").val()))) {
          alert("Minimum price is greater than maximum price.");
          return (false);     
       }
       
        if(($("#min_beds").val().length) && 
      	($("#max_beds").val().length) && 
      	(parseFloat($("#min_beds").val()) > parseFloat($("#max_beds").val()))) {
          alert("Minimum beds is greater than maximum beds.");
          return (false);     
       }
       
        if(($("#min_baths").val().length) && 
      	($("#max_baths").val().length) && 
      	(parseFloat($("#min_baths").val()) > parseFloat($("#max_baths").val()))) {
          alert("Minimum baths is greater than maximum baths.");
          return (false);     
       }
       
        if(($("#min_sqft").val().length) && 
      	($("#max_sqft").val().length) && 
      	(parseFloat($("#min_sqft").val()) > parseFloat($("#max_sqft").val()))) {
          alert("Minimum sqft is greater than maximum sqft.");
          return (false);     
       }
       
         if(($("#min_lot_size").val().length) && 
      	($("#max_lot_size").val().length) && 
      	(parseFloat($("#min_lot_size").val()) > parseFloat($("#max_lot_size").val()))) {
          alert("Minimum lot size is greater than maximum lot size.");
          return (false);     
       }
       
       if(($("#min_year_built").val().length) && 
      	($("#max_year_built").val().length) && 
      	(parseFloat($("#min_year_built").val()) > parseFloat($("#max_year_built").val()))) {
          alert("Minimum year built is greater than maximum year built.");
          return (false);     
       }
       
       if(($("#min_garages").val().length) && 
      	($("#max_garages").val().length) && 
      	(parseFloat($("#min_garages").val()) > parseFloat($("#max_garages").val()))) {
          alert("Minimum garages is greater than maximum garages.");
          return (false);     
       }
       
       if(($("#min_dues").val().length) && 
      	($("#max_dues").val().length) && 
      	(parseFloat($("#min_dues").val()) > parseFloat($("#max_dues").val()))) {
          alert("Minimum dues is greater than maximum dues.");
          return (false);     
       }
       
        if(($("#min_images").val().length) && 
      	($("#max_images").val().length) && 
      	(parseFloat($("#min_images").val()) > parseFloat($("#max_images").val()))) {
          alert("Minimum images is greater than maximum images.");
          return (false);     
       }
   
     });

    $("#share_link").click(function() {
      $("#share_form").dialog({
        draggable: false,
        modal: true,
        resizable: false,
        width: 'auto',
        title: "Share this Property"
      });
    });

    $("#inquire_button").click(function() {
      $("#inquire_type").val("inquire");
      $("#datepicker").val('');
      $("#hide_date").hide();
      $("#inquire-form").dialog({
        draggable: false,
        modal: true,
        resizable: false,
        width: 'auto',
        title: "Inquire"
      });
    });

    $("#showing_button").click(function() {
      $("#inquire_type").val("showing");
      $("#datepicker").val('');
      $("#hide_date").show();
      $("#inquire-form").dialog({
        draggable: false,
        modal: true,
        resizable: false,
        width: 'auto',
        title: "Request A Showing"
      });
    });
    


    $("#share_submit").click(function() {
      if(	!$("#your_name").val().length ||
		!$("#your_email").val().length ||
		!$("#friend_name").val().length ||
		!$("#friend_email").val().length) {
        $.alert("Please fill out all required fields.");
        return(false);
      }

      var params = {
        action: "share",
        your_name: $("#your_name").val(),
        your_email: $("#your_email").val(),
        friend_name: $("#friend_name").val(),
        friend_email: $("#friend_email").val(),
        message: $("#message").val(),
        listing_id: $("#mls_number").val()
      };

      $.post("/listing/index.php", params, Main.handleShareCallback);
      $.wait();

    });

    $("#inquire_submit").click(function() {

      if(	!$("#first_name_information").val().length ||
		!$("#last_name_information").val().length ||
		!$("#email_information").val().length) {
        $.alert("Please fill out all required fields.");
        return(false);
      }

      var prefix = $("#inquire_type").val() == "inquire" ? "Inquiry: " : "Request for Showing: ";

      var params = {
        action: "inquire",
        first_name: $("#first_name_information").val(),
        last_name: $("#last_name_information").val(),
        email: $("#email_information").val(),
        phone: $("#phone_information").val(),
        subject: prefix + $("#subject_information").val(),
        message: $("#inquire_message").val(),
        listing_id: $("#mls_number").val()
      };

      if($("#inquire_type").val() == "showing") {
        params['date'] = $("#datepicker").val();
      }

      $.post("/listing/index.php", params, Main.handleInquireCallback);
      $.wait();

    });
    
    /*
    Duplicate form JS to get it to work on Public Property pages
    */
    $("#share_submit_public").click(function() {
      if(	!$("#your_name").val().length ||
		!$("#your_email").val().length ||
		!$("#friend_name").val().length ||
		!$("#friend_email").val().length) {
        $.alert("Please fill out all required fields.");
        return(false);
      }

      var params = {
        action: "share",
        your_name: $("#your_name").val(),
        your_email: $("#your_email").val(),
        friend_name: $("#friend_name").val(),
        friend_email: $("#friend_email").val(),
        message: $("#message").val(),
        listing_id: $("#mls_number").val()
      };

      $.post("/listing/public-properties.php", params, Main.handleShareCallback);
      $.wait();

    });
    
    $("#inquire_submit_public").click(function() {

      if(	!$("#first_name_information").val().length ||
		!$("#last_name_information").val().length ||
		!$("#email_information").val().length) {
        $.alert("Please fill out all required fields.");
        return(false);
      }

      var prefix = $("#inquire_type").val() == "inquire" ? "Inquiry: " : "Request for Showing: ";

      var params = {
        action: "inquire",
        first_name: $("#first_name_information").val(),
        last_name: $("#last_name_information").val(),
        email: $("#email_information").val(),
        phone: $("#phone_information").val(),
        subject: prefix + $("#subject_information").val(),
        message: $("#inquire_message").val(),
        listing_id: $("#mls_number").val()
      };

      if($("#inquire_type").val() == "showing") {
        params['date'] = $("#datepicker").val();
      }

      $.post("/listing/public-properties.php", params, Main.handleInquireCallback);
      $.wait();

    });
    
    /*
    END - Duplicate form JS to get it to work on Public Property pages
    */
    
    $("#print_button").click(function() {
      window.print();
    });

    $("#residential_ul input").change(function() {
      var val = $(this).val();
      if(val == "") {
        val = $(this).html();
      }
      var params = {'type': val, 'action': 'get_sub_types'};
      $.get("/idx/index.php", params, Main.handlePropertySubTypeUpdate);
    });

   
    


  },

  handlePropertySubTypeUpdate:function(data)
  {

    $("#property_sub_type").html(data);

  },

  handleInquireCallback:function(data)
  {

    $.stopWaiting(data);

  },

  handleShareCallback:function(data)
  {

    var message = data == "success" ? "Message sent successfully." : "There was a problem while sending your message. Please try again later.";
    $.stopWaiting(message);

  }

}

