/* --------------------------------------------------- */
/* Functions                                           */
/* --------------------------------------------------- */
let coview_api = new CoviewApi();
$(function(){
    var coviewApiActive = coview_api.Init(
            {
                testSTRParam : "param1",
                testNUMParam : 77,
                testBOOLParam : false,
                coview_api_srv_addr: "https://app.coview.co.kr:7443",
                coview_wrap_id : "coviewShare",
                coview_api_key: "8dda7092c5820d663"
            }
     );

         // special button IN Chat ui
         $("#coviewShareMainBtn").on("click", function(e){
             e.stopPropagation();
             if($(".coview_share_dropdown_bar").is(':visible') == true){
                 Coview_shareDropdownHide();

                 if($(".coview_share_photo_select_bubble").is(':visible') == true){
                     $(".coview_share_photo_select_bubble").slideUp();
                 }
             }
             else{
                 $(".coview_share_dropdown_bar").slideDown();
             }

         });

         $("#coviewShareCloseButton").on("click", function(e){
             coview_api.LeaveRoom();
             $(".coview_share_area").hide();

         });

         $("body").on("click", function(){
             Coview_shareDropdownHide();
         });

         $(document).on("click", ".coview_share_request", function(){
             console.log("globalUserInfo", globalUserInfo);
             if($(this).hasClass("video") == true){
                 globalUserInfo.coWorkType = "video";
                 $(".coview_share_title_name").text("LIVE");
             }
             else{
                 globalUserInfo.coWorkType = "image";
                 $(".coview_share_title_name").text("IMAGE");
             }

             coview_api.JoinRoom(globalUserInfo.roomId, globalUserInfo.coWorkType);
             Coview_moveToVideoShareArea();


         });

         // $('#coviewShareRequestVideo').bind('click', function()
         //     console.log("globalUserInfo", globalUserInfo);
         //     globalUserInfo.coWorkType = "video";
         //     coview_api.JoinRoom(globalUserInfo.roomId, globalUserInfo.coWorkType);
         // });

         /* --------------------------------------------------- */
         /* Video, photo, chat, doc                             */
         /* --------------------------------------------------- */
         $("#coviewShareChat").on("click", function(){
             console.log("ON click coviewShareChat");
         });

         $("#coviewSharePhoto").on("click", function(e){
             e.stopPropagation();
             console.log("ON click coviewSharePhoto");

             if($(".coview_share_photo_select_bubble").is(':visible') == true){
                 $(".coview_share_photo_select_bubble").slideUp();
             }
             else{
                 $(".coview_share_photo_select_bubble").slideDown();
             }
         });




         $("#coviewSharePhotoCamera").on("click", function(){
             $(".coview_share_photo_select_bubble").hide();
             globalUserInfo.coWorkType = "camera";
             coview_api.CreateRoom(globalUserInfo.roomId, globalUserInfo.coWorkType);
             Coview_moveToVideoShareArea();

             $(".coview_share_title_name").text("カメラ");
         });
         $("#coviewSharePhotoGalary").on("click", function(){
             $(".coview_share_photo_select_bubble").hide();
             globalUserInfo.coWorkType = "galary";
             coview_api.CreateRoom(globalUserInfo.roomId, globalUserInfo.coWorkType);
             Coview_moveToVideoShareArea();

             $(".coview_share_title_name").text("ライブラリ");
         });

         $("#coviewShareLive").on("click", function(){
             console.log("ON click coviewShareLive");
             globalUserInfo.coWorkType = "video";
             console.log("globalUserInfo", globalUserInfo);

             // var chars = "0123456789";
             // var string_length = 6;
             // var randomstring = '';
             // for (var i=0; i<string_length; i++) {
             //     var rnum = Math.floor(Math.random() * chars.length);
             //     randomstring += chars.substring(rnum,rnum+1);
             // }
             // coview_api.CreateRoom(randomstring, globalUserInfo.coWorkType);

             coview_api.CreateRoom(globalUserInfo.roomId, globalUserInfo.coWorkType);
             Coview_moveToVideoShareArea();

             $(".coview_share_title_name").text("LIVE");
         });

         $("#coviewShareDoc").on("click", function(){
             console.log("ON click coviewShareDoc");
             alert("INTO a document share mode (only audio)");
             globalUserInfo.coWorkType = "audio";
         });

         coview_api.addEventListener ("ready", function () {
             console.log("=============> READY : ready for coview api");
             coview_api.Login(globalUserInfo.loginId);
         });

         coview_api.addEventListener ("start", function () {
             console.log("=============> START : share start");
             $("#loadingIndicator").removeClass("full_active");
         });

         coview_api.addEventListener ("destroy", function () {
             console.log("=============> START : share start");
             coview_api.LeaveRoom();
             $(".coview_share_area").hide();
             $("#loadingIndicator").removeClass("full_active");
         });

         coview_api.addEventListener ("message", async function (event, json) {
             console.log("+++ addEventListener", json);
             console.log("processMessage api = ", json.api);

             switch (json.api){
                 case "LoginResponse":
                        console.log('------------------------------');
                        console.log(globalUserInfo.coWorkType);
                        console.log(collaborationJoinFlg);
                        if (collaborationJoinFlg == '1') {
                            coview_api.JoinRoom(globalUserInfo.roomId, globalUserInfo.coWorkType);
                        } else if (collaborationJoinFlg == '0') {
                            coview_api.CreateRoom(globalUserInfo.roomId, globalUserInfo.coWorkType);
                        }
                        Coview_moveToVideoShareArea();

                 break;
                 case "CreateRoomResponse":
                     if(json.resultCode == 200){
                         var coviewInviteMessage = "" + messageSeperator + messageType.COMMUNICATIONSTART + messageSeperator + CHAT_UTIL.getCollaborationType(globalUserInfo.coWorkType);
                         socket.emit('createMessage', {
                           text: coviewInviteMessage
                         }, 0);
                     }
                     else{

                     }
                 break;

                 case "joinRoomInfoResponse":
                     if(json.resultCode == 200){
                     }
                     else{
                         // alert(json.resultMsg + "(" + json.resultCode + ")" );
                         alert("Not exist sharing call (" + json.resultCode + ")\nPlease using share menu.");
                         coview_api.LeaveRoom();
                         $(".coview_share_area").hide();
                         $("#loadingIndicator").removeClass("full_active");
                     }
                     break;

                 default:
                     console.log('Unrecognized api', json);
                     break;
             }
         });
});

function Coview_shareDropdownHide(){
    $(".coview_share_dropdown_bar").slideUp();
    $(".coview_share_photo_select_bubble").slideUp();
}

function Coview_moveToVideoShareArea(){
    $("#loadingIndicator").addClass("full_active");
    $(".coview_share_area").show();
    $('#collabo_main').removeClass('none');
}

function Coview_exitCollaboration(){
    coview_api.LeaveRoom();
    CHAT_UI.joinRoom(CHAT.globalLoginParameter.roomId, CHAT.globalLoginParameter.name);
}
