﻿/* Code by MrBEBEO */
$(document).ready(function() {
    AlertLoginStatus();
    ValidActiveMenu();
    AlertRoundResult();
    AlertUpdateProfile();
    forceCollect();
    if ($('#login').length > 0) {
        //    $('#img_login').click(function(){
        //    Login();
        //    });
        SetDefaultButton("login", "img_login");


    }

});
/* -------------------------------------------------page load util ------------------------------------------*/
function forceCollect() {
    // This only works on IE.
    if (window.CollectGarbage) {
        window.CollectGarbage();
    }
}

function AlertLoginStatus() {

    if (get_url_param("login") == "0") {
        // AlertNoRedirect("Bạn chưa đăng nhập hoặc đã bị thoát khỏi hệ thống, mời bạn đăng nhập lại");
        AlertNoRedirect("Bạn bị thoát khỏi hệ thống vì một trong các lý do sau :" +
     "<p>* Đăng nhập cùng một tài khoản trên hai máy hoặc hai trình duyệt khác nhau và thi cùng một thời điểm sẽ bị tính trượt vòng hiện tại 900 lần</p>" +
     "<p>* Tải lại trang làm bài hoặc mở nhiều cửa sổ vào thi khi đang làm bài thi sẽ bị tính trượt vòng hiện tại 900 lần</p>" +
     "<p>* Đăng nhập quá lâu mà không thi (quá 60 phút)</p>");
    }
    if (get_url_param("login") == "-1") {  // thoat do login 2 account
        AlertNoRedirect("Bạn bị thoát khỏi hệ thống vì một trong các lý do sau :" +
     "<p>* Đăng nhập cùng một tài khoản trên hai máy hoặc hai trình duyệt khác nhau và thi cùng một thời điểm</p>" +
     "<p>* Tải lại trang làm bài hoặc mở nhiều cửa sổ vào thi khi đang làm bài thi</p>" +
      "<p>* Cố tình gian lận hoặc hack bài thi</p>");
    }
}
function AlertUpdateProfile() {
    if (get_url_param("editprofile") == "true") {
        AlertNoRedirect("Bạn đã thay đổi thông tin cá nhân thành công. Thông tin của bản sẽ được kiểm duyệt và xác nhận sau 24h");
    }
}
function AlertRoundResult() {
    var totalscore, roundscore = "";
    if (get_url_param("passround") == "true") {
        totalscore = get_url_param("totalscore");
        roundscore = get_url_param("roundscore");
        AlertNoRedirect("Chúc mừng bạn đã vượt qua vòng thi với kết quả : <b>" + totalscore + "/" + roundscore + "</b>");
    }
    if (get_url_param("passround") == "false") {
        totalscore = get_url_param("totalscore");
        roundscore = get_url_param("roundscore");
        AlertNoRedirect("Bạn đã không vượt qua vòng thi với kết quả : <b>" + totalscore + "/" + roundscore + "</b>. Mời bạn thi lại vòng này");
    }
    if (get_url_param("passexam") == "true") {
        var examscore = get_url_param("totalscore");
        var donescore = get_url_param("donescore");
        AlertNoRedirect("Bạn đã vượt qua bài thi với kết quả : <b>" + donescore + "/" + examscore + "</b>");
    }
    //  if(get_url_param("passexam") == "false" && get_url_param("validoglin")=="false")
    //  {
    //  
    //   
    //    AlertNoRedirect("Bài thi này của bạn bị tính 0 điểm do sử dụng 2 máy tính khác nhau thi cùng một tài khoản trong một thời điểm</b>");
    //  }  
}
function LoadUrlContent(containerid, url, menu) {

    var user_id = 0;
    if ($('#login').length > 0) {
        user_id = $('#login').attr("name").split(',')[0];

    }
    // login only
    if (url == "Page_MyExam.aspx") {
        if (user_id == "0") {
            AlertNoRedirect("Bạn phải đăng nhập để có thể vào trang này");

            return;
        }
    }
    // check for myresult
    if (url == "Page_MyResult.aspx") {
        if (user_id == "0") {
            AlertNoRedirect("Bạn phải đăng nhập để có thể vào trang này");
            return;
        }
    }
    // check no load if current page

    if (menu != null) {
        $('#' + containerid).html('<center ><img src="images/ajax_loader.gif" /></center>');
        // + random param de ko bi cache
        if (url.indexOf("?") >= 0)
            $('#' + containerid).load(url + "&ran=" + Math.random());
        else
            $('#' + containerid).load(url + "?ran=" + Math.random());

        $('#navigation').find('ul').find('li').each(function() {
            $(this).find('a').removeClass('active');
        });
        //  alert(containerid + " " + url);
        $('#' + menu).find('a').addClass('active');
        window.location.hash = url;

    }
    else {

        $('#' + containerid).html('<center ><img src="images/ajax_loader.gif" /></center>');
        if (url.indexOf("?") >= 0)
            $('#' + containerid).load(url + "&ran=" + Math.random());
        else
            $('#' + containerid).load(url + "?ran=" + Math.random());

        window.location.hash = url;
    }


    if (containerid == "supportbox") // show hide block for help page
    {
        $("#tilethisinhduthicaonhat").hide();
        $("#dovuituan").hide();
        $("#banchoidovui").hide();
        $("#menusupport").show();
    }
    else {
        $("#tilethisinhduthicaonhat").show();
        $("#dovuituan").show();
        $("#banchoidovui").show();
        $('#menusupport').hide();
    }
    ValidBlockForPage(url); // show hide blocks theo page
    auto_scroll($('#header'), 0);
    // fix leak memory
    forceCollect();


}
function ValidBlockForPage(page_url) {

    //valid show hide block
    var user_id = "0";
    var fullname = "";
    if ($('#login').length > 0) {
        user_id = $('#login').attr("name").split(',')[0];
        fullname = $('#login').attr("name").split(',')[1];

    }


    if (page_url == "Page_Default.aspx") // validate for Default.aspx
    {
        $('#leftmenu').show();
    }
    else {
        $('#leftmenu').hide();
    }
    if (page_url == "Blocks/Page_members/Block_SearchMember.aspx") // validate for member page
    {

        $('#thisinhdiemcaonhatdiaphuong').hide();
        $('#thisinhdiemcaonhatquocgia').hide();
        $('#block_searchmember').show();
    }
    else {
        $('#thisinhdiemcaonhatdiaphuong').show();
        $('#thisinhdiemcaonhatquocgia').show();
        $('#block_searchmember').hide();
    }
    if (user_id != "0") // check for login
    {
         $('#login').hide();
         if($('#gameflash').length >0) // neu la trang thi game thi ko cho editprofile
          {
             document.getElementById('user_pannel').innerHTML ='<div>Chào mừng  <a href="Page_MyResult.aspx" class="style2" onclick="LoadUrlContent(\'divmain\',\'Page_MyResult.aspx\',\'nav6\'); return false" >' + fullname + '</a> đến với ViOlympic</div>' +
                            '<div><a href="javascript:void(0)" onclick="Logout()" class="style2">[ Thoát ]<a/></div>';
          }
          else
           {
           document.getElementById('user_pannel').innerHTML ='<div>Chào mừng  <a href="Page_MyResult.aspx" class="style2" onclick="LoadUrlContent(\'divmain\',\'Page_MyResult.aspx\',\'nav6\'); return false" >' + fullname + '</a> đến với ViOlympic</div>' +
                            '<div><a href="javascript:void(0)" class="style2" onclick ="EditProfile()" >Sửa đồi thông tin </a>  |   <a href="javascript:void(0)" onclick="Logout()" class="style2">[ Thoát ]<a/>(ID = ' + user_id + ')</div>';
           }
    }


}
function ValidActiveMenu() {
    var user_id = "0";

    if ($('#login').length > 0)
        user_id = $('#login').attr("name").split(',')[0];


    $('#navigation').find('ul').find('li').each(function() {

        $(this).find('a').removeClass('active');
    });
    var full_url = document.location.href;
    if (full_url.match("#") != null) {
        var load_url = document.location.href.split("#")[1];


        if (load_url.match("News.aspx") == "News.aspx") {
            LoadUrlContent('divmain', load_url, 'nav2');
        }
        if (load_url.match("Page_MyExam.aspx") == "Page_MyExam.aspx") {
            if (user_id == "0") {
                AlertNoRedirect("Bạn phải đăng nhập để có thể vào trang này");
                LoadUrlContent('divmain', 'Page_Default.aspx', 'nav1');

            }
            else {
                LoadUrlContent('divmain', load_url, 'nav3');

            }
        }
        if (load_url.match("Page_Statistic.aspx") == "Page_Statistic.aspx") {
            LoadUrlContent('divmain', 'Page_Statistic.aspx', 'nav4');

        }
        if (load_url.match("Page_Members.aspx") == "Page_Members.aspx") {
            LoadUrlContent('divmain', 'Page_Members.aspx', 'nav5');
            LoadUrlContent('block_searchmember', 'Blocks/Page_members/Block_SearchMember.aspx', null);
        }
        if (load_url.match("Page_Default.aspx") == "Page_Default.aspx" || load_url == "") {
            LoadUrlContent('divmain', 'Page_Default.aspx', 'nav1');
        }
        if (load_url.match("Page_Register.aspx") == "Page_Register.aspx") {
            LoadUrlContent('divmain', 'Page_Register.aspx?type=register', null);
        }
        if (load_url.match("Page_MyResult.aspx") == "Page_MyResult.aspx") {
            LoadUrlContent('divmain', load_url, 'nav6');
        }
        if (load_url.match("Page_New_Detail.aspx") == "Page_New_Detail.aspx") // for paste link news
        {

            LoadUrlContent('divmain', load_url, 'nav2');
        }
        if (load_url.match("ResultWithKey.aspx") == "ResultWithKey.aspx") {
            LoadUrlContent('divmain', load_url, null);
        }
        if (load_url.match("Page_BanToChuc.aspx") == "Page_BanToChuc.aspx") {
            LoadUrlContent('divmain', load_url, null);
        }
        if (load_url.match("Page_BanChiDao.aspx") == "Page_BanChiDao.aspx") {
            LoadUrlContent('divmain', load_url, null);
        }
        if (load_url.match("Official.aspx") == "Official.aspx") {
            LoadUrlContent('divmain', load_url, null);
        }
        if (load_url.match("Examinee.aspx") == "Examinee.aspx") {
            LoadUrlContent('divmain', load_url, null);
        }
        if (load_url.match("Aboutus.aspx") == "Aboutus.aspx") {
            LoadUrlContent('divmain', load_url, null);
        }
        if (load_url.match("SendMail.aspx") == "SendMail.aspx") {
            LoadUrlContent('divmain', load_url, null);
        }


    }
    else {
        // $('#nav1').find('a').addClass('active'); 
        if (full_url.match("DoWebExam.aspx") == null)
            LoadUrlContent('divmain', 'Page_Default.aspx', 'nav1');
    }
}
function get_url_param(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null) return "";
    else return results[1];
}
function get_full_url_param(url) {
    var urlparam = new Array();
    urlparam = url.split('?');
    return urlparam[1];
}
/* -------------------------------------------------page load util ------------------------------------------*/
/*---------------------------------------------- alert util ---------------------------------------------*/
function openDialog(url, title, xwidth) {
    jAlert('', title);
    $('#popup_container').css('width', xwidth.toString() + 'px');
    $('#popup_content').html('Đang tải dữ liệu...<br /> <img src="images/ajax_loader.gif" alt="" />');
    $('#popup_content').removeClass('alert');
    $('#popup_content').css('background', 'none');
    $('#popup_content').load(url);

    return false;
}

function AlertWithRedirectURL(msg, url) {

    jAlert(msg, 'Thông Báo');
    $('#popup_panel').html('<a href="' + url + '" class="popup_a"><span class="popup_a">&nbsp;&nbsp;&nbsp;&nbsp;OK&nbsp;&nbsp;&nbsp;&nbsp;</span></a>');


}

function AlertNoRedirect(msg) {

    jAlert(msg, 'Thông Báo');

    return false;
}

function Confirm(msg, fcallback) {
    var abc = "<div id='confrimmsg' style='background-image:url(images/popup/back_pop.gif); background-repeat:no-repeat;'></div>";
    if ($('#confrimmsg').length > 0) {
        $('#confrimmsg').remove();
    }
    $('body').append(abc);

    $("#confrimmsg").css('display', 'block');
    $("#confrimmsg").attr('title', '<span style="color:#fff">Xác nhận</span>');
    $('#confrimmsg').html('Đang tải dữ liệu...<br /> <img src="images/ajax_loader.gif" alt="" />');

    $('#confrimmsg').html(msg);
    $("#confrimmsg").dialog({
        bgiframe: true,
        height: 'auto',
        width: '379px',
        modal: true,
        resizable: false,
        buttons: { "Bỏ qua": function() { $(this).dialog("close"); $(this).dialog("destroy"); CollectGarbage(); }, "Chấp nhận": fcallback }
    });

    $("#confrimmsg").dialog('open');

    return false;
}

function WaitingBox(msg) {

    jAlert('', 'Hệ thống đang xử lý dữ liệu');
    $('#popup_panel').prepend('<center ><img src="images/ajax_loader.gif" /></center>');
    $('#popup_ok').val('Cancel');
    // $("#errormsg").dialog('open');
    // return false;
}

function AlertWithTimeout(msg, timeout) {
    $("#_errormsg").css('display', 'block');
    $("#_errormsg").attr('title', '<span style="color:#fff">Thông báo</span>');
    $('#_errormsg').html('Đang tải dữ liệu...<br /> <img src="images/ajax_loader.gif" alt="" />');

    $('#_errormsg').html(msg);
    $("#_errormsg").dialog({
        bgiframe: true,
        height: 'auto',
        width: 'auto',
        modal: true
    });

    $("#_errormsg").dialog('open');
    return false;

    window.setTimeout($("#_errormsg").dialog('close'), timeout);
}
function CloseDialog() {
    $("#_errormsg").dialog('close');
    $("#errormsg").dialog('close');
    $("#dialog").dialog('close');
}

/*------------------------------------------- alert util ----------------------------------------------------------------*/
/*-------------------------------Trim(string)-----------------------------------------*/

function LTrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function RTrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function Trim(str, chars) {
    return LTrim(RTrim(str, chars), chars);
}

/*-------------------------------end Trim(string)---------------------------------------*/
/*--------------------------------violympic Validate-----------------------------------------*/

function ValidUserName(strString) {
    var strValidChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_";
    var strChar;
    var blnResult = true;
    if (strString.length == 0) return false;
    for (i = 0; i < strString.length && blnResult == true; i++) {
        strChar = strString.charAt(i);
        if (strValidChars.indexOf(strChar) == -1) {
            blnResult = false;
        }
    }
    return blnResult;
}

function ValidName(strString) {
    var strValidChars = "abcdefghijklmnopqrstuvwxyzđàáảãạăằắẳặâầấẩậìíỉĩịèéẻẽẹêềếểễệùúủũụưừứửữựòóỏõọôồốổỗộơờớởỡợỳýỷỹỵ";
    var strChar;
    var blnResult = true;
    strString = strString.toLowerCase();
    if (strString.length == 0) return false;
    for (i = 0; i < strString.length && blnResult == true; i++) {
        strChar = strString.charAt(i);
        if (strChar != " ")
            if (strValidChars.indexOf(strChar) == -1) {
            blnResult = false;
        }
    }
    return blnResult;
}

function ValidClassName(strString) {
    var strValidChars = "0123456789abcdefghijklmnopqrstuvwxyzđàáảãạăằắẳặâầấẩậìíỉĩịèéẻẽẹêềếểễệùúủũụưừứửữựòóỏõọôồốổỗộơờớởỡợỳýỷỹỵ./-";
    var strChar;
    var blnResult = true;
    strString = strString.toLowerCase();
    if (strString.length == 0) return false;
    for (i = 0; i < strString.length && blnResult == true; i++) {
        strChar = strString.charAt(i);
        if (strChar != " ")
            if (strValidChars.indexOf(strChar) == -1) {
            blnResult = false;
        }
    }
    return blnResult;
}

function ValidPhone(strString) {
    var strValidChars = "0123456789.()";
    var strChar;
    var blnResult = true;
    strString = strString.toLowerCase();
    if (strString.length == 0) return false;
    for (i = 0; i < strString.length && blnResult == true; i++) {
        strChar = strString.charAt(i);
        if (strChar != " ")
            if (strValidChars.indexOf(strChar) == -1) {
            blnResult = false;
        }
    }
    return blnResult;
}

function ValidEmail(strString) {
    var strValidChars = "0123456789abcdefghijklmnopqrstuvwxyz@._";
    var strChar;
    var blnResult = true;
    strString = strString.toLowerCase();
    if (strString.length == 0) return true;
    if (strString.indexOf('@') == -1) return false;
    if (strString.indexOf('.') == -1) return false;
    for (i = 0; i < strString.length && blnResult == true; i++) {
        strChar = strString.charAt(i);
        if (strValidChars.indexOf(strChar) == -1) {
            blnResult = false;
        }
    }
    return blnResult;
}

function ValidPassword(strString) {
    var strValidChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_!@#$%^&*()";
    var strChar;
    var blnResult = true;
    if (strString.length == 0) return false;
    for (i = 0; i < strString.length && blnResult == true; i++) {
        strChar = strString.charAt(i);
        if (strValidChars.indexOf(strChar) == -1) {
            blnResult = false;
        }
    }
    return blnResult;
}

function IsDateBirth(input) {
    var b = (input - 0) == input && input.length == 4;
    if (b == true) {
        if ((input.substring(2, 0) == "19") || (input.substring(2, 0) == "20")) {
            return 1;
        }
        else {
            return 0;
        }
    }
    else {
        return -1;
    }

    //return 0: năm sinh phải bắt đầu với 19 hoặc 20
    //return -1: năm sinh phải gồm 4 chữ số
    //return 1: hợp lệ
}

function isValidEmail(str) {
    var at = "@"
    var dot = "."
    var lat = str.indexOf(at)
    var lstr = str.length
    var ldot = str.indexOf(dot)
    if (str.indexOf(at) == -1) {
        return false
    }

    if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
        return false
    }

    if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
        return false
    }

    if (str.indexOf(at, (lat + 1)) != -1) {
        return false
    }

    if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
        return false
    }

    if (str.indexOf(dot, (lat + 2)) == -1) {
        return false
    }

    if (str.indexOf(" ") != -1) {
        return false
    }

    return true
}

function isInteger(s) {
    var i;
    for (i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    return true;
}
function SetDefaultButton(container_id, btn_id) {
    $("#" + container_id).keydown(function(e) {
        var keycode;
        if (e == null) { // ie
            keycode = event.keyCode;
        } else { // mozilla
            keycode = e.which;
        }

        if (keycode == 13) {
            $("#" + btn_id).click();
            return true;
        }
    });
}
function auto_scroll(anchor, top) {
    var $target = $(anchor);

    $target = $target.length && $target || $('[name=' + anchor.slice(1) + ']');

    if ($target.length) {
        var targetOffset = $target.offset().top - top;

        $('html,body').animate({ scrollTop: targetOffset }, 1000);

        return false;
    }
}
/*-------------------------------End violympic Validate----------------------------------*/
function EditProfile() {
    var user_id = "0";

    if ($('#login').length > 0)

        user_id = $('#login').attr("name").split(',')[0];

    if (user_id != "0")
        openDialog('Blocks/Dialog_box/EditProfile.aspx', 'Thay đổi thông tin cá nhân', 510);
    else
        AlertNoRedirect("Bạn chưa đăng nhập. Hãy đăng nhập để sử dụng chức năng này");
}
function CheckImageFile(objid) {
    var value = $('#' + objid).val().toLowerCase();
    if (value.length != 0) {
        var exts = value.substring(value.lastIndexOf('.') + 1, value.length);
        if ((exts != 'jpg') && (exts != 'gif') && (exts != 'png')) {
            $('#' + objid).attr('value', '');
            // AlertNoRedirect(value + " Không phải là Ảnh <br /> Để Upload bạn cần nhập file có định dạng đuôi mở rộng là jpg, gif hoặc png"); 
            return false;
        }
        else
            return true;
    }
    else
        return true;
}