﻿/// <reference path="jquery-1.4.2-vsdoc.js" />
/// <reference name="MicrosoftAjax.js"/>

jQuery.preloadImages = function() {
    for (var i = 0; i < arguments.length; i++) {
        $("<img>").attr("src", arguments[i]);
    }
}

$().ready(function() {
    viewstate = $('#__VIEWSTATE').val().length;

    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_endRequest(prm_endRequest);
    prm_endRequest();

    //Evita que o ao validar com summary a página salte para o topo
    window.scrollTo = function() { };

    $.preloadImages('/images/ajax-loader_become.gif');

    //UPLOAD


    UploadSetup();

    UploadCVSetup();

    //Collapse das secções
    $('.profileHeaderBar').live('click', function() {
        $(this).siblings('table').toggle();
        var sign = $(this).children('.expand').children('a').get(0);
        if (sign.innerHTML == '+')
            sign.innerHTML = '-';
        else sign.innerHTML = '+';
    });

    $('#ctl00_content_pnlPersonalInfo a').live('click', function() { causeValidation = false; });

});

function prm_endRequest() {
    UploadSetup();
    UploadCVSetup();

    //Datepicker para data
    $('.date').datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'mm-yy',
        showButtonPanel: true,
        yearRange: '1920:2020'
    });

    //Esconde buttoes e caixas cinza do modo de edição
    if ($('#ctl00_content_overview').attr('value') == '1') {
        //$('.hidable').hide();
        $('.hidable').remove();
        $('.grayBox').each(function() { $(this).removeClass('grayBox') });
    }

    //
    if ($("#ctl00_content_pnlChangedProfile").length != 0) {
        $("#ctl00_content_pnlChangedProfile").jOverlay({
            bgClickToClose: false
        });
    }

    //Alterna vista da submissao do cv

    ToggleCVAreaVisibility();

    //Define se os dados foram guardados
    if ($('#ctl00_content_overview').attr('value') == '1') {
        changed = false;
    }
    else {
        if (viewstate != $('#__VIEWSTATE').val().length) {
            changed = true;
        }
        else {
            changed = false;
        }
    }
    causeValidation = true;
}



var viewstate;
var changed = false;
var causeValidation = true;

function UploadSetup() {
    var fup = $('#fUpload');
    $('.loader').remove();
    if (fup.length != 0) {
        fup.show();
        new AjaxUpload('#fUpload', {
            action: '/fileUpload.aspx?id=' + $('#ctl00_content_userId').val(),
            name: 'myFile',
            responseType: 'application/json',
            hoverClass: '',
            onChange: function(file, extension) { },
            onSubmit: function(file, extension) {
                return AjaxUploadOnSubmit.apply(this, arguments);
            },
            onComplete: function(file, response) {
                AjaxIploadOnComplete.apply(this, arguments);
            }
        });
    }

    function AjaxUploadOnSubmit(file, extension) {
        if (validateExtension(extension)) {
            if ($('.fileNotValid').length != 0)
                $('.fileNotValid').hide();
            fup.hide().after('<img class="loader" src="/images/ajax-loader_become.gif"/>');
            return true;
        }
        else {
            if ($('.fileNotValid').length != 0)
                $('.fileNotValid').show();
            else
                $('#' + this._button.id).parent().next().next().after('<span class=\"fileNotValid\" style=\"color:#B41616\"><br/>File format not valid</span>')
            return false;
        }
    }

    function AjaxIploadOnComplete(file, response) {
        var fileInfo = eval('(' + response + ')');
        $('#ctl00_content_fileListChanged').val('true');
        $('#ctl00_content_fileTitle').val(fileInfo.title);
        $('#ctl00_content_fileExtension').val(fileInfo.extension);
        $('#ctl00_content_fileFilename').val(fileInfo.filename);
        $('#ctl00_content_fileIsCV').val('0');
        $('.fileNotValid').hide();
        __doPostBack('ctl00$content$TEST', '');
        //$('.loader').remove();
        //fup.show();
        //UploadSetup();
    }
}


function UploadCVSetup() {
    var fupCV = $('#fCVUpload');
    $('.loader').remove();
    if (fupCV.length != 0) {
        fupCV.show();
        new AjaxUpload('#fCVUpload', {
            action: '/fileUpload.aspx?id=' + $('#ctl00_content_userId').val(),
            name: 'myFile',
            responseType: 'application/json',
            hoverClass: '',
            onChange: function(file, extension) { },
            onSubmit: function(file, extension) {
                return AjaxUploadCVOnSubmit.apply(this, arguments);
            },
            onComplete: function(file, response) {
                AjaxUploadCVOnComplete.apply(this, arguments);
            }
        });
    }

    function AjaxUploadCVOnSubmit(file, extension) {
        if (validateExtension(extension)) {
            if ($('.fileNotValid').length != 0)
                $('.fileNotValid').hide();
            fupCV.hide().after('<img class="loader" src="/images/ajax-loader_become.gif"/>');
        }
        else {
            if ($('.fileNotValid').length != 0)
                $('.fileNotValid').show();
            else
                $('#' + this._button.id).parent().next().next().after('<span class=\"fileNotValid\" style=\"color:#B41616\"><br/>File format not valid</span>')
            return false;
        }
    }

    function AjaxUploadCVOnComplete(file, response) {
        var fileInfo = eval('(' + response + ')');
        $('#ctl00_content_fileListChanged').val('true');
        $('#ctl00_content_fileTitle').val(fileInfo.title);
        $('#ctl00_content_fileExtension').val(fileInfo.extension);
        $('#ctl00_content_fileFilename').val(fileInfo.filename);
        $('#ctl00_content_fileIsCV').val('1');
        $('.fileNotValid').hide();
        __doPostBack('ctl00$content$TEST', '');
        //$('.loader').remove();
        //fupCV.show();
        //UploadCVSetup();
    }
}


function SetupExit() {
    window.onbeforeunload = function(e) {
        if (!changed) return;
        if (!causeValidation) return;

        if (!e) var e = window.event || window.Event;
        e.cancelBubble = true;
        e.returnValue = 'There are some data that may be lost with this action. \n To avoid this please save before exiting!';
        if (e.stopPropagation) {
            e.stopPropagation();
            e.preventDefault();
        }
    }
}
SetupExit();

function ToggleCVAreaVisibility() {
    var cvSVisible = $('#ctl00_content_cvSubmitVisible').val();
    var pnlSubmit = $('#ctl00_content_pnlSubmitCV');
    var upCV = $('#ctl00_content_upCV')

    if (cvSVisible == '1') {
        pnlSubmit.show();
        if ($('#ctl00_content_overview').val() == '0') {
            upCV.hide();
        }
        else { upCV.show(); }
    }
    else if (cvSVisible == "0") {
        pnlSubmit.hide();
        upCV.show();
    }
}

function validateExtension(ext) {
    if (!ext) return false;
    switch (ext[0]) {
        case 'doc':
        case 'docx':
        case 'pdf':
            return true;
            break;
        default: return false; break;
    }
}
        


