﻿var curHeight = 412;
var curPos = 1;
var numTests = 0;
var allowContinue1 = true;
var allowContinue2 = false;
var allowContinue3 = false;
var allowContinue4 = false;
var emailOK = false;
var usernameOK = true;
var supressForm = false;
var medicalSuppress = false;
var galleryTrackers = new Array();
var isSettingsPage = false;
                  

function heightChange(heightToChangeTo)
{
    $('testArea').tween('height', [curHeight, heightToChangeTo]);
    $('winLeft').tween('height', [curHeight, heightToChangeTo]);
    $('winRight').tween('height', [curHeight, heightToChangeTo]);
    curHeight = heightToChangeTo;
}
function takeSurvey()
{
    window.open('survey.aspx','surveypopout');
}
function openHelp(helpTopic)
{
    window.open('help.html#' + helpTopic,'surveypopout', 'resizable=no,status=yes,scrollbars=yes,width=650,height=400');
}
function openReport()
{
    window.open('reports.aspx','reportOut', 'resizable=no,status=yes,scrollbars=yes,width=650,height=400');
}

function doVids(vidNo)
{
    try
    {
        // expect a most of 10
        for (i=1;i<=numTests;i++)
        {
            var vpanel = $('vidp' + i);
            var v = $('vid' + i);
            if (vidNo == i)
            {
               vpanel.setStyle('display','block');       
            }
            else
            {
                vpanel.setStyle('display','none'); 
                if (navigator.appName.indexOf("Microsoft") != -1) 
                {
                    v.Play();
                }
            }
        }
    } catch (ee) {}
}

function prevPage()
{
    if (allowContinue1)
    {
        p = curPos;
        p = p - 1;
        if (p < 1)
            p = 1;
        scrollTo(p);
    }
}
function nextPage()
{
    if (allowContinue1)
    {
        p = curPos;
        p = p + 1;
        if (p > numFrames)
            p = numFrames;
        scrollTo(p);
    }
}

function scrollBarTo(index)
{
    // now let's scroll...
    var x = progressOffset - (progressWidth * index);
    var fM = $('actualBar');
    var myTransition = new Fx.Transition(Fx.Transitions.Sine, 6);
    var fMscroller = new Fx.Scroll(fM, { duration:'500', transition:myTransition.easeOut})
    fMscroller.start(x,0);
}

function hilightMarks(index)
{
    for (i=0;i<frames.length;i++)
    {
        var tab = $('p'+ i);
        if (i < (index-1))
        {
            tab.set('class', 'done');
        }
        else
        {
            tab.set('class', 'toDo');
        }
    }
}

function fScrollTo(index)
{
    allowContinue1 = true;
    scrollTo(index);
    allowContinue1 = false;
}
var savedBG = "";
var savedFore = "";
function setemsg(msg)
{
    if (msg.length > 0)
    {
       
        var n = $('errorsMessage');
        n.innerHTML = "&nbsp;&nbsp;&nbsp;" + msg + "&nbsp;&nbsp;&nbsp;";
        n.setStyle("background-color","red");
        n.setStyle("color","white");
        setTimeout("resetEmsgFH()",3000);
    }
}
function resetEmsgFH()
{
    var n = $('errorsMessage');
    n.setStyle("background-color","transparent");
    n.setStyle("color","#b5eff6");
}
function scrollTo(index)
{
    var curX = 0;
    var x = 0;
    // we should work out what the absolute X is for that screen... 
    for (i=0;i<numFrames;i++)
    {
        w = winWidth;
        
        if (i<curPos-1)
        {
            curX = curX + w;
        }
        if (i<(index - 1))
        {
            x = x + w;
        }
    }
    if (allowContinue1)
    {
        // now let's scroll...
        var fM = $('testArea');
        var myTransition = new Fx.Transition(Fx.Transitions.Sine, 6);
        var fMscroller = new Fx.Scroll(fM, { duration:'500', transition:myTransition.easeOut})
        fMscroller.start(x,0);
        scrollBarTo(index);
        curPos = index;
        hilightMarks(index);
        doVids(index-1);
    }
}

function switchImage(imageNo, gallery)
{ 
    rt = eval("imageGallery" + gallery);
    re = eval("imageText" + gallery);
    var image = $('imageR' + gallery);
    var text = $('imageT' + gallery);
    text.innerHTML = re[imageNo-1];
    image.src = rt[imageNo-1];
    galleryTrackers["gal" + gallery + "tracker"] = imageNo;
}

function lastImage(gallery)
{
    var counter = galleryTrackers["gal" + gallery + "tracker"];
    rt = eval("imageGallery" + gallery);
    newcounter = counter - 1;
    if (newcounter < 1)
        newcounter = 1;
    switchImage(newcounter, gallery);
}
function nextImage(gallery)
{
    var counter = galleryTrackers["gal" + gallery + "tracker"];
    rt = eval("imageGallery" + gallery);
    newcounter = counter + 1;
    if (newcounter > rt.length)
        newcounter = counter;
    
    switchImage(newcounter, gallery);
}

function initMedical()
{
    $('bloodPressureNo').addEvent('click', function() {             
    doMedical(); 
    });
    $('boneJointProblemNo').addEvent('click', function() {             
    doMedical(); 
    });
    $('dizzyUnconciousNo').addEvent('click', function() {             
    doMedical(); 
    });
    $('chestPainNoPysicalNo').addEvent('click', function() {             
    doMedical(); 
    });
    $('chestPainNo').addEvent('click', function() {             
    doMedical(); 
    });
    $('heartNo').addEvent('click', function() {             
    doMedical(); 
    });
    $('breathlessNo').addEvent('click', function() {             
    doMedical(); 
    });
    $('pregnantNo').addEvent('click', function() {             
    doMedical(); 
    });
    $('programmeNo').addEvent('click', function() {             
    doMedical(); 
    });
    $('bloodPressureYes').addEvent('click', function() {             
    doMedical(); 
    });
    $('bloodPressureYes').addEvent('click', function() {             
    doMedical(); 
    });
    $('boneJointProblemYes').addEvent('click', function() {             
    doMedical(); 
    });
    $('dizzyUnconciousYes').addEvent('click', function() {             
    doMedical(); 
    });
    $('chestPainNoPhysicalYes').addEvent('click', function() {             
    doMedical(); 
    });
    $('chestPainYes').addEvent('click', function() {             
    doMedical(); 
    });
    $('heartYes').addEvent('click', function() {             
    doMedical(); 
    });
    
    $('breathlessYes').addEvent('click', function() {             
    doMedical(); 
    });
    $('pregnantYes').addEvent('click', function() {             
    doMedical(); 
    });
    $('programmeYes').addEvent('click', function() {             
    doMedical(); 
    });
    $('tCCheck').addEvent('click', function() {             
    openConfirm(); 
    });
    $('disCheck').addEvent('click', function() {             
    openConfirm(); 
    });
    
}
function agreeMedicalExempt()
{
    medicalSuppress = false;
    hm('box');
}
function disagreeMedicalExempt()
{
    medicalSuppess = true;
    
    // we should swap out the medical warnings...
    $('statement').setStyle("display","none");
    $('str2').setStyle("display","none");
    $('statement3').setStyle("display","inline");
    $('medicalrightBut').setStyle('display', 'none');
    $('confirm').setStyle("display","none");
    $('tCCheck').checked = false;
    $('disCheck').checked = false;
    hm('box');
}
function openConfirm()
{
    var s2 = $('disCheck');
    var s1 = $('tCCheck');
    var ia = $('confirm');
    if (s2.checked && s1.checked && !medicalSuppress)
    {
        ia.setStyle("display","inline");
        $('medicalrightBut').setStyle('display', 'inline');
    }
    else
    {
        ia.setStyle("display","none");
        $('medicalrightBut').setStyle('display', 'none');
    }
    
    
}

var isOK = true;
function doMedical()
{
    var s1 = $('statement');
    var s2 = $('str2');
    var bp = $('bloodPressureYes');
    var bj = $('boneJointProblemYes');
    var diz = $('dizzyUnconciousYes');
    var cpp = $('chestPainNoPhysicalYes');
    var cp = $('chestPainYes');
    var h = $('heartYes');
    var bl = $('breathlessYes');
    var p = $('pregnantYes');
    var pr = $('programmeYes');
    var siteT = $('tCCheck');
    
    if (p.checked || pr.checked || bl.checked || bp.checked || bj.checked || diz.checked || cpp.checked || cp.checked || h.checked)
    {
        isOK = false;
        medicalSuppress = true;
        sm('box',400,150);
        //s1.setStyle('display','none');
        //s2.setStyle('display','block');
    }
    else
    {
        isOK = true;
        medicalSuppress = false;
        $('statement').setStyle("display","inline");
        $('str2').setStyle("display","inline");
        $('statement3').setStyle("display","none");
        $('medicalrightBut').set('display', 'inline');
        //s1.setStyle('display','block');
        //s2.setStyle('display','none');    
    }
}

function checkSignUp()
{
    var firstName = $('firstName');
    var lastName = $('lastName');
    var Email = $('Email');
    var username = $('username');
    var pp1 = $('passwordOne');
    var pp2 = $('passwordTwo');
   
   
    if (firstName.value == "" || lastName.value == "" || Email.value == "" || (pp1.value != pp2.value) || pp1.value.length < 6)
    {
        // we have an error!!
        setemsg("Oops! I think you’ve entered some incorrect information Please check and try again!");
        
        if (firstName.value == "")
            firstName.setStyle("background-color", "#FF6262");
        else
            firstName.setStyle("background-color", "white");
        
        if (lastName.value == "")
            lastName.setStyle("background-color", "#FF6262");
        else
            lastName.setStyle("background-color", "white");
            
        if (Email.value == "")
        {
            Email.setStyle("background-color", "#FF6262");
        }
        else
        {
            Email.setStyle("background-color", "white");
        }
            
//        if (username.value == "")
//            username.setStyle("background-color", "#FF6262");
//        else
//            username.setStyle("background-color", "white");
            
        if (pp1.value == "" || (pp1.value != pp2.value) || (pp1.value.length < 6))
        {
            if (pp1.value.length < 6)
            {
                setemsg("please check that your password has a minimum of 6 characters");
            }
            if (pp1.value != pp2.value)
            {
                setemsg("Your passwords do not seem to match!");
            }
            pp1.setStyle("background-color", "#FF6262");
            pp2.setStyle("background-color", "#FF6262");
        }
        else
        {
            pp1.setStyle("background-color", "white");
            pp2.setStyle("background-color", "white");
            $('passwordMsg').innerHTML = "";
        }       
        
    }
    else
    {
        // final check... we should 
        if (emailOK && usernameOK)
        {
            allowContinue1 = true;
            scrollTo(4);
            allowContinue1 = false;
        }
    }
}

function sPassCheck()
{
    var pasOne = $('passwordOne');
    var pasTwo = $('passwordTwo')
    // we should check passwords...
    if (pasOne.value.length > 0)
    {
        // let's check...
        if (pasTwo.value.length > 5)
        {
            if (pasOne.value == pasTwo.value)
            {
                pasOne.setStyle("background-color", "white");
                pasTwo.setStyle("background-color", "white");
                $('theCompleteButton').setStyle("display","inline");
                setemsg("");
            }
            else
            {
                pasOne.setStyle("background-color", "#FF6262");
                pasTwo.setStyle("background-color", "#FF6262");
                $('theCompleteButton').setStyle("display","none");
                setemsg("Please check your passwords, they do not seem to match");
            } 
        }
        else
        {
            pasOne.setStyle("background-color", "#FF6262");
            pasTwo.setStyle("background-color", "#FF6262");
            $('theCompleteButton').setStyle("display","none");
            setemsg("please check that your password has a minimum of 6 characters");
        }
    }
    else
    {
        pasOne.setStyle("background-color", "white");
        pasTwo.setStyle("background-color", "white");
        $('theCompleteButton').setStyle("display","inline");
        setemsg("");
    }
}

function returnCheck(response, checkID)
{
    var i = response.indexOf("true");
    if (checkID == 1)
    {
        if (i>0)
        {
            emailOK = true;
            $('Email').setStyle("background-color", "white");
            setemsg("");

        }
        else
        {
            emailOK = false;
            $('Email').setStyle("background-color", "#FF6262");
             setemsg("Oops! The email address you have entered is already in use!");
        }   
    }
    if (checkID == 2)
    {
        if (i>0)
        {
            $('username').setStyle("background-color", "white");
            usernameOK = true;
        }   
        else
        {
            usernameOK = false;
            $('username').setStyle("background-color", "#FF6262");
            setemsg("Oops! The username you have entered is already in use!");
        }
    }
    
    settingsDO();
}

function settingsDO()
{
    if (isSettingsPage)
    {
        // they exsist... but do they really?
        if ($('username').value == userSafe)
        {
            usernameOK = true;
            $('username').setStyle("background-color", "white");
        }   
            
        if ($('Email').value == emailSafe)
        {
            $('Email').setStyle("background-color", "white");
            emailOK = true;
         }   
        if (usernameOK && emailOK)
        {
            $('theCompleteButton').setStyle("display","inline");
            setemsg("");
        }
        else
            $('theCompleteButton').setStyle("display","none");
    }
}

function approveE(address)
{
    var returnValue = false;
    url = "services/callCheck.aspx?a=email&v=" + address;
    var req = new Request.HTML({
            method: 'get',
            url: url,
            onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) { returnCheck(responseHTML, 1); }
            }).send();
   
    return returnValue;
}
function approveU(address)
{
    var returnValue = false;
    url = "services/callCheck.aspx?a=user&v=" + address;
    var req = new Request.HTML({
            method: 'get',
            url: url,
            onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript ) { returnCheck(responseHTML, 2); }
            }).send();
   
    return returnValue;
}

function compareSwitch(friendOnOff)
{
    var friendsC = $('compareDetailsFriends');
    var peopleC = $('compareDetailsPeople');
    if (!friendOnOff)
    {
        friendsC.setStyle('display','none');
        peopleC.setStyle('display','block');
    }
    else
    {
        friendsC.setStyle('display','block');
        peopleC.setStyle('display','none');
    }
}
function registerCheck(id, min, max, convID, convRate)
{
	   var textarea = $(id);
 	   textarea.addEvents({
        blur: function() {
            checkContext(id, 1, min, max, convID, convRate);
        }
        })
 
}

function registerReflect(id, min, max, convID, convRate)
{   
    var textarea = $(id);
    var textarea2 = $(id + "_reflected");

    textarea.addEvents({
        blur: function() {
            sync(textarea, textarea2); checkContext(id, 1, min, max, convID, convRate);
        }
        })
    textarea2.addEvents({
        blur: function() {
            sync(textarea2, textarea); checkContext(id, 1, min, max, convID, convRate);
        }
        })
    
	// do a sync to begin with!
	sync(textarea, textarea2);
}

function registerReflectRadio(id,id2)
{
    var textarea = $(id);
    var textarea2 = $(id2);
    
    textarea.addEvents({
        click: function() {
            radiosync(textarea, textarea2)
        }})
    textarea2.addEvents({
        click: function() {
            radiosync(textarea2, textarea)
        }})
}
function radiosync(id, id2)
{
    if (id.checked)
        id2.checked = true;   
}
function sync(id, id2)
{
    id2.value = id.value;
}



// functions for the audio test!
var isPlaying = false;
var selectedAgeBand = 1;
var sex = "Men";
var band = new Array("15-19","20-29","30-39","40-49","50-59","60-69");
function toggleSex()
{
    if (sex == "Men")
        sex = "Women";
    else
        sex = "Men";
    doPanel();
}
function toggleAge(younger)
{
    newBand = 1;
    if (younger)
    {
        newBand = selectedAgeBand -1;
        if (newBand < 0)
            newBand = 0;
    }
    else
    {
        newBand = selectedAgeBand + 1;
        if (newBand > 5)
            newBand = 5;    
    }
    selectedAgeBand = newBand;
    doPanel();
}
function doPanel()
{
    var p = $('descriptionPanel');
    var text =  sex + " aged " + band[selectedAgeBand] + " years";
    p.innerHTML = text;
}
function getAudioDownload()
{
    if (sex == "Men")
        filename = "m" + selectedAgeBand + ".mp3";
    else
        filename = "f" + selectedAgeBand + ".mp3";
    window.open('protocols/audio/' + filename, 'MP3Open');
}
function getAudioCD()
{
    alert("coming soon");
}
function playStop()
{
    var image = $('playpause');
    var player = $('aPlayer');
    var filename = "m2.mp3";
    if (sex == "Men")
        filename = "m" + selectedAgeBand + ".mp3";
    else
        filename = "f" + selectedAgeBand + ".mp3";
        
    if (isPlaying)
    {
        image.src = "images/play_audio.gif";
        player.setVariable("track", filename);
        player.setVariable("action", "stop");
        player.Play();
        isPlaying = false;
    }
    else
    {
        isPlaying = true;
        player.setVariable("track",filename);
        player.setVariable("action","play");
        player.Play();
        image.src = "images/pause_audio.gif";
    }
}
// end of audio test functions

// context checkers...
var errored = new Array();
function checkContext(id, type, min, max, convID, convRate)
{

    var text = $(id).value;
    if (max == undefined || min == undefined)
    {
    	// old support
  		max = 300;
			min = 15;
    }
    
    if (convID == null || convID == "")
    {
    	// do nothing... no conversion required.
    }
    else
    {
    	var v = $(convID).checked;
    	if (!v)
			{
				min = min * convRate;
				max = max * convRate;
			}
    }  
    isGood = true;
    if (type == "1")
    {
        // this is a number... 
        try
        {
         		if (IsNumeric(text))
         		{
         			v = parseInt(text);
	         		isGood = true;
	            if (max == 0 && min == 0)
	            {
	            	// we can do nothing for the max min...
	            	
	          	}
	          	else
	          	{
	              if (v > max)
	              {
	                  isGood = false;
	              }
	              if (v < min)
	              {
	                  isGood = false;
	              }
	          	}
          	}
          	else
          	{
          		isGood = false;
          	}
          	
        }
        catch(ee) 
        {
            isGood = false;
        }
    }
    
    if (!isGood)
    {
        addCheckError(id);
    }
    else
    {
        removeCheckError(id);
    }
}

function removeCheckError(id)
{
    var index = -1;
    for (i = 0; i<errored.length; i++)
    {
        if (errored[i] == id)
        {
            errored[i] = "";
        }    
    }
    
    var box = $(id);
    box.setStyle("background-color", "white");

    try
    {
        var box2 = $(id + "_reflected");
        box2.setStyle("background-color", "white");
    } catch (e) {}
    checkValid(false);
}

function checkValid(checkOthers)
{
    var errore = false;
    for (i = 0;i<errored.length; i++)
    {
        if (errored[i] != "")
        {
            errore = true;
        }    
    }
    if (errore)
    {
        try
        {
            var erroB = $('erroB');
            supressForm = true;
            erroB.innerHTML = "Please check the data you have entered for accuracy.";
        }
        catch (e) {}
    }
    else
    {
        var erroB = $('erroB');
        try
        {
        	supressForm = false;
            erroB.innerHTML = "";
        }
        catch (e) {}
    }
    
    if (checkOthers)
    {
	    for (i=0;i<checkList.length; i++)
	    {
            $(checkList[i]).focus();
	    }
	    $(checkList[0]).focus();
  	}
}

function completeForm()
{
	checkValid(true);
	if (!supressForm)
	{
		__doPostBack('completeButton','')
	}
}
function completeEnergyForm()
{
    $('roster1_t_energyRest_System.Random').focus();
    $('roster1_t_energy1_System.Random').focus();
    $('roster1_t_energy2_System.Random').focus();
    $('roster1_t_stepHeight_System.Random').focus();
    $('roster1_t_energyRest_System.Random').focus();
    if (!supressForm)
	{
		__doPostBack('completeButton','')
	}
}
function addCheckError(id)
{
    var present = false;
    for (i=0;i<errored.length; i++)
    {
        if (errored[i] == id)
        {
            present = false;
        }    
    }
    if (!present)
    {
        errored.push(id);
        var box = $(id);
        box.setStyle("background-color", "#FF6262");
        try
        {
            var box2 = $(id + "_reflected");
            box2.setStyle("background-color", "#FF6262");
        }
        catch (a){}
    }
    checkValid(false);
}
function IsNumeric(sText)

{
 var ValidChars = "0123456789.";
 var IsNumber=true;
 var Char;
	
	if (sText == "") { IsNumber = false; } 

 for (i = 0; i < sText.length && IsNumber == true; i++) 
    { 
    Char = sText.charAt(i); 
    if (ValidChars.indexOf(Char) == -1) 
       {
       IsNumber = false;
       }
    }
 return IsNumber;
 
 }

// end of conext checkers...

// for the comparison page //
function browsePos(pos)
{
    p = (pos-20)/2;
    var sv = (pos * 17) + p;
    if (sv < 0) { sv = 0; }
    var rt = $('resultTableBody');
    var myTransitionScroll2 = new Fx.Transition(Fx.Transitions.Sine, 6);
    var rtScroller = new Fx.Scroll(rt, { duration:'500', transition:myTransitionScroll2.easeOut})
    rtScroller.start(0,sv);
}

function registerSubmit()
{
    var p = $('password');
    p.addEvents({
        keydown: function(event) {
            if (event.key == "enter")
                __doPostBack('loginButton','');
        }
        })

}
// end of comparison //