﻿
// Global Variables
var resultSet;
var resultIndex;
var resultTable;
var state = 'ZZ';
var resultType = "f";
var imagePath = "";
var omCode = "";
var ecCode = "";
var userID = "";
var rgxName = new RegExp(/^[a-zA-Z_\.\-\s]*$/);
var rgxGeneric = new RegExp(/^[a-zA-Z0-9_/,#\.\-\s:]*$/);
var rgxEmail = new RegExp(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/);

// On DOM Ready
$(function() {

    // Hide elements as soon as the DOM is ready
    $('#error_box').hide();
    $('#severeTextWrapper').hide();
    $('#commonTextWrapper').hide();
    $('#diseaseTextWrapper').hide();
    $('#emailTextWrapper').hide();
    $('#petInfoBox').hide();
    $('#tenYearErrorWrapper').hide();
    
    // Set control events
    $('#dogcat').change(onSpeciesChange);
    $('#breed').change(onChangeValidation);
    $('#age').change(onChangeValidation);
    $('#submitlink').keypress(onCalculateKeyPress);
    $('#submit').click(onCalculateClick);
    $('#dobMonthDropDown').change(onChangeValidation);
    $('#dobDayDropDown').change(onChangeValidation);
    $('#dobYearDropDown').change(onChangeValidation);
    $('#sendEmail').click(SendEmail);
    $('#returnToCoC').click(ReturnToResults);
    
    // Initialze Controls
    InitializeCarousel();
    InitializeSlideShow();
    InitializeDisclaimer();
    
    // Get OMCode/ECCode immediately
    omCode = document.getElementById("omCode").value;
    ecCode = document.getElementById("ecCode").value;
    //userID = document.getElementById("userID").value;
    
    // If different species is selected, reload with assoicated breeds              
    function onSpeciesChange() 
    {
        $("#breed").html('<option value="">Loading...</option>'); // Visually indicate that reload is occurring

        $.getJSON("./GetJsonData.ashx", { f: "breeds", s: $(this).val(), contentType: 'application/json; charset=utf-8' }, function(options) {
            if (handleError(options)) return;
            $('#breed').setTemplate($("#TemplateBreedSelect").html());
            $('#breed').processTemplate(options);
        });

        onChangeValidation();
    }

    function onChangeValidation() 
    {
        // Only validate input on change (not on calculate) if validation error was already issued.
        if ($('#error_box').is(':visible'))
            validateInput();
    }

    function onCalculateKeyPress(e) 
    {
        if ((/13$/.test(e.keyCode))) {
            onCalculateClick();
        }
    }

    var firstClick = true;
    function onCalculateClick() 
    {
        if (!validateInput()) return;
        
        saveUserData("Calculate");
        _scTrackClick("Calculate");
        
        // Reset Ten Year old error text
        var errorText = document.getElementById('tenYearErrorText');
        errorText.innerHTML = document.getElementById("tenYearText").value;
        
        // Clear email attributes
        var emailName = document.getElementById("emailName");
        var emailAddress = document.getElementById("emailAddress");
        var emailFriendAddress = document.getElementById("emailFriendsAddress");
        var emailSubject = document.getElementById("emailSubject");
        emailName.value = "";
        emailAddress.value = "";
        emailFriendAddress.value = "";
        emailSubject.value = "";
        
        // Collect form data for search and display           
        var speciesCode = $('#dogcat').val();
        var breedCode = $('#breed').val();
        var zipCode = $.trim($('#zipCode').val());
        
        // Determine pet age from entered birthday
        var month = $("#dobMonthDropDown option:selected").text();
        var day = $("#dobDayDropDown option:selected").text();
        var year = $("#dobYearDropDown option:selected").text();
        var petsAge = document.getElementById("petAge");
        var today = new Date();
        var age = today.getFullYear() - year;                                    
        if (month > today.getMonth() + 1)
        {
            age = age - 1;
        }
        else if (month == today.getMonth() + 1)
        {
            if (day > today.getDate())
            {
                age = age - 1;
            }
        }        
        petsAge.value = age;      
        if (age > 9)
        {
            // Hide current display
            if ($('#introTextWrapper2').is(':visible'))
            {
                $('#introTextWrapper2').slideDown('slow').hide();
            }
            else if ($('#commonTextWrapper').is(':visible'))
            {
                $('#commonTextWrapper').slideDown('slow').hide();
                $('#commonResults').hide();
            }
            else if ($('#severeTextWrapper').is(':visible'))
            { 
                $('#severeTextWrapper').slideDown('slow').hide();
                $('#severeResults').hide();
            }  
            else if ($('#emailTextWrapper').is(':visible'))
            { 
                $('#emailTextWrapper').slideDown('slow').hide();
            } 
            else if ($('#diseaseTextWrapper').is(':visible'))
            {
                $('#diseaseTextWrapper').slideDown('slow').hide();
            }
            
            var errorText = document.getElementById('tenYearErrorText');
            errorText.innerHTML = errorText.innerHTML.replace("[breed]", $("#breed option:selected").text());
            $('#tenYearErrorWrapper').show();
            return; 
        }
        // Detemine if target breed is top 11 or general
        var x;
        var topBreeds = document.getElementById("topBreeds").value;
        omCode = document.getElementById("omCode").value;
        var breedArray = topBreeds.split(",");
        
        resultType = "f";
        for (x in breedArray)
        {
            if (breedArray[x] == breedCode)
            {
                resultType = "s";
            }
        }
        
        var pageResultType = document.getElementById("resultType");
        pageResultType.value = resultType;
        
        $.getJSON("./GetJsonData.ashx", { f: "state", z: zipCode, contentType: 'application/json; charset=utf-8' },
        function(states) 
        {
            // If (handleError(result)) return;
            state = states.result.State;
                       
            $.getJSON("./GetJsonData.ashx", { f: "results", s: speciesCode, b: breedCode, a: age, r: resultType, contentType: 'application/json; charset=utf-8' },
            function(results) 
            {
                if (handleError(results)) return;

                // Save result data
                resultSet = null;
                resultSet = results;
                resultIndex = 0;
                
                // Reload the breed information          
                var petname = $.trim($('#petname').val());
                var id = $('#breed').val();
                var breed = $("#breed option:selected").text();

                // Set QuoteCenter query string parameters
                var baseURL = document.getElementById("baseURL");
                var quoteLink = document.getElementById("quoteCenterLink");
                var quoteButtonCommon = document.getElementById("quoteCenterCommonButton");
                var quoteButtonSevere = document.getElementById("quoteCenterSevereButton");
                var quoteButtonDisease = document.getElementById("quoteCenterDiseaseButton");
                var excludedBreeds = document.getElementById("excludedBreeds").value;
                var petBDay = month + '/' + day + '/' + year;
                var exBreedArray = excludedBreeds.split(",");
                var exclude = false;
                x = 0;
                for (x in exBreedArray)
                {
                    if (exBreedArray[x] == breedCode)
                    {
                        exclude = true;
                    }
                }
                
                 var firstChar;
                ecCode = document.getElementById("ecCode").value;
                omCode = document.getElementById("omCode").value;     
                isQueryString = document.getElementById("isQueryString").value;     
                
                //Original                        
//                if (ecCode != "" || omCode != "")               
//                {
//                    firstChar = '&';
//                }
//                else
//                {
//                    firstChar = '?';
//                }             
                  firstChar = (ecCode != "" && isQueryString  != "Y")? "?": "&"; // added KN 12/30/2009
                
                if (exclude)
                {
                    var emptyBreed = "000";
                    quoteLink.href = baseURL.value + firstChar + 'PetName=' + petname + '&PetDOB=' + petBDay + '&SpeciesCode=' + speciesCode + '&BreedCode=' + emptyBreed +'&ZipCode=' + zipCode;   
                }
                else
                {
                    quoteLink.href = baseURL.value + firstChar + 'PetName=' + petname + '&PetDOB=' + petBDay + '&SpeciesCode=' + speciesCode + '&BreedCode=' + breedCode + '&ZipCode=' + zipCode;   
                }
                
                quoteButtonCommon.href = quoteLink.href;
                quoteButtonSevere.href = quoteLink.href;
                quoteButtonDisease.href = quoteLink.href;
                
                $.getJSON("./GetJsonData.ashx", { f: "breed", b: id, contentType: 'application/json; charset=utf-8' }, 
                function(breedInfo) 
                {
                    if (handleError(breedInfo)) return;

                    // Set the image and alt tag and fade in once it is loaded 
                    imagePath = breedInfo.result.ImagePath;
                    var pageImagePath = document.getElementById("imagePath");
                    pageImagePath.value = breedInfo.result.ImagePath;
                    if (age < 1) imagePath = breedInfo.result.ImagePathYouth;
                    var breed = breedInfo.result.Description;
                    var breedText = breedInfo.result.BreedText;

                    if (petname.length > 0 && petname.endsWith('s', true))
                    {
                        $("#commonTextTitle").html(petname +"' Cost Of Care");
                        $("#diseaseTextTitle").html(petname +"' Cost Of Care");
                        $("#severeTextTitle").html(petname +"' Cost Of Care");
                        $("#emailTextTitle").html(petname +"' Cost Of Care");
                        $("#petInfoTitle").html("About your " + breed + ", " + petname)
                    }
                    else if (petname.length > 0)
                    { 
                        $("#commonTextTitle").html(petname +"'s Cost Of Care");
                        $("#diseaseTextTitle").html(petname +"'s Cost Of Care");
                        $("#severeTextTitle").html(petname +"'s Cost Of Care");
                        $("#emailTextTitle").html(petname +"'s Cost Of Care");
                        $("#petInfoTitle").html("About your " + breed + ", " + petname)
                    }
                    else 
                    {
                        $("#commonTextTitle").html("Cost Of Care");
                        $("#diseaseTextTitle").html("Cost Of Care");
                        $("#severeTextTitle").html("Cost Of Care");
                        $("#emailTextTitle").html("Cost Of Care");
                        $("#petInfoTitle").html("About your " + breed)
                    }
                    
                    $("#pet_image").attr({ src: imagePath, alt: breed }).load(function() {
                        //$(this).hide().fadeIn('slow');       
                    });
                    
                    // Display photo descriptive text                                    
                    $("#petDetailsText").html(breedText);
                    
                    // Determine which Survivor Tail to display
                    var caseStudyType = '0';
                    var product = '0';
                    var newProductStates = document.getElementById("newProductStates").value;
                    var stateArray = newProductStates.split(",");
                    var s;
                            
                    for (s in stateArray)
                    {
                        if (stateArray[s] == state)
                        {
                            product = '1';
                        }    
                    }
                      
                    // Set case study modal  
                    if (product == '1')
                    {
                        if (screen.width >= 1152 && screen.height >= 864)
                        {
                            $("a.caseStudy").fancybox({ 'frameWidth': 746, 'frameHeight': 680 });
                        }
                        else
                        {
                            $("a.caseStudy").fancybox({ 'frameWidth': 746, 'frameHeight': 520 });
                        }
                    }
                    else
                    {
                        if (screen.width >= 1152 && screen.height >= 864)
                        {
                            $("a.caseStudy").fancybox({ 'frameWidth': 671, 'frameHeight': 680 });
                        }
                        else
                        {
                            $("a.caseStudy").fancybox({ 'frameWidth': 671, 'frameHeight': 520 });
                        }
                    }
                    
                    
                    if (resultType == 's')
                    {
                         caseStudyType = '1';
                    }
                    
                    // Get Survivor Tail
                    $.getJSON("./GetJsonData.ashx", { f: "caseStudy", s: speciesCode, b: id, c: caseStudyType, p: product, contentType: 'application/json; charset=utf-8' }, 
                    function(caseStudy) 
                    {   
                        $('#severeCaseStudyTextLink')[0].href = 'CaseStudies/' + caseStudy.result.FilePath;
                        $('#severeCaseStudyTextLink')[0].innerHTML = caseStudy.result.Teaser;
                        $('#severeCaseStudyTextLink').click(function()
                        {
	                        saveUserData("Survivor Tale: " + caseStudy.result.Name);
                        });
                        
                        $('#severeCaseStudyLink')[0].innerHTML = 'Read ' + caseStudy.result.Name + "'" + 's Story';
                        $('#severeCaseStudyLink')[0].href = 'CaseStudies/' + caseStudy.result.FilePath;
                        $('#severeCaseStudyLink').click(function()
                        {
	                        saveUserData("Survivor Tale: " + caseStudy.result.Name);
                        });
                                                
                        $('#severeCaseStudyImage')[0].src = 'CaseStudies/CaseStudiesImages/' + caseStudy.result.Name + '.jpg';
                        $('#severeCaseStudyImageLink')[0].href = 'CaseStudies/' + caseStudy.result.FilePath;
                        $('#severeCaseStudyImageLink').click(function()
                        {
	                        saveUserData("Survivor Tale: " + caseStudy.result.Name);
                        });   
                                            
                        $('#commonCaseStudyTextLink')[0].href = 'CaseStudies/' + caseStudy.result.FilePath;
                        $('#commonCaseStudyTextLink')[0].innerHTML = caseStudy.result.Teaser;
                        $('#commonCaseStudyTextLink').click(function()
                        {
	                        saveUserData("Survivor Tale: " + caseStudy.result.Name);
                        });
                                                
                        $('#commonCaseStudyLink')[0].innerHTML = 'Read ' + caseStudy.result.Name + "'" + 's Story';
                        $('#commonCaseStudyLink')[0].href = 'CaseStudies/' + caseStudy.result.FilePath;
                        $('#commonCaseStudyLink').click(function()
                        {
	                        saveUserData("Survivor Tale: " + caseStudy.result.Name);
                        }); 
                                               
                        $('#commonCaseStudyImage')[0].src = 'CaseStudies/CaseStudiesImages/' + caseStudy.result.Name + '.jpg';
                        $('#commonCaseStudyImageLink')[0].href = 'CaseStudies/' + caseStudy.result.FilePath;
                        $('#commonCaseStudyImageLink').click(function()
                        {
	                        saveUserData("Survivor Tale: " + caseStudy.result.Name);
                        });
                    });
                });
                
                if ($('#introTextWrapper2').is(':visible'))
                {
                    $('#introTextWrapper2').slideDown('slow').hide();
                }
                else if ($('#diseaseTextWrapper').is(':visible'))
                {
                    $('#diseaseTextWrapper').slideDown('slow').hide();
                }
                else if ($('#tenYearErrorWrapper').is(':visible'))
                {
                    $('#tenYearErrorWrapper').slideDown('slow').hide();
                }
                    
                $('#bottomInfoBox').hide();
                $('#petInfoBox').show();
                
                if (resultType == 's')
                {
                    $('#severeResults').setTemplate($("#TemplateMostSevereTable").html());
                    $('#severeResults').processTemplate(results);
                    
                    if ($('#commonTextWrapper').is(':visible'))
                    {
                        $('#commonTextWrapper').slideDown('slow').hide();
                        $('#commonResults').hide();
                    }
                    else if ($('#emailTextWrapper').is(':visible'))
                    {
                        $('#emailFormWrapper').hide();
                        $('#emailTextWrapper').hide();
                    }
                    
                    var chartArea = document.getElementById("chart");
                    var table = document.getElementById("table");
                    chartArea.innerHTML = $.trim($('#severeChartWrapper')[0].innerHTML);
                    chartArea.innerHTML = chartArea.innerHTML.replace(/style="DISPLAY: none"/, "");
                    
                    $('#severeResults').show();
                    $('#severeTextWrapper').show();
                }
                else
                {  
                    $('#commonResults').setTemplate($("#TemplateMostCommonTable").html());
                    $('#commonResults').processTemplate(results);
                    
                    if ($('#severeTextWrapper').is(':visible'))
                    { 
                        $('#severeTextWrapper').slideDown('slow').hide();
                        $('#severeResults').hide();
                    }
                    else if ($('#emailTextWrapper').is(':visible'))
                    {
                        $('#emailFormWrapper').hide();
                        $('#emailTextWrapper').hide();
                    }
                    
                    var chartArea = document.getElementById("chart");
                    var table = document.getElementById("table");
                    chartArea.innerHTML = $.trim($('#commonResults')[0].innerHTML);
                    
                    $('#commonResults').show();
                    $('#commonTextWrapper').show();
                }
            });
        });

        var omniCode = $('#dogcat option:selected').text() + ':' + $("#breed option:selected").text() + ':' + age;
        if (firstClick)
        {
            _scTrackFormComplete(omniCode);
            firstClick = false;
        }
        else
        _scTrackFormStartComplete(omniCode);
    }
    
    function validateInput() 
    {
        var petName = $.trim($('#petname').val());
        var speciesCode = $('#dogcat').val();
        var breedCode = $('#breed').val();
        var month = $("#dobMonthDropDown").val();
        var day = $("#dobDayDropDown").val();
        var year = $("#dobYearDropDown").val();
        var zipCode = document.getElementById("zipCode");//$.trim($('#zipCode').val());
        var rgx = new RegExp(/(^-?\d\d*$)/);
        $('#error_box').text('Please enter all necessary information.');
        
        
        // //Validation on DOB (Leap Year) - Added 1/4/10 KN(Leap Year)
               var DOB = month + '/' + day + '/' +year;   
               var isValidDate = true;          
                if(!funIsDate(DOB))
                {
                     isValidDate = false;                    
                }
        //---------------------------------    

        //ORGINAL if (petName == "" || !petName.match(rgxName) || speciesCode == "" || breedCode == "" || month == "Month" || day == "Day" || year == "Year" || zipCode.value == "" || !zipCode.value.match(rgx) || zipCode.value.length < 5) 
        if ((!isValidDate) || petName == "" || !petName.match(rgxName) || speciesCode == "" || breedCode == "" || month == "Month" || day == "Day" || year == "Year" || zipCode.value == "" || !zipCode.value.match(rgx) || zipCode.value.length < 5) 
        {
            if (petName == "")
            {
                $('#petname')[0].style.backgroundColor = "yellow"; 
                _scTrackFormError("vpipetinsurance.com:missing-pet-name");
            }
            else if (!petName.match(rgxName))
            {
                $('#petname')[0].style.backgroundColor = "yellow";
                $('#petname')[0].value = "";
                _scTrackFormError("vpipetinsurance.com:invalid-pet-name");
                
                if (speciesCode != "" && 
                    breedCode != "" && 
                    month != "Month" && 
                    day != "Day" && 
                    year != "Year" &&
                    zipCode.value != "")
                {
                    $('#error_box').text('Please enter a valid pet name.');
                }
            }
            else
            {
                $('#petname')[0].style.backgroundColor = "white"; 
            }
            
            if (speciesCode == "")
            {
                $('#dogcat')[0].style.backgroundColor = "yellow";
                _scTrackFormError("vpipetinsurance.com:missing-pet-type");
            }
            else
            {
                $('#dogcat')[0].style.backgroundColor = "white";
            }
            
            if (breedCode == "")
            {
                $('#breed')[0].style.backgroundColor = "yellow";
                _scTrackFormError("vpipetinsurance.com:missing-pet-breed")
            }
            else
            {
                $('#breed')[0].style.backgroundColor = "white";
            }        
            if (month == "Month")
            {
                $('#dobMonthDropDown')[0].style.backgroundColor = "yellow";
                _scTrackFormError("vpipetinsurance.com:missing-pet-month");              
            }
            else
            {
                $('#dobMonthDropDown')[0].style.backgroundColor = "white";
            }  
             
            if (day == "Day")
            {
                $('#dobDayDropDown')[0].style.backgroundColor = "yellow";
                _scTrackFormError("vpipetinsurance.com:missing-pet-day");                 
            }
            else
            {
                $('#dobDayDropDown')[0].style.backgroundColor = "white";
            }
                            
            if (year == "Year")
            {
                $('#dobYearDropDown')[0].style.backgroundColor = "yellow";
                _scTrackFormError("vpipetinsurance.com:missing-pet-year");
            }
            else
            {
                $('#dobYearDropDown')[0].style.backgroundColor = "white";
            }
              
            //Validation on DOB - Added 1/4/10 KN
           if(!isValidDate)
           {
                 $('#dobDayDropDown')[0].style.backgroundColor = "yellow";
                 $('#dobMonthDropDown')[0].style.backgroundColor = "yellow";
                 $('#dobYearDropDown')[0].style.backgroundColor = "yellow";   
               _scTrackFormError("vpipetinsurance.com:DOB is invalid - DOB:" + DOB);               
              }
            //----------------
              
              
            if (zipCode.value == "" || !zipCode.value.match(rgx) || zipCode.value.length < 5)
            {
                if (zipCode.value == "")
                {
                    $('#zipCode')[0].style.backgroundColor = "yellow"; 
                    _scTrackFormError("vpipetinsurance.com:missing-pet-zipcode");
                }
                else if ((!zipCode.value.match(rgx) || zipCode.value.length < 5) &&
                         (petName != "" && 
                          speciesCode != "" && 
                          breedCode != "" && 
                          month != "Month" && 
                          day != "Day" && 
                          year != "Year"))
                {
                    $('#zipCode')[0].style.backgroundColor = "yellow";
                    $('#error_box').text('Please enter a valid zip code.');
                    $('#error_box').show();
                    _scTrackFormError("vpipetinsurance.com:misformatted-pet-zipcode"); 
                }
            }
            else
            {
                $('#zipCode')[0].style.backgroundColor = "white"; 
            }
            
            $('#error_box').show();
            
            return false;
        }
        else 
        {
            $('#petname')[0].style.backgroundColor = "white"; 
            $('#dogcat')[0].style.backgroundColor = "white";
            $('#breed')[0].style.backgroundColor = "white";
            $('#dobMonthDropDown')[0].style.backgroundColor = "white";
            $('#dobDayDropDown')[0].style.backgroundColor = "white";
            $('#dobYearDropDown')[0].style.backgroundColor = "white";
            $('#zipCode')[0].style.backgroundColor = "white";
            $('#error_box').hide();
            
            return true;
        }
    }

    function handleError(d) 
    {
        if (d.result.Message == undefined) return false;

        var genericImage = "images/dog_photo.jpg";
        var breed = "Golden Retreiver";
        var breedText = "Some of the top 10 conditions can be associated with age-related changes in a pet, such as osteoarthritis and renal failure. However, most of the top 10 conditions can occur at any age to any pet – purebred or mixed, those kept inside or outside.";
        var petName = "Robert's Friend Boomer";

        $("#pet_image").attr({ src: genericImage, alt: "" }).load(function() {
            //$(this).hide().fadeIn('slow');       
        });

        $("#pet_details").html("<h2>" + breed + "</h2>" + breedText);
        $("#name_box").html(petName);

        if ($('#box_common').is(':visible')) {
            $('#box_common_results').setTemplate($("#TemplateErrorMessageTable").html());
            $('#box_common_results').processTemplate(null);
            $("#box_common_results").hide().slideDown('slow');
        }
        else {
            $('#box_common_2_results').setTemplate($("#TemplateErrorMessageTable").html());
            $('#box_common_2_results').processTemplate(null);

            $('#box_expensive_results').html($('#box_common_2_results').html());

            if ($('#box_common_2').is(':visible'))
                $("#box_common_2_results").hide().slideDown('slow');
            else
                $("#box_expensive_results").hide().slideDown('slow');
        }

        return true;
    }
    
    $('a[href*=window.print()]').each(function() {
        this.href = 'javascript: _scTrackPrint(s.pageName)';
    });  
     
});

// Extension Methods
String.prototype.endsWith = function(txt,ignoreCase)
{
  var rgx;

  if(ignoreCase)
  {
    rgx = new RegExp(txt+"$","i");
  }
  else
  {
    rgx = new RegExp(txt+"$");
  }

  return this.match(rgx)!=null; 
}

function saveUserData(object)
{
    var petName = $.trim($('#petname').val());
    var speciesCode = $('#dogcat').val();
    var breedCode = $('#breed').val();
    var month = $("#dobMonthDropDown").val();
    var day = $("#dobDayDropDown").val();
    var year = $("#dobYearDropDown").val();
    var dob = month + "/" + day + "/" + year;
    var zipCode = $.trim($('#zipCode').val());
    var userID = document.getElementById("userId").value;
        
    $.getJSON("./GetJsonData.ashx", { f: "userdata", ui: userID, co: object, i: petName, s: speciesCode, b: breedCode, dob: dob, z: zipCode, om: omCode, ec: ecCode, contentType: 'application/json; charset=utf-8' },
    function(status) 
    {
        
    });
    
    if (object == "Restart" ||
        object == "Slider: Who is VPI" ||
        object == "Slider: How VPI Works" ||
        object == "Slider: Value Of Insurance" ||
        object == "Slider: Arrow")
    {
        _scTrackClick(object);
    }
        
}
function getConditionDescription(type, diagnosisCode, cost) 
{
    var tracker = type + ": " + diagnosisCode;
    saveUserData(tracker);
    
    // Determine the index of this diagnosisCode in resultSet
    //    Save index to global page variable
    for (var i = 0; i < resultSet.result.length; i++)
    {
        if (resultSet.result[i].DiagnosisCode == diagnosisCode)
        {
            resultIndex = i;
        }
    }
    
    // Get disease description 
    $.getJSON("./GetJsonData.ashx", { f: "disease", d: diagnosisCode, contentType: 'application/json; charset=utf-8' },
    function(disease) 
    {
        var description = disease.result.Description;
        var newCost = cost;
        description = description.replace("[$XXX]", newCost);
        $("#diseaseText").html(description); 
    });
    
    // Hide current display
    if ($('#commonTextWrapper').is(':visible'))
    {
        $('#commonTextWrapper').slideDown('slow').hide();
        $('#commonResults').hide();
    }
    else if ($('#severeTextWrapper').is(':visible'))
    { 
        $('#severeTextWrapper').slideDown('slow').hide();
        $('#severeResults').hide();
    }  
    else if ($('#emailTextWrapper').is(':visible'))
    { 
        $('#emailTextWrapper').slideDown('slow').hide();
    }
    else if ($('#tenYearErrorWrapper').is(':visible'))
    {
        $('#tenYearErrorWrapper').slideDown('slow').hide();
    }
    
    // Hide prev/next nav links for first and last item in list
    var prevLink = document.getElementById('prevDiseaseLink');
    var nextLink = document.getElementById('nextDiseaseLink');
    
    if (resultIndex == 0)
    {
        prevLink.disabled = true;
        nextLink.disabled = false;
    }
    else if (resultIndex == (resultSet.result.length - 1))
    {
        nextLink.disabled = true; 
        prevLink.disabled = false;
    } 
    else
    {
        prevLink.disabled = false;
        nextLink.disabled = false;
    }
         
    // Show disease display
    $('#diseaseTextWrapper').show();
}

function prev()
{
    saveUserData("DiseaseDescription_Previous");
    
    if (resultIndex > 0 &&
       (resultIndex <= (resultSet.result.length - 1)))
    {
        // get diagnosis code from resultSet
        var result = resultSet.result[resultIndex - 1];
        var type = "";
        if (resultType == "f")
        {
            type = "Common";
        }
        else 
        {
            type = "Severe";
        }
        getConditionDescription(type, result.DiagnosisCode, result.Cost);
    }
}

function home()
{
    if (resultSet != null)
    {
        $('#diseaseTextWrapper').slideDown('slow').hide();
        
        if (resultType == "s")
        {
            $('#severeResults').setTemplate($("#TemplateMostSevereTable").html());
            $('#severeResults').processTemplate(resultSet);
            $('#severeResults').show();
            $('#severeTextWrapper').show();
        }
        else
        {  
            $('#commonResults').setTemplate($("#TemplateMostCommonTable").html());
            $('#commonResults').processTemplate(resultSet);   
            $('#commonResults').show();
            $('#commonTextWrapper').show();
        }
    }
    else
    {
        $('#submit').click();
    }
    saveUserData("DiseaseDescription_Home");
}


function next()
{
    saveUserData("DiseaseDescription_Next");
    
    if ((resultIndex < (resultSet.result.length - 1)) &&
        resultIndex >= 0)
    {
        // get diagnosis code from resultSet
        var result = resultSet.result[resultIndex + 1];
        var type = "";
        if (resultType == "f")
        {
            type = "Common";
        }
        else 
        {
            type = "Severe";
        }
        getConditionDescription(type, result.DiagnosisCode, result.Cost);
    }
}

function CheckInputState()
{
    var speciesDDL = document.getElementById('dogcat');
    var breedDDL = document.getElementById('breed');
    var month = $("#dobMonthDropDown").val();
    var day = $("#dobDayDropDown").val();
    var year = $("#dobYearDropDown").val();
    var zipCode = $.trim($('#zipCode').val());
    
    if (speciesDDL.children.length >=3 &&
        breedDDL.children.length <= 1  &&
        (month != 'Month'              ||
        day != 'Day'                   ||
        year != 'Year'                 ||
        zipCode != ""))
    {
        $('#dogcat')[0].style.backgroundColor = "yellow";
        $('#breed')[0].style.backgroundColor = "yellow";
    }  
}

function print()
{
    var petsAge = document.getElementById("petAge").value;
    var petName = $.trim($('#petname').val());
    var petSpecies = $('#dogcat').val();
    var petBreed = $("#breed option:selected").text();
    var chartArea = document.getElementById("chart");
    var table = document.getElementById("table");
    var userID = document.getElementById("userId").value;
    
    var hasInnerText = chartArea.innerText != undefined ? true: false;
    if (!hasInnerText)
    {
        table = chartArea.textContent;
        var browser = "Firefox";
    }
    else
    {
        table = chartArea.innerText;
        var browser = "IE";
    }
  
    // Print PDF
    $.getJSON("./GetJsonData.ashx", { f: "print", ui: userID, a: petsAge, i: petName, s: petSpecies, n: petBreed, t: table, r: resultType, brow : browser, contentType: 'application/json; charset=utf-8' },
    function(filePath) 
    {
        if (filePath.result.substring(0, 4) == "http")
        {
            window.open(filePath.result, '_blank' ,'resizable=yes,scrollbars=yes');
        }
        else
        {
            alert(filePath.result);
        }
    });
}

var emailAddress;
var emailFriendsAddress;
var emailSubject;
function emailFriend()
{
    var chartArea = document.getElementById("chart");
    var table = document.getElementById("table");
    var textArea = document.getElementById("mailText");
    
    textArea.value = textArea.defaultValue.replace(/breed/, $("#breed option:selected").text() + 's');
    textArea.value = textArea.value.replace(/petname/, $.trim($('#petname').val()));
    
    $('#mailTextArea')[0].innerHTML = textArea.value;
    
    emailSubject = document.getElementById("emailSubject");
    emailSubject.value = "";
    emailSubject.disabled = true;
    
    // Hide current display
    if ($('#commonTextWrapper').is(':visible'))
    {   
        $('#commonTextWrapper').slideDown('slow').hide();
        $('#commonResults').hide();
    }
    else if ($('#severeTextWrapper').is(':visible'))
    {       
        chartArea.innerHTML = chartArea.innerHTML.replace(/ffffff/g, '003366');
        
        $('#severeTextWrapper').slideDown('slow').hide();
        $('#severeResults').hide();
    } 
    else if ($('#diseaseTextWrapper').is(':visible'))
    {  
        if (resultType == "s")
        {
            chartArea.innerHTML = chartArea.innerHTML.replace(/ffffff/g, '003366');
        }
        
        $('#diseaseTextWrapper').slideDown('slow').hide();
    }
    
    $('#emailTextWrapper').show();  
    $('#emailFormWrapper').show();
    
    saveUserData("Open_EmailFriend");
    _scTrackClick("Open_EmailFriend");
}

function CreateEmailSubject()
{
    if ($.trim($('#emailName').val()) != "")
    {
        emailSubject.value = $.trim($('#emailName').val()) + ' has sent you useful info about pet healthcare costs!';
    }
}

function SendEmail()
{
    var userName = $.trim($('#emailName').val())
    var petName = $.trim($('#petname').val());
    var breed = $("#breed option:selected").text();
    var emailAddress = $.trim($('#emailAddress').val());
    var emailAddressFriend = $.trim($('#emailFriendsAddress').val());
    var chartArea = document.getElementById("chart");
    var imagePath = document.getElementById("imagePath").value;
    var resultType = document.getElementById("resultType").value;
    var table = document.getElementById("table");
    
    var hasInnerText = chartArea.innerText != undefined ? true: false;
    if (!hasInnerText)
    {
        table = chartArea.textContent;
        var browser = "Firefox";
    }
    else
    {
        table = chartArea.innerText;
        var browser = "IE";
    }

    // Send Email
    $.getJSON("./GetJsonData.ashx", { f: "email", u: userName, i: petName, n: breed, e: emailAddress, g: emailAddressFriend, v: emailSubject.value, t: table, r: resultType, j: imagePath, brow : browser, contentType: 'application/json; charset=utf-8' },
    function(status) 
    {
        // Clear fields
        if (status.result.length > 0)
        {            
            if (status.result[1] != "")
            {
                document.getElementById(status.result[1]).value = "";
            }
        }
        alert(status.result[0]);        
    });
    
    saveUserData("Send_EmailFriend");
    _scTrackClick("Send_EmailFriend");
}

function ReturnToResults()
{
    $('#emailTextWrapper').slideDown('slow').hide();
    $('#emailFormWrapper').hide(); 
    
    // Hide current display
    if (resultType == 'f')
    {   
        $('#severeTextWrapper').hide();
        $('#severeResults').hide();
        $('#commonTextWrapper').show();
        $('#commonResults').show();
    }
    else
    { 
        $('#commonTextWrapper').hide();
        $('#commonResults').hide();
        $('#severeTextWrapper').show();
        $('#severeResults').show();
    } 
    
    saveUserData("ReturnToResults_EmailFriend");
}

function TenYearError()
{
    var day = document.getElementById('dobDayDropDown');
    var month = document.getElementById('dobMonthDropDown');
    var today = new Date();

//Original  
//    day.selectedIndex = today.getDate() + 1; 
//    month.selectedIndex = today.getMonth() + 1;

//The Original above will messed up if the the DOB is at the end of each month
//example: 12/31/2009 at the same time the sysdate is 12/31/2009
 
 //new if age > 9 just reset mon,day to 1 and + 1 to year which is index[2]
    var year = document.getElementById('dobYearDropDown');      
    day.selectedIndex = 1; 
    month.selectedIndex = 1;
    year.selectedIndex = 2;      
    //-------------------   
 
    var obj = document.getElementById("submit");
    fireEvent(obj, "click");
}

function fireEvent(element,eventType)
{
    if (document.createEventObject){
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on'+eventType,evt)
    }
    else
    {
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(eventType, true, true ); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}

// Image Buttons
function SubmitMouseOver()
{
    var submit = document.getElementById("submit");
    submit.src ='images/calcDwn.jpg';
}

function SubmitMouseOff()
{
    var submit = document.getElementById("submit");
    submit.src ='images/calcUp.jpg';
}

function RestartMouseOver()
{
    var reset = document.getElementById("reset");
    reset.src ='images/resetDwn.jpg';
}

function RestartMouseOff()
{
    var reset = document.getElementById("reset");
    reset.src ='images/resetUp.jpg';
}

function SendEmailMouseOver()
{
    var sendEmail = document.getElementById("sendEmailImage");
    sendEmail.src ='EmailTemplates/EmailImages/sendEmailDwn.png';
}

function SendEmailMouseOff()
{
    var sendEmail = document.getElementById("sendEmailImage");
    sendEmail.src ='EmailTemplates/EmailImages/sendEmailUp.png';
}

function ReturnToResultsMouseOver()
{
    var returnResults = document.getElementById("returnToCoCImage");
    returnResults.src ='EmailTemplates/EmailImages/emailReturnDwn.png';
}

function ReturnToResultsMouseOff()
{
    var returnResults = document.getElementById("returnToCoCImage");
    returnResults.src ='EmailTemplates/EmailImages/emailReturnUp.png';
}

function SevereEmailMouseOver()
{
    var severeEmail = document.getElementById("severeEmailImage");
    severeEmail.src ='images/emailDwn.png';
}

function SevereEmailMouseOff()
{
    var severeEmail = document.getElementById("severeEmailImage");
    severeEmail.src ='images/emailUp.png';
}

function SevereFaxMouseOver()
{
    var severeFax = document.getElementById("severeFaxImage");
    severeFax.src ='images/faxDwn.png';
}

function SevereFaxMouseOff()
{
    var severeFax = document.getElementById("severeFaxImage");
    severeFax.src ='images/faxUp.png';
}

function SevereQuoteMouseOver()
{
    var severeQuote = document.getElementById("severeQuoteImage");
    severeQuote.src ='images/quoteDwn.png';
}

function SevereQuoteMouseOff()
{
    var severeQuote = document.getElementById("severeQuoteImage");
    severeQuote.src ='images/quoteUp.png';
}

function CommonEmailMouseOver()
{
    var commonEmail = document.getElementById("commonEmailImage");
    commonEmail.src ='images/emailDwn.png';
}

function CommonEmailMouseOff()
{
    var commonEmail = document.getElementById("commonEmailImage");
    commonEmail.src ='images/emailUp.png';
}

function CommonFaxMouseOver()
{
    var commonFax = document.getElementById("commonFaxImage");
    commonFax.src ='images/faxDwn.png';
}

function CommonFaxMouseOff()
{
    var commonFax = document.getElementById("commonFaxImage");
    commonFax.src ='images/faxUp.png';
}

function CommonQuoteMouseOver()
{
    var commonQuote = document.getElementById("commonQuoteImage");
    commonQuote.src ='images/quoteDwn.png';
}

function CommonQuoteMouseOff()
{
    var commonQuote = document.getElementById("commonQuoteImage");
    commonQuote.src ='images/quoteUp.png';
}

function DiseaseEmailMouseOver()
{
    var diseaseEmail = document.getElementById("diseaseEmailImage");
    diseaseEmail.src ='images/emailDwn.png';
}

function DiseaseEmailMouseOff()
{
    var diseaseEmail = document.getElementById("diseaseEmailImage");
    diseaseEmail.src ='images/emailUp.png';
}

function DiseaseFaxMouseOver()
{
    var diseaseFax = document.getElementById("diseaseFaxImage");
    diseaseFax.src ='images/faxDwn.png';
}

function DiseaseFaxMouseOff()
{
    var diseaseFax = document.getElementById("diseaseFaxImage");
    diseaseFax.src ='images/faxUp.png';
}

function DiseaseQuoteMouseOver()
{
    var diseaseQuote = document.getElementById("diseaseQuoteImage");
    diseaseQuote.src ='images/quoteDwn.png';
}

function DiseaseQuoteMouseOff()
{
    var diseaseQuote = document.getElementById("diseaseQuoteImage");
    diseaseQuote.src ='images/quoteUp.png';
}  
      
// Carousel pager
function carouselPager(carousel) 
{
    $('.jcarousel-control a').bind('click', function()
    {
	    var index = $('.jcarousel-control a').index(this);
	    carousel.scroll(jQuery.jcarousel.intval(index + 2));
        return false;
    });
    
    $('.jcarousel-prev').bind('click', function()
    {
	    saveUserData("Slider: Arrow");
    });
    
    $('.jcarousel-next').bind('click', function()
    {
	    saveUserData("Slider: Arrow");
    });
};
		
function InitializeCarousel()
{
    var carousel = document.getElementById("mycarousel");
    jQuery(carousel).jcarousel( {scroll:1, wrap:"last", initCallback: carouselPager} );
}

function InitializeSlideShow()
{
    var infoBox = document.getElementById("bottomInfoBox");
    $(infoBox).crossSlide({ sleep: 2, fade: 1 }, 
		[
		{ src: 'images/rot1.jpg' },
		{ src: 'images/rot2.jpg' },
		{ src: 'images/rot3.jpg' },
		{ src: 'images/rot4.jpg' },
		{ src: 'images/rot5.jpg' }
		]);
}

function InitializeDisclaimer()
{
    //initiate Fancybox
    $("a.disclaimer").fancybox({ 'frameWidth': 660, 'frameHeight': 600 });
}


function funIsDate(dtStr){
	if(dtStr == "")
		return false;
		
    dtStr= funTrimString(dtStr);
    re = /^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/

    if (re.test(dtStr)) 
    {//alert("good");
         return true;
         }
    else
    {//alert("bad");
         return false;
         }
}
function funTrimString(strInString) {
	if (strInString != '' && strInString != null){
		strInString = strInString.replace( /^\s+/g, "" );// strip leading
		return strInString.replace( /\s+$/g, "" );// strip trailing
	}
	return strInString;
}