/*
   Module               :  User Registration
                        :  User Maintenance
   Author               :  Sangeetha
   Date of Creation     :  11-Jul-2003
   Date of Modification :  30-Sep-2003
   Modofied By          :  Sangeetha
   Last Modified Date   :  03-Mar-2004
   Last Modified by     :  Sasikumar Natarajan
   Reason               :  Added for statistics
   Last Modified Date   :  27-May-2004
   Last Modified by     :  Sasikumar Natarajan
   Reason               :  Added for Searching Remote Users.
   */
var str_state;
var str_action;
var str_cancel;
var acctype;
var studentflag;
var pattern_chr ="^ *[a-zA-Z]";
var regex_chr = new RegExp(pattern_chr);
var pattern_null='^ *$';
var reg_null = new RegExp(pattern_null);
var dir_pattern="^ *[a-zA-Z0-9_'||&]+ *$";
var regex_dir = new RegExp(dir_pattern);
var reg_email=/^ *\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+ *$/;
var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";
function fnSubmit()
{
  var image = document.frmRegister.txtuimg.value;
  var ext = image.lastIndexOf(".");
   //validates for user name
   if( '' == studentflag)
  {
   if(reg_null.test(document.frmRegister.txtulogin.value))
    {
     alert(eusername);
     document.frmRegister.txtulogin.focus();
     return false;
    }
  }
  if ('' == studentflag )
    {
     if ( document.frmRegister.txtulogin.value.length > 20 ||
     document.frmRegister.txtulogin.value.length < 4)
     {
     alert(eusername1);
     document.frmRegister.txtulogin.focus();
     return false;
     }
  }
  if ('' == studentflag )
    { //special characters validation 
     for (var i = 0; i < document.frmRegister.txtulogin.value.length; i++) 
		 {
  	if (iChars.indexOf(document.frmRegister.txtulogin.value.charAt(i)) != -1) 
		{
			alert(eusername2);
  			document.frmRegister.txtulogin.focus();
  			return false;
  		}
		}
	}
   // validates the first name
   if ('Student' != acctype && '' == studentflag && reg_null.test(document.frmRegister.txtufname.value))
    {
     alert(efirstname);
     document.frmRegister.txtufname.focus();
     return false;
  }
  if('Student' != acctype && '' == studentflag && reg_null.test(document.frmRegister.txtulname.value))
  {
    alert(elastname);
    document.frmRegister.txtulname.focus();
    return false;
  }
  if ('Student' != acctype && '' == studentflag && document.frmRegister.cmbgender.options.selectedIndex == 0)
    {
      alert (egender);
    document.frmRegister.cmbgender.focus();
    return false;
    }
    if ('Student' != acctype && '' == studentflag && document.frmRegister.cmbcountry.options[document.frmRegister.cmbcountry.selectedIndex].value=='0')
    {
        alert(ecountry);
        document.frmRegister.cmbcountry.focus();
        return false;
    }
    if(reg_null.test(document.frmRegister.txtumail.value))
  {
     alert(eemailid);
     document.frmRegister.txtumail.focus();
     return false;
  }
  if(!reg_email.test(document.frmRegister.txtumail.value))
  {
      alert(eemailid1);
    document.frmRegister.txtumail.focus();
    return false;
  }
    if(!fnPasswordCheck())
  {
     return false;
  }
    if ('Student' != acctype && reg_null.test(document.frmRegister.txtuq1.value))
    {
     alert(eques1);
     document.frmRegister.txtuq1.focus();
     return false;
    }
  if ('Student' != acctype && reg_null.test(document.frmRegister.txtuans1.value))
    {
     alert(eans1);
     document.frmRegister.txtuans1.focus();
     return false;
    }
    if ('Student' != acctype && reg_null.test(document.frmRegister.txtuq2.value))
    {
     alert(eques2);
     document.frmRegister.txtuq2.focus();
     return false;
    }
    if ('Student' != acctype && reg_null.test(document.frmRegister.txtuans2.value))
    {
     alert(eans2);
     document.frmRegister.txtuans2.focus();
     return false;
    }
    if ('' != document.frmRegister.txtuimg.value && ext < 0)
  {
    alert (eimage);
    document.frmRegister.txtuimg.focus();
    return false;
  }
  if('Student' == acctype)
  {
     if (document.frmRegister.txtstunotes.value.length > 200)
      {
       alert(estudentnotes);
       document.frmRegister.txtstunotes.focus();
       return false;
     }
    else
      return true;
  }
  return true;
}

// this function validates the password
function fnPasswordCheck()
{
    var len;
    len = document.frmRegister.txtupass.value.length -1;
    if(reg_null.test(document.frmRegister.txtupass.value))
  {
     alert(epassword);
     document.frmRegister.txtupass.focus();
     return false;
  }
    else if (' ' == document.frmRegister.txtupass.value.charAt(0)|| ' ' == document.frmRegister.txtupass.value.charAt(len))
  {
       alert(epassword2);
     document.frmRegister.txtupass.focus();
     return false;
  }
    else if(document.frmRegister.txtupass.value.length < 4)
  {
    alert (epassword1);
    document.frmRegister.txtupass.focus();
    return false;
  }
    else if(!isNaN(document.frmRegister.txtupass.value))
  {
    alert(epassword3);
    document.frmRegister.txtupass.focus();
    return false;
  }
    else if(reg_null.test(document.frmRegister.txturpass.value))
  {
    alert(eretypepass);
    document.frmRegister.txturpass.focus();
    return false;
  }
    else if(document.frmRegister.txtupass.value != document.frmRegister.txturpass.value)
  {
    alert(epassword4);
    document.frmRegister.txturpass.focus();
    return false;
  }
    else
  {
      return true;
  }
}

function fnLoadStates(locid)
{
    var separator1;
    var sel_state=0;
    separator1 = '*^';
    arr_state = new Array();
    arr_value = new Array();
    arr_state = str_state.split(separator1);
    var inc=1;
    var country=document.frmRegister.cmbcountry.options[document.frmRegister.cmbcountry.selectedIndex].value;
    document.frmRegister.cmbstate.length=0;
    document.frmRegister.txtstatename.disabled=true;
    document.frmRegister.cmbstate.options[0]=new Option(cmbSelect,"0");
    for(i=1;i<arr_state.length-1;i=i+3)
    {
        if(arr_state[i]==country)
        {
          document.frmRegister.cmbstate.options[inc]=new Option(arr_state[i+1],arr_state[i-1]);

             if (locid == arr_state[i-1])
             {
                 sel_state = inc;
             }
             inc++;
        }
    }
    document.frmRegister.cmbstate.options[sel_state].selected=true;
    return true;
}

function fnmodify()
{
  document.frmRegisterRev.action="userRegistration.html?flag='true'";
  document.frmRegisterRev.submit();
  return true;
}
function funSearchResults(review, ids)
{
    var flag = true;
    var sel_user = false;
    arr_delids = ids.split(",");

    for (i=0;i<document.frmUserSearchResults.elements.length;i++)
    {
        if (document.frmUserSearchResults.elements[i].type == "checkbox" &&
            document.frmUserSearchResults.elements[i].name != "chkSelect" &&
            document.frmUserSearchResults.elements[i].checked)
              flag = false;
    }
   if ('' != ids)
    {
        for (i=0;i<arr_delids.length;i++)
        {
            if (eval("document.frmUserSearchResults.chkUser"+arr_delids[i]+".checked"))
                sel_user = true;
    }
    }
    if (review=='' && flag)
    {
        alert("Please select the user to delete.")
        return false;
    }
    else if(review=='' && ids != '' && sel_user)
    {
        alert("Cannot delete the Logon User. Please unselect the checkbox.")
        return false;
    }
    else
    {
        return true;
    }
}

/*function fnSelectStatus(frm, name)
{
    var state;
    var totCount;
    var selCount;
    totCount = 0;
    selCount = 0;
    for (i=0;i<eval("document."+frm+".elements.length");i++)
    {
        if (eval("document."+frm+".elements[i].type") == "checkbox" &&
            eval("document."+frm+".elements[i].name") != name)
        {
            totCount++;
            if (eval("document."+frm+".elements[i].checked"))
                selCount++;
        }
    }
    if (totCount == selCount)
        eval("document."+frm+"."+name+".checked = true");
    else
        eval("document."+frm+"."+name+".checked = false");
}*/

/* Check if enter has been sent and do a submit */
function fnUserSearchEnterCheck(evt)
{
  evt = (evt) ? evt : event;
  var target = (evt.target) ? evt.target : evt.srcElement;
  var form = target.form;
  var charCode = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
  if (charCode == 13)
  {
    if (fnUserSearch())
    {
      form.submit();
      return false;
    }
  }
  else 
   return true;
}

function fnUserSearch()
{
 var jfday=document.frmUserSearch.cmbJFDay.options[document.frmUserSearch.cmbJFDay.options.selectedIndex].value;
 var jfmonth=document.frmUserSearch.cmbJFMonth.options[document.frmUserSearch.cmbJFMonth.options.selectedIndex].value;
 var jfyear=document.frmUserSearch.cmbJFYear.options[document.frmUserSearch.cmbJFYear.options.selectedIndex].value;
 var jtday=document.frmUserSearch.cmbJTDay.options[document.frmUserSearch.cmbJTDay.options.selectedIndex].value;
 var jtmonth=document.frmUserSearch.cmbJTMonth.options[document.frmUserSearch.cmbJTMonth.options.selectedIndex].value;
 var jtyear=document.frmUserSearch.cmbJTYear.options[document.frmUserSearch.cmbJTYear.options.selectedIndex].value;
 var jfdate=false;

 var startdate=jfyear+'-'+jfmonth.toString().replace(/^([0-9]{1})$/,"0$1")+'-'+jfday.toString().replace(/^([0-9]{1})$/,"0$1");
 var enddate=jtyear+'-'+jtmonth.toString().replace(/^([0-9]{1})$/,"0$1")+'-'+jtday.toString().replace(/^([0-9]{1})$/,"0$1");
 if(jfday != '0'||jfmonth != '0'||jfyear !='0')
  {
      jfdate=true;
  }
 var jtdate=false;
 if(jtday != '0'||jtmonth != '0'||jtyear !='0')
  {
    jtdate=true;
  }
 if (reg_null.test(document.frmUserSearch.txtumail.value) &&
	 reg_null.test(document.frmUserSearch.txtulogin.value) &&
	 reg_null.test(document.frmUserSearch.txtufname.value) &&
	 reg_null.test(document.frmUserSearch.txtulname.value) && !jfdate && !jtdate &&
	 "Select" == document.frmUserSearch.cmbGraded.options[document.frmUserSearch.cmbGraded.options.selectedIndex].value &&
	 "Select" == document.frmUserSearch.cmbaccesstype.options[document.frmUserSearch.cmbaccesstype.options.selectedIndex].value &&
	 "Select" == document.frmUserSearch.cmbExistence.options[document.frmUserSearch.cmbExistence.options.selectedIndex].value &&
	 'S' == document.frmUserSearch.cmbgender.options[document.frmUserSearch.cmbgender.options.selectedIndex].value &&
	 0 == document.frmUserSearch.cmbcountry.options[document.frmUserSearch.cmbcountry.options.selectedIndex].value &&
	 "select" == document.frmUserSearch.cmbstate.options[document.frmUserSearch.cmbstate.options.selectedIndex].value &&
	 0 == document.frmUserSearch.cmbschool.options[document.frmUserSearch.cmbschool.options.selectedIndex].value)
  {
	 
   alert("Please Enter the Search Criteria");
   document.frmUserSearch.txtumail.focus();
   return false;
  }
 else if (jfdate && ('0' == jfday || '0' == jfmonth || '0' == jfyear
                       || !funDateCheck(jfday, jfmonth, jfyear, '')))
    {
        alert("Please select valid Joined From Date");
        document.frmUserSearch.cmbJFMonth.focus();
        return false;
    }
  else if (jtdate && ('0' == jtday || '0' == jtmonth || '0' == jtyear
                       || !funDateCheck(jtday, jtmonth, jtyear, '')))
    {
        alert("Please select valid Joined Till Date");
        document.frmUserSearch.cmbJTMonth.focus();
        return false;
    }
  else if (jfdate && jtdate && startdate>enddate)
    {
        alert("Joined From Date should be less than Joined Till Date");
        document.frmUserSearch.cmbJFMonth.focus();
        return false;
    }
 else
  {
     return true;
  }
}//fnUserSearch()

//function used for Statistics Search
function fnStatSearch()
{
 var jfday=document.frmStatSearch.cmbJFDay.options[document.frmStatSearch.cmbJFDay.options.selectedIndex].value;
 var jfmonth=document.frmStatSearch.cmbJFMonth.options[document.frmStatSearch.cmbJFMonth.options.selectedIndex].value;
 var jfyear=document.frmStatSearch.cmbJFYear.options[document.frmStatSearch.cmbJFYear.options.selectedIndex].value;
 var jtday=document.frmStatSearch.cmbJTDay.options[document.frmStatSearch.cmbJTDay.options.selectedIndex].value;
 var jtmonth=document.frmStatSearch.cmbJTMonth.options[document.frmStatSearch.cmbJTMonth.options.selectedIndex].value;
 var jtyear=document.frmStatSearch.cmbJTYear.options[document.frmStatSearch.cmbJTYear.options.selectedIndex].value;
 var jfdate=false;

 var startdate=jfyear+'-'+jfmonth.toString().replace(/^([0-9]{1})$/,"0$1")+'-'+jfday.toString().replace(/^([0-9]{1})$/,"0$1");
 var enddate=jtyear+'-'+jtmonth.toString().replace(/^([0-9]{1})$/,"0$1")+'-'+jtday.toString().replace(/^([0-9]{1})$/,"0$1");
 if(jfday != '0'||jfmonth != '0'||jfyear !='0')
  {
      jfdate=true;
  }
 var jtdate=false;
 if(jtday != '0'||jtmonth != '0'||jtyear !='0')
  {
    jtdate=true;
  }
 if (!jfdate && !jtdate &&
     "Select" == document.frmStatSearch.cmbaccesstype.options[document.frmStatSearch.cmbaccesstype.options.selectedIndex].value &&
     "Select" == document.frmStatSearch.cmbExistence.options[document.frmStatSearch.cmbExistence.options.selectedIndex].value &&
     0 == document.frmStatSearch.cmbschool.options[document.frmStatSearch.cmbschool.options.selectedIndex].value
   )
  {
   alert("Please Enter the Search Criteria");
   document.frmStatSearch.cmbaccesstype.focus();
   return false;
  }
 else if (jfdate && ('0' == jfday || '0' == jfmonth || '0' == jfyear
                       || !funDateCheck(jfday, jfmonth, jfyear, '')))
    {
        alert("Please select valid Joined From Date");
        document.frmStatSearch.cmbJFMonth.focus();
        return false;
    }
  else if (jtdate && ('0' == jtday || '0' == jtmonth || '0' == jtyear
                       || !funDateCheck(jtday, jtmonth, jtyear, '')))
    {
        alert("Please select valid Joined Till Date");
        document.frmStatSearch.cmbJTMonth.focus();
        return false;
    }
  else if (jfdate && jtdate && startdate>enddate)
    {
        alert("Joined From Date should be less than Joined Till Date");
        document.frmStatSearch.cmbJFMonth.focus();
        return false;
    }
 else
  {
     return true;
  }
}//fnStatSearch()


//function used for Remote User Search
function fnRemoteUserSearch()
{
 var jfday=document.frmRemoteUserSearch.cmbJFDay.options[document.frmRemoteUserSearch.cmbJFDay.options.selectedIndex].value;
 var jfmonth=document.frmRemoteUserSearch.cmbJFMonth.options[document.frmRemoteUserSearch.cmbJFMonth.options.selectedIndex].value;
 var jfyear=document.frmRemoteUserSearch.cmbJFYear.options[document.frmRemoteUserSearch.cmbJFYear.options.selectedIndex].value;
 var jtday=document.frmRemoteUserSearch.cmbJTDay.options[document.frmRemoteUserSearch.cmbJTDay.options.selectedIndex].value;
 var jtmonth=document.frmRemoteUserSearch.cmbJTMonth.options[document.frmRemoteUserSearch.cmbJTMonth.options.selectedIndex].value;
 var jtyear=document.frmRemoteUserSearch.cmbJTYear.options[document.frmRemoteUserSearch.cmbJTYear.options.selectedIndex].value;
 var jfdate=false;

 var startdate=jfyear+'-'+jfmonth.toString().replace(/^([0-9]{1})$/,"0$1")+'-'+jfday.toString().replace(/^([0-9]{1})$/,"0$1");
 var enddate=jtyear+'-'+jtmonth.toString().replace(/^([0-9]{1})$/,"0$1")+'-'+jtday.toString().replace(/^([0-9]{1})$/,"0$1");
 if(jfday != '0'||jfmonth != '0'||jfyear !='0')
  {
      jfdate=true;
  }
 var jtdate=false;
 if(jtday != '0'||jtmonth != '0'||jtyear !='0')
  {
    jtdate=true;
  }
 if (!jfdate && !jtdate &&
     "Select" == document.frmRemoteUserSearch.cmbaccesstype.options[document.frmRemoteUserSearch.cmbaccesstype.options.selectedIndex].value &&
     "Select" == document.frmRemoteUserSearch.cmbExistence.options[document.frmRemoteUserSearch.cmbExistence.options.selectedIndex].value &&
     0 == document.frmRemoteUserSearch.cmbschool.options[document.frmRemoteUserSearch.cmbschool.options.selectedIndex].value
   )
  {
   alert("Please Enter the Search Criteria");
   document.frmRemoteUserSearch.cmbaccesstype.focus();
   return false;
  }
 else if (jfdate && ('0' == jfday || '0' == jfmonth || '0' == jfyear
                       || !funDateCheck(jfday, jfmonth, jfyear, '')))
    {
        alert("Please select valid Joined From Date");
        document.frmRemoteUserSearch.cmbJFMonth.focus();
        return false;
    }
  else if (jtdate && ('0' == jtday || '0' == jtmonth || '0' == jtyear
                       || !funDateCheck(jtday, jtmonth, jtyear, '')))
    {
        alert("Please select valid Joined Till Date");
        document.frmRemoteUserSearch.cmbJTMonth.focus();
        return false;
    }
  else if (jfdate && jtdate && startdate>enddate)
    {
        alert("Joined From Date should be less than Joined Till Date");
        document.frmRemoteUserSearch.cmbJFMonth.focus();
        return false;
    }
 else
  {
     return true;
  }
}//fnRemoteUserSearch()


function funSubmit(frm,review,ids)
{
	
	
  if(frm =="frmUserSearch")
  {
	if (fnUserSearch())
    {
      document.frmUserSearch.action="userSearchResults.html?flag=true";
      document.frmUserSearch.submit();
    }
  }
  else if(frm =="frmRegister")
  {
    if (fnSubmit())
    {
      document.frmRegister.action=str_action;
      document.frmRegister.txtRegPage.value="RegPage";
      document.frmRegister.submit();
    }
  }
  else if(frm =="frmRegisterRev")
  {

      document.frmRegisterRev.action=str_action;
      document.frmRegisterRev.txtRegRevPage.value="RegRevPage";
      document.frmRegisterRev.submit();
  }
  else if(frm =="frmUserSearchResults")
  {
    if (funSearchResults(review,ids))
    {
      document.frmUserSearchResults.action=str_action;
      document.frmUserSearchResults.submit();
    }
  }
  else if(frm =="frmLanguageMaintenance")
  {
    if (fnLangSearch(review,ids))
    {
    document.frmLanguageMaintenance.action=str_action;
    document.frmLanguageMaintenance.submit();
    }
  }
  else if(frm =="frmStatSearch")
  {
    //if (fnStatSearch())
    if (true)
    {
      document.frmStatSearch.action="statisticsResults.html?flag=true";
      document.frmStatSearch.submit();
    }
  }
  else if(frm =="frmRemoteUserSearch")
  {
    if (fnRemoteUserSearch())
    {
      document.frmRemoteUserSearch.action="remoteUserResults.html?flag=true";
      document.frmRemoteUserSearch.submit();
    }
  }
}//funSubmit

function fnReset(locid)
{
  document.frmRegister.reset();
  window.setTimeout("funState()",0);
  window.setTimeout("fnLoadStates('"+locid+"')",0);
}

function funCancel(frm)
{
	
  if(frm == "frmUserSearchResults")
  {
    document.frmUserSearch.action=str_cancel;
    document.frmUserSearch.submit();
  }
  else if(frm == "frmUserSearch")
  {
    document.frmUserSearch.action=str_cancel;
    document.frmUserSearch.submit();
  }
  if(frm == "frmRegister")
  {
    document.frmRegister.action=str_cancel;
    document.frmRegister.submit();
  }
  if(frm == "frmStatSearch")
  {
    document.frmStatSearch.action=str_cancel;
    document.frmStatSearch.submit();
  }
  if(frm == "frmRemoteUserSearch")
  {
    document.frmRemoteUserSearch.action = str_cancel;
    document.frmRemoteUserSearch.submit();
  }
}
// this function is used in usersearch page

function funLoadStates(locid)
{
    var separator1;
    var sel_state=0;
    separator1 = '*^';
    arr_state = new Array();
    arr_value = new Array();
    arr_state = str_state.split(separator1);
    var inc=1;
    var country=document.frmUserSearch.cmbcountry.options[document.frmUserSearch.cmbcountry.selectedIndex].value;
    document.frmUserSearch.cmbstate.length=0;
    document.frmUserSearch.cmbstate.options[0]=new Option("Select","0");
    for(i=1;i<arr_state.length-1;i=i+3)
    {

        if(arr_state[i]==country)
        {
             document.frmUserSearch.cmbstate.options[inc]=new Option(arr_state[i+1],arr_state[i-1]);

             if (locid == arr_state[i-1])
             {
                 sel_state = inc;
             }
             inc++;
        }
    }
    document.frmUserSearch.cmbstate.options[sel_state].selected=true;
    return true;
}
//This function is used to load the schools
function funLoadSchools(frm)
{
  if(frm =='frmUserSearch')
  {
  var schid=document.frmUserSearch.cmbschool.options
            [document.frmUserSearch.cmbschool.selectedIndex].value;
    document.frmUserSearch.action="userSearchResults.html?flag=true&id="+schid;
  return true;
  }
  else if(frm =='frmRegister')
  {
    var schid=document.frmRegister.cmbschool.options
            [document.frmRegister.cmbschool.selectedIndex].value;
    document.frmRegister.action="userRegistrationRev.html?flag=true&id="+schid;
  return true;
  }
}//funLoadSchools
function funDateCheck(day,month,year,check)
{
    day = parseInt(day);
    month = parseInt(month);
    year = parseInt(year);
    if ((month==4 || month==6 || month==9 || month==11) && day==31)
    {
        return false;
    }
    if (month == 2)
    {
        var leapYear;
        leapYear = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day>29 || (day==29 && !leapYear))
        {
            return false;
        }
    }
    if (check=='future')
    {
        month = month-1;
        var mydate = new Date();
        var cr_year = mydate.getFullYear();
        var cr_month = mydate.getMonth();
        var cr_day = mydate.getDate();
        cr_day = parseInt(cr_day);
        cr_month = parseInt(cr_month);
        cr_year = parseInt(cr_year);
        if (year > cr_year)
            return false;

        else if (year == cr_year && month > cr_month)
            return false;

        else if(year == cr_year && month == cr_month && day > cr_day)
            return false;

        else
            return true;
    }
    return true;
}
//This function will disable the state combo when the state is not available
function funState()
{
  if (document.frmRegister.chkState.checked)
  {
    document.frmRegister.cmbstate.disabled=true;
    document.frmRegister.txtstatename.disabled=false;
  }
  else
  {
    document.frmRegister.cmbstate.disabled=false;
    document.frmRegister.txtstatename.disabled=true;
  }
  return true;
}
//This function is used to select the id for selected course
function funSelectCourse()
{
  var courseid=document.frmHome.cmbcourse.options
            [document.frmHome.cmbcourse.selectedIndex].value;
    document.frmHome.action="onlineLessonDisplay.html?flag=true&id="+courseid;
  return true;
}//funSelectCourse

//This function is used to select the id for selected course
function funSelectLanguage()
{
  var courseid=document.frmHome.cmblanguage.options
            [document.frmHome.cmblanguage.selectedIndex].value;
    document.frmHome.action="onlineLessonDisplay.html?flag=true&id="+courseid;
  return true;
}//funSelectCourse

