/// <reference path="LaunchNetClientBase.js"/>
/// <reference path="BrowserServices.js"/>
/// <reference path="ErrorServices.js"/>
/// <reference path="ClientProxyServices.js"/>
/// <reference path="LaunchNetClientContext.js"/>
/// <reference path="PlatformServices.js"/>


//the following are variables for which values are injected
//var __yourVariable;

function AutismClinicalTrialServices()
{
  var commands = new LaunchNetServiceCommands();
  commands.Add("YourCommandName");
  commands.Add("EmailAFriend");

  this.OnPageLoad = OnPageLoad;
  this.OnPageClick = OnPageClick;
  this.OnValidationRequiredCheck = OnValidationRequiredCheck;
  this.OnValidateLaunchNetElements = OnValidateLaunchNetElements;
  this.EmailAFriend = EmailAFriend;

  this.YourCommandName = YourCommandName;

/* ***********************************************************************************
-  Page Load Event
************************************************************************************ */

  function OnPageLoad()
  {
    var sPath = window.location.pathname;
    var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
    changeHeader(sPage);
  }

/* ***********************************************************************************
-  Page Click Event
************************************************************************************ */

  function OnPageClick(launchNetElementClicked, pageValid)
  {
    commands.HandlePageClick(this, launchNetElementClicked, pageValid);
  }

  function YourCommandName()
  {
    //your functionality here, performed on YourCommandName
  }

/* ***********************************************************************************
-  Page Validation
************************************************************************************ */

  function OnValidationRequiredCheck(launchNetElementClicked)
  {
    return commands.HandleValidationRequiredCheck(launchNetElementClicked);
    //return true if the incoming launchNetElementClicked indicates a need to perform validation
    //note that launchNetElementClicked is of type LaunchNetElement (see LaunchNetClientBase.js)
  }

  function OnValidateLaunchNetElements(validatableLaunchNetElements)
  {
    //validate any special elements here; return true if validation successful
    return true;
  }
  
  
function changeHeader(page) {
//change the image in the header depending on what page we are on
  HeaderEle = document.getElementById("varHeader");
    if(HeaderEle != null)
    {
      if(page == "index.aspx")//for the home page
      {
        HeaderEle.innerHTML = "<img src=\"/PublishingImages/banner_home.jpg\" width=\"816\" height=\"201\" />";
      }
      else {//randomly alternate between the 2 images for the other pages
        var rand = Math.floor(Math.random() * 2);
        if(rand == 0)
        {
          HeaderEle.innerHTML = "<img src=\"/PublishingImages/banner.jpg\" alt=\"banner\" width=\"816\" />";
        }
        else
        {
          HeaderEle.innerHTML = "<img src=\"/PublishingImages/banner2.jpg\" alt=\"banner\" width=\"816\" />";
        }
      }
    }
}



function EmailAFriend()
  {    
    var yourName=document.getElementById("YourName").value;
    var yourEmail=document.getElementById("YourEmail").value;
    var friendName=document.getElementById("FriendName").value;
    var friendEmail=document.getElementById("FriendEmail").value;
    var messageValue=document.getElementById("message").value; 
     
    var response = AutismClinicalTrialClientProxy.EmailAFriend(yourName, yourEmail, friendName, friendEmail, messageValue);
    
    if (response.error != null)
    {
      __context.RedirectToErrorPage();
      return false;
    }
    
    return true;
  }


}/*End of AutismClinicalTrialServices function*/

function EnrollmentRedirection()
{
    var count=0;
    
    var enrollq1yes=document.getElementById("q1yes");
    var enrollq1no=document.getElementById("q1no");
    
    var enrollq2yes=document.getElementById("q2yes");
    var enrollq2no=document.getElementById("q2no");
    
    var enrollq3yes=document.getElementById("q3yes");
    var enrollq3no=document.getElementById("q3no");
    
    var enrollq4yes=document.getElementById("q4yes");
    var enrollq4no=document.getElementById("q4no");
    
    var enrollq5yes=document.getElementById("q5yes");
    var enrollq5no=document.getElementById("q5no");
    
    var enrollq6yes=document.getElementById("q6yes");
    var enrollq6no=document.getElementById("q6no");
    
    var enrollq7yes=document.getElementById("q7yes");
    var enrollq7no=document.getElementById("q7no");
    
   
   
    if(enrollq1yes.checked==false && enrollq1no.checked==false)
    {
        count=count+1;
        document.getElementById("q1").style.color="red";
    }
    else 
    {
       document.getElementById("q1").style.color="#333333";
    }
    
    if(enrollq2yes.checked==false && enrollq2no.checked==false)
    {
        count=count+1;
        document.getElementById("q2").style.color="red";
    }
    else 
    {
        document.getElementById("q2").style.color="#333333";
    }
    
    if(enrollq3yes.checked==false && enrollq3no.checked==false)
    {
        count=count+1;
        document.getElementById("q3").style.color="red";
    }
    else 
    {
       document.getElementById("q3").style.color="#333333";
    }
    
    if(enrollq4yes.checked==false && enrollq4no.checked==false)
    {
        count=count+1;
        document.getElementById("q4").style.color="red";
    }
    else 
    {
        document.getElementById("q4").style.color="#333333";
    }
    
    if(enrollq5yes.checked==false && enrollq5no.checked==false)
    {
        count=count+1;
        document.getElementById("q5").style.color="red";
    }
    else 
    {
        document.getElementById("q5").style.color="#333333";
    }
    
    if(enrollq6yes.checked==false && enrollq6no.checked==false)
    {
        count=count+1;
        document.getElementById("q6").style.color="red";
    }
    else 
    {
        document.getElementById("q6").style.color="#333333";
    }
    
   if(enrollq7yes.checked==false && enrollq7no.checked==false)
    {
        count=count+1;
        document.getElementById("q7").style.color="red";
    }
    else 
    {
        document.getElementById("q7").style.color="#333333";
    }
    
    if(count>0)
    {
        document.getElementById("errDiv").style.display="block";        
    }
    else
    {
        document.getElementById("errDiv").style.display="none";
        //Storing enrollment values in session
        SetEnrollmentValuesToSession(enrollq1yes.checked, enrollq1no.checked, 
                                     enrollq2yes.checked, enrollq2no.checked,
                                     enrollq3yes.checked, enrollq3no.checked,
                                     enrollq4yes.checked, enrollq4no.checked,
                                     enrollq5yes.checked, enrollq5no.checked,
                                     enrollq6yes.checked, enrollq6no.checked,
                                     enrollq7yes.checked, enrollq7no.checked);
    }
    
    
    
    if(enrollq1yes.checked==true && enrollq2yes.checked==true && enrollq3yes.checked==true && enrollq4yes.checked==true && 
        enrollq5no.checked==true && enrollq6no.checked==true && enrollq7no.checked==true)
        {
            window.location = "/index-5179.aspx?fromenroll=yes";   
        }
    else if((enrollq1yes.checked==true ||enrollq1no.checked==true)&&
            (enrollq2yes.checked==true ||enrollq2no.checked==true)&&
            (enrollq3yes.checked==true ||enrollq3no.checked==true)&&
            (enrollq4yes.checked==true ||enrollq4no.checked==true)&&
            (enrollq5yes.checked==true ||enrollq5no.checked==true)&&
            (enrollq6yes.checked==true ||enrollq6no.checked==true)&&
            (enrollq7yes.checked==true ||enrollq7no.checked==true))
        {
            window.location = "/request.aspx"; 
        }
        
}

function EnrollmentClear()
{
    var enrollq1yes=document.getElementById("q1yes");
    var enrollq1no=document.getElementById("q1no");
    
    var enrollq2yes=document.getElementById("q2yes");
    var enrollq2no=document.getElementById("q2no");
    
    var enrollq3yes=document.getElementById("q3yes");
    var enrollq3no=document.getElementById("q3no");
    
    var enrollq4yes=document.getElementById("q4yes");
    var enrollq4no=document.getElementById("q4no");
    
    var enrollq5yes=document.getElementById("q5yes");
    var enrollq5no=document.getElementById("q5no");
    
    var enrollq6yes=document.getElementById("q6yes");
    var enrollq6no=document.getElementById("q6no");
    
    var enrollq7yes=document.getElementById("q7yes");
    var enrollq7no=document.getElementById("q7no");
    
    enrollq1yes.checked=false;
    enrollq1no.checked=false;
    enrollq2yes.checked=false;
    enrollq2no.checked=false;
    enrollq3yes.checked=false;
    enrollq3no.checked=false;
    enrollq4yes.checked=false;
    enrollq4no.checked=false;
    enrollq5yes.checked=false;
    enrollq5no.checked=false;
    enrollq6yes.checked=false;
    enrollq6no.checked=false;
    enrollq7yes.checked=false;
    enrollq7no.checked=false;
    
    document.getElementById("q1").style.color="#333333";
    document.getElementById("q2").style.color="#333333";
    document.getElementById("q3").style.color="#333333";
    document.getElementById("q4").style.color="#333333";
    document.getElementById("q5").style.color="#333333";
    document.getElementById("q6").style.color="#333333";
    document.getElementById("q7").style.color="#333333";
    
    document.getElementById("errDiv").style.display="none";
}

function SetEnrollmentValuesToSession(question1yesch, question1noch,
                                      question2yesch, question2noch,
                                      question3yesch, question3noch,
                                      question4yesch, question4noch,
                                      question5yesch, question5noch,
                                      question6yesch, question6noch,
                                      question7yesch, question7noch)
{
    var question1=""; var question2=""; var question3=""; var question4="";
    var question5=""; var question6=""; var question7="";
    
    if(question1yesch==true){question1="10001001";}
    if(question1noch==true){question1="10001002";}
    if(question2yesch==true){question2="10001001";}
    if(question2noch==true){question2="10001002";}
    if(question3yesch==true){question3="10001001";}
    if(question3noch==true){question3="10001002";}
    if(question4yesch==true){question4="10001001";}
    if(question4noch==true){question4="10001002";}
    if(question5yesch==true){question5="10001001";}
    if(question5noch==true){question5="10001002";}
    if(question6yesch==true){question6="10001001";}
    if(question6noch==true){question6="10001002";}
    if(question7yesch==true){question7="10001001";}
    if(question7noch==true){question7="10001002";}
    
    AutismClinicalTrialClientProxy.SetEnrollmentValuesToSession(question1, question2, question3, question4, question5, question6, question7);
}

function SetPrimarySecendoryPhone() 
{   
    
   var priphone1=document.getElementById("priph1")
   var priphone2=document.getElementById("priph2")
   var priphone3=document.getElementById("priph3")
   
   var secphone1=document.getElementById("secph1")
   var secphone2=document.getElementById("secph2")
   var secphone3=document.getElementById("secph3")    
    
   document.getElementById("primaryPh<10015002,OPEN>").value = priphone1.value + "-" + priphone2.value + "-" + priphone3.value;
   if(secphone1.value!="" && secphone2.value!="" && secphone3.value!="")
   {
   document.getElementById("secondaryPh<50001260,OPEN>").value = secphone1.value + "-" + secphone2.value + "-" + secphone3.value;
   }
   return true;
}

function validatePrimaryPhone(ph1, ph2, ph3, pagename)
  {
    var validPh = true;
    var phError = document.getElementById("priphoneerror");
    phError.innerHTML=""
    
    var phoneNum = new String(ph1 + "-" + ph2 + "-" + ph3);
    var regExpObj = /(\d\d\d)-\d\d\d-\d\d\d\d/;

    if(regExpObj.exec(phoneNum) == null && phoneNum!="--")
    {
        if(phError != null)
        {  
           phError.innerHTML="* Phone number is invalid.";           
           validPh = false;
           
           if(pagename=="contact-information")
           {
            phError.style.display = "block"; 
           }
           else
           {
            phError.style.display = "inline"; 
           }
        }
        
    }
    else if(regExpObj.exec(phoneNum) == null && phoneNum=="--")
    {
        if(phError != null)
        {
           phError.innerHTML="* Phone number is required.";
           validPh = false;
           
           if(pagename=="contact-information")
           {
            phError.style.display = "block"; 
           }
           else
           {
            phError.style.display = "inline"; 
           }  
        }
    }
    else
    {
        if(phError != null)
        {
           phError.style.display = "none";  
           validPh = true;
        }
    }
    return validPh;
  }
  
  function validateSecondaryPhone(ph1, ph2, ph3, pagename)
  {
    var validPh = true;
    var phError = document.getElementById("secphoneerror");
    
    var phoneNum = new String(ph1 + "-" + ph2 + "-" + ph3);
    var regExpObj = /(\d\d\d)-\d\d\d-\d\d\d\d/;

    if(regExpObj.exec(phoneNum) == null && phoneNum!="--")
    {
        if(phError != null)
        {
           validPh = false;
           phError.innerHTML="* Phone number is invalid."; 
            
           if(pagename=="contact-information")
           {
            phError.style.display = "block"; 
           }
           else
           {
            phError.style.display = "inline"; 
           }  
        }
        
    }
    else
    {
        if(phError != null)
        {
           phError.style.display = "none";  
           validPh = true;
        }
    }
    return validPh;
  }
  
  
  
  function validateChildDOB(childdobvalue)
  {
    var validchdob = true;
    var childdobError = document.getElementById("childdoberrorid");
    childdobError.innerHTML=""
        
    var regExpObj = /^(0[1-9]|1[012])[/](0[1-9]|[12][0-9]|3[01])[/](19|20)\d\d$/;

    if(regExpObj.exec(childdobvalue)== null && childdobvalue!="")
    {
        if(childdobError != null)
        {  
           childdobError.innerHTML="* DOB is invalid.";
           validchdob = false;
        }
        
    }
    else if(regExpObj.exec(childdobvalue) == null && childdobvalue=="")
    {
        if(childdobError != null)
        {
           childdobError.innerHTML="* DOB is required.";
           validchdob = false;
        }
    }
    else if(childdobvalue!="")
    {
       var currentDate = new Date();
       var inputDate = new Date(childdobvalue);
       var result = days_between(currentDate, inputDate);
       if (result <= 0 ) 
            {
                childdobError.innerHTML="* DOB should be less than current date.";
                validchdob = false;
            }
    }
    else
    {
        if(childdobError != null)
        {
           childdobError.innerHTML="";
           validchdob = true;
        }
    }
    return validchdob;
  }
  
  //Start function to compare dates for DOB field
  function days_between(todaysDate, infusionDate) 
  {
        // The number of milliseconds in one day
        var ONE_DAY = 1000 * 60 * 60 * 24;
        // Convert both dates to milliseconds
        var todaysDate_ms = todaysDate.getTime();
        var infusionDate_ms = infusionDate.getTime();
        // Calculate the difference in milliseconds
        var difference_ms = todaysDate_ms - infusionDate_ms;
        // Convert back to days and return
        return Math.round(difference_ms/ONE_DAY);
  }
  //End function to compare dates for DOB field
  
  //Start Child First name validation
    function validateChildFirstName(childnamevalue)
  {
    var validchname = true;
    var childfirstnameError = document.getElementById("childfirstnameerrorid");
        
    var regExpObj = /[^a-zA-Z\s]/;

    if(regExpObj.test(childnamevalue) && childnamevalue!="")
    {
        if(childfirstnameError != null)
        {  
           childfirstnameError.innerHTML="* Child First Name accepts only Alphabets.";
           validchname = false;
        }
        
    }
    
    else
    {
        if(childfirstnameError != null)
        {
           childfirstnameError.innerHTML="";
           validchname = true;
        }
    }
    return validchname;
  }
  //End Child Firstname validation
  
   //Start Child Last name validation
    function validateChildLastName(childnamevalue)
  {
    var validchname = true;
    var childlastnameError = document.getElementById("childlastnameerrorid");
        
    var regExpObj = /[^a-zA-Z\s]/;

    if(regExpObj.test(childnamevalue) && childnamevalue!="")
    {
        if(childlastnameError != null)
        {  
           childlastnameError.innerHTML="* Child Last Name accepts only Alphabets.";
           validchname = false;
        }
        
    }
    
    else
    {
        if(childlastnameError != null)
        {
           childlastnameError.innerHTML="";
           validchname = true;
        }
    }
    return validchname;
  }
  //End Child Lastname validation
  
  
  function ClearFields()
    {
        var firsterrormsg = document.getElementById("error_FirstName{FirstName}");
        var lasterrormsg = document.getElementById("error_LastName{LastName}");
        var address1errormsg = document.getElementById("error_Address1{Address1}");
        var address2errormsg = document.getElementById("error_Address2{Address2}");
        var cityerrormsg = document.getElementById("error_City{City}");
        var stateerrormsg = document.getElementById("error_State{State}");
        var ziperrormsg = document.getElementById("error_Zip{Zip}");
        var pripherrormsg = document.getElementById("priphoneerror");
        var secpherrormsg = document.getElementById("secphoneerror");
        var emailerrormsg = document.getElementById("error_Email<10028050,OPEN>{Email}");
            
        document.forms[0].reset();
        if(firsterrormsg!=null){firsterrormsg.innerHTML = "";}
        if(lasterrormsg!=null){lasterrormsg.innerHTML = "";}
        if(address1errormsg!=null){address1errormsg.innerHTML = "";}
        if(address2errormsg!=null){address2errormsg.innerHTML = "";}
        if(cityerrormsg!=null){cityerrormsg.innerHTML = "";}
        if(stateerrormsg!=null){stateerrormsg.innerHTML = "";}
        if(ziperrormsg!=null){ziperrormsg.innerHTML = "";}
        if(pripherrormsg!=null){pripherrormsg.innerHTML = "";}
        if(secpherrormsg!=null){secpherrormsg.innerHTML = "";}
        if(emailerrormsg!=null){emailerrormsg.innerHTML = "";}
               
    }
    
    function ClearContactInfoFields()
    {
//        var firsterrormsg = document.getElementById("error_FirstNameError");
//        var lasterrormsg = document.getElementById("error_LastNameError");
//        var address1errormsg = document.getElementById("error_Address1Error");
//        var address2errormsg = document.getElementById("error_Address2Error");
//        var cityerrormsg = document.getElementById("error_CityError");
//        var stateerrormsg = document.getElementById("error_StateError");
//        var ziperrormsg = document.getElementById("error_ZipError");
//        var emailerrormsg = document.getElementById("error_Email<10028050,OPEN>Error");
//        var childdoberrormsg = document.getElementById("childdoberrorid");           
        
        document.forms[0].reset();        
//        if(firsterrormsg!=null){firsterrormsg.innerHTML = "";}
//        if(lasterrormsg!=null){lasterrormsg.innerHTML = "";}
//        if(address1errormsg!=null){address1errormsg.innerHTML = "";}
//        if(address2errormsg!=null){address2errormsg.innerHTML = "";}
//        if(cityerrormsg!=null){cityerrormsg.innerHTML = "";}
//        if(stateerrormsg!=null){stateerrormsg.innerHTML = "";}
//        if(ziperrormsg!=null){ziperrormsg.innerHTML = "";}
//        if(emailerrormsg!=null){emailerrormsg.innerHTML = "";}
//        if(childdoberrormsg!=null){childdoberrormsg.innerHTML = "";}
    }
    //Start Friend name validation
    function validateFriendName(friendnamevalue)
  {
    var validfrname = true;
    var friendnameError = document.getElementById("frinameerror");
        
    var regExpObj = /[^a-zA-Z\s]/;

    if(regExpObj.test(friendnamevalue) && friendnamevalue!="")
    {
        if(friendnameError != null)
        {  
           friendnameError.innerHTML="* Friend's name accepts Alphabets only";
           validfrname = false;
        }
        
    }
      
    return validfrname;
  }
  //End Friend name validation
  
      //Start Your name validation
    function validateYourName(yournamevalue)
  {
    var validyrname = true;
    var yournameError = document.getElementById("yournameerror");
        
    var regExpObj = /[^a-zA-Z\s]/;

    if(regExpObj.test(yournamevalue) && yournamevalue!="")
    {
        if(yournameError != null)
        {  
           yournameError.innerHTML="* Your name accepts Alphabets only";
           validyrname = false;
        }
        
    }
      
    return validyrname;
  }
  //End Your name validation
    
    function ValidateShareEmailFields(yourName, yourEmail, friendName, friendEmail)
    {   
        var fne=document.getElementById("frinameerror");
        var fee=document.getElementById("friemailerror");
        var yne=document.getElementById("yournameerror");
        var yee=document.getElementById("youremailerror");
        var count=0;
        
        fne.style.display = "none";
        fee.style.display = "none";
        yne.style.display = "none";
        yee.style.display = "none";

        
        if(friendName=="")
        {    
            fne.innerHTML="* Your friend's name is required";          
            fne.style.display = "inline";
            count=count+1;            
        }
        
        var validfriendname=validateFriendName(friendName);
        if(validfriendname==false)
        {
            fne.style.display = "inline";
            count=count+1;
        }
        
        
        if(friendEmail=="")
        {   
            fee.innerHTML="* Your friend's Email address is required";         
            fee.style.display = "inline";
            count=count+1;            
        }
        
        if(yourName=="")
        {   
            yne.innerHTML="* Your name is required";           
            yne.style.display = "inline";  
            count=count+1;            
        }
        
         var validyourname=validateYourName(yourName);
        if(validyourname==false)
        {
            yne.style.display = "inline";
            count=count+1;
        }
        
        if(yourEmail=="")
        {    
            yee.innerHTML="* Your Email address is required";         
            yee.style.display = "inline";  
            count=count+1;            
        }
        
        
        var regExpObj = /^([0-9a-zA-Z]+[-._+&amp;])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$/;

        if(regExpObj.exec(friendEmail)== null && friendEmail!="")
        {           
               fee.innerHTML="- Email address must have a '@' and a '.'";
               fee.style.display = "inline";
               count=count+1;    
        }
        
        if(regExpObj.exec(yourEmail)== null && yourEmail!="")
        {           
               yee.innerHTML="- Email address must have a '@' and a '.'";
               yee.style.display = "inline";  
               count=count+1;    
        }
        
        if(count>0)
        {
            return false;
        }
        else 
        {
            return true;
        }

    }
    
    function ClearShareFields()
    {
        var frinameerrormsg = document.getElementById("frinameerror");
        var friemailerrormsg = document.getElementById("friemailerror");
        var yournameerrormsg = document.getElementById("yournameerror");
        var youremailerrormsg = document.getElementById("youremailerror");
        
        document.forms[0].reset();        
        if(frinameerrormsg!=null){frinameerrormsg.innerHTML = "";}
        if(friemailerrormsg!=null){friemailerrormsg.innerHTML = "";}
        if(yournameerrormsg!=null){yournameerrormsg.innerHTML = "";}
        if(youremailerrormsg!=null){youremailerrormsg.innerHTML = "";}
    }
    
    function createCookie(name,value,days) 
    {
        if (days) {
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        }
        else var expires = "";
        document.cookie = name+"="+value+expires+"; path=/";
    }
   
    function getCookie(name) 
    {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    }
