﻿// JScript File

// JScript File
//This file contains all of the calls made to the 'ws_Users' web service and handles the return calls from it

    function u_ShowReferencesEdit(intUserID){
        ret = ws_Users.ShowReferencesEdit(intUserID, u_OnCompleteShowReferencesEdit, u_OnErrorGeneric, u_OnTimeOutGeneric);
    }
    function u_OnCompleteShowReferencesEdit(result){
        document.getElementById("References").innerHTML = result;
        document.getElementById("ReferencesCancel").style.visibility = '';
        document.getElementById("ReferencesSave").style.visibility = '';
        document.getElementById("ReferencesEdit").style.visibility = 'hidden';
    }
    
    function u_CancelSaveReferencesEdit(intUserID){
        ret = ws_Users.ReturnReferences(intUserID, u_onCompleteReferencesChange, u_OnErrorGeneric, u_OnTimeOutGeneric);
    }
    function u_SaveReferencesEdit(intUserID){
        var strRef1;
        var strRef2;
        var strRef3;
        
        strRef1  = document.getElementById("txtReference1").value;
        strRef2  = document.getElementById("txtReference2").value;
        strRef3  = document.getElementById("txtReference3").value;
        ret = ws_Users.SaveReferencesEdit(intUserID, strRef1, strRef2, strRef3, u_onCompleteReferencesChange, u_OnErrorGeneric, u_OnTimeOutGeneric);        
    }

    function u_onCompleteReferencesChange(result){
        document.getElementById("References").innerHTML = result;
        document.getElementById("ReferencesCancel").style.visibility = 'hidden';
        document.getElementById("ReferencesSave").style.visibility = 'hidden';
        document.getElementById("ReferencesEdit").style.visibility = '';
    }
    
    function u_MarkMessageAsRead(intAlertID, intUserID){
        ret = ws_Users.MarkAlertAsRead(intAlertID, intUserID, u_onCompleteMarkMessageRead, u_OnErrorGeneric, u_OnTimeOutGeneric);            
    }

    function u_onCompleteMarkMessageRead(result){
        u_ShowUserAlerts(result);
    }

    function u_ShowUserAlerts(intUserID){
        ret = ws_Users.ReturnUserAlerts(intUserID, u_onCompleteShowUserAlerts, u_OnErrorGeneric, u_OnTimeOutGeneric);            
    }
    
    function u_onCompleteShowUserAlerts(result){
        document.getElementById("scroll_text").innerHTML = result;
    }

    function u_AddGradToWatchList(intGraduateID, intCompanyID, intCompanyUserID){
        ret = ws_Users.AddGradToWatchlist(intCompanyID, intGraduateID, intCompanyUserID, u_OnCompleteAddGradToWatchList, u_OnErrorGeneric, u_OnTimeOutGeneric);
    }
    function u_OnCompleteAddGradToWatchList(result){
        document.getElementById("WatchlistText").innerHTML = result + ' is in your Graduate Watch List';
    }

    function u_RemoveGradFromWatchlist(intGraduateID, intCompanyID){
        ret = ws_Users.RemoveGradFromWatchlist(intCompanyID, intGraduateID, false, u_OnCompleteRemoveGradFromWatchList, u_OnErrorGeneric, u_OnTimeOutGeneric);
    }
    function u_OnCompleteRemoveGradFromWatchList(result){
        //refresh the page
        u_Search_Watchlist(1, result, '');        
    }


    function u_ShowStatAvailEdit(strStatus, strAvail){
        ret = ws_Users.ShowStatAvailEdit(strStatus, strAvail, u_OnCompleteShowStatAvailEdit, u_OnErrorGeneric, u_OnTimeOutGeneric);
    }
    function u_OnCompleteShowStatAvailEdit(result){
        document.getElementById("StatAvailControls").innerHTML = result;
        document.getElementById("SaveStatAvail").style.visibility = '';
        document.getElementById("EditStatAvail").style.visibility = 'hidden';
    }
    
    function u_CancelSaveStatAvailEdit(intUserID){
        ret = ws_Users.ReturnStatAvail(intUserID, u_onCompleteStatAvailChange, u_OnErrorGeneric, u_OnTimeOutGeneric);
    }
    function u_SaveStatAvailEdit(intUserID){
        var strStatus;
        var strAvailability;
        
        strStatus = document.getElementById("cmbStatus").value;
        strAvailability = document.getElementById("cmbAvailability").value;
        ret = ws_Users.SaveStatAvailEdit(intUserID, strStatus, strAvailability, u_onCompleteStatAvailChange, u_OnErrorGeneric, u_OnTimeOutGeneric);        
    }

    function u_onCompleteStatAvailChange(result){
        document.getElementById("StatAvailControls").innerHTML = result;
        document.getElementById("SaveStatAvail").style.visibility = 'hidden';
        document.getElementById("EditStatAvail").style.visibility = '';
    }




    function u_ListUsers(){
        document.getElementById("UserList").innerHTML = "Loading....";
        document.getElementById("UserDetail").innerHTML = "";
        ret = ws_Users.ListUsers(u_OnCompleteList, u_OnErrorGeneric, u_OnTimeOutGeneric);
    }  
    
       
    
    function u_Search(){
        var ID;
        var strCompany;
        var strFirstname;
        var strSurname;
        var strEmailAddress;
        var intCountyID = 0;
        var intCountryID;
        var intSubsLevelID;
        var boolExcludeDeleted;
        var boolReturnUnchecked;
        var intMostRecent;

        ID = '';
        ID = document.getElementById("txtsrchID").value;
        if (ID.length<1){
            ID='j';
        }
        
        boolExcludeDeleted = document.getElementById("chksrchExcludeDeleted").checked;
        boolReturnUnchecked = document.getElementById("chksrchUnChecked").checked;
        
        //window.alert(document.getElementById("cmbSrchSubsLevels").selectedIndex);
        //window.alert(document.getElementById("cmbSrchSubsLevels").options[document.getElementById("cmbSrchSubsLevels").selectedIndex].value);
        intSubsLevelID = '';
        intSubsLevelID = document.getElementById("cmbsrchSubsLevels").options[document.getElementById("cmbsrchSubsLevels").selectedIndex].value;
        if (intSubsLevelID.length<1){
            intSubsLevelID='j';
        }
        intCountryID = '';
        intCountryID = document.getElementById("cmbsrchCountries").options[document.getElementById("cmbsrchCountries").selectedIndex].value;
        if (intCountryID.length<1){
            intCountryID='j';
        }

        //strCompany = document.getElementById("txtsrchCompany").value;
        strCompany = document.getElementById("cmbsrchCompanies").value;
        strFirstname = document.getElementById("txtsrchFirstname").value;
        strSurname = document.getElementById("txtsrchSurname").value;
        strEmailAddress = document.getElementById("txtsrchEmail").value;
        if(isNaN(ID)==true){
            ID = 0;
        }
        if(isNaN(intCountryID)==true){
            intCountryID = 0;
        }
        if(isNaN(intSubsLevelID)==true){
            intSubsLevelID = 0;
        }

        intMostRecent = document.getElementById("cmbsrchMostRecent").value;
        if (intMostRecent.length<1){
            intMostRecent = 0
        }
        document.getElementById("UserList").innerHTML = "Loading....";
        document.getElementById("UserDetail").innerHTML = "";
        
        //window.alert("country" + intCountryID);
        //window.alert("subs" + intSubsLevelID);
        
        ret = ws_Users.Search2(ID, strCompany, strFirstname, strSurname, strEmailAddress, intCountyID, intCountryID, intSubsLevelID, boolExcludeDeleted, boolReturnUnchecked, intMostRecent, u_OnCompleteList, u_OnErrorGeneric, u_OnTimeOutGeneric);
    }
    function u_OnCompleteList(result){
        document.getElementById("UserList").innerHTML = result;
    }

    function u_LoadMostRecentUserGradSearch(intUserID){
        ret = ws_Users.LoadMostRecentUserSearch(intUserID, u_OnCompleteSearchGrad, u_OnErrorGeneric, u_OnTimeOutGeneric);   
    }

    function u_Grad_Search_Refresh(intUserID){
        ret = ws_Users.LoadMostRecentUserSearch(intUserID, u_OnCompleteLoadMostRecentSearch, u_OnErrorGeneric, u_OnTimeOutGeneric);        
    }
    function u_OnCompleteLoadMostRecentSearch(result){
        if (result.length>0){
            var boolExpandSearchBox=false;
            var varArray = result.split("||");
            var strParams = '';
            strParams = varArray[2];
            var varArray2 = strParams.split("~~");
            document.getElementById("divResults").innerHTML = varArray[0];
            document.getElementById("divResultsHead").innerHTML = varArray[1];  
            //populate the controls with the search parameters.  This is only for IE really as FF seems to remember them
            //strParams = 0 & "~~" & .Keyword & "~~" & .Locations & "~~" & .Sectors & "~~" & .Availability & "~~" & .Status & "~~" & .ContractTypes & "~~" & .JobTitlesSought & "~~" & .Universities & "~~" & .Grades
            if (varArray2[1].length>0){
                document.getElementById("txtKeyword").value = varArray2[1];
            } 
            if (varArray2[2].length>0){
                //locations
                FindItemsInList("lstLocations", varArray2[2]);  
            } 
            if (varArray2[3].length>0){
                //sectors
                FindItemsInList("lstCategories", varArray2[3]);  
            } 
            if (varArray2[4].length>0){
                //availability
                boolExpandSearchBox=true;
                FindItemInCombo("cmbAvailability", varArray2[4]);  
            } 
            if (varArray2[5].length>0){
                //status
                boolExpandSearchBox=true;
                FindItemInCombo("cmbStatus", varArray2[5]);  
            } 
            if (varArray2[6].length>0){
                //contract types
                boolExpandSearchBox=true;
                FindItemsInList("lstContractTypes", varArray2[6]);  
            } 
            if (varArray2[7].length>0){
                //job titles sought
                //FindItemsInList("lstContractTypes", varArray2[7]);  
            } 
            if (varArray2[8].length>0){
                //universities
                boolExpandSearchBox=true;
                FindItemsInList("lstUniversities", varArray2[8]);  
            } 
            if (varArray2[9].length>0){
                //grades
                boolExpandSearchBox=true;
                FindItemsInList("lstGrades", varArray2[9]);  
            }     
            
            if (boolExpandSearchBox==true){
                //the Expand() function is coded onto the GradSearch page
                Expand();
            }
        }
    }

    function FindItemInCombo(strComboName, strItem){
        var intCounter;
        var i=0;
        var len;
        len = document.getElementById(strComboName).length        
        for (i = 0; i < len; i++) {
            if (document.getElementById(strComboName)[i].value == strItem){
                document.getElementById(strComboName).selectedIndex=i;
            }
        }        
    }

    function FindItemsInList(strListName, strItems){
        var intCounter;
        var i=0;
        var len;
        var x=0;
        var strCheckString;
        var varArray = strItems.split(",");
        
        len = document.getElementById(strListName).length ;       
        //loop through the items in the list
        for (i = 0; i < len; i++) {
            //loop through the items in the array to see if it matches the current list item
            for (x = 0; x < varArray.length; x++) {
                strCheckString = varArray[x];
                strCheckString = strCheckString.replace("'", "");
                strCheckString = strCheckString.replace("'", "");
                strCheckString = strCheckString.replace(" ", "");
                strCheckString = strCheckString.replace(" ", "");
                if (document.getElementById(strListName)[i].value == strCheckString){
                    document.getElementById(strListName)[i].selected = true;
                }
            }
        }        
    }

    function u_Grad_Search(intPageNumber, intCompanyID, strOrderBy){
        var intID=0;
        var strFreeText;
        var strLocationIDs;
        var strCategoryIDs;
        var strAvailability;
        var strStatus;
        var strContractTypes;
        var strJobTitleSought='';
        var strUniversityIDs;
        var strGrades;
        var strLanguages;
        var len;
        var i;

        if (strOrderBy.length<1){
            strOrderBy = 'intID DESC';
        }
                
        strFreeText = document.getElementById("txtKeyword").value;
        strLanguages = document.getElementById("txtLanguages").value;

        len = document.getElementById("lstLocations").length
        i = 0
        strLocationIDs = '';
        for (i = 0; i < len; i++) {
            if (document.getElementById("lstLocations")[i].selected) {
                strLocationIDs = strLocationIDs + document.getElementById("lstLocations")[i].value + "~"
            } 
        }
        len = document.getElementById("lstCategories").length
        i = 0
        strCategoryIDs = '';
        for (i = 0; i < len; i++) {
            if (document.getElementById("lstCategories")[i].selected) {
                strCategoryIDs = strCategoryIDs + document.getElementById("lstCategories")[i].value + "~"
            } 
        }
        strAvailability = document.getElementById("cmbAvailability").value;
        strStatus = document.getElementById("cmbStatus").value;
        len = document.getElementById("lstContractTypes").length
        i = 0
        strContractTypes = '';
        for (i = 0; i < len; i++) {
            if (document.getElementById("lstContractTypes")[i].selected) {
                strContractTypes = strContractTypes + document.getElementById("lstContractTypes")[i].value + "~"
            } 
        }
        //strJobTitleSought = document.getElementById("txtJobTitleSought").value;
        len = document.getElementById("lstUniversities").length
        i = 0
        strUniversityIDs = '';
        for (i = 0; i < len; i++) {
            if (document.getElementById("lstUniversities")[i].selected) {
                strUniversityIDs = strUniversityIDs + document.getElementById("lstUniversities")[i].value + "~"
            } 
        }
        len = document.getElementById("lstGrades").length
        i = 0
        strGrades = '';
        for (i = 0; i < len; i++) {
            if (document.getElementById("lstGrades")[i].selected) {
                strGrades= strGrades + document.getElementById("lstGrades")[i].value + "~"
            } 
        }

        document.getElementById("divSearchResults").style.visibility = '';
        document.getElementById("divResults").innerHTML = "Loading....";
        ret = ws_Users.SearchGrad(intPageNumber, 20, intID, strFreeText, strLocationIDs, strCategoryIDs, strAvailability, strStatus, strContractTypes, strJobTitleSought, strUniversityIDs, strGrades, strOrderBy, intCompanyID, false, strLanguages, u_OnCompleteSearchGrad, u_OnErrorGeneric, u_OnTimeOutGeneric);
    }
    function u_OnCompleteSearchGrad(result){
        var varArray = result.split("||");
        document.getElementById("divResults").innerHTML = varArray[0];
        document.getElementById("divResultsHead").innerHTML = varArray[1];
    }

    function u_Search_Watchlist(intPageNumber, intCompanyID, strOrderBy){
        ret = ws_Users.LoadForWatchlist(intPageNumber, 20, intCompanyID, strOrderBy, u_OnCompleteSearchGrad, u_OnErrorGeneric, u_OnTimeOutGeneric);
    }
    function u_OnCompleteSearchWatchlist(result){
        var varArray = result.split("||");
        document.getElementById("divResults").innerHTML = varArray[0];
        document.getElementById("divResultsHead").innerHTML = varArray[1];
    }
    

    function u_NewUser(){
        document.getElementById("UserList").innerHTML = "Loading....";
        document.getElementById("UserDetail").innerHTML = "";
        ret = ws_Users.NewUser(u_OnCompleteDetail, u_OnErrorGeneric, u_OnTimeOutGeneric);
    }
    function u_ShowUserDetail(intUserID){
        document.getElementById("UserDetail").innerHTML = "Loading....";
        ret = ws_Users.UserDetail(intUserID, u_OnCompleteDetail, u_OnErrorGeneric, u_OnTimeOutGeneric);
    }
    function u_ShowUserDetailGuid(strGuid){
        document.getElementById("UserDetail").innerHTML = "Loading....";
        ret = ws_Users.UserDetailGuid(strGuid, u_OnCompleteDetail, u_OnErrorGeneric, u_OnTimeOutGeneric);
    }
    function u_OnCompleteDetail(result){
        document.getElementById("UserDetail").innerHTML = result;
    }



    function u_Save(intUserID, strSubsLevelIDs, strJobTypeIDs){
        var intCompanyID
        var strFirstname
        var strSurname
        var strInitial
        var strTitle
        var strBirthDate
        var intNationality
        var strJobTitle
        var strJobArea
        var strUniversity
        var strAvailability
        var strJobSeekingStatus
        var strAddress1
        var strAddress2
        var strAddress3
        var strCity
        var strCounty
        var strPostcode
        var strCountry
        var strEmailAddress
        var strEmailAddress2
        var strPhoneNumber
        var strPhoneNumber2
        var strUsername
        var strPassword
        var strNotes
        var boolUndergrad
        var boolProfileChecked
        var boolFeaturedGraduate
        var strWorkPlacements
        var strDateDeleted
        var strSubsLevels
        var temp = new Array()
        var strJobTypes
        var strChkBox
        var strExp
        var strMobile
        var strFax
        
        strSubsLevels = "";
        //window.alert("subs" + strSubsLevelIDs);
        temp = strSubsLevelIDs.split('~');                
        for (var i=0;i<=temp.length-1;i++)
            {
            if (temp[i].length > 0){
                strChkBox = "chkSubs" + temp[i];
                strExp = "txtSubs" + temp[i] + "Expiry"
                //window.alert("Checking: " + strChkBox);
                //window.alert(document.getElementById(strChkBox).checked);
                if(document.getElementById(strChkBox).checked==true){
                    strSubsLevels += temp[i] + "~" + document.getElementById(strExp).value + "~" + document.getElementById("chkSubsLive" + temp[i]).checked + "||"
                }   
                //window.alert(strSubsLevels);
            }
        }

        strJobTypes = "";
        //window.alert("job types" + strJobTypeIDs);
        temp = strJobTypeIDs.split('~');                
        for (var i=0;i<=temp.length-1;i++)
            {
            if (temp[i].length > 0){
                strChkBox = "chkJobType" + temp[i];
                //window.alert("looking for " + strChkBox);
                if(document.getElementById(strChkBox).checked==true){
                    strJobTypes += temp[i] + "~blank~blank||"
                }   
            }
        }

        strFirstname =  document.getElementById("txtFirstname").value;
        strSurname =  document.getElementById("txtSurname").value;
        //strInitial = document.getElementById("txtInitials").value;
        //strTitle =  document.getElementById("txtTitle").value;
        strInitial = '';
        strTitle =  '';
        intCompanyID =  document.getElementById("cmbCompany").value;
        if (intCompanyID.length<1){
            intCompanyID = 0;
        }
        strJobTitle =  document.getElementById("txtJobTitle").value;
        strJobArea =  document.getElementById("txtJobArea").value;
        strBirthDate = document.getElementById("txtBirthDate").value;
        intNationality =  document.getElementById("cmbNationality").value;
        if (intNationality.length<1){
            intNationality = 0;
        }
        strAvailability =  document.getElementById("cmbAvailability").value;
        strUniversity =  document.getElementById("txtUniversity").value;
        strJobSeekingStatus =  document.getElementById("cmbJobSeekingStatus").value;
        strAddress1 = document.getElementById("txtAddress1").value;
        strAddress2 = document.getElementById("txtAddress2").value;
        strAddress3 = document.getElementById("txtAddress3").value;
        strCity =  document.getElementById("txtCity").value;
        strCounty = document.getElementById("cmbCounties").value;
        if (strCounty.length<1){
            strCounty = 0;
        }
        strPostcode =  document.getElementById("txtPostcode").value;
        strCountry = document.getElementById("cmbCountries").options[document.getElementById("cmbCountries").selectedIndex].value;
        if (strCountry.length<1){
            strCountry = 0;
        }
        strEmailAddress = document.getElementById("txtEmailAddress").value;
        strEmailAddress2 = document.getElementById("txtEmailAddress2").value;
        strPhoneNumber = document.getElementById("txtPhoneNumber").value;
        strPhoneNumber2 = document.getElementById("txtPhoneNumber2").value;
        strUsername  = document.getElementById("txtUsername").value;
        strPassword =  document.getElementById("txtPassword").value;
        strNotes =  document.getElementById("txtNotes").value;
        strMobile =  document.getElementById("txtMobile").value;
        strFax =  document.getElementById("txtFax").value;
        boolUndergrad =  document.getElementById("chkUndergrad").checked;
        boolProfileChecked =  document.getElementById("chkProfileChecked").checked;
        boolFeaturedGraduate =  document.getElementById("chkFeaturedGraduate").checked;
        strWorkPlacements =  document.getElementById("txtWorkPlacements").value;
        strDateDeleted = '';
        
        if (intNationality.length<1){
            intNationality = 0;
        }
        if (strCounty.length<1){
            strCounty= 0;
        }
                
        ret = ws_Users.Save(intUserID, intCompanyID, strFirstname, strSurname, strInitial, strTitle, strBirthDate, intNationality, strJobTitle, strJobArea, strUniversity, strAvailability, strJobSeekingStatus, strAddress1, strAddress2, strAddress3, strCity, strCounty, strPostcode, strCountry, strEmailAddress, strEmailAddress2, strPhoneNumber, strPhoneNumber2, strUsername, strPassword, strNotes, boolUndergrad, strWorkPlacements, strDateDeleted, strSubsLevels, strJobTypes, strMobile, strFax, boolProfileChecked, boolFeaturedGraduate, u_OnCompleteSave, u_OnErrorGeneric, u_OnTimeOutGeneric);
    }
    function u_Delete(intID){
        var resp= confirm("Do you really want to delete this user?");
        if (resp==true){
            ret = ws_Users.Delete(intID, u_OnCompleteSave, u_OnErrorGeneric, u_OnTimeOutGeneric);
        }
    }
    function u_OnCompleteSave(result){
        document.getElementById("UserDetail").innerHTML = result;
        u_Search();
    }
    
    function u_SubmitNewPreReg(){
        var strFirstname='';
        var strSurname='';
        var strEmail='';
        var strMobile='';
        var strDegree='';
        var strUniversity='';
        
        strFirstname = document.getElementById("txtFirstName").value;
        strSurname = document.getElementById("txtLastName").value;
        strEmail = document.getElementById("txtEmail").value;
        strMobile = document.getElementById("txtMobile").value;
        strDegree = document.getElementById("txtDegree").value;
        strUniversity = document.getElementById("txtUni").value;
        
        strFirstname = ReturnSafeText(strFirstname);
        strSurname = ReturnSafeText(strSurname);
        strEmail = ReturnSafeText(strEmail);
        strMobile= ReturnSafeText(strMobile);
        strDegree = ReturnSafeText(strDegree);
        strUniversity = ReturnSafeText(strUniversity);
        
        if (strFirstname.length<1 || strSurname.length<1 || strEmail.length<1 || strMobile.length<1 || strDegree.length<1 || strUniversity.length<1){
            window.alert("Please ensure that you complete ALL fields");
        }else{
            document.getElementById("Submit").innerHTML = 'please wait...';
           ret = ws_Users.SubmitNewHoldingPageUser(strFirstname, strSurname, strEmail, strMobile, strDegree, strUniversity, u_OnCompleteNewPreReg, u_OnErrorGeneric, u_OnTimeOutGeneric)    
        }       
    }

    function u_OnCompleteNewPreReg(result){
        document.getElementById("Submit").innerHTML = 'Thank you for signing up.  We will be in touch as soon as the full website is live.';
    }


    function u_Save_Site(intUserID){
        var strFirstname
        var strSurname
        var strJobTitle
        var strAddress1
        var strAddress2
        var strAddress3
        var strCity
        var strCounty
        var strPostcode
        var strCountry
        var strEmailAddress
        var strEmailAddress2
        var strPhoneNumber
        var strPhoneNumber2
        var strUsername
        var strPassword
        var strNewPassword
        var strMessage
        
        strMessage = '';
        strNewPassword = '';
        
        strFirstname =  document.getElementById("txtFirstname").value;
        strSurname =  document.getElementById("txtSurname").value;
        strJobTitle =  document.getElementById("txtJobTitle").value;
        strAddress1 = document.getElementById("txtAddress1").value;
        strAddress2 = document.getElementById("txtAddress2").value;
        strAddress3 = document.getElementById("txtAddress3").value;
        strCity =  document.getElementById("txtCity").value;
        strCounty = document.getElementById("txtCounty").value;
        strPostcode =  document.getElementById("txtPostcode").value;
        strCountry = document.getElementById("cmbCountries").options[document.getElementById("cmbCountries").selectedIndex].value;
        strEmailAddress = document.getElementById("txtEmailAddress").value;
        strEmailAddress2 = document.getElementById("txtEmailAddress2").value;
        strPhoneNumber = document.getElementById("txtPhoneNumber").value;
        strPhoneNumber2 = document.getElementById("txtPhoneNumber2").value;
        strUsername  = document.getElementById("txtUsername").value;
        strPassword =  document.getElementById("txtPassword").value;
        strNewPassword =  document.getElementById("txtNewPassword").value;

        if (strEmailAddress.length<1){
            strMessage = 'Please enter your email address';
        }

        if (strMessage.length<1){
            if (strUsername.length < 1){
                strUsername = strEmailAddress;
            }
            if (strNewPassword.length>0){
                strPassword = strNewPassword;
            }
        }
        if (strMessage.length<1){    
            ret = ws_Users.SaveSite(intUserID, strFirstname, strSurname, strJobTitle, strAddress1, strAddress2, strAddress3, strCity, strCounty, strPostcode, strCountry, strEmailAddress, strEmailAddress2, strPhoneNumber, strPhoneNumber2, strUsername, strPassword, document.getElementById("chkNLBreakingNews").checked, document.getElementById("chkNLeReport").checked, u_OnCompleteSiteSave, u_OnErrorGeneric, u_OnTimeOutGeneric);
        }else{
            window.alert(strMessage);
        }
    }
    
    function u_Login(){
        var strUserName
        var strPassword
        var boolRememberMe
        
        strUserName = '';
        strPassword = '';
        strUserName = document.getElementById("txtUsername").value;
        strPassword = document.getElementById("txtPassword").value;
        boolRememberMe  = document.getElementById("chkRememberMe").checked;
        
        if (strUserName.length<1 || strPassword.length<1){
            document.getElementById("LoginResult").innerHTML = 'Please enter your username and password';            
        }else{
            ret = ws_Users.Login(strUserName, strPassword, boolRememberMe, u_onCompleteLogin, u_OnErrorGeneric, u_OnTimeOutGeneric);
        }
    }
    function u_onCompleteLogin(result){
        if (result.length>0){
            document.getElementById("LoginResult").innerHTML = result;        
        }else{
            var strLink = querySt("lnk");
            if (strLink.length>0){
                strLink = strLink.replace('eeqquu', '=');
                window.location=strLink;
            }else{
                window.location="default.aspx";
            }
        }
    }


    function querySt(ji) {
        var strRet;
        strRet = '';
        hu = window.location.search.substring(1);
        gy = hu.split("&");
        if (gy.length>0){
            for (i=0;i<gy.length;i++) {
                ft = gy[i].split("=");
                if (ft[0] == ji) {
                    return ft[1];
                }
            }
        }else{
            return strRet;
        }
        return strRet;
    }
    
    function u_ForgottenPassword(){
        var strEmail
        
        strEmail = '';
        strEmail = document.getElementById("txtEmail").value;
        
        if (strEmail.length<1){
            document.getElementById("divResult").innerHTML = 'Please enter your email address';            
        }else{
            ret = ws_Users.ForgottenPassword(strEmail, u_onCompleteForgottenPassword, u_OnErrorGeneric, u_OnTimeOutGeneric);
        }    
    }
    function u_onCompleteForgottenPassword(result){
        document.getElementById("divResult").innerHTML = result;        
    }
    
    
    function u_OnCompleteSiteSave(result){
        document.getElementById("Save").style.left = '100px';
        document.getElementById("Save").innerHTML = result;
    }


    function u_setDeleted(){
        document.getElementById("lblDeleted").innerHTML = Date();
        document.getElementById("txtDateDeleted").value = Date();
    }
    
    function u_setUnDeleted(){
        document.getElementById("lblDeleted").innerHTML = '<a onclick="setDeleted()">[delete]</a>';
        document.getElementById("txtDateDeleted").value = '';
    }

    function SubmitUserReg1(intUserID){
        if (document.getElementById("chkAgree").checked == false){
            window.alert("Please tick the box to say that you have read the terms and conditions");
        }else{
            var strError = '';
            var strDelim= '';
            var intNationalityID;
            var intCountyID;
            var intCountryID;
            
            //check that the required fields have been filled in
            if (document.getElementById("txtFirstName").value == ''){
                strError = "First name";
                strDelim = ", ";
            }
            if (document.getElementById("txtSurname").value == ''){
                strError = strError + strDelim + "Surname";
                strDelim = ", ";
            }
            if (document.getElementById("txtPhone").value == ''){
                strError = strError + strDelim + "Telephone";
                strDelim = ", ";
            }
            //if (document.getElementById("txtUsernamej").value == ''){
            //    strError = strError + strDelim + "Username";
            //    strDelim = ", ";
            //}
            if (document.getElementById("txtEmail").value == ''){
                strError = strError + strDelim + "Email";
                strDelim = ", ";
            }
            if (document.getElementById("txtEmailConfirm").value == ''){
                strError = strError + strDelim + "Email confirmation";
                strDelim = ", ";
            }
            if (document.getElementById("txtPasswordj").value == ''){
                strError = strError + strDelim + "Password";
                strDelim = ", ";
            }
            if (document.getElementById("txtPasswordConfirm").value == ''){
                strError = strError + strDelim + "Password confirmation";
                strDelim = ", ";
            }
            
            //check that the confirm values match
            if (strError.length<1){
                if (document.getElementById("txtEmail").value != document.getElementById("txtEmailConfirm").value){
                    strError = "Your email address does not match your confirmed email address.  Please check and re-enter";
                }else if (document.getElementById("txtPasswordj").value != document.getElementById("txtPasswordConfirm").value){
                    strError = "Your password does not match your confirmed password.  Please check and re-enter";
                }
            }else{
                strError = "Please check and enter the following fields: " + strError
            }

            if (strError.length>0){
                window.alert(strError);
            }else{
                //submit to the web service
                intNationalityID = document.getElementById("cmbNationalities").value;
                intCountyID = document.getElementById("cmbCounties").value;
                intCountryID = document.getElementById("cmbCountries").value;
                if (intNationalityID.length<1){
                    intNationalityID = 0;
                }
                if (intCountyID.length<1){
                    intCountyID= 0;
                }
                if (intCountryID.length<1){
                    intCountryID= 0;
                }
                //ret = ws_Users.UserRegistration1(intUserID, document.getElementById("cmbTitles").value, document.getElementById("txtFirstName").value, document.getElementById("txtSurname").value, document.getElementById("txtPhone").value, document.getElementById("txtDay").value, document.getElementById("cmbMonths").value, document.getElementById("txtYear").value, intNationalityID, document.getElementById("cmbEligibility").value, '', document.getElementById("txtAddress1").value, document.getElementById("txtAddress2").value, document.getElementById("txtAddress3").value, document.getElementById("txtCity").value, intCountyID, document.getElementById("txtPostcode").value, intCountryID, document.getElementById("txtUsernamej").value, document.getElementById("txtEmail").value, document.getElementById("txtPasswordj").value, u_OnCompleteUserReg1, u_OnErrorGeneric, u_OnTimeOutGeneric);
                ret = ws_Users.UserRegistration1(intUserID, document.getElementById("cmbTitles").value, document.getElementById("txtFirstName").value, document.getElementById("txtSurname").value, document.getElementById("txtPhone").value, document.getElementById("txtDay").value, document.getElementById("cmbMonths").value, document.getElementById("txtYear").value, intNationalityID, document.getElementById("cmbEligibility").value, '', document.getElementById("txtAddress1").value, document.getElementById("txtAddress2").value, document.getElementById("txtAddress3").value, document.getElementById("txtCity").value, intCountyID, document.getElementById("txtPostcode").value, intCountryID, document.getElementById("txtEmail").value, document.getElementById("txtEmail").value, document.getElementById("txtPasswordj").value, u_OnCompleteUserReg1, u_OnErrorGeneric, u_OnTimeOutGeneric);
            }
        }
    }
    
    function u_OnCompleteUserReg1(ret){
        //if a number has been returned, it is the user ID so the save was fine.
        if (ret.indexOf("uid=")>-1){
            window.location = "grad_register2.aspx?" + ret
        }else{
            //otherwise there was an error
            window.alert(ret);    
        }
    }


    function SubmitUserReg2(intUserID){
        //submit to the web service
        var strGCSEs;
        var strAs;
        var strHighers;
        var strWorkExp = '';
        strWorkExp = document.getElementById("txtWorkExp").value;
        strGCSEs = document.getElementById("txtSubject1").value + "||";
        strGCSEs = strGCSEs + document.getElementById("cmbGrade1").value + "||";
        strGCSEs = strGCSEs + document.getElementById("txtSubject2").value + "||";
        strGCSEs = strGCSEs +  document.getElementById("cmbGrade2").value + "||";
        strGCSEs = strGCSEs + document.getElementById("txtSubject3").value + "||";
        strGCSEs = strGCSEs +  document.getElementById("cmbGrade3").value + "||";
        strGCSEs = strGCSEs +  document.getElementById("txtSubject4").value + "||";
        strGCSEs = strGCSEs +  document.getElementById("cmbGrade4").value + "||";
        strGCSEs = strGCSEs + document.getElementById("txtSubject5").value + "||";
        strGCSEs = strGCSEs + document.getElementById("cmbGrade5").value + "||";
        strGCSEs = strGCSEs + document.getElementById("txtSubject6").value + "||";
        strGCSEs = strGCSEs + document.getElementById("cmbGrade6").value + "||";
        strGCSEs = strGCSEs + document.getElementById("txtSubject7").value + "||";
        strGCSEs = strGCSEs +  document.getElementById("cmbGrade7").value + "||";
        strGCSEs = strGCSEs +  document.getElementById("txtSubject8").value + "||";
        strGCSEs = strGCSEs +  document.getElementById("cmbGrade8").value + "||";
        strGCSEs = strGCSEs +  document.getElementById("txtSubject9").value + "||";
        strGCSEs = strGCSEs +  document.getElementById("cmbGrade9").value + "||";
        strGCSEs = strGCSEs + document.getElementById("txtSubject10").value + "||";
        strGCSEs = strGCSEs +  document.getElementById("cmbGrade10").value + "||";
        strGCSEs = strGCSEs +  document.getElementById("txtSubject11").value + "||";
        strGCSEs = strGCSEs +  document.getElementById("cmbGrade11").value + "||";
        strGCSEs = strGCSEs +  document.getElementById("txtSubject12").value + "||";
        strGCSEs = strGCSEs +  document.getElementById("cmbGrade12").value;

        strAs = document.getElementById("txtASubject1").value + "||";
        strAs = strAs + document.getElementById("cmbAGrade1").value + "||";
        strAs = strAs + document.getElementById("cmbAType1").value + "||";
        strAs = strAs + document.getElementById("txtASubject2").value + "||";
        strAs = strAs + document.getElementById("cmbAGrade2").value + "||";
        strAs = strAs + document.getElementById("cmbAType2").value + "||";
        strAs = strAs + document.getElementById("txtASubject3").value + "||";
        strAs = strAs + document.getElementById("cmbAGrade3").value + "||";
        strAs = strAs + document.getElementById("cmbAType3").value + "||";
        strAs = strAs + document.getElementById("txtASubject4").value + "||";
        strAs = strAs + document.getElementById("cmbAGrade4").value + "||";
        strAs = strAs + document.getElementById("cmbAType4").value + "||";
        strAs = strAs + document.getElementById("txtASubject5").value + "||";
        strAs = strAs + document.getElementById("cmbAGrade5").value + "||";
        strAs = strAs + document.getElementById("cmbAType5").value;

        strHighers = document.getElementById("cmbUniversities1").value + "||";
        //strHighers = strHighers + document.getElementById("txtStart1").value + "||";
        //strHighers = strHighers + document.getElementById("txtEnd1").value + "||";
        strHighers = strHighers + document.getElementById("cmbStart1").value + "||";
        strHighers = strHighers + document.getElementById("cmbEnd1").value + "||";
        strHighers = strHighers + document.getElementById("txtHSubject1").value + "||";
        strHighers = strHighers + document.getElementById("cmbHType1").value + "||";
        strHighers = strHighers + document.getElementById("cmbHGrade1").value + "||";
        strHighers = strHighers + document.getElementById("cmbUniversities2").value + "||";
        strHighers = strHighers + document.getElementById("cmbStart2").value + "||";
        strHighers = strHighers + document.getElementById("cmbEnd2").value + "||";
        strHighers = strHighers + document.getElementById("txtHSubject2").value + "||";
        strHighers = strHighers + document.getElementById("cmbHType2").value + "||";
        strHighers = strHighers + document.getElementById("cmbHGrade2").value + "||";
        strHighers = strHighers + document.getElementById("cmbUniversities3").value + "||";
        strHighers = strHighers + document.getElementById("cmbStart3").value + "||";
        strHighers = strHighers + document.getElementById("cmbEnd3").value + "||";
        strHighers = strHighers + document.getElementById("txtHSubject3").value + "||";
        strHighers = strHighers + document.getElementById("cmbHType3").value + "||";
        strHighers = strHighers + document.getElementById("cmbHGrade3").value;
        if (strWorkExp.length<1){
            window.alert("Please enter your relevant work experience");
        }else{
            ret = ws_Users.UserRegistration2(intUserID, strGCSEs, strAs, strHighers, document.getElementById("chkUndergrad").checked, strWorkExp, u_OnCompleteUserReg2, u_OnErrorGeneric, u_OnTimeOutGeneric);
        }
    }
    
    function u_OnCompleteUserReg2(ret){
        //if a number has been returned, it is the user ID so the save was fine.
        if (ret.indexOf("uid=")>-1){
            window.location = "grad_register3.aspx?" + ret
        }else{
            //otherwise there was an error
            window.alert(ret);    
        }
    }

    function SubmitUserReg3(intUserID){
        var strError='';
        var strDelim='';
        var strDesc='';
        var strCVPath='';

        strDesc = document.getElementById("txtDescription").value;
        strCVPath = document.getElementById("txtCV").value;

        //check the required fields
        if (strDesc.length<1){
            strError = "Email";
            strDelim = ", ";
        }

        if (strCVPath.length < 1){
            strError = strError + strDelim + "CV file";
            strDelim = ", ";
        }

        if (strError.length>0){
            strError = "Please check and enter the following fields: " + strError
        }

        if (strError.length>0){
            window.alert(strError);
        }else{
            //submit the form
            window.alert("here");
            document.getElementById("FormGradReg3").submit;
        }
    }


    function SubmitCompReg1(intUserID, intPackage){
        if (document.getElementById("chkAgree").checked == false){
            window.alert("Please tick the box to say that you have read the terms and conditions");
        }else{
            var strError = '';
            var strDelim= '';
            
            //check that the required fields have been filled in
            if (document.getElementById("txtCompanyName").value == ''){
                strError = "Company name";
                strDelim = ", ";
            }
            if (document.getElementById("txtFirstName").value == ''){
                strError = strError + strDelim + "First name";
                strDelim = ", ";
            }
            if (document.getElementById("txtSurname").value == ''){
                strError = strError + strDelim + "Surname";
                strDelim = ", ";
            }
            if (document.getElementById("txtPosition").value == ''){
                strError = strError + strDelim + "Position";
                strDelim = ", ";
            }
            if (document.getElementById("txtOfficeTelNumber").value == ''){
                strError = strError + strDelim + "Office Tel Number";
                strDelim = ", ";
            }
            //if (document.getElementById("txtUsernamej").value == ''){
            //    strError = strError + strDelim + "Username";
            //    strDelim = ", ";
            //}
            if (document.getElementById("txtEmailAddress").value == ''){
                strError = strError + strDelim + "Email";
                strDelim = ", ";
            }
            if (document.getElementById("txtEmailAddressConfirm").value == ''){
                strError = strError + strDelim + "Email confirmation";
                strDelim = ", ";
            }
            if (document.getElementById("txtPasswordj").value == ''){
                strError = strError + strDelim + "Password";
                strDelim = ", ";
            }
            if (document.getElementById("txtPasswordConfirm").value == ''){
                strError = strError + strDelim + "Password confirmation";
                strDelim = ", ";
            }
            
            //check that the confirm values match
            if (strError.length<1){
                if (document.getElementById("txtEmailAddress").value != document.getElementById("txtEmailAddressConfirm").value){
                    strError = "Your email address does not match your confirmed email address.  Please check and re-enter";
                }else if (document.getElementById("txtPasswordj").value != document.getElementById("txtPasswordConfirm").value){
                    strError = "Your password does not match your confirmed password.  Please check and re-enter";
                }
            }else{
                strError = "Please check and enter the following fields: " + strError
            }

            if (strError.length>0){
                window.alert(strError);
            }else{
                //submit to the web service
                //ret = ws_Users.CompRegistration1(intUserID, document.getElementById("txtCompanyName").value, document.getElementById("txtFirstName").value, document.getElementById("txtSurname").value, document.getElementById("txtPosition").value, document.getElementById("txtOfficeTelNumber").value, document.getElementById("txtMobile").value, document.getElementById("txtFax").value, document.getElementById("txtEmailAddress").value, document.getElementById("txtUsernamej").value, document.getElementById("txtPasswordj").value, intPackage, u_OnCompleteCompReg1, u_OnErrorGeneric, u_OnTimeOutGeneric);
                ret = ws_Users.CompRegistration1(intUserID, document.getElementById("txtCompanyName").value, document.getElementById("txtFirstName").value, document.getElementById("txtSurname").value, document.getElementById("txtPosition").value, document.getElementById("txtOfficeTelNumber").value, document.getElementById("txtMobile").value, document.getElementById("txtFax").value, document.getElementById("txtEmailAddress").value, document.getElementById("txtEmailAddress").value, document.getElementById("txtPasswordj").value, intPackage, u_OnCompleteCompReg1, u_OnErrorGeneric, u_OnTimeOutGeneric);
            }
        }
    }
    
    function u_OnCompleteCompReg1(ret){
        //if a number has been returned, it is the user ID so the save was fine.  The ret will also have the Company ID too
        if (ret.indexOf("uid=")>-1){
            window.location = "comp_reg2.aspx?" + ret
        }else{
            //otherwise there was an error
            window.alert(ret);    
        }
    }



    function u_OnErrorGeneric(error){
        var stackTrace = error.get_stackTrace();
        var message = error.get_message();
        var statusCode = error.get_statusCode();
        var exceptionType = error.get_exceptionType();
        var timedout = error.get_timedOut();
        var strMessage;
       
        // Display the error.    
        //strMessage = "Stack Trace: " +  stackTrace + "    ||    Service Error: " + message + "    ||    Status Code: " + statusCode + "    ||    Exception Type: " + exceptionType + "    ||    Timedout: " + timedout;
        strMessage = "Message: " +  message;
        window.alert("Error:" + strMessage);  
    }

    function u_OnTimeOutGeneric(error){
        var stackTrace = error.get_stackTrace();
        var message = error.get_message();
        var statusCode = error.get_statusCode();
        var exceptionType = error.get_exceptionType();
        var timedout = error.get_timedOut();
        var strMessage;
       
        // Display the error.    
        //strMessage = "Stack Trace: " +  stackTrace + "    ||    Service Error: " + message + "    ||    Status Code: " + statusCode + "    ||    Exception Type: " + exceptionType + "    ||    Timedout: " + timedout;
        strMessage = "Message: " +  message;
        window.alert("Timeout in ws_users:" + strMessage);  
    }
    
    function ReturnSafeText(strInput){
        var strRet ='';
        strRet = strInput;
        strRet = strRet.replace(/</g, '');
        strRet = strRet.replace('/', '');
        strRet = strRet.replace(/>/g, '');
        strRet = strRet.replace(/&#60;/g, '');
        strRet = strRet.replace(/&lt;/g, '');    
        
        return strRet;
    }