﻿function rightTrim(strString) {
    return strString.replace(/\s+$/gi, '');
}



function leftTrim(strString) {
    return strString.replace(/^\s*/gi, '');
}


function trim(strString) {
  strString = strString.replace(/^\s*/gi, '');
  strString = strString.replace(/\s+$/gi, '');
  return strString;
}

function escapeCommas(s) {
  return s.replace(',', '&#44;');
}



function clearValidationFlags(oElement) {

  var cSpan = oElement.getElementsByTagName('span')
  for (var i=cSpan.length-1; i>=0; i--) {
    if (cSpan[i].className == 'errorFlag') {
      cSpan[i].parentNode.removeChild(cSpan[i]);
    }
  }
}




function addValidationFlags(oField, aValidation, sText) {

  var oWarning = document.createElement('span');
      oWarning.style.color = 'red';
      oWarning.className = 'errorFlag';
      if (sText != null && sText != '') {
        oWarning.innerHTML = sText;
      }
      else {
        oWarning.innerHTML = '[*]';
      }


  var node = oField;


  
  while (node && (node.className !== 'label' && node.tagName.toLowerCase() !== 'label')) {
    node = node.parentNode;
  }

  clearValidationFlags(node);

  if (node.getElementsByTagName('p').length > 0) {
    oPara = node.getElementsByTagName('p');
  }
  else {
    oPara = node.getElementsByTagName('span');
  }



  if (oPara[0]) {
    if (oPara[0].getElementsByTagName('span').length > 0) {
        oPara[0].insertBefore(oWarning, oPara[0].getElementsByTagName('span')[0]);
    }
    else {
      oPara[0].appendChild(oWarning);

    }
  }
}



function validateField(oField) {


  if (oField.getAttribute('validation') !== null) {

    aValidation = oField.getAttribute('validation').split(',')

    var blnContinue = true;

    for (var iInt=0; iInt<aValidation.length; iInt++) {


      if (oField.type.toLowerCase() == 'file') {
        if (aValidation[iInt] == 'validateNotEmpty') {
          if (trim(oField.value) == '') {
            if (oField.getAttribute('fileExists') == 'true') {
              return true;
            }
            else {
              return false;
            }
          }
          else {
            return true;
          }
        }
        else {
          return true;
        }
      }

      else if (oField.type.toLowerCase() == 'select-one') {

        if (aValidation[iInt] == 'validateNotEmpty') {


          if (oField.selectedIndex == -1 || oField.options[oField.selectedIndex].value == '') {
            return false;
          }
          else {

            return true;
          }
        }
        else {
          return true;
        }

      }

      else if (oField.type.toLowerCase() == 'radio') {

        if (aValidation[iInt] == 'validateNotEmpty') {
          var blnChecked = false;
          for(var i=0; i<oField.form[oField.name].length; i++) {
            if (oField.form[oField.name][i].checked) {
              blnChecked = true;
            }
          }

          if (blnChecked) {
            return true;
          }
          else {
            return false;
          }
        }
        else {
          return true;
        }
      }
      else if (oField.type.toLowerCase() == 'checkbox') {

        if (aValidation[iInt] == 'validateNotEmpty') {
          if (oField.checked) {
            return true;
          }
          else {
            return false;
          }
        }
        else {
          return true;
        }
      }
      else {
        if (aValidation[iInt] == 'validateEmail') {
          var regEx = new RegExp('\\w+(.|\\w+)*\\@+(-|\\w)+\\.\\w+', 'igm');

          if (!regEx.test(oField.value) && trim(oField.value) != '') {
            return aValidation;
            break;
          }
          else {
           return true;
          }

        }
        else if (aValidation[iInt] == 'validateNotEmpty') {
          var regEx = new RegExp('.+', 'igm');


          if (!regEx.test(oField.value)) {
            return aValidation;
            break;
          }
          else {
           return true;
          }

        }
        else if (aValidation[iInt] == 'validatePassword') {
          var regEx = new RegExp('^[\\w\\d]{6,21}$', 'igm');

          if (!regEx.test(oField.value)) {
            return aValidation;
            break;
          }
          else {
           return true;
          }

        }
        else {
          var regEx = new RegExp('', 'igm');

          if (!regEx.test(oField.value)) {
            return aValidation;
            break;
          }
          else {
           return true;
          }
        }


      }

    }
  }
  else {
    return true;
  }

}



function validateForm(oForm) {

  var blnMasterContinue = true  

  clearValidationFlags(oForm);


  for (var i=0; i<oForm.length; i++) {

    var validated = validateField(oForm[i]);

    if (validated !== true) {
      blnMasterContinue = false;
      addValidationFlags(oForm[i], validated);
    }
     
  }

  if (blnMasterContinue) {
    return true;
  }
  else {
    alert('Some fields within the form are incomplete.\nPlease review the fields marked with an asterix [*]')
    return false;
  }
}








































$(document).ready( function() {

  $('ul.mainNav li').click( function() {
    
    document.location.href = $(this).children("a").attr("href");

  })

  var i = -7;
  $(".radioGroup.preferredService input").each( function() {
    $(this).parent().css( {"width":"20%"} );
    $(this).parent().prepend("<div class=\"logos\"></div>");

    $(this).parent().children(".logos").css( {"backgroundPosition": i + "px", "float":"none"} );
    i -= 46.5;    

  });

  $('ul.mainNav li span').css("opacity", 0);

  $('ul.mainNav li').mouseenter( function() {
    $(this).stop();
    $(this).addClass('over');

    $("span", this).animate({opacity: 0.75}, 500);
  });

  $('ul.mainNav li').mouseleave( function() {
    $(this).stop();
    $(this).removeClass('over');    
    $("span", this).animate({opacity: 0}, 500);
  }); 
   

});


$(document).ready( function() {

  setTimeout(setHeights, 500);

});



function setHeights() {

  var Rght = $('#right');
  var Lft = $('#left');

  Rght.css( { "height": "auto"} );
  Lft.css( { "height": "auto"} );

  var iRght = Rght.height();
  var iLft = Lft.height(); 

  if (iRght > iLft) {
    Lft.height(iRght + 'px');
  }
  else {
    Rght.height(iLft + 'px');
  }


}







var t;
var s;
$(document).ready(function(){  

  $("#KbForm input").keyup( function() {
   clearTimeout(t);
   t = setTimeout(function() { getResultsCount() }, 500);     
  })

  $("#KbForm input[type = checkbox]").click( function() {
   clearTimeout(t);
   t = setTimeout(function() { getResultsCount() }, 500); 
  })

  $("#KbForm input[type = radio]").click( function() {
   clearTimeout(t);
   t = setTimeout(function() { getResultsCount() }, 500); 
  })


  $("#KbForm select").change( function() {
   clearTimeout(t);
   t = setTimeout(function() { getResultsCount() }, 500);     
  })

  $("#KbForm input[type = reset]").click( function() {
   clearTimeout(t);
   t = setTimeout(function() { getResultsCount() }, 500);     
  })


  $("#KbForm input[name = pcode]").keydown( function() {
   $(".error", $(this).parent()).html("");     
  })

  $("#KbForm input[name = pcode]").keyup( function() {
   clearTimeout(s);
   s = setTimeout(function() { validatePostcode() }, 500);     
  })


});


function validatePostcode() {
 var o = $("#KbForm input[name = pcode]")
 var s = o.attr("value");

 $(".error", o.parent()).html("");

 s = s.replace(/^\s+/ig, '');
 s = s.replace(/\s+$/ig, '');

 var fullMatch = /^\w{2}\d{1,2}\s+\d{1}\w{2}$/.test(s)
 var shortMatch = /^\w{2}\d{1,2}$/.test(s)

 if (s != '' && ! fullMatch && ! shortMatch) {
   $(".error", o.parent()).html("Invalid postcode");
 }  
}


function submitKbForm(oForm) {

//  return true;

  var sId = new Date();
      sId = 'class' + sId.getTime();  

  $("#kbTabs>li>h5").removeClass('selected');

  var oTab = $("#kbTabs").children('li:first').clone().appendTo($("#kbTabs"));
      oTab.attr("class", "");
      oTab.addClass(sId);

      $("a:first", oTab).html("Loading");
      $("h5", oTab).addClass('selected');
      $("h5", oTab).addClass('dynamic');
      $("h5", oTab).append("<a href=\"#\" onclick=\"closeTab(this);\" class=\"close\"><span>x</span></a>");  


  $(".kbTabsContent").children().hide();

  var oContent = $("<div/>");
      oContent.addClass(sId);

      $(".kbTabsContent").append(oContent);
      oContent.html("<div class=\"loading\"><img src=\"files/file1030060.gif\"/></div>");


  var sData = '';
  for (var i=0; i<oForm.elements.length; i++) {
    if (oForm[i].type == 'select') {
      sData += oForm[i].name + '=' + oForm[i].options[oForm[i].selectedIndex].value + '&';
    }
    else if ((oForm[i].type == 'checkbox' || oForm[i].type == 'radio')) {
      if (oForm[i].checked == true) {
        sData += oForm[i].name + '=' + oForm[i].value + '&';
      }
    }
    else {
      sData += oForm[i].name + '=' + oForm[i].value + '&';
    }
  }

  $.ajax({
    url: "cms1327224.aspx",
    type: "POST",
    data: sData,
    success: function(data) {
      var d = $("<div/>");
      $("body").append(d);
      $(d).hide();
      $(d).html(data);    
      oContent.html('<div class="results">' + $(".results", d).html() + '</div>');
      $(d).remove();
      $("a:first", oTab).html("Search Results <span>[" + $("tr.head", oContent).size() + "]</span>");

      setHeights();

    },

    error: function(httpRequest, textStaus, errorThrown) {
      alert('Sorry, an error was returned');
      return false;
    }

  });

  return false;
}



function getResultsCount() {
  $("#resultsCount").html('Loading...');

  var oForm = document.getElementById('KbForm');

  var sData = 'count=true&';
  for (var i=0; i<oForm.elements.length; i++) {

    if (oForm[i].type == 'select') {
      sData += oForm[i].name + '=' + oForm[i].options[oForm[i].selectedIndex].value + '&';
    }
    else if ((oForm[i].type == 'checkbox' || oForm[i].type == 'radio')) {
      if (oForm[i].checked == true) {
        sData += oForm[i].name + '=' + oForm[i].value + '&';
      }
    }
    else {
      sData += oForm[i].name + '=' + oForm[i].value + '&';
    }
  }

  $.ajax({
    url: "cms1327224.aspx",
    type: "POST",
    data: sData,
    success: function(data) {
      if ( parseInt(data) != 'NaN' ) {
        $("#resultsCount").html("Your search will return " + data + " service(s)");
      }
      else {
        $("#resultsCount").html("Sorry, an error occurred");
      }
    },

    error: function(httpRequest, textStaus, errorThrown) {
      alert('Sorry, an error was returned');
      return false;
    }

  });

  return false;
}




function filterKbIndexTerms(oField) {
  var oIndexTerms = oField.form.indexTerm;
  var s='';
 
  var oFset = $('.indexTerms');
  oFset.animate({height: 50},1000, function() {
     $(this).css('overflow', 'hidden');

      for (var i=0; i<oIndexTerms.length; i++ ) {
        for (var j=0; j<aIx.length; j++) {
          if (aIx[j][0].toString() == oIndexTerms[i].value) {
            if (aIx[j][1].indexOf(oField.value) > -1 || oField.value == '') {
              oIndexTerms[i].parentNode.style.display = 'block';
            }
            else {
              oIndexTerms[i].parentNode.style.display = 'none';
              oIndexTerms[i].checked = false;
            }
          }
        }
      }


      $(this).css('overflow', 'auto');
      $(this).css('height', 'auto');

    });
  

}


function ShowAgency(oLink) {

//  return true;

  var sId = new Date();
      sId = 'class' + sId.getTime();  

  $("#kbTabs>li>h5").removeClass('selected');

  var oTab = $("#kbTabs").children('li:first').clone().appendTo($("#kbTabs"));
      oTab.attr("class", "");
      oTab.addClass(sId);

      $("h5", oTab).addClass('selected');
      $("h5", oTab).addClass('dynamic');


      $("a:first", oTab).html("Loading...");
      $("h5", oTab).append("<a href=\"#\" onclick=\"closeTab(this);\" class=\"close\"><span>x</span></a>");  


  $(".kbTabsContent").children().hide();

  var oContent = $("<div/>");
      oContent.addClass(sId);

      $(".kbTabsContent").append(oContent);
      oContent.html("<div class=\"loading\"><img src=\"files/file1030060.gif\"/></div>");


  $.ajax({
    url: oLink.href,
    type: "GET",
    success: function(data) {
      var d = $("<div/>");
      $("body").append(d);
      $(d).hide();
      $(d).html(data);    
      oContent.html("<div class=\"agcyDetails\">" + $(".agcyDetails", d).html() + "</div>");
      $(d).remove();

      $("a:first", oTab).html($("h1", oContent).html());

    },

    error: function(httpRequest, textStaus, errorThrown) {
      alert('Sorry, an error was returned');
      return false;
    }

  });

  return false;
}


function closeTabs() {

  $("h5.dynamic a.close").each( function() {

    closeTab(this);

  });

  document.getElementById('KbForm').reset();
  
}

function closeTab(oLink) {
  $(".kbTabsContent").children().hide();

  var oLi = $(oLink).parent().parent();
  $('.' + oLi.attr("class")).remove();

  $("#kbTabs .defaultTab h5").addClass("selected");
  $(".kbTabsContent").children(".defaultTab").show();

}

function showTab(oLink) {
  if ($(oLink).parent().hasClass("selected")) {
    return;
  }


  $("#kbTabs>li>h5").removeClass('selected');  
  $(".kbTabsContent").children().hide();

  var oLi = $(oLink).parent().parent();

  $(".kbTabsContent ." + oLi.attr("class")).show();

  $("h5", oLi).addClass('selected');

  setHeights();

  return false;

}





function showLoginShortcutReminder(oLink) {

  var oForm = document.getElementById('loginShortcut');


  if (oForm.getElementsByTagName('div')[0]) {
    oForm.getElementsByTagName('div')[0].style.display = 'none';
  }

  if (oForm['function'].value == 'login') {
    oForm['function'].value = 'reminder';    
    $('#loginShortcut .password').hide();
    oLink.setAttribute('defaultText', oLink.innerHTML);
    oLink.setAttribute('defaultLink', oLink.href);
    oLink.innerHTML = 'Back to login';
    oLink.href = oLink.href.replace('?reminder=true', '');
    oForm.getElementsByTagName('h5')[0].innerHTML = 'Password reminder';
  }
  else {
    oForm['function'].value = 'login';    
    $('#loginShortcut .password').show();
    oLink.innerHTML = oLink.getAttribute('defaultText');
    oLink.href = oLink.getAttribute('defaultLink');
    oForm.getElementsByTagName('h5')[0].innerHTML = 'Login';
  }


  return false;
}


function buildSearchReport(Id) {
  var oForm = document.getElementById(Id);

  oForm.target = '_blank';  
  oForm.submit();

  oForm.target = '';
}

function removeServices(oBtn) {
  var tbl = $("input[name = remove]:checked", $(oBtn.form)).parents("table");

  $("input[name = remove]:checked", $(oBtn.form)).parent().parent().parent().remove();

  if ($("tbody.partnerAgency", tbl).size() == 0) {
    $("tbody.partner.header", tbl).remove();
  }

  if ($("tbody.nonNhsAgency", tbl).size() == 0) {
    $("tbody.nonNhs.header", tbl).remove();
  }

  if ($("tbody.nhsAgency", tbl).size() == 0) {
    $("tbody.nhs.header", tbl).remove();
  }

}

function selectAllServices(oBtn) {
  if (oBtn.value == "select all") {
    $("input[name = remove]", $(oBtn.form)).attr("checked", true);
    oBtn.value = "deselect all";
  }
  else {
    $("input[name = remove]", $(oBtn.form)).attr("checked", false);
    oBtn.value = "select all";
  }
}

function runClientReport(oForm) {

  oForm.action = 'cms1327633.aspx';
  oForm.target = '_blank';  
  oForm.submit();

  oForm.target = '';
}


function setupClientReport(oForm) {
  $("tbody").each ( function() {

    if (! $(this).hasClass("header") ) {
      $("tr:last", $(this)).after("<tr><td></td><td colspan=\"2\"><textarea name=\"" + $(this).attr("id") + "_comments\"></textarea></td></tr>");
    }
  });

  $(".prepareClientReport").hide();
  $(".createClientReport").show();

}


function fillTabContent(oLink) {

  var oContent = $( "." + $(oLink).parent().parent().attr("class") + ".results");

  $(".kbTabsContent").append(oContent);
  oContent.html("<div class=\"loading\"><img src=\"files/file1030060.gif\"/></div>");


  $.ajax({
    url: oLink.href,
    type: "GET",
    success: function(data) {
      var d = $("<div/>");
      $("body").append(d);
      $(d).hide();
      $(d).html(data);    


      oContent.html( $(".mainContent", d).html() );
      $(d).remove();

      setHeights();

    },

    error: function(httpRequest, textStaus, errorThrown) {
      alert('Sorry, an error was returned');
      return false;
    }

  });


  return false;  

}

/*

$(document).ready( function() {

  $(".help").mouseover(function () {

    showHelp();

  });

});


function showHelp(oLink, sKey) {
  $.ajax({
    url: "cms1330003.aspx.aspx",
    type: "GET",
    success: function(data) {
      var d = $("<div/>");
      $("body").append(d);
      $(d).hide();
      $(d).html(data);    
      alert($(".mainContent", d).html());
      $(d).remove();
 
      var x = $("<div></div>");
      x.css( {} )

    },

    error: function(httpRequest, textStaus, errorThrown) {
      alert('Sorry, an error was returned');
      return false;
    }

  });

  return false;
}

*/


function showHelp(oLink, sKey) {
  window.open("files/file1003816.pdf", "Help", "status=0,toolbar=0");


  return false;
}


function resetForm(oForm) {
  oForm.reset();
  validatePostcode(); 
  filterKbIndexTerms(oForm["kbArea"][0]);
}



$(document).ready( function() {


  setTimeout(cycleQuotes, 750);


//$(".object156 .object169:first").show();

});


function cycleQuotes() {


  $(".object156 .object169").each( function() {
   
    var i = ( $(this).parents(".object156").height() - $(this).height() ) / 2;
    $(this).css( {'marginTop': i } );

  });

  $(".object156 .object169:first").fadeIn('fast', function() {

    $(".object156 div.content").cycle( {fx:'fade', speed: 'slow', cleartypeNoBg: true } );

  });


}







function showServiceFeedback(oLink) {
  var oWrapper = $(oLink).parents(".agcyDetails");

  var sName = $("h1", oWrapper).html();
  if ( trim($("h2", oWrapper).html()) != '' ) {
    sName += " [" + trim($("h2", oWrapper).html()) + "]";
  }

  var oDiv = document.createElement("div");
      oDiv.innerHTML = sName;

  if (oDiv.textContent) {
    sName = oDiv.textContent;
  }
  else {
    sName = oDiv.innerText;
  }


  $("#feedbackForm input[name = service]").attr("value", sName);

  showTab( $("li.feedbackTab a")[0] );

}



function sendFeedbackEmail(oForm) {
 
  $(oForm).before("<div class=\"loading\"><img src=\"files/file1030060.gif\"/></div>");

  var sData = '';
  for (var i=0; i<oForm.elements.length; i++) {
    sData += oForm[i].name + '=' + oForm[i].value + '&';
    oForm[i].disabled = true;
  }

  $.ajax({
    url: oForm.action,
    type: "POST",
    data: sData,
    success: function(data) {
      var d = $("<div/>");
      $("body").append(d);
      $(d).hide();
      $(d).html(data);    

      $(oForm).parent().children(".loading").remove();     

      $(oForm).before($(".mainContent p" , data));
      
      $(d).remove();

      oForm.reset();
      for (var i=0; i<oForm.elements.length; i++) {
        oForm[i].disabled = false;
      }

    },

    error: function(httpRequest, textStaus, errorThrown) {
      alert('Sorry, an error was returned');
      return false;
    }

  });




  return false;
}


function editReferralInfo(oLink) {
  var oForm = $(oLink).parent().parent().parent().children("form");

  $("textarea",oForm).remove();
  $("input", oForm).show();
  oForm.prepend("<textarea name=\"referralInfo\">" + $("#referralInfo", oForm).html().replace(/<[^>]*>/igm, '') + "</textarea>");
  $("#referralInfo", oForm).hide();
}

function cancelEditReferralInfo(oForm) {
  $("input", $(oForm)).hide();
  $("textarea", $(oForm)).remove();
  $("#referralInfo", $(oForm)).show();
}

function saveReferralInfo(oForm) {


  $(oForm).prepend("<div class=\"loading\"><img src=\"files/file1030060.gif\"/></div>");

  var sData = '';
  for (var i=0; i<oForm.elements.length; i++) {
    sData += oForm[i].name + '=' + oForm[i].value + '&';
    oForm[i].disabled = true;
  }

  

  $.ajax({
    url: oForm.action,
    type: "POST",
    data: sData,
    success: function(data) {
      
      var d = $("<div/>");
      $("body").append(d);
      $(d).hide();
      $(d).html(data);    

      var sTxt = $("div.referralInfo", d).html();


      $("div#referralInfo", oForm).html( sTxt );     

      for (var i=0; i<oForm.elements.length; i++) {
        oForm[i].disabled = false;
      }

      cancelEditReferralInfo(oForm);
      
      $(".loading", oForm).remove();


    },

    error: function(httpRequest, textStaus, errorThrown) {
      alert('Sorry, an error was returned');
      return false;
    }

  });

 return false;


}