$(function(){
    if ($("div#mucluc2").length > 0){ 
        var h3 = $("div#mucluc2").find("h2"); 
        var htm ='<div class="mucluc"><span><i class="fa fa-bars"></i></span><span>Table of contents</span><ol>'; 
        for(var i = 0; i < h3.length; i++){ 
            var id = "h3id"+i; 
            htm += "<li><a href=\"javascript:goToAnchor('"+id+"')\" rel=\"nofollow\">"+$(h3[i]).html()+'</a></li>'; 
            $(h3[i]).attr("id", id);
        } 
        htm += "<li><a href=\"javascript:goToAnchor('boxComment')\" rel=\"nofollow\">"+$("div#boxComment").find("h1.title span").html()+"</a></li>";
        htm += "</ol></div>";
         
        $(htm).insertAfter($("div#mucluc2").find("div.dataImage"));
    }
       
    var news = $("ul.news").find("li");
    for(var i = 0; i < news.length; i++){
        if($(news[i]).find("a.img").length == 0){
            $(news[i]).find("div.info").css("width","100%");
        }
    }
        
    $("div.dataImage").find("ul").lightGallery({thumbnail:true, selector: '.img', share: false, hash: false}); //
    
    neviScript.resizeDataImage();
    
    $("div.dataImage").find("i.fa").click(function(){
        var task = $(this).attr("class");
        var ul = $(this).parents("div.dataImage").find("ul");
        var li = $(ul).find("li");
        if(task == 'fa fa-angle-left'){ //
            var w = $(li[0]).width(); 
            $(ul).animate({left: -w}, 200, function () {                    
                $(ul).css('left', 0);
                $(ul).append(li[0]);
            });         
        } 
        else{
            var w = $(li[li.length -1 ]).width();
            $(ul).animate({left: w}, 200, function () {                    
                $(ul).css('left', 0);
                $(li[li.length - 1]).insertBefore($(li[0]));                
            });            
        }        
    });
    
    
    
    
    $("form.editor").find("input[name='ftext']").keyup(function(){
        neviScript.setFont(); 
    });
    
    $("form.editor div.style").find("span").click(function(){
        var fstyle = $(this).html(); 
        if($(this).attr("class") == 'active'){
            $(this).attr("class",""); fstyle = "";
        }
        else{
            $(this).parent().find("span").attr("class","");
            $(this).attr("class","active");
        }
        $("form.editor").find("input[name='fstyle']").val(fstyle);
        neviScript.setFont();
    });
    
    $("form.editor").find("#slider").slider({
      min: 15, max: 150, step: 1,
      value: $("form.editor").find("input[name='fheight']").val(),                  
      create: function() { $(this).find("div").text( $(this).slider("value") +"px" ); },
      slide: function( event, ui ) {
        $(this).find("div").text( ui.value+"px");
        $(this).parent().find("input[name='fheight']").val(ui.value);
        var divImg = $(this).parent().next().find("div.image");
        
        for(var i = 0; i < divImg.length; i++){
            var img = $(divImg[i]).find("img");
            var h  = parseInt($(img).attr("height"));
            var fh = $(img).data("height");                    
            var nH	= ui.value * h / fh;
            $(img).css("height",nH + "px");                         
        }       
        
      },
      stop: function( event, ui ) {
        $(this).parent().next().find("div.charmap").hide();
        neviScript.setFont();
      }
    });   
    
    $("div.dataFont").find("button[name='download']").click(function(){
        window.location.href = HOMESITE +"downfont/f" + $(this).parents("li").data("id") +"-" + $(this).data("auth") +"/" + $(this).parents("li").data("file");}
    );
    $("div.dataBtn").find("button").click(function(){
        switch($(this).attr("name")){
            case 'download':
                window.location.href = HOMESITE +"downfont/zip" + $(this).data("id") +"-"+$(this).data("auth")+"/" + $(this).data("file");
            break;
            case 'donate':
                var value = $(this).data("value");
                if(isEmail(value)){
                    var $form=$('<form>',{'action':'https://www.paypal.com/cgi-bin/webscr','method':'post','target':'_blank'})
                        .append($('<input>',{'name':'cmd','value':'_donations','type':'hidden'}))
                        .append($('<input>',{'name':'business','value':value,'type':'hidden'}))
                        .append($('<input>',{'name':'lc','value':'US','type':'hidden'}))
                        .append($('<input>',{'name':'item_name','value':'Donation to '+value+' via ' + $(this).data("site"),'type':'hidden'}))
                        .append($('<input>',{'name':'item_number','value':$(this).data("font"),'type':'hidden'}))
                        .append($('<input>',{'name':'currency_code','value':'USD','type':'hidden'}))
                        .append($('<input>',{'name':'bn','value':'PP-DonationsBF','type':'hidden'}));
                        $(document.body).append($form);
                        $form.submit();
                }
                else{
                    window.open(value);
                }
            
            break;
            case 'favourite':
                if($(this).data("uid") == "0"){//check user login
                    neviScript.checkUserLogin($(this).data("id"));                      
                }
                else{
                    neviScript.setFavourite($(this).data("id"));
                }                
            break;
            case 'report':
                neviScript.fontReport($(this), 1);
            break;
            case 'contact':
                neviScript.fontReport($(this), 2);
            break;
            case 'morelink':
                window.open($(this).data("value"));
            break;
        }
    });
    
    
    $("div.dataFont").find("button[name='charmap']").click(function(){
        var li  = $(this).parents("li");
        var div = $(li).find("div.charmap");
        if(div.length == 0){
            var charmap = $(this).data("char");
            var strMap = "<div class='charmap' id=\"charmap"+$(this).data("index")+"\">";
            for(var i = 0; i < charmap.length; i++){
                strMap += "<span onmouseover=\"getCharInfo(event,'"+charmap[i]+"')\">"+String.fromCharCode('&#%d;', charmap[i])+"</span>";
            }
            strMap += "</div>";            
            $(li).append(strMap);
            $("body").append("<link href=\""+$(this).data("css")+"\" rel=\"stylesheet\" type=\"text/css\"/>");            
        }
        else{
            if($(div).css("display") == 'block'){$(div).hide('fast');} 
            else $(div).show('fast');
        }   
    }); 
    
    $(document).mouseup(function (e){        
        var o = $("div.charmap");
        if (!$(o).is(e.target) && $(o).has(e.target).length === 0){$("div#char-info").remove();}    
    });
    
    
    
})

neviScript.resizeDataImage = function(){
    var dataImage = $("div.dataImage");
    var li = $(dataImage).find("li");
    var dataW = 0;
    for(i = 0; i < li.length; i++){
        dataW += parseInt( $(li[i]).data("w"));
    }
    if(dataW < $(dataImage).width()){
        $(dataImage).find("i.fa").hide();
        $(dataImage).css("max-width", (dataW + 10) + "px");
    }
}

neviScript.setFont = function(){
    var formEditor = $("form.editor");
    var fText   = $("form.editor").find("input[name='ftext']").val();
    var fStyle  = $("form.editor").find("input[name='fstyle']").val();
    var fHeight = $("form.editor").find("input[name='fheight']").val();
    var fAlias   = $("form.editor").data("alias");    
    var li = $("div.dataFont").find("li");
    for(var i = 0; i < li.length; i++){        
        var hash = "id="+$(li[i]).data("id")+"&sub="+$(li[i]).data("sub")+"&fn="+$(li[i]).data("name")+"&fh="+$(li[i]).data("height")+"&s="+fStyle+"&t="+fText+"&h="+fHeight;        
        $(li[i]).find("img").attr("src", HOMESITE + "fontimg/"+window.btoa(hash).replace("==",'')+"/" + $(li[i]).data("file")); //encodeURI(fName)
    }  
}


function getCharInfo(event,inputDec){
	if (inputDec==undefined ){return;}
	
	var charCodeDec = new Number(inputDec);

	//var charCodeDec= parseInt(charCodeHex, 16);
	var charCodeHex = inputDec.toString(16).toUpperCase();
	var charCodeOctal = charCodeDec.toString(8);	
	info = "<span><label>Decimal Code:</label><label>"+charCodeDec+"</label></span>";
	info += "<span><label>Hex Value:</label><label>0x"+charCodeHex+"</label></span>";
	info += "<span><label>Octal Value:</label><label>"+charCodeOctal+"</label></span>";
	info += "<span><label>Unicode:</label><label>U+"+charCodeHex+"</label></span>";
	info += "<span><label>UTF-8 Value:</label><label>0x"+charCodeHex+"</label></span>";
	info += "<span><label>JavaScript Escaped:</label><label>%u"+charCodeHex+"</label></span>";
	info += "<span><label>HTML Entity:</label><label>&amp;#"+charCodeDec+";</label></span>";
    info += "<span><label>Character:</label><label>"+String.fromCharCode('&#%d;', inputDec)+"</label></span>";;
    
	//info += "<i class=\"fa fa-times\" title=\"Close\"></i>";
    if($("div#char-info").length == 0){
        $("body").append("<div id='char-info'></div>");        
    }
    
	$("#char-info").html(info);
    //$("#char-info").find("i.fa").click(function(){$(this).parent().remove();});
	$("#char-info").show();
	$("#char-info").css("top",event.pageY+10);
	$("#char-info").css("left",event.pageX-230);
}

neviScript.checkUserLogin = function(id){
    $.post("ajax.post.php", {"module":moduleName, "menu": "userLogin" }, function(txt){
        if(txt == '0') alert("Please login!");
        else{
            neviScript.setFavourite(id);
        }
    });
}

neviScript.setFavourite = function(id){
    $.post("ajax.post.php", {"module":moduleName, "menu": "setFavourite", "id": id }, function(txt){
        if(isNumber(txt)){
            loading_success();
        }
        else{
            loading_error(txt);
        }
    });
}

neviScript.closeDialog = function(){
    $("div#loadingForm").remove();
}

neviScript.fontReport = function(obj, type){
    if(!clickSave ) return;
    
    if($("div#loadingForm").length == 0){
        $("body").append("<div id='loadingForm'></div>");
        var htm = "<div class=\"form\"><form onsubmit=\"return false;\"><h3>"+$(obj).html()+"</h3><i class=\"fa fa-window-close\" title=\"Close\" onclick=\"neviScript.closeDialog()\"></i>";
        htm += "<h1><a href=\""+$(obj).data("alias")+"/f"+$(obj).data("id")+".htm\" title=\""+$(obj).data("title")+"\">"+$(obj).data("title")+"</a></h1>";
        htm += "<div class='w'><input type=\"text\" name=\"fullname\" placeholder=\"Your name\" value=\""+$(obj).data("name")+"\"/>";
        htm += "<input type=\"text\" name=\"email\" placeholder=\"Your email\" value=\""+$(obj).data("email")+"\"/></div>";
        htm += "<div><input type=\"text\" name=\"subject\" placeholder=\"Subject\"/></div>";
        htm += "<div class='hline'><textarea name=\"content\" placeholder=\"Content\"></textarea></div>";
        htm += "<div><button name='submit'><i class=\"fa fa-paper-plane\"></i> Submit</button>";
        htm += "<input type=\"hidden\" name=\"f_id\" value=\""+$(obj).data("id")+"\"/>";
        htm += "<input type=\"hidden\" name=\"f_title\" value=\""+$(obj).data("title")+"\"/>";
        htm += "<input type=\"hidden\" name=\"f_alias\" value=\""+$(obj).data("alias")+"\"/>";
        htm += "<input type=\"hidden\" name=\"ucreate\" value=\""+$(obj).data("ucreate")+"\"/>";
        htm += "<input type=\"hidden\" name=\"type\" value=\""+type+"\"/>";
        htm += "</form></div>";
        $("div#loadingForm").html(htm);
    }
    
    var loadingFrom = $("div#loadingForm").find("form");
    
    $(loadingFrom).find("textarea").focus(function(){$(this).attr("class","");})    
    $(loadingFrom).find("input").focus(function(){$(this).attr("class","");})
    $(loadingFrom).find("button").click(function(){ neviScript.fontReportSave() })
            
    var width  = ($(window).width() - $(loadingFrom).width()-42) / 2;
    var height = ($(window).height() - 400) / 2;
    $(loadingFrom).css({"margin-left":width+"px", "margin-top":height + "px"});    
}

neviScript.fontReportSave = function(){
    var loadingFrom = $("div#loadingForm").find("form");
    
    var input = $(loadingForm).find("input");
    var flag = false;
    for(var i = 0; i < input.length; i++){
        if($(input[i]).val() == ""){
            $(input[i]).attr('class', 'error');
            flag = true;
            break;
        }    
    }
    if(flag){return;}
    else if(!isEmail($(loadingForm).find("input[name='email']").val())){ $(loadingForm).find("input[name='email']").attr("class","error"); return;}
    else if( $(loadingForm).find("textarea").val()  == ''){$(loadingForm).find("textarea").attr("class", 'error');return;}
    
    var xml="<?xml version='1.0' encoding='UTF-8'?><root><itnet module='"+moduleName+"'>";
	xml += "<params menu='fontReport'>";
    for(var i = 0; i < input.length; i++){
        xml += "<node name='"+$(input[i]).attr("name")+"'><![CDATA["+$(input[i]).val()+"]]></node>";            
    }    
    xml += "<node name='content'><![CDATA["+$(loadingForm).find("textarea").val()+"]]></node>";
	xml += "</params></itnet></root>";
    clickSave  = false;
    loading_init();
    $.ajax({ type: "POST", url: "ajax.xml.php", data: xml}).done(function(txt){
        loading_success();
        for(var i = 0; i < input.length; i++) $(input[i]).attr("disabled","true");
        $(loadingFrom).find("button").attr("disabled","true");
        $(loadingFrom).find("textarea").attr("disabled","true");
        $(loadingFrom).append("<h2><i class=\"fa fa-check\"></i> Report succeed!</h2>");
    
    });
}