﻿/*================================
	Naturopath forms & functions
==================================*/

var requestStep = 0;


$J(document).ready(function() {
    // Naturopath Landing
    //=============================================================//
    var maxStripX = 0;
    var minStripX = 0;
    var strip = $J('.naturopathSelector .naturopathStrip')[0];
    var stripNext = $J('.naturopathSelector .nextArrow')[0];
    var stripPrev = $J('.naturopathSelector .prevArrow')[0];
    var selectionArrow = $J('.naturopathSelector .naturopathStrip .selectionArrow')[0];
    var targetStripX = 0;

    if (strip != undefined) {
        $J('.naturopathSelectionTool .contentItem').css({ 'opacity': 0 });
        $J('.naturopathSelectionTool .naturopathPhoto').css({ 'opacity': 0 });
        $J('.naturopathSelectionTool .selectedNaturopath').css('opacity', 1);

        tempWidth = $J('a', strip).length * 65;
        $J(strip).css('width', tempWidth + 'px');

        minStripX = (tempWidth - 390) * -1;

        //Change selection
        $J('a', strip).click(function() {
            tempX = $J(this)[0].offsetLeft + 21;
            $J(selectionArrow).css('left', tempX + 'px');

            //Cross fade everything
            for (i = 0; i < $J('a', strip).length; i++) {
                if ($J('a', strip)[i] == $J(this)[0]) {
                    //Active Content                                                    
                    temp = $J('.naturopathSelectionTool .contentItem')[i];
                    $J(temp).addClass('selectedNaturopath');
                    $J(temp).stop().fadeTo('normal', 1.0);


                    temp = $J('.naturopathSelectionTool .naturopathPhoto')[i];
                    $J(temp).addClass('selectedNaturopath');
                    $J(temp).stop().fadeTo('normal', 1.0);

                } else {
                    //Inactive content
                    temp = $J('.naturopathSelectionTool .contentItem')[i];

                    if ($J(temp).hasClass('selectedNaturopath') == true) {
                        $J(temp).stop().fadeTo('normal', 0.0, function() { $J(this).removeClass('selectedNaturopath'); });

                        temp = $J('.naturopathSelectionTool .naturopathPhoto')[i];
                        $J(temp).stop().fadeTo('normal', 0.0, function() { $J(this).removeClass('selectedNaturopath'); });
                    }
                }

            }

            $J(this).blur();
            return false;
        });
        
        //Scroll to the left
        $J(stripPrev).click(function() {
            if (targetStripX < maxStripX) {
                targetStripX += 65;
                $J(strip).stop().animate({ left: targetStripX + "px" }, 200);
            }

            $J(this).blur();
            return false;
        });

        //Scroll to the right
        $J(stripNext).click(function() {
            if (targetStripX > minStripX) {
                targetStripX -= 65;
                $J(strip).stop().animate({ left: targetStripX + "px" }, 200);
            }

            $J(this).blur();
            return false;
        });

    }


    // Common functions 
    //=============================================================//

    //Step Status
    if ($J('.requestStep1').length > 0) requestStep = 1;
    else if ($J('.requestStep2').length > 0) requestStep = 2;
    else if ($J('.requestStep3').length > 0) requestStep = 3;
    else if ($J('.requestStep4').length > 0) requestStep = 4;
    else if ($J('.requestStep5').length > 0) requestStep = 5;
    else if ($J('.requestStep6').length > 0) requestStep = 6;
    else if ($J('.requestStep7').length > 0) requestStep = 7;
    else if ($J('.requestStep8').length > 0) requestStep = 8;
    else if ($J('.requestStep9').length > 0) requestStep = 9;
    else if ($J('.requestStep10').length > 0) requestStep = 10;
    else if ($J('.requestStep11').length > 0) requestStep = 11;

    for (i = 1; i <= requestStep; i++) {
        $J('.naturopathStepStatus .step' + i).css('display', 'block');
    }

    tempLeft = 40 + (requestStep - 1) * 62;
    $J('.naturopathStepStatus .pointer').css('left', tempLeft + 'px');




    //Gender Select
    var genderField = $J('.naturopathRequest .genderSelect input[type=hidden]')[0]; //Gender field

    $J('.naturopathRequest .genderSelect .genderMen').click(function() {
        if ($J(genderField).val() == "female") {
            $J(this).addClass('genderOn');
            $J('.naturopathRequest .genderSelect .genderWomen').removeClass('genderOn');
            $J(genderField).val('male');
        } else if ($J(genderField).val() == "") {
            $J(this).addClass('genderOn');
            $J(genderField).val('male');
        }
        $J('.naturopathRequest .femaleOnlyContent').css('display', 'none');
        $J('.naturopathRequest .femaleOnlyContent a').removeClass('selected');
        $J('.naturopathRequest .femaleOnlyContent input[type=hidden]').val('');

        $J(this).blur();
        return false;
    });

    $J('.naturopathRequest .genderSelect .genderWomen').click(function() {
        if ($J(genderField).val() == "male") {
            $J(this).addClass('genderOn');
            $J('.naturopathRequest .genderSelect .genderMen').removeClass('genderOn');
            $J(genderField).val('female');
        } else if ($J(genderField).val() == "") {
            $J(this).addClass('genderOn');
            $J(genderField).val('female');
        }
        $J('.naturopathRequest .femaleOnlyContent').css('display', 'block');
        
        $J(this).blur();
        return false;
    });

    //Blank Button Radio Sets
    $J('.buttonRadioSet a').click(function() {
        tempParent = $J(this).parent();
        tempHidden = $J('input[type=hidden]', tempParent)[0];
        tempValue = $J(this).attr('title');

        $J('a', tempParent).removeClass('selected');
        $J(this).addClass('selected');

        $J(tempHidden).val(tempValue);
        if (tempValue == "Yes" && $J(tempParent).hasClass('withTextbox')) {
            //Show text box
            var tempHeight = $J('.naturopathMoreTextInfo .moreInfoContent')[0].offsetHeight;
            $J('.naturopathMoreTextInfo').stop().animate({ height: tempHeight + "px" }, 400);

        } else if (tempValue != "Yes" && $J(tempParent).hasClass('withTextbox')) {
            //Hide text box
            $J('.naturopathMoreTextInfo').stop().animate({ height: 0 + "px" }, 400);
        }

        $J(this).blur();
        return false;
    });


    // Question specific functions 
    //=============================================================//

    /* Step 1 - Slider */
    var step1max = 486;
    var step1Slider = $J('.requestStep1 .valueSlider')[0];
    var step1SliderField = $J('.requestStep1 .sliderContent input[type=hidden]')[0];
    var step1Track = $J('.requestStep1 .sliderControl .sliderTrackOver');

    $J('.requestStep1 .valueSlider').slider({
        value: 0,
        min: 0,
        max: 486,
        step: 1,
        animate: true,
        slide: function(event, ui) {
            $J('.requestStep1 .valueSlider a').blur();
        },
        stop: function(event, ui) {
            var sliderVal = $J(step1Slider).slider('option', 'value');

            if ((sliderVal / step1max) > 0.89) updateSlider(step1Slider, 486, step1Track, step1SliderField, 'Family member');
            else if ((sliderVal / step1max) > 0.66) updateSlider(step1Slider, 375, step1Track, step1SliderField, 'Friend');
            else if ((sliderVal / step1max) > 0.43) updateSlider(step1Slider, 264, step1Track, step1SliderField, 'Partner');
            else if ((sliderVal / step1max) > 0.20) updateSlider(step1Slider, 153, step1Track, step1SliderField, 'Child');
            else updateSlider(step1Slider, 42, step1Track, step1SliderField, 'Myself');

        }
    });


    $J('.requestStep1 .labelMyself').click(function() {
        updateSlider(step1Slider, 42, step1Track, step1SliderField, 'Myself');
    });

    $J('.requestStep1 .labelChild').click(function() {
        updateSlider(step1Slider, 153, step1Track, step1SliderField, 'Child');
    });

    $J('.requestStep1 .labelPartner').click(function() {
        updateSlider(step1Slider, 264, step1Track, step1SliderField, 'Partner');
    });

    $J('.requestStep1 .labelFriend').click(function() {
        updateSlider(step1Slider, 375, step1Track, step1SliderField, 'Friend');
    });

    $J('.requestStep1 .labelFamilyMember').click(function() {
        updateSlider(step1Slider, 486, step1Track, step1SliderField, 'Family member');
    });

    /*=============================================================================================*/

    /* Step 3 - Slider A */
    var step3max = 486;
    var step3aSlider = $J('.requestStep3 .sliderContentA .valueSlider')[0];
    var step3aSliderField = $J('.requestStep3 .sliderContentA input[type=hidden]')[0];
    var step3aTrack = $J('.requestStep3 .sliderContentA .sliderTrackOver');

    $J('.requestStep3 .sliderContentA .valueSlider').slider({
        value: 0,
        min: 0,
        max: 486,
        step: 1,
        animate: true,
        slide: function(event, ui) {
            $J('.requestStep3 .sliderContentA .valueSlider a').blur();
        },
        stop: function(event, ui) {
            var sliderVal = $J(step3aSlider).slider('option', 'value');

            if ((sliderVal / step3max) > 0.85) updateSlider(step3aSlider, 486, step3aTrack, step3aSliderField, 'More than 2 a day');
            else if ((sliderVal / step3max) > 0.54) updateSlider(step3aSlider, 338, step3aTrack, step3aSliderField, '2 a day');
            else if ((sliderVal / step3max) > 0.24) updateSlider(step3aSlider, 198, step3aTrack, step3aSliderField, '1 a day');
            else updateSlider(step3aSlider, 42, step3aTrack, step3aSliderField, 'Never');

        }
    });


    $J('.requestStep3 .sliderContentA .labelNever').click(function() {
        updateSlider(step3aSlider, 42, step3aTrack, step3aSliderField, 'Never');
    });

    $J('.requestStep3 .sliderContentA .labelOne').click(function() {
        updateSlider(step3aSlider, 198, step3aTrack, step3aSliderField, '1 a day');
    });

    $J('.requestStep3 .sliderContentA .labelTwo').click(function() {
        updateSlider(step3aSlider, 338, step3aTrack, step3aSliderField, '2 a day');
    });

    $J('.requestStep3 .sliderContentA .labelMore').click(function() {
        updateSlider(step3aSlider, 486, step3aTrack, step3aSliderField, 'More than 2 a day');
    });

    /* Step 3 - Slider B */
    var step3bSlider = $J('.requestStep3 .sliderContentB .valueSlider')[0];
    var step3bSliderField = $J('.requestStep3 .sliderContentB input[type=hidden]')[0];
    var step3bTrack = $J('.requestStep3 .sliderContentB .sliderTrackOver');

    $J('.requestStep3 .sliderContentB .valueSlider').slider({
        value: 0,
        min: 0,
        max: 486,
        step: 1,
        animate: true,
        slide: function(event, ui) {
            $J('.requestStep3 .sliderContentB .valueSlider a').blur();
        },
        stop: function(event, ui) {
            var sliderVal = $J(step3bSlider).slider('option', 'value');

            if ((sliderVal / step3max) > 0.85) updateSlider(step3bSlider, 486, step3bTrack, step3bSliderField, 'More than 2 a day');
            else if ((sliderVal / step3max) > 0.54) updateSlider(step3bSlider, 338, step3bTrack, step3bSliderField, '2 a day');
            else if ((sliderVal / step3max) > 0.24) updateSlider(step3bSlider, 198, step3bTrack, step3bSliderField, '1 a day');
            else updateSlider(step3bSlider, 42, step3bTrack, step3bSliderField, 'Never');

        }
    });


    $J('.requestStep3 .sliderContentB .labelNever').click(function() {
        updateSlider(step3bSlider, 42, step3bTrack, step3bSliderField, 'Never');
    });

    $J('.requestStep3 .sliderContentB .labelOne').click(function() {
        updateSlider(step3bSlider, 198, step3bTrack, step3bSliderField, '1 a day');
    });

    $J('.requestStep3 .sliderContentB .labelTwo').click(function() {
        updateSlider(step3bSlider, 338, step3bTrack, step3bSliderField, '2 a day');
    });

    $J('.requestStep3 .sliderContentB .labelMore').click(function() {
        updateSlider(step3bSlider, 486, step3bTrack, step3bSliderField, 'More than 2 a day');
    });

    /*=============================================================================================*/

    /* Step 4 - Slider A */
    var step4max = 486;
    var step4Slider = $J('.requestStep4 .valueSlider')[0];
    var step4SliderField = $J('.requestStep4 .sliderContent input[type=hidden]')[0];
    var step4Track = $J('.requestStep4 .sliderTrackOver');

    $J('.requestStep4 .valueSlider').slider({
        value: 0,
        min: 0,
        max: 486,
        step: 1,
        animate: true,
        slide: function(event, ui) {
            $J('.requestStep4 .valueSlider a').blur();
        },
        stop: function(event, ui) {
            var sliderVal = $J(step4Slider).slider('option', 'value');

            if ((sliderVal / step4max) > 0.95) updateSlider(step4Slider, 486, step4Track, step4SliderField, '10');
            else if ((sliderVal / step4max) > 0.86) updateSlider(step4Slider, 442, step4Track, step4SliderField, '9');
            else if ((sliderVal / step4max) > 0.77) updateSlider(step4Slider, 397, step4Track, step4SliderField, '8');
            else if ((sliderVal / step4max) > 0.68) updateSlider(step4Slider, 353, step4Track, step4SliderField, '7');
            else if ((sliderVal / step4max) > 0.59) updateSlider(step4Slider, 308, step4Track, step4SliderField, '6');
            else if ((sliderVal / step4max) > 0.50) updateSlider(step4Slider, 264, step4Track, step4SliderField, '5');
            else if ((sliderVal / step4max) > 0.41) updateSlider(step4Slider, 219, step4Track, step4SliderField, '4');
            else if ((sliderVal / step4max) > 0.32) updateSlider(step4Slider, 175, step4Track, step4SliderField, '3');
            else if ((sliderVal / step4max) > 0.22) updateSlider(step4Slider, 130, step4Track, step4SliderField, '2');
            else if ((sliderVal / step4max) > 0.13) updateSlider(step4Slider, 86, step4Track, step4SliderField, '1');
            else updateSlider(step4Slider, 42, step4Track, step4SliderField, 'Unsure');

        }
    });


    $J('.requestStep4 .labelUnsure').click(function() { updateSlider(step4Slider, 42, step4Track, step4SliderField, 'Unsure'); });
    $J('.requestStep4 .labelOne').click(function() { updateSlider(step4Slider, 86, step4Track, step4SliderField, '1'); });
    $J('.requestStep4 .labelTwoe').click(function() { updateSlider(step4Slider, 130, step4Track, step4SliderField, '2'); });
    $J('.requestStep4 .labelThree').click(function() { updateSlider(step4Slider, 175, step4Track, step4SliderField, '3'); });
    $J('.requestStep4 .labelFour').click(function() { updateSlider(step4Slider, 219, step4Track, step4SliderField, '4'); });
    $J('.requestStep4 .labelFive').click(function() { updateSlider(step4Slider, 264, step4Track, step4SliderField, '5'); });
    $J('.requestStep4 .labelSix').click(function() { updateSlider(step4Slider, 308, step4Track, step4SliderField, '6'); });
    $J('.requestStep4 .labelSeven').click(function() { updateSlider(step4Slider, 353, step4Track, step4SliderField, '7'); });
    $J('.requestStep4 .labelEight').click(function() { updateSlider(step4Slider, 397, step4Track, step4SliderField, '8'); });
    $J('.requestStep4 .labelNine').click(function() { updateSlider(step4Slider, 442, step4Track, step4SliderField, '9'); });
    $J('.requestStep4 .labelTen').click(function() { updateSlider(step4Slider, 486, step4Track, step4SliderField, '10'); });
    
    
    //Naturopath validation event set in formFunctions.js

});


function updateSlider(slider, value, track, hiddenField, hiddenValue){
    $J(slider).slider('option', 'value', value);
    temp =  $J(slider).slider('option', 'value') + 11;
	$J(track).css('width', temp+'px'); 	
	$J(hiddenField).val(hiddenValue);
}


function naturopathValidation(){    
   
    naturoPageIsValid = true;
        
    $J('.naturopathRequest .formContent input[type=hidden]').each(function(){
    
        if($J(this).parent().parent().hasClass('femaleOnlyContent') == false){
            //Not female only questions
            if($J(this).attr('value') == "" || $J(this).attr('value') == null) naturoPageIsValid = false;
        
        }else if($J('.genderSelect input[type=hidden]').val() == 'female'){
            //Female only questions and is female
            if($J(this).attr('value') == "" || $J(this).attr('value') == null) naturoPageIsValid = false;
        }
    });
    
    $J('.naturopathRequest .formContent input[type=text]').each(function(){
        if($J(this).attr('value') == "" || $J(this).attr('value') == null) naturoPageIsValid = false;
    });
    
    
    //Text areas paired with input
    $J('.requestStep5 input[type=hidden]').each(function(){
        if($J(this).attr('value') == "Yes"){
            temp = $J('.requestStep5 textarea')[0];
            if( $J(temp).attr('value') == $J(temp).attr('title') || $J(temp).attr('value') == "" ){ 
                $J(temp).parent().addClass('fieldError');
                naturoPageIsValid = false;
            }else $J(temp).parent().removeClass('fieldError');
        }
    });
    
    //Check boxes with text fields    
    if($J('.requestStep6').length > 0){
        tempChecks = $J('.requestStep6 input[type="hidden"]');
        tempTexts = $J('.requestStep6 textarea');
                  
        for(q=0; q < tempChecks.length; q++){
            if( $J(tempChecks[q]).attr('value') == 'true' && ($J(tempTexts[q]).attr('value') == $J(tempTexts[q]).attr('title') || $J(tempTexts[q]).attr('value') == "" )){ 
                $J(tempTexts[q]).parent().addClass('fieldError');
                naturoPageIsValid = false;
            }else $J(tempTexts[q]).parent().removeClass('fieldError');
        }
    }
    
    //Text areas paired with input
    $J('.requestStep7 input[type=hidden]').each(function(){
        if($J(this).attr('value') == "Yes"){
            temp = $J('.requestStep7 textarea')[0];
            if( $J(temp).attr('value') == $J(temp).attr('title') || $J(temp).attr('value') == "" ){ 
                $J(temp).parent().addClass('fieldError');
                naturoPageIsValid = false;
            }else $J(temp).parent().removeClass('fieldError');
        }
    });
    
    $J('.requestStep8 textarea').each(function(){
        if( $J(this).attr('value') == $J(this).attr('title') || $J(this).attr('value') == "" ){
            $J(this).parent().addClass('fieldError');
            naturoPageIsValid = false;
        }else $J(this).parent().removeClass('fieldError');
    });
    
    //Text areas paired with input
    $J('.requestStep10 input[type=hidden]').each(function(){
        if($J(this).attr('value') == "Yes"){
            temp = $J('.requestStep10 textarea')[0];
            if( $J(temp).attr('value') == $J(temp).attr('title') || $J(temp).attr('value') == "" ){ 
                $J(temp).parent().addClass('fieldError');
                naturoPageIsValid = false;
            }else $J(temp).parent().removeClass('fieldError');
        }
    });
    
    if(naturoPageIsValid == false) $J('.naturopathRequest .requestValidation').css('display', 'block');
    
    return( naturoPageIsValid );
}
