﻿// Author: Kris
// Project: C:\code\RealosophyDotCom\RealosophyV2\
// Path: C:\code\RealosophyDotCom\RealosophyV2\javascripts\RealFramework
// Lines: 170
// Creation date: 8/30/2008 10:11 PM
// Last modified: 11/29/2009 6:08 PM

// Register our namespaces
// Type.registerNamespace("Realosophy");
/// <reference path="../jquery-1.4.1-vsdoc.js" />

function sendLead(leadType){
  if(ValidateFormData(true))
  {
    var args = processForm(leadType);
    var proxy = new Realosophy.Web.Service.ILead();
    proxy.CreateWF(args, leadType, OnWebRequestCompleted);
  }
}

function requestConsult() {
  if (ValidateFormData(true)) {
    var serviceRequested = $("#serviceRequired").val();
    if (serviceRequested == "")
      serviceRequested = "Consult Request";

    var args = processConsultForm(serviceRequested);
    var proxy = new Realosophy.Web.Service.ILead();
    proxy.CreateWF(args, serviceRequested, OnWebRequestCompleted);
  }
}

/// <summary>
/// Send report request
/// </summary>
function sendSimpleRequest(leadType) {
  var showValidationRules = leadType == "Report Request" ? true : false;
  var notesKey = leadType == "Report Request" ? "00N70000001o2oj" : "00N70000001o2oY";

  if (ValidateFormData(showValidationRules)) {
    var args = processSimpleRequestForm(leadType, notesKey);
    var proxy = new Realosophy.Web.Service.ILead();
    proxy.CreateWF(args, leadType, OnWebRequestCompleted);
  }
} // sendReportRequest(leadType)

/// <summary>
/// Process report request form
/// </summary>
function processSimpleRequestForm(leadType, notesKey) {
  var args = new Sys.StringBuilder();
  var oid = $get("oid");
  //var retUrl = $get("retURL");
  var firstName = $get("first_name");
  var lastName = $get("last_name");
  var email = $get("email");
  var phone = $get("phone");
  var leadSource = leadType;
  var notes = $get(notesKey);

  args.append("oid=" + encodeURI(oid.value));
  args.append("&first_name=" + encodeURI(firstName.value));
  args.append("&last_name=" + encodeURI(lastName.value));
  args.append("&email=" + encodeURI(email.value));
  args.append("&phone=" + encodeURI(phone.value));
  args.append("&lead_source=" + encodeURI(leadSource));
  args.append("&" + notesKey + "=" + encodeURI(notes.value));
  args.append("&sfga=00D70000000IYLV");

  return args.toString();
} // processReportRequestForm(leadType)

function processConsultForm(serviceType) {
  var args = new Sys.StringBuilder();
  var oid = $get("oid");
  //var retUrl = $get("retURL");
  var firstName = $get("first_name");
  var lastName = $get("last_name");
  var email = $get("email");
  var phone = $get("phone");
  var leadSource = serviceType;
  var planningToBuy = $get("00N70000001o2pV");
  var notes = $get("00N70000001o2oj");

  args.append("oid=" + encodeURI(oid.value));
  args.append("&first_name=" + encodeURI(firstName.value));
  args.append("&last_name=" + encodeURI(lastName.value));
  args.append("&email=" + encodeURI(email.value));
  args.append("&phone=" + encodeURI(phone.value));
  args.append("&lead_source=" + encodeURI(leadSource));
  args.append("&00N70000001o2pV=" + encodeURI(planningToBuy.value));
  args.append("&00N70000001o2oj=" + encodeURI(notes.value));
  args.append("&sfga=00D70000000IYLV");

  return args.toString();
}

// This the handler for the Web request completed event
// that is used to display return data.
function OnWebRequestCompleted(result) 
{
  if( result == true )
    Boxy.alert("Thank you!  We will be contacting you shortly.");
  else
    Boxy.alert("Sorry.  We seem to be having trouble right now.  Please try again later.");
}

function processForm(leadType){
  var args = new Sys.StringBuilder();
  var oid = $get("oid");
  var firstName = $get("first_name");
  var lastName = $get("last_name");
  var email = $get("email");
  var phone = $get("phone");
  var leadSource = leadType;
  var typeOfHome = $get("00N70000001o2oO");
  var neighbourhoodsInterested = $get("neighbourhoodInterested");
  var minBedrooms = $get("00N70000001o2oi");
  var minBathrooms = $get("00N70000001o2on");
  var startPrice = $get("00N70000001o2ox");
  var endPrice = $get("00N70000001o2pQ");
  var planningToBuy = $get("00N70000001o2pV");
  var currentDwelling = $get("00N70000001o2pa");
  var notes = $get("00N70000001o2oj");
  
  args.append("oid=" + encodeURI(oid.value));
  args.append("&first_name=" + encodeURI(firstName.value));
  args.append("&last_name=" + encodeURI(lastName.value));
  args.append("&email=" + encodeURI(email.value));
  args.append("&phone=" + encodeURI(phone.value));
  args.append("&lead_source=" + encodeURI(leadSource));
  args.append("&00N70000001o2oO=" + encodeURI(typeOfHome.value));
  args.append("&00N70000001o2oY=" + encodeURI(neighbourhoodsInterested.value));
  args.append("&00N70000001o2oi=" + encodeURI(minBedrooms.value));
  args.append("&00N70000001o2on=" + encodeURI(minBathrooms.value));
  args.append("&00N70000001o2ox=" + encodeURI(startPrice.value));
  args.append("&00N70000001o2pQ=" + encodeURI(endPrice.value));
  args.append("&00N70000001o2pV=" + encodeURI(planningToBuy.value));
  args.append("&00N70000001o2pa=" + encodeURI(currentDwelling.value));
  args.append("&00N70000001o2oj=" + encodeURI(notes.value));
  args.append("&sfga=00D70000000IYLV");

  return args.toString();
}

function select_HomeAlerts(){
  var myTab = myTabStrip.FindTabByText("Homes for Sale");
  Sys.Debug.assert(myTab != null);
  myTab.Select();
}

function ValidateFormData(showValidationErrors) {
 
  var firstName = $("#first_name");
  var lastName = $("#last_name");
  var email = $("#email");
  var phone = $("#phone");
  var vFName = $("#valFirstName");
  var vLName = $("#valLastName");
  var vEmail = $("#valEmail");
  var vPhone = $("#valPhone");
  var retVal = true;

  $('.scipInputText').removeClass("RedDottedBorder");
  $('.valText').addClass('Hidden');
  
  if(!firstName.get(0).value.match(/^[a-zA-Z'.\s]{1,40}$/)) {
    firstName.addClass("RedDottedBorder");
    if(showValidationErrors) vFName.toggleClass("Hidden");
    retVal = false;
  }

  if (!lastName.get(0).value.match(/^[a-zA-Z\'.\s]{1,40}$/)) {
    lastName.addClass("RedDottedBorder");
    if (showValidationErrors) vLName.toggleClass("Hidden");
    retVal = false;
  }

  if (!email.get(0).value.match(/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/)) {
    email.addClass("RedDottedBorder");
    if (showValidationErrors) vEmail.toggleClass("Hidden");
    retVal = false;
  }

  if (!phone.get(0).value.match(/^((\(\d{3}\) ?)|(\d{3}-?))?\d{3}-?\d{4}$/)) {
    phone.addClass("RedDottedBorder");
    if (showValidationErrors) vPhone.toggleClass("Hidden");
    retVal = false;
  }

  return retVal;
}