HEX
Server: Apache/2.4.46 (Ubuntu)
System: Linux localhost 5.11.0-49-generic #55-Ubuntu SMP Wed Jan 12 17:36:34 UTC 2022 x86_64
User: root (0)
PHP: 7.4.16
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/balajiproperties.org/index-old.html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>Krisumi — Lead Registration</title>
  <meta name="color-scheme" content="light dark" />
  <style>
    :root {
      --bg: #ffffff;
      --card: #ffffff;
      --muted: #4b5563;       /* slate-600 */
      --text: #111827;        /* gray-900 */
      --ring: #2563eb;        /* blue-600 */
      --brand: #2563eb;       /* blue-600 */
      --brand-2: #1d4ed8;     /* blue-700 */
      --danger: #b91c1c;      /* red-700 */
      --ok: #059669;          /* emerald-600 */
      --border: #e5e7eb;      /* gray-200 */
      --input: #ffffff;       /* white */
      --radius: 16px;
      --shadow: 0 6px 20px rgba(0,0,0,.08);
    }


    html, body {
      height: 100%;
    }

    *, *::before, *::after { box-sizing: border-box; }

    body {
      margin: 0;
      font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Helvetica Neue, Arial, "Apple Color Emoji", "Segoe UI Emoji";
      color: var(--text);
      background: #ffffff;
      display: grid;
      justify-items: center; align-items: start;
      padding: 32px 16px;
      min-height: 100svh;
      overflow-x: hidden;
    }

    .card {
      width: 100%;
      max-width: 980px;
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: calc(var(--radius) + 8px);
      box-shadow: var(--shadow);
      overflow: hidden;
    }

    .card-header {
      padding: 28px 28px 0 28px;
    }

    .logo {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      font-weight: 700;
      font-size: 18px;
      letter-spacing: .2px;
      color: var(--text);
    }

    .badge {
      display: inline-block;
      background: linear-gradient(135deg, var(--brand), var(--brand-2));
      color: white;
      padding: 4px 10px;
      border-radius: 999px;
      font-size: 12px;
      margin-left: 8px;
    }

    .title {
      font-size: clamp(22px, 4vw, 38px);
      line-height: 1.1;
      margin: 14px 0 10px;
      letter-spacing: .3px;
    }

    .subtitle {
      color: var(--muted);
      font-size: 14px;
      margin: 0 0 22px;
    }

    .divider {
      height: 1px;
      background: linear-gradient(90deg, transparent, var(--border), transparent);
      margin: 16px 0 0;
    }

    form {
      padding: 28px;
    }

    .grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 18px 18px;
    }

    @media (min-width: 720px) {
      .grid.two-col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }

    .section {
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 18px;
      background: #ffffff;
    }

    .section h3 {
      margin: 0 0 12px;
      font-size: 16px;
      letter-spacing: .2px;
    }

    .field {
      display: grid;
      gap: 8px;
    }

    label { font-weight: 600; font-size: 13px; color: var(--muted); }

    input[type="text"], select, textarea {
      background: var(--input);
      color: var(--text);
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 12px 14px;
      font-size: 15px;
      transition: box-shadow .2s, border-color .2s, transform .02s ease-in-out;
    }

    textarea { min-height: 110px; resize: vertical; }

    input:focus, select:focus, textarea:focus {
      outline: none;
      border-color: color-mix(in oklab, var(--ring), white 15%);
      box-shadow: 0 0 0 4px color-mix(in oklab, var(--ring), transparent 80%);
    }

    .inline-hint {
      font-size: 12px;
      color: var(--muted);
    }

    .error { color: var(--danger); font-size: 12px; display: none; }
    .field.invalid .error { display: block; }

    .actions {
      display: flex;
      gap: 12px;
      align-items: center;
      justify-content: flex-end;
      padding-top: 8px;
    }

    .btn {
      border: 0;
      border-radius: 999px;
      padding: 12px 18px;
      font-weight: 700;
      font-size: 15px;
      cursor: pointer;
      color: white;
      background: linear-gradient(135deg, var(--brand), var(--brand-2));
      box-shadow: 0 8px 18px rgba(37, 99, 235, .25);
      transition: transform .06s ease-in-out, filter .2s;
    }

    .btn:hover { filter: brightness(1.05); }
    .btn:active { transform: translateY(1px); }
    .btn[disabled] { opacity: .7; cursor: not-allowed; }

    .note {
      font-size: 12px; color: var(--muted); margin-top: 6px;
    }

    .footer {
      padding: 0 28px 28px 28px;
      color: var(--muted);
      font-size: 12px;
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap;
      gap: 8px;
    }

    /* a11y only */
    .sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

    /* Honeypot */
    .hp { display:none !important; }
  </style>
</head>
<body>
  <main class="card" role="main">
    <div class="card-header">
      <!-- <div class="logo" aria-label="Krisumi">
        
        <svg width="26" height="26" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z" fill="url(#g)"/><defs><linearGradient id="g" x1="4" y1="4" x2="20" y2="20" gradientUnits="userSpaceOnUse"><stop stop-color="#2563eb"/><stop offset="1" stop-color="#7c3aed"/></linearGradient></defs></svg>
        Krisumi Lead Portal <span class="badge">Sandbox</span>
      </div> -->
      <h1 class="title">Tell us a bit about yourself</h1>
      <p class="subtitle">Submit your interest and our team will reach out shortly. It only takes a minute.</p>
      <div class="divider" aria-hidden="true"></div>
    </div>

    <!-- Replace OID with your sandbox org id after refresh -->
    <form id="lead-form" action="https://test.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="POST" novalidate>
      <input type="hidden" name="oid" value="00DBl000001tLks">
      <input type="hidden" name="retURL" value="https://krisumi.com/">

      <!-- Debug while testing -->
      <!--
      <input type="hidden" name="debug" value="1" />
      <input type="hidden" name="debugEmail" value="shivam.saini@cccinfotech.com" />
      -->

      <!-- Honeypot field (anti-bot) -->
      <div class="hp">
        <label>Do not fill</label>
        <input type="text" name="company" tabindex="-1" autocomplete="off" />
      </div>

      <!-- SECTION: Contact Details -->
      <section class="section">
        <h3>Contact Details</h3>
        <div class="grid two-col">
          <div class="field" id="f-first">
            <label for="first_name">First Name</label>
            <input id="first_name" name="first_name" type="text" maxlength="40" autocomplete="given-name" required />
            <div class="error">First name is required.</div>
          </div>

          <div class="field" id="f-last">
            <label for="last_name">Last Name</label>
            <input id="last_name" name="last_name" type="text" maxlength="80" autocomplete="family-name" required />
            <div class="error">Last name is required.</div>
          </div>

          <div class="field" id="f-email">
            <label for="email">Email</label>
            <input id="email" name="email" type="text" inputmode="email" maxlength="80" autocomplete="email" placeholder="you@example.com" required />
            <div class="error">Enter a valid email address.</div>
          </div>

          <div class="field" id="f-mobile">
            <label for="mobile">Mobile</label>
            <input id="mobile" name="mobile" type="text" inputmode="numeric" maxlength="40" autocomplete="tel" placeholder="10-digit mobile" pattern="^\d{10}$" required />
            <div class="inline-hint">India format: 10 digits (e.g., 98XXXXXXXX)</div>
            <div class="error">Enter a 10-digit mobile number.</div>
          </div>

          <div class="field" id="f-city">
            <label for="city">City</label>
            <input id="city" name="city" type="text" maxlength="40" autocomplete="address-level2" required />
            <div class="error">City is required.</div>
          </div>

          <div class="field" id="f-state">
            <label for="state">State/Province</label>
            <input id="state" name="state" type="text" maxlength="20" autocomplete="address-level1" required />
            <div class="error">State is required.</div>
          </div>
        </div>
      </section>

      <!-- SECTION: Lead Source -->
      <section class="section" aria-labelledby="source">
        <h3 id="source">How did you hear about us?</h3>
        <div class="grid two-col">
          <div class="field" id="f-source">
            <label for="lead_source">Lead Source</label>
            <select id="lead_source" name="lead_source" required>
              <option value="">-- Select --</option>
              <option value="CTI">CTI</option>
              <option value="Event">Event</option>
              <option value="Print Media">Print Media</option>
              <option value="Property Portal">Property Portal</option>
              <option value="Referral">Referral</option>
              <option value="Social Media">Social Media</option>
              <option value="Website" selected>Website</option>
            </select>
            <div class="error">Lead Source is required.</div>
          </div>

          <div class="field" id="f-subsource">
            <label for="lead_sub_source">Lead Sub Source</label>
            <!-- IMPORTANT: Replace the id/name below with your *sandbox* custom field id if different -->
            <select id="00NBl000003lmQ8" name="00NBl000003lmQ8" title="Lead Sub Source">
              <option value="">-- Select --</option>
              <option value="99 Acres">99 Acres</option>
              <option value="Channel Partner">Channel Partner</option>
              <option value="Chatbot">Chatbot</option>
              <option value="CommonFloor.com">CommonFloor.com</option>
              <option value="Customer">Customer</option>
              <option value="Economic Times">Economic Times</option>
              <option value="Employee">Employee</option>
              <option value="Enquiry Form" selected>Enquiry Form</option>
              <option value="Event 1">Event 1</option>
              <option value="Event 2">Event 2</option>
              <option value="Event 3">Event 3</option>
              <option value="Facebook">Facebook</option>
              <option value="Google Ads">Google Ads</option>
              <option value="Hindustan Times">Hindustan Times</option>
              <option value="Housing.com">Housing.com</option>
              <option value="Inbound Calls">Inbound Calls</option>
              <option value="Instagram">Instagram</option>
              <option value="Linkedin">Linkedin</option>
              <option value="MagicBricks">MagicBricks</option>
              <option value="Magic Bricks">Magic Bricks</option>
              <option value="Makaan.com">Makaan.com</option>
              <option value="No Broker">No Broker</option>
              <option value="Other">Other</option>
              <option value="PropTiger">PropTiger</option>
              <option value="Quikr Homes">Quikr Homes</option>
              <option value="SquareYards.com">SquareYards.com</option>
              <option value="TOI">TOI</option>
              <option value="WhatsApp">WhatsApp</option>
            </select>
          </div>
        </div>

      </section>

      <!-- SECTION: Notes -->
      <section class="section">
        <h3>Anything else we should know?</h3>
        <div class="field">
          <label for="description">Description</label>
          <textarea id="description" name="description" placeholder="Share your requirements, preferred project, budget range, etc."></textarea>
        </div>
      </section>

      <!-- reCAPTCHA (optional, enable in SF if required) -->
      <!--
      <section class="section">
        <div class="field">
          <label class="sr-only" for="captcha">Captcha</label>
          <div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>
        </div>
      </section>
      <script src="https://www.google.com/recaptcha/api.js" async defer></script>
      -->

      <div class="actions">
        <button class="btn" id="submitBtn" type="submit">Submit</button>
        
      </div>
    </form>

    <footer class="footer">
      <span>© <span id="year"></span> Krisumi. All rights reserved.</span>
      <span>Environment: Sandbox</span>
    </footer>
  </main>

  <script>
    // Current year
    document.getElementById('year').textContent = new Date().getFullYear();

    const form = document.getElementById('lead-form');
    const submitBtn = document.getElementById('submitBtn');

    // Minimal client-side validation + better UX
    const validators = {
      email: (v) => /^[\w.-]+@[\w.-]+\.[A-Za-z]{2,}$/.test(v),
      mobile: (v) => /^\d{10}$/.test(v)
    };

    function setValidity(id, ok) {
      const el = document.getElementById(id);
      const wrap = el.closest('.field');
      if (!wrap) return;
      if (ok) wrap.classList.remove('invalid');
      else wrap.classList.add('invalid');
    }

    form.addEventListener('input', (e) => {
      const t = e.target;
      if (t.id === 'email') setValidity('email', validators.email(t.value.trim()));
      if (t.id === 'mobile') setValidity('mobile', validators.mobile(t.value.trim()));
      if (t.id === 'first_name') setValidity('first_name', !!t.value.trim());
      if (t.id === 'last_name') setValidity('last_name', !!t.value.trim());
      if (t.id === 'city') setValidity('city', !!t.value.trim());
      if (t.id === 'state') setValidity('state', !!t.value.trim());
      if (t.id === 'lead_source') setValidity('lead_source', !!t.value);
    });

    form.addEventListener('submit', (e) => {
      // Basic checks before letting HTML submit to Salesforce
      const emailOK = validators.email(document.getElementById('email').value.trim());
      const mobileOK = validators.mobile(document.getElementById('mobile').value.trim());
      const requiredIds = ['first_name','last_name','city','state','lead_source'];
      let requiredOK = true;
      requiredIds.forEach(id => {
        const v = document.getElementById(id).value.trim();
        const ok = !!v;
        setValidity(id, ok);
        if (!ok) requiredOK = false;
      });
      setValidity('email', emailOK);
      setValidity('mobile', mobileOK);

      if (!emailOK || !mobileOK || !requiredOK) {
        e.preventDefault();
        // Focus first invalid
        const firstInvalid = document.querySelector('.field.invalid input, .field.invalid select');
        if (firstInvalid) firstInvalid.focus();
        return;
      }

      // UX: prevent double submit
      submitBtn.setAttribute('disabled', 'disabled');
      submitBtn.textContent = 'Submitting…';
    });
  </script>
</body>
</html>