/* class2context.js
creator: Arnau
July 2016
version: v0.1


usage:
class2context(
  'className',
  "title",
  [["option1", "functionoption1()"], ["option 2","functionoption2()"]]
);
*/



//if the div 'contextMenus' exist, deletes
if(document.getElementById('contextMenus'))
{
  removeElemById('contextMenus');
}

//creates the div where the context menus will place
document.body.innerHTML+="<div id='contextMenus'></div>";
//

function removeElemById(id) {
    return (elem=document.getElementById(id)).parentNode.removeChild(elem);
}

function class2context(classgiv, title, options){
    classgiv=JSON.parse(JSON.stringify(classgiv));
    if(document.getElementById("context"+classgiv))
    {
        //toastr.success("alreadyExist");
    }else{
        var aux="";
        aux+="<div id='context"+classgiv+"' class='contextMenu'>";
        aux+="  <ul class='c2c-dropdown c2c-border' style='display:block;position:static;margin-bottom:5px;'>";
        aux+="<div class='contextTitle'>" + title + "</div>";
        for(var i=0; i<options.length; i++)
        {
            //aux+="    <a onmousedown='"+options[i][1]+";' href='javascript:void(0);'>"+options[i][0]+"</a>";
            aux+="    <a onmousedown='"+options[i][1]+"; ContextMenus();' href='javascript:void(0);'>"+options[i][0]+"</a>";

        }
        aux+="  </ul>";
        aux+="</div>";
        document.getElementById('contextMenus').innerHTML+=aux; //adds the div context menu into the context menus div place
    }

    for(var i=0; i<document.getElementsByClassName(classgiv).length; i++)
    {
        classgiv=JSON.parse(JSON.stringify(classgiv));
        //toastr.info(document.getElementsByClassName(classgiv)[i].oncontextmenu);
        document.getElementsByClassName(classgiv)[i].addEventListener("contextmenu", function(e){
            // Avoid the real one
            e.preventDefault();
            e.stopPropagation();
            setTimeout(function(){
                //classaux=this.className.split(" ")[0];
                document.getElementById('context'+classgiv).style.display='block';
                document.getElementById('context'+classgiv).style.left=e.pageX + "px";
                document.getElementById('context'+classgiv).style.top=e.pageY + "px";
            }, 150);
        });

        /*document.getElementsByClassName(classgiv)[i].oncontextmenu+= function(e){
            // Avoid the real one
            e.preventDefault();
            setTimeout(function(){
                //classaux=this.className.split(" ")[0];
                document.getElementById('context'+classgiv).style.display='block';
                document.getElementById('context'+classgiv).style.left=e.pageX + "px";
                document.getElementById('context'+classgiv).style.top=e.pageY + "px";
            }, 150);
        };*/
    }

    document.body.addEventListener("mousedown", function(e){
        // Avoid the real one
        //e.preventDefault();
        if(document.getElementById('context'+classgiv))
        {
            setTimeout(function(){
                document.getElementById('context'+classgiv).style.display='none';
            }, 70);
            //ContextMenus();

        }
        return false;
    }, false);

}
