﻿///<reference path="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6-vsdoc.js" />
/// <reference path="ThinkPlugins.js" />

//This variable is used to indicate that the data in form was changed
var isDirty = false;

function addCandidateExpertiseTags(tagId, tag, seniority, seniorityText) { doAjaxPost("Handlers/SkillsAssesmentHandler.ashx", true, "what=addCandidateExpertiseTags&id=" + tagId + "&seniorityid=" + seniority + "&tagtext=" + tag + "&senioritytext=" + seniorityText); }

function addCandidateSectoralTag(sectorValue, sectorText) { doAjaxPost("Handlers/SkillsAssesmentHandler.ashx", true, "what=addCandidateSectoralTag&text=" + sectorText + "&value=" + sectorValue); }

function removeCandidateExpertiseTags(tagId) { doAjaxPost("Handlers/SkillsAssesmentHandler.ashx", true, "what=removeCandidateExpertiseTags&id=" + tagId); }

function removeCandidateSectoralTag(tag) { doAjaxPost("Handlers/SkillsAssesmentHandler.ashx", true, "what=removeCandidateSectoralTag&tag=" + tag); }

function checkUsernameExists(sender, args) {

    var exists = false;
    var username = $("[id$='_txtUsername']").val();

    $.ajax({
        type: "POST",
        url: "Handlers/Generic.ashx",
        data: "what=checkUsernameExists&usertype=" + sender.usertype + "&username=" + username + "&id=" + sender.userID,
        async: false,
        success: function (msg) {
            var value = eval("(" + msg + ")");
            if (value) {
                exists = true;
            }
        }
    });
    args.IsValid = !exists;
}

function checkEmailExists(sender, args) {

    var exists = false;
    var email = $("[id$='_txtEmail']").val();

    $.ajax({
        type: "POST",
        url: "Handlers/Generic.ashx",
        data: "what=checkemailexists&usertype=" + sender.usertype + "&email=" + email + "&id=" + sender.userID,
        async: false,
        success: function (msg) {
            var value = eval("(" + msg + ")");
            if (value) {
                exists = true;
            }
        }
    });
    args.IsValid = !exists;
}

function getCandidateInterimJobs(timesheetsPage, startindex, numItems) {

    var value = doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=getCandidateInterimJobs&startIndex=" + startindex + "&numItems=" + numItems);

    var details = "";

    if (value != "") {

        $(value).find('InterimJobs').each(function () {

            details += "<tr><td>" + $(this).find('job_id_fk').text() + "</td><td>" + $(this).find('title').text() + "</td><td>"
                         + "<a href='" + timesheetsPage + "?jobId=" + $(this).find('job_id_fk').text() + "&candidateId=" + $(this).find('candidate_id_fk').text() + "'>view Timesheets</a>" + "</td></tr>";
        });
    }

    return details;
}

function getCandidateInterimJobCount() { return doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=getCandidateInterimJobCount"); }



function getCandidateClosedInterimJobs(timesheetsPage, startindex, numItems) {

    var value = doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=getCandidateClosedInterimJobs&startIndex=" + startindex + "&numItems=" + numItems);

    var details = "";

    if (value != "") {

        $(value).find('InterimJobs').each(function () {

            details += "<tr><td>" + $(this).find('job_id_fk').text() + "</td><td>" + $(this).find('title').text() + "</td><td>"
                         + "<a href='" + timesheetsPage + "?cmd=view&jobId=" + $(this).find('job_id_fk').text() + "&candidateId=" + $(this).find('candidate_id_fk').text() + "'>view Timesheets</a>" + "</td></tr>";
        });
    }

    return details;
}

function getCandidateClosedInterimJobCount() { return doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=getCandidateClosedInterimJobCount"); }




function getTimesheetsForJob(jobId, candidateID, detailspage) {

    var value = doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=getJobTimesheetsForCandidate&jobID=" + jobId + "&candidateId=" + candidateID);

    var details = "";

    if (value != "") {

        $.each(value, function (i, val) {

            details += "<tr><td>" + value[i].ID + "</td><td>" + getShortMonth(value[i].PeriodMonth) + "</td><td>"
                         + value[i].PeriodYear + "</td><td>"
                         + value[i].Submitted + "</td><td>" + value[i].Approved + "</td><td>";

            if (!value[i].Submitted) {
                details += "<a href='#' class='SubmitTimesheet' onclick='javascript:alert(submitTimesheet(" + value[i].ID + ")); return false;' >Submit Timesheet</a>";
                
            }

            details += "&nbsp;<a href='#' class='ViewTimesheet' onclick='javascript:loadTimesheet(" + value[i].ID + ", \"" + detailspage + "\"); return false;' >Details</a>";
            details += "</td></tr>";

        });
    }

    return details;
}

function getArchivedTimesheetsForJob(jobId, candidateID, detailspage) {

    var value = doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=getJobTimesheetsForCandidate&jobID=" + jobId + "&candidateId=" + candidateID);

    var details = "";

    if (value != "") {

        $.each(value, function (i, val) {

            details += "<tr><td>" + value[i].ID + "</td><td>" + getShortMonth(value[i].PeriodMonth) + "</td><td>"
                         + value[i].PeriodYear + "</td><td>"
                         + value[i].Submitted + "</td><td>" + value[i].Approved + "</td><td>"
                         + "<a href='#' class='ViewTimesheet' onclick='javascript:loadTimesheet2(" + value[i].ID + ", \"" + detailspage + "\"); return false;' >Details</a>"
                         + "</td></tr>";

        });
    }

    return details;
}

function submitTimesheet(id) {
    var value = doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=submitTimesheet&id=" + id);

    var message = "";

    if (value)
        message = "Timesheet has been submitted successfully";
    else
        message = "An error has occured while submitting timesheet please try again later";

    return message;
}

function saveTimesheet() {
    var value = doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=saveTimesheet");

    if (value)
        message = "Timesheet has been saved successfully";
    else
        message = "An error has occured while saving timesheet please try again later";

    return message;
}

function loadTimesheet(id, detailsPage) {
    doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=loadTimesheet&id=" + id);

    location.href = detailsPage + "?id=" + id;
}

function loadTimesheet2(id, detailsPage) {
    doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=loadTimesheet&id=" + id);

    location.href = detailsPage + "?cmd=view&id=" + id;
}

function GetWorkHours() { return doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=getWorkHours"); }

function loadEventToTimesheet(title, start, end) { return doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=loadToTimesheet&title=" + title + "&start=" + Date.parse(start) + "&end=" + Date.parse(end)); }

function getHoursOnTimeSheet() { return doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=getHoursOnTimesheet"); }

function getAmountDueForTimesheet() { return doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=getAmountDueForTimesheet"); }

function getClientInterimJobCount(id) { return doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=getClientInterimJobCount&id=" + id); }

function getClientInterimJobs(clientID, timesheetsPage, page_index, itemsPerPage) {

    var value = doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=getClientInterimJobs&id=" + clientID + "&startIndex=" + page_index + "&numItems=" + itemsPerPage);

    var details = "";

    if (value != "") {

        $(value).find('InterimJobs').each(function () {

            details += "<tr><td>" + $(this).find('job_id_fk').text() + "</td><td>" + $(this).find('title').text() + "</td><td>"
                         + "<a href='" + timesheetsPage + "?jobId=" + $(this).find('job_id_fk').text() + "&clientId=" + clientID + "'>view Timesheets</a>" + "</td></tr>";
        });
    }

    return details;
}

function getClientTimesheetsForJob(jobId, clientId, detailspage) {

    var value = doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=getClientTimesheetsForJob&jobID=" + jobId + "&clientId=" + clientId);

    var details = "";

    if (value != "") {

        $.each(value, function (i, val) {

            details += "<tr><td>" + value[i].ID + "</td><td>" + getShortMonth(value[i].PeriodMonth) + "</td><td>"
                         + value[i].PeriodYear + "</td><td>"
                         + value[i].Approved + "</td><td></td><td>";

            if (!value[i].Approved) {
                details += "<a href='#' onclick='javascript:alert(approveTimesheet(" + value[i].ID + ")); return false;' >Approve Timesheet</a>";

            }
            details += "&nbsp;<a href='#' onclick='javascript:loadTimesheet(" + value[i].ID + ", \"" + detailspage + "\"); return false;' >Details</a>";
            details += "</td></tr>";

        });
    }

    return details;
}

function approveTimesheet(id) {
    var value = doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=approveTimesheet&id=" + id);

    var message = "";

    if (value)
        message = "Timesheet has been submitted successfully";
    else
        message = "An error has occured while submitting timesheet please try again later";

    return message;
}

function SaveTimesheetDispute(id, DisputeReason) { return doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=saveTimesheetDispute&id=" + id + "&reason=" + DisputeReason); }

function addCandidateRecommendationTag(skillTags) { return doAjaxPost("Handlers/RecommendationsHandler.ashx", false, "what=addRecommendationSkill&skill=" + skillTags); }

function removeCandidateRecommendationTag(skillTags) { return doAjaxPost("Handlers/RecommendationsHandler.ashx", false, "what=removeRecommedationSkill&skill=" + skillTags); }

function addCandidateContact(contact) { return doAjaxPost("Handlers/RecommendationsHandler.ashx", false, "what=addRecommendationContact&contact=" + contact); }

function removeRecommendationContact(contact) { return doAjaxPost("Handlers/RecommendationsHandler.ashx", false, "what=removeRecommendationContact&contact=" + contact); }

function getExternalRecommendationCount() { return doAjaxPost("Handlers/RecommendationsHandler.ashx", false, "what=getExternalRecommendationCount"); }

function getExternalRecommendations(startIndex, numItems) {
    var value = doAjaxPost("Handlers/RecommendationsHandler.ashx", false, "what=getExternalRecommendations&startIndex=" + startIndex + "&numItems=" + numItems);

    var details = "";

    if (value != "") {

        $.each(value, function (i, val) {
            details += "<tr><td>" + value[i].ID + "</td><td>" + value[i].Contact_FirstName + " " + value[i].Contact_LastName
            + "</td><td>" + value[i].Contact_CompanyName + "</td><td>" + value[i].Contact_Position
            + "</td><td>" + formatJSONDate(value[i].SubmittedOn, 'dd/mm/yyyy') + "</td><td>"
            + "<a href='#' cmd='" + value[i].ID + "' class='viewDetail viewExternalRecommendationDetail' title='View Recommendation Details' >View Details</a>"
            + "</td></tr>";
        });
    }
    return details;
}

function getCastilleRecommendationsCount() { return doAjaxPost("Handlers/RecommendationsHandler.ashx", false, "what=getCastilleRecommendationCount"); }

function getCastilleRecommendations(startIndex, numItems) {
    var value = doAjaxPost("Handlers/RecommendationsHandler.ashx", false, "what=getCastilleRecommendations&startIndex=" + startIndex + "&numItems=" + numItems);

    var details = "";

    if (value != "") {

        $.each(value, function (i, val) {
            details += "<tr><td>" + value[i].ID + "</td><td>" + value[i].Consultant
            + "</td><td>" + value[i].JobTitle + "</td><td>" + formatJSONDate(value[i].SubmittedOn, 'dd/mm/yyyy') + "</td><td>"
            + "<a href='#' cmd='" + value[i].ID + "' class='viewDetail viewCastilleRecommendationDetail' title='View Recommendation Details' >View Details</a>"
            + "</td></tr>";
        });
    }
    return details;
}

function createNewTimesheet(month, jobId, candidateId, detailsPage) {

    if (doAjaxPost("Handlers/InterimJobHandler.ashx", false, "what=createTimesheetForJob&jobID=" + jobId + "&candidateId=" + candidateId + "&month=" + month)) {

        getTimesheetsForJob(jobId, candidateId, detailsPage);
    }
}

function getConsultantDetails(id) {

    return doAjaxPost("Handlers/generic.ashx", false, "what=getConsultantDetails&ID=" + id);
}

function saveCoveringLetter(letter) {
       return doAjaxPost("Handlers/Generic.ashx", false, "what=saveCoveringLetter&letter=" + letter);
}


function clearSchoolForm() {

        $("[id$='_txtSchool']").val("");
        $('.ddlYearFrom').val("-");
        $('.ddlYearTo').val("-");
        $("[id$='_txtQualification']").val("");
        $("[id$='_txtFieldsOfStudy']").val("");
    }

    function loadSchoolsHtml(value) {

        var details = "";
        var index = 0; 

        $.each(value, function (i, val) {

            details += "<div class='educationItem' >"
                        + "<p>" + $("[id$='_lblSchool']").text() + ": " + value[i].SchoolAttended + "   <a href='#'  class='removeBtn removeEducationHistory'  sat='" + index + "'></a>" + "</p>"
                        + "<p>" + $("[id$='lblQualification']").text() + ": " + value[i].QualificationObtained + "</p>"
                        + "<p>" + $("[id$='_lblDatesAttended']").text() + ": " + value[i].StartYear + " " + $("[id$='_lblDatesAttendedTo']").text() + " " + value[i].EndYear + "</p>"
                        + "<p>" + $("[id$='_lblFieldsOfStudy']").text() + ": " + value[i].FieldsOfStudy + "</p>"
                        + "</div>";

                        index++;
        });

        $('.dvEducation').empty().append(details);
    }

    function removeEducationHistory(school) {

        var value = doAjaxPost("Handlers/CandidateEducationHandler.ashx", false, "what=removeEducationHistory&school=" + school);

        loadSchoolsHtml(value);

        return false;
    }

    function addEducationHistory()
    {
        Page_ClientValidate("Val_Education");

            if (!Page_IsValid) {
                return false;
            }

            var value = doAjaxPost("Handlers/CandidateEducationHandler.ashx", false, "what=addEducationHistory&school="
             + $("[id$='_txtSchool']").val() + "&from=" + $('.ddlYearFrom').val() + "&to=" + $('.ddlYearTo').val()
             + "&qualification=" + $("[id$='_txtQualification']").val() + "&field=" + $("[id$='_txtFieldsOfStudy']").val());

            if (value != "") {
                loadSchoolsHtml(value);
                clearSchoolForm();
            }

            return false;
    }
