﻿
var messages_array = {};
messages_array["0"] = "Изчисленията в калкулатора се правят на база 170-часов работен месец.";
messages_array["1"] = "Месечна работна заплата в лева.";
messages_array["2"] = "Брой на фирмите, които трябва да извършат дейността.";
messages_array["3"] = "Брой пъти на година, които бизнесът трябва да извърши дейността.";
messages_array["4"] = "Име на административна тежест.";
messages_array["5"] = "Брой дейности.";


$(document).ready(function() {

//$("#step2").hide();
    $("#lblrequiredfieldsstep2").hide();

    $().mousemove(function(e) {

        $('#ajaxinfo').css('top', e.pageY).css('left', e.pageX + 20);
    });

    $("#btn_calculate").click(function(e) {
        Calculate(e);
    });

    $("#btn_print").click(function(e) {
        window.print();
    });

    $("#btn_print_pdf").click(function(e) {
        PrepareForPrint();
        $("form:first").submit();
    });

    $(".calculator_step_1 input[type=text], .calculator_step_1 textarea").keyup(function(e) { mykeyup(this, e) });

    ApplyInfo();

});

function mykeyup(obj, e) 
{

    if ($(obj).attr("value") != "") {
        $("#" + $(obj).attr("id") + "_star").removeClass().addClass("star_hide");
    }
    else {
        $("#" + $(obj).attr("id") + "_star").removeClass().addClass("star_show");
    }

}

function myonhover(obj, e)
{
    var parts = $(obj).attr("id").split("_");
    var div_tooptip = '<div id="tipinfo" class="tipinfo"></div';
    $("form:first").append(div_tooptip);
    $("#tipinfo").html(messages_array[parts[2]]);
    $("#tipinfo").css('top', e.pageY).css('left', e.pageX + 20);
    $("#tipinfo").show();
}

function Steps(index) {

    $("#main_name_star").removeClass().addClass("star_hide");
    $("#activities_count_star").removeClass().addClass("star_hide"); ;

    if (index == 1) 
    {
        $("#lblrequiredfieldsstep2").hide();
        $("#step2").hide();
        $("#step1").show();
    }
    else if (index == 2) 
    {

      var count = parseInt($("#activities_count").attr("value")) ;
      var textareavalue = $("#main_name").attr("value");

      if ((count > 0) && (textareavalue != "")) 
      {

          $("#activities_container .group").remove();

          for (var i = 0; i < count; i++) {
              MakeGroup();
          }

          $("#step1").hide();
          $(".warning_label").hide();
          $("#btn_print_pdf").hide();        
          $("#btn_print").hide();
          $("#total_all_row").hide();

          $(".total_all_label").html("Общ административен товар за една година за " + $("#main_name").attr("value"));

          var groups = $(".group");

          for (var i = 0; i < groups.length; i++) {

              $("#" + $(groups[i]).attr("id") + " input[type=text]," + "#" + $(groups[i]).attr("id") + " textarea").keyup(function(e) { mykeyup(this, e) });
          }

          $("#lblrequiredfieldsstep2").show();
          $("#step2").show();
      }
      else {

          if (count < 0 || isNaN(count)) 
          {
              $("#activities_count_star").removeClass().addClass("star_show"); ;
          }

          if (textareavalue == "") 
          {
              $("#main_name_star").removeClass().addClass("star_show");
          }
      }
      
    }
    
}

function MakeGroup() 
{

    var newindex = $(".group").length;


    var newdiv_row = $("<tr id='group_" + newindex + "' class='group'></tr>");
    var newdiv = $("<table class='calculator_step_2'> </table>");
    var newdiv_cell = $("<td></td>");  


    var item = "<tr>" +
                   "<td class='calculator_step_2_cell_left[additionalclass]'>" +
                     "[questionmark]<div class='step_2_cell_left'>" +
                        "[activity_text] " +
                     "</div>" +
                     "<div class='step_2_cell_right'>" +
                       "<label id='[starid]' class='star_show'>*</label><input type='text' id='[activity_value_id]'/>" +
                     "</div>" +
                   "</td>" +
                 "</tr>";


    var name_item = "<tr>" +
                       "<td class='calculator_step_2_cell_left'>" +
                         "<div class='step_2_cell_left'><label class='blue_label'>Име на дейност:</label></div>" + 
                         "<div class='step_2_cell_right'>" +
                             "<textarea id='group_" + newindex + "_textarea' rows='2' cols='300'></textarea>" +
                         "</div>" +
                       "</td>" +
                       "<td rowspan='5' style='vertical-align:middle'>" +
                          "<label class='blue_label'>Общ административен товар</label>" +
                          "<br />" +
                          "<br />" +
                          "<div class='group_total'><div  id='group_" + newindex + "_total_value' class='blue_div'></div></div>" +
                          "<br />" +
                          "<label id='group_" + newindex + "_warning' class='warning_label'>Не са попълнени всички полета!</label>" +                               
                        "</td>" +
                     "</tr>" ;


    var hours_item = item.replace("[additionalclass]", " left_gray")
                         .replace("[questionmark]", "<img src='../Images/info.gif' id='message_" + newindex + "_0' class='question_mark'/>")
                         .replace("[activity_text]", "Брой часове, необходими за извършването на дейността:")
                         .replace("[starid]", "group_" + newindex + "_hours_star")
                         .replace("[activity_value_id]", "group_" + newindex + "_hours");


    var salary_item = item.replace("[additionalclass]", "")
                         .replace("[questionmark]", "<img src='../Images/info.gif' id='message_" + newindex + "_1' class='question_mark'/>")
                         .replace("[activity_text]", "Средна месечна работна заплата на човека, който трябва да извърши дейността:")
                         .replace("[starid]", "group_" + newindex + "_salary_star")
                         .replace("[activity_value_id]", "group_" + newindex + "_salary");


    var firms_item = item.replace("[additionalclass]", " left_gray")
                         .replace("[questionmark]", "<img src='../Images/info.gif' id='message_" + newindex + "_2' class='question_mark'/>")
                         .replace("[activity_text]", "Брой на фирмите, които трябва да извършат дейността:")
                         .replace("[starid]", "group_" + newindex + "_firms_star")
                         .replace("[activity_value_id]", "group_" + newindex + "_firms");


    var timesinyear_item = item.replace("[additionalclass]", "")
                         .replace("[questionmark]", "<img src='../Images/info.gif' id='message_" + newindex + "_3' class='question_mark'/>")
                         .replace("[activity_text]", "Брой пъти на година, които бизнесът трябва да извърши дейността:")
                         .replace("[starid]", "group_" + newindex + "_timesinyear_star")
                         .replace("[activity_value_id]", "group_" + newindex + "_timesinyear");



    newdiv.append(name_item);
    newdiv.append(hours_item);
    newdiv.append(salary_item);
    newdiv.append(firms_item);
    newdiv.append(timesinyear_item);

    newdiv_cell.append(newdiv);
    newdiv_row.append(newdiv_cell);
    

    ($("#activities_container .group:last").length == 0) ? $("#activities_container tr:first").before(newdiv_row)
                                        : $("#activities_container .group:last").after(newdiv_row);
    ApplyInfo();
                                       
}

function ApplyInfo() 
{

    $(".question_mark").hover(
       function(e) {
           myonhover(this, e);
       },

       function(e) {
           $("#tipinfo").remove();
       }); 

}

function CollectData(get_total) 
{

    var groups = $(".group");
    var params = "";
    
    (get_total == 1) ? params = "["
                     : params = "{CalculatorItems : [";
    
    for (var i = 0; i < groups.length; i++)
    {

        //var values_array = $("#" + $(groups[i]).attr("id") + " input[type=text]");
        var values_array = $("#" + $(groups[i]).attr("id") + " input[type=text]," + "#" + $(groups[i]).attr("id") + " textarea");

        params += "{ groupid : '" + $(groups[i]).attr("id") + "',";

        
        for (var j = 0; j < values_array.length; j++) {
           if ($(values_array[j]).attr("id").indexOf("textarea") >= 0)
           {
              params += " name : '" + $(values_array[j]).attr("value") + "',";
           }
           
           if ($(values_array[j]).attr("id").indexOf("hours") >= 0)
           {
              params += " hours : '" + $(values_array[j]).attr("value") + "',";
           }
           
           if ($(values_array[j]).attr("id").indexOf("salary") >= 0)
           {
              params += " salary : '" + $(values_array[j]).attr("value") + "',";
           }
           
           if ($(values_array[j]).attr("id").indexOf("firms") >= 0)
           {
              params += " firms : '" + $(values_array[j]).attr("value") + "',";
           }
           
           if ($(values_array[j]).attr("id").indexOf("timesinyear") >= 0)
           {
              params += " timesinyear : '" + $(values_array[j]).attr("value") + "',";
           }                   
          
        }

        if (get_total == 1) 
        {
            params += " total : " + $("#" + $(groups[i]).attr("id") + "_total_value").html().split(" ")[0];
        }
        else
        {
           params += " total : 0";
        }

        params += ",";
        params += " IsObjectValid : ''}"

        if (i < groups.length - 1) 
        {
            params += ",";
        }

    }


    (get_total == 1) ? params += "]"
                     : params += "]}";

   return  params ;

}

function Calculate(e) {

    var div_tooptip = '<div id="ajaxinfo" class="ajaxloader"></div';
    $("form:first").append(div_tooptip);
    $("#ajaxinfo").css('top', e.pageY).css('left', e.pageX + 20);
    $("#ajaxinfo").show();

   var data_collection = CollectData(0);

   $.ajax({
       type: "POST",
       url: "../services.asmx/Calculator",
       data: data_collection,
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       success: function(result){ Succ(result) ; } ,
       error: function(result){ Err(result) ; } 

   });
  

}

function Succ(result)
{
   var sum_total_all = 0;
   var not_calc_total_all = 0;
   var currency_text = " лв";

   if (result.d.length > 0) {
       for (var i = 0; i < result.d.length; i++) {

           $("#" + result.d[i].groupid + " .star_show").removeClass().addClass("star_hide");
           $("#" + result.d[i].groupid + "_warning").hide();

           if (result.d[i].IsObjectValid == "") {

               $("#" + result.d[i].groupid + "_total_value").html(result.d[i].total + currency_text);

               sum_total_all += result.d[i].total;
               
           }
           else {

               $(result.d[i].IsObjectValid).removeClass().addClass("star_show"); 
               $("#" + result.d[i].groupid + "_warning").show();
               $("#" + result.d[i].groupid + "_total_value").html("");

               not_calc_total_all = 1;
           }

       }
   }
   else 
   {
       calc_total_all = 0;
   }


   $('#ajaxinfo').remove();

   if (not_calc_total_all == 1) 
   {
       $("#btn_print_pdf").hide();        
       $("#btn_print").hide();
       $("#total_all_row").hide();
   }
   else 
   {
       $("#btn_print_pdf").show();        
       $("#btn_print").show();
       $("#label_total_all").html(roundNumber(sum_total_all, 2) + currency_text);
       $("#total_all_row").show();
       $(".group_total_all").fadeIn(400).fadeOut(400).fadeIn(400).fadeOut(400).fadeIn(400);
   }
   

}

function Err(result) 
{
   var hh = result;
   
   $('#ajaxinfo').remove();

}

function PrepareForPrint() 
{
    var data_collection = CollectData(1);
    
    
    $("form:first").attr("action", "../CallculatorHandler.ashx");
    $("#print_values").attr("value", data_collection);
    $("#print_main_name_value").attr("value", $("#main_name").attr("value"));
    $("#print_total_all_value").attr("value", $("#label_total_all").html());        
}

function roundNumber(num, dec) {
    var result = Math.round(Math.round(num * Math.pow(10, dec + 1)) / Math.pow(10, 1)) / Math.pow(10, dec);

    var parts = {};
    
    if (result.toString().indexOf(".") == -1)
    {
        parts[0] = result;
        parts[1] = "00";
    }
    else {
        parts = result.toString().split(".");

        if (parts[1].length == 1) {
            parts[1] += "0";
        }
    }
   
   return parts[0] + "." + parts[1];
}
 

