/* 
 * 
 * EB-EMOTIONS
 * 
 * UPDATED: 2017-05-09
 * HELP: apoio@exclusive-bonus.pt
 * 
 */

var projectName = "EB EMOTIONS";

function initEmotions(url,hash) {
        
    console.log("INIT "+projectName);
    
    var userLang = document.getElementsByTagName("html")[0].getAttribute("lang") || navigator.language || navigator.userLanguage; 
    
    var res = userLang.split("-"); 
    userLang = res[0];
    
    console.log("LANG "+projectName+" "+userLang);
    
    var langCode = userLang.split("-");
    
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            var data = JSON.parse(this.responseText);
            if(!data.RESULT){
                alert("EMOTIONS ERROR: verify your connection");
                console.log("REQUEST "+data.ERROR_MSG);
            } else if(typeof stats == "undefined") designEmotions(url,langCode[0],data);
            else statEmotions(url,langCode[0],data);
      }
    };
    
    console.log("REQUEST "+projectName);
    
    if(typeof stats == "undefined")
        xhttp.open("GET", url+"script.php?hash="+hash+"&lang="+langCode[0], true);
    else
        xhttp.open("GET", url+"script.php?hash="+hash+"&stats="+stats+"&lang="+langCode[0], true);
    
    xhttp.send();
  
}

function designEmotions(url,lang,data){
    console.log("DESIGN "+projectName);
        
    var id = _getRandomInt(5,10);
    
    var divEmotions = document.createElement('div');
        
    divEmotions.id = "EMOTIONS-"+id;
    divEmotions.className = "emotions-div open";
    divEmotions.style.zIndex = "999";
    
    var divEmotions_arrow = document.createElement('div');
    divEmotions_arrow.className = "arrow";
    
    divEmotions_arrow.addEventListener("click",function(){
        if(document.getElementById("EMOTIONS-"+id).classList.contains('open')){
            document.getElementById("EMOTIONS-"+id).className = "";
            document.getElementById("EMOTIONS-"+id).className = "emotions-div close";
            setCookie("emotions","123",4);
        }
        else{
            document.getElementById("EMOTIONS-"+id).className = "";
            document.getElementById("EMOTIONS-"+id).className = "emotions-div open";
        }
    });
    
    var divEmotions_content = document.createElement('div');
    divEmotions_content.className = "content";
    
    divEmotions_content.innerHTML = "<div class='header'>"+data['TITLE']+"</div>";
    
    if(typeof data.PROMOTER.QUESTIONS != "undefined"){
        var questions = data.PROMOTER.QUESTIONS;
        divEmotions_content.innerHTML += "<div class='question'>"+questions[lang][0]['NAME']+"</div>";
    }
    
    divEmotions_content.innerHTML += "<div class='line'></div>";
    
    divEmotions_content.innerHTML += "<div class='smile' onclick='smileClick(\""+data['OPEN']+"\")'><img src='"+url+"assets/custom/img/smiles/smile-good.png'/></div>";
    divEmotions_content.innerHTML += "<div class='smile' onclick='smileClick(\""+data['OPEN']+"\")'><img src='"+url+"assets/custom/img/smiles/smile-happy.png'/></div>";
    divEmotions_content.innerHTML += "<div class='smile' onclick='smileClick(\""+data['OPEN']+"\")'><img src='"+url+"assets/custom/img/smiles/smile-confused.png'/></div>";
    divEmotions_content.innerHTML += "<div class='smile' onclick='smileClick(\""+data['OPEN']+"\")'><img src='"+url+"assets/custom/img/smiles/smile-bad.png'/></div>";
    
    divEmotions_content.innerHTML += "<div class='name'>"+projectName+"</div>";
    
    divEmotions.appendChild(divEmotions_arrow);
    divEmotions.appendChild(divEmotions_content);
    
    document.body.appendChild(divEmotions);
    
    /*document.getElementsByClassName("smile").addEventListener("click", function(){
        window.open(data['OPEN'],"_blank");
    });  */
    
    var linkCss = document.createElement('link');
    linkCss.rel = "stylesheet";
    linkCss.type = "text/css";
    linkCss.href = url+"assets/custom/css/emotionsv0.css";
    
    document.body.appendChild(linkCss);
    
    var linkCss = document.createElement('link');
    linkCss.rel = "stylesheet";
    linkCss.type = "text/css";
    linkCss.href = "http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800";
    
    document.body.appendChild(linkCss);
        
}

function smileClick(open){
    setCookie("emotions","123",10);
    window.open(open,"_blank");
}

function statEmotions(url,lang,data){
    console.log("STATS "+projectName);
        
    var id = _getRandomInt(5,10);
    
    var divEmotions = document.createElement('div');
    divEmotions.id = "EMOTIONS-"+id;
    divEmotions.className = "emotions-stats";
        
    var divEmotions_content = document.createElement('div');    
    
    var total_perc = data.STATS.total_perc;
    var total_smile_good = (total_perc>=4) ? 1 : ((4-total_perc) >= 1 ? "0" : (4-total_perc).toString().replace(".", "_"));
    var total_smile_happy = (total_perc>=3) ? 1 : ((3-total_perc) >= 1 ? "0" : (3-total_perc).toString().replace(".", "_"));
    var total_smile_confused = (total_perc>=2) ? 1 : ((2-total_perc) >= 1 ? "0" : (2-total_perc).toString().replace(".", "_"));
    var total_smile_bad = (total_perc>=1) ? 1 : ((1-total_perc) >= 1 ? "0" : (1-total_perc).toString().replace(".", "_"));
    
    divEmotions_content.innerHTML += "<div class='header'><div class='logo'><a href='http://eb-emotions.com' target='_blank'><img src='"+url+"logo.png'/></a></div><div class='line'></div></div>";
    
    divEmotions_content.innerHTML += "<H3><A HREF='"+data.OPEN+"' target='_blank'>"+data.STATS.INFO+"</A></H3>";
    
    divEmotions_content.innerHTML += "<div class='smile smile-"+total_smile_good+"' onclick='smileClick(\""+data['OPEN']+"\")'><img src='"+url+"assets/custom/img/smiles/smile-good.png'/><h4>"+data.STATS.stats[2]+"%</h4></div>";
    divEmotions_content.innerHTML += "<div class='smile smile-"+total_smile_happy+"' onclick='smileClick(\""+data['OPEN']+"\")'><img src='"+url+"assets/custom/img/smiles/smile-happy.png'/><h4>"+data.STATS.stats[1]+"%</h4></div>";
    divEmotions_content.innerHTML += "<div class='smile smile-"+total_smile_confused+"' onclick='smileClick(\""+data['OPEN']+"\")'><img src='"+url+"assets/custom/img/smiles/smile-confused.png'/><h4> - %</h4></div>";
    divEmotions_content.innerHTML += "<div class='smile smile-"+total_smile_bad+"' onclick='smileClick(\""+data['OPEN']+"\")'><img src='"+url+"assets/custom/img/smiles/smile-bad.png'/><h4> - %</h4></div>";
    
    var date = new Date();
    var data_str = date.getDay()+"/"+(date.getMonth()+1)+"/"+date.getFullYear()+" "+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();
    
    divEmotions_content.innerHTML += "<div class='box-footer'><img src='"+url+"assets/custom/img/box_shadow.png'/><div class='total_perc'><H3>POSITIVE FEEDBACK</H3><span>"+(data.STATS.stats[2]+data.STATS.stats[1])+" %</span></div></div>";
    
    
    divEmotions_content.innerHTML += "<div class='total'>"+data.STATS.total+" AVALIAÇÕES</div>";
    divEmotions_content.innerHTML += "<div class='update'>ATUALIZADO: "+(data_str)+"</div>";
    
    //divEmotions_content.innerHTML += "<p><span>"+data.STATS.total+" AVALIAÇÕES</span></p>";
    
    
    
    divEmotions.appendChild(divEmotions_content);
        
    var div_stats = document.getElementById('emotions-stats');
        
    div_stats.appendChild(divEmotions);
    
    var linkCss = document.createElement('link');
    linkCss.rel = "stylesheet";
    linkCss.type = "text/css";
    linkCss.href = url+"assets/custom/css/emotionsv0.css";
    
    document.body.appendChild(linkCss);
    
    var linkCss = document.createElement('link');
    linkCss.rel = "stylesheet";
    linkCss.type = "text/css";
    linkCss.href = "http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800";
    
    document.body.appendChild(linkCss);
    
}

var _getRandomInt = function( min, max ) {
    return Math.floor( Math.random() * ( max - min + 1 ) ) + min;
 }

window.onload = function() {
    
    //script gets the src attribute based on ID of page's script element:
    var requestURL = document.getElementById("emotions-script").getAttribute("src");
    
    var scriptURL = requestURL.split("?");

    //next use substring() to get querystring part of src
    var queryString = requestURL.substring(requestURL.indexOf("?") + 1, requestURL.length);

    //Next split the querystring into array
    var params = queryString.split("&");

    //Next loop through params
    for(var i = 0; i < params.length; i++){
     var name  = params[i].substring(0,params[i].indexOf("="));
     var value = params[i].substring(params[i].indexOf("=") + 1, params[i].length);

        //Test if value is a number. If not, wrap value with quotes:
        if(isNaN(parseInt(value))) {
      params[i] = params[i].replace(value, "'" + value + "'");
     }

        // Finally, use eval to set values of pre-defined variables:
        eval(params[i]);
    }
    
    if(typeof hash == "undefined") alert("EMOTIONS ERROR: verify your connection"); else initEmotions(scriptURL[0],hash);
    
}

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+ d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
} 

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i = 0; i <ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length,c.length);
        }
    }
    return "";
} 