var deadline = new Array(new Array ( 0,28,32,36,43,80),new Array ( 0,26,29,31,39,48),new Array ( 0,23,26,29,35,42),new Array ( 0,20,22,26,32,35),new Array ( 0,17,19,21,28,33),new Array ( 0,17,19,21,28,33),new Array ( 0,17,19,21,28,33),new Array ( 0,13,15,18,25,29),new Array ( 0,13,15,18,25,29),new Array ( 0,13,15,18,25,29),new Array ( 0,13,15,18,25,29),new Array ( 0,12,14,17,24,27),new Array ( 0,12,14,17,24,27),new Array ( 0,12,14,17,24,27),new Array ( 0,12,14,17,24,27));
var deadline_names = new Array("8 hours","24 hours","2 days","3 days","4 days","5 days","6 days","7 days","8 days","9 days","10 days","11 days","12 days","13 days","14 days");
var academic_levels_names = new Array("High School","College","Bachelor","Master","PhD");
var calc_selected = "";
var calc_dx = 0;
var calc_dy = 0;
var calc_position_x = 0;
var calc_position_y = 0;
var calc_center_abs_x = 228;
var calc_center_abs_y = 201;
var calc_center_x = 228;
var calc_center_y = 201;
var calc_academic_level_r = 143;
var calc_deadline_r = 158;
var calc_page_r = 161;
var cpages = false;
var mcpages = false;
var vcpages = false;
var vpages = 0;
var ppages = 0;
var cdeadline = 15;
var cacademic =1;
var tdeadline = 0;
var tacademic = 0;

function preload(arrayOfImages) {
    $(arrayOfImages).each(function(){
        $('<img/>')[0].src = "http://www.writemypapers.org/"+this;
    });
}

function convert_strtoimg(type,total) {
    var str = total+"";
    var res = "";
    for (var i = 0; i < str.length; i++) {
        res += "<img src='"+type+"/"+str.charAt(i)+".png'>";
    }
    return res;
}

function bodyMouseUp() {
    if (calc_selected == "academic_level") {
        upAcademicLevel();
        circle_calc_count();
        if (tacademic == cacademic) {
            $("#cacademic").val(cacademic);
            $(".tip_academic").show();
            $("#cacademic").focus();
        }
    }
    if (calc_selected == "deadline") {
        upDeadline();
        circle_calc_count();
        if (tdeadline == cdeadline) {
            $("#cdeadline").val(cdeadline);
            $(".tip_deadline").show();
            $("#cdeadline").focus();
        }
    }
    if (calc_selected == "page") {
        countCalcPosition();
        var lx = parseInt($(".page_select").css("margin-left"))-calc_center_x;
        var ly = calc_center_y-parseInt($(".page_select").css("margin-top"));
        var fr = Math.sqrt(lx*lx+ly*ly);
        var ang = Math.acos(lx/fr)*180/Math.PI;
        if (ly < 0) {
            ang = 360-ang;
        }
        if (ang < 358 && ang > 338) {
            ang = 351;
        }

        $(".page_select").css("margin-left",Math.round(calc_center_x+calc_page_r*Math.cos(ang*Math.PI/180))+"px").css("margin-top",Math.round(calc_center_y-calc_page_r*Math.sin(ang*Math.PI/180))+"px");
        circle_calc_count();
        if (ppages == vpages) {
            if (!vcpages) {
                cpages = vpages;
                $("#cpages").val(vpages);
                $(".tip_100").show();
                $("#cpages").focus();
                vcpages = true;
            }
        }
    }
    calc_selected = "";
}

function circle_calc_count() {
    if (calc_selected == "") {
        upAcademicLevel();
        upDeadline();
    }
    countCalcPosition();
    var lx = parseInt($(".academic_level_select").css("margin-left"))-calc_center_x;
    var ly = calc_center_y-parseInt($(".academic_level_select").css("margin-top"));
    var fr = Math.sqrt(lx*lx+ly*ly);
    var ang = Math.acos(lx/fr)*180/Math.PI;
    if (ly < 0) {
        ang = 360-ang;
    }
    var al = 5-Math.round((ang-163)/11);
    $(".academic_level").removeClass("active");
    $(".academic_level.level_"+al).addClass("active");
    cacademic = al;
    lx = parseInt($(".deadline_select").css("margin-left"))-calc_center_x;
    ly = calc_center_y-parseInt($(".deadline_select").css("margin-top"));
    fr = Math.sqrt(lx*lx+ly*ly);
    ang = Math.acos(lx/fr)*180/Math.PI;
    if (ly < 0) {
        ang = 360-ang;
    }
    dl = Math.round((ang-81)/5)+1;
    cdeadline = dl;
    $(".deadline").removeClass("active");
    $(".deadline.deadline_"+dl).addClass("active");
    lx = parseInt($(".page_select").css("margin-left"))-calc_center_x;
    ly = calc_center_y-parseInt($(".page_select").css("margin-top"));
    fr = Math.sqrt(lx*lx+ly*ly);
    ang = Math.acos(lx/fr)*180/Math.PI;
    if (ly < 0) {
        ang = -ang;
    }
    ang = ang+2;
    var valid = true;
    if (calc_selected && ang >= 0) {
        vcpages = false;
        cpages = false;
        $(".tip_100").hide();
        $(".tip_deadline").hide();
        $(".tip_academic").hide();
    }
    if (vcpages) {
        vpages = $("#cpages").val();
        if (!vpages.match(/^[0-9]{1,3}$/)) {
            valid = false;
        }
        vpages = vpages*1;
        if (valid) {
            cpages = vpages;
        }
        if (valid && mcpages) {
            mcpages = false;
            if (vpages == 0) {
                $(".tip_0").show();
            } else {
                $(".tip_0").hide();
            }
            $(".tip_100").hide();
            $(".tip_deadline").hide();
            $(".tip_academic").hide();
            vcpages = false;
            $(".page_select").text(cpages);
            if (cpages <= 100) {
                var tang = 72-cpages*0.74;
                $(".page_select").css("margin-left",Math.round(calc_center_x+calc_page_r*Math.cos(tang*Math.PI/180))+"px").css("margin-top",Math.round(calc_center_y-calc_page_r*Math.sin(tang*Math.PI/180))+"px");
            } else {
                $(".page_select").css("margin-left","387px").css("margin-top","226px");
            }
        }
    } else if (ang < 0) {
        if (cpages === false) {
            $("#cpages").val("");
            $(".page_select").text("...");
            $(".tip_100").show();
            $("#cpages").focus();
            vcpages = true;
            cpages = 0;
        }
        if (vpages > 100 && calc_selected == "page") {
            $(".tip_100").show();
            $("#cpages").focus();
            vcpages = true;
        }
        if (!(vpages > 100)) {
            valid = false;
            vpages = "";
        }
    } else {
        cpages = false;
        vpages = Math.round((74-ang)/0.74);
        $(".page_select").text(vpages);
        $(".tip_100").hide();
        $(".tip_deadline").hide();
        $(".tip_academic").hide();
        vcpages = false;
        cpages = false;
        if (vpages == 0) {
            valid = false;
            $(".tip_0").show();
        } else {
            $(".tip_0").hide();
        }
    }
    $(".tip_100").css("margin-left",parseInt($(".page_select").css("margin-left"))-33+"px").css("margin-top",parseInt($(".page_select").css("margin-top"))+23+"px");
    $(".tip_deadline").css("margin-left",parseInt($(".deadline_select").css("margin-left"))-33+"px").css("margin-top",parseInt($(".deadline_select").css("margin-top"))+23+"px");
    $(".tip_academic").css("margin-left",parseInt($(".academic_level_select").css("margin-left"))-33+"px").css("margin-top",parseInt($(".academic_level_select").css("margin-top"))+23+"px");
    total = deadline[dl-1][al];
    price_mod = 0.85;
    total = Math.round(Math.round(total*0.85));
    $(".per_page").html("<img src='http://www.writemypapers.org/img/pp/$.png'>"+convert_strtoimg("http://www.writemypapers.org/img/pp",total)+"<img src='http://www.writemypapers.org/img/pp/per_page.png'>");
    if (valid && vpages > 0) {
        total = total*vpages;
        $(".total_price").html("<img src='http://www.writemypapers.org/img/tt/$.png'>"+convert_strtoimg("http://www.writemypapers.org/img/tt",total));
    } else {
        $(".total_price").text("");
    }

    $(".stats_vals").html(academic_levels_names[al-1]+"<br/>"+deadline_names[dl-1]+"<br/>"+(valid? vpages : "0"));
    $("#input_academic_level").val(al);
    $("#input_deadline").val(dl);
    $("#input_pages").val(valid? vpages : "0");
}

function upDeadline() {
    countCalcPosition();
    var lx = parseInt($(".deadline_select").css("margin-left"))-calc_center_x;
    var ly = calc_center_y-parseInt($(".deadline_select").css("margin-top"));
    var fr = Math.sqrt(lx*lx+ly*ly);
    var ang = Math.acos(lx/fr)*180/Math.PI;
    if (ly < 0) {
        ang = 360-ang;
    }
    ang = 81+Math.round((ang-81)/5)*5;
    $(".deadline_select").css("margin-left",Math.round(calc_center_x+calc_deadline_r*Math.cos(ang*Math.PI/180))+"px").css("margin-top",Math.round(calc_center_y-calc_deadline_r*Math.sin(ang*Math.PI/180))+"px");
}

function setDeadline() {
    countCalcPosition();
    cdeadline = $("#cdeadline").val();
    ang = 81+(cdeadline-1)*5;
    $(".deadline_select").css("margin-left",Math.round(calc_center_x+calc_deadline_r*Math.cos(ang*Math.PI/180))+"px").css("margin-top",Math.round(calc_center_y-calc_deadline_r*Math.sin(ang*Math.PI/180))+"px");
}

function setAcademic() {
    countCalcPosition();
    cacademic = $("#cacademic").val();
    ang = 163+(5-cacademic)*11;
    $(".academic_level_select").css("margin-left",Math.round(calc_center_x+calc_academic_level_r*Math.cos(ang*Math.PI/180))+"px").css("margin-top",Math.round(calc_center_y-calc_academic_level_r*Math.sin(ang*Math.PI/180))+"px");
}

function upAcademicLevel() {
    countCalcPosition();
    var lx = parseInt($(".academic_level_select").css("margin-left"))-calc_center_x;
    var ly = calc_center_y-parseInt($(".academic_level_select").css("margin-top"));
    var fr = Math.sqrt(lx*lx+ly*ly);
    var ang = Math.acos(lx/fr)*180/Math.PI;
    if (ly < 0) {
        ang = 360-ang;
    }
    ang = 163+Math.round((ang-163)/11)*11;
    $(".academic_level_select").css("margin-left",Math.round(calc_center_x+calc_academic_level_r*Math.cos(ang*Math.PI/180))+"px").css("margin-top",Math.round(calc_center_y-calc_academic_level_r*Math.sin(ang*Math.PI/180))+"px");
}

function countCalcPosition() {
    var position = $(".circle_calc").position();
    calc_position_x = position.left+parseInt($(".circle_calc").css("margin-left"));
    calc_position_y = position.top+parseInt($(".circle_calc").css("margin-top"));
    calc_center_abs_x = calc_position_x+228;
    calc_center_abs_y = calc_position_y+201;
}

$(document).ready(function() {
    preload([
        'img/pp/0.png','img/pp/1.png','img/pp/2.png','img/pp/3.png','img/pp/4.png','img/pp/5.png','img/pp/6.png','img/pp/7.png','img/pp/8.png','img/pp/9.png','img/pp/$.png','img/pp/per_page.png','img/tt/0.png','img/tt/1.png','img/tt/2.png','img/tt/3.png','img/tt/4.png','img/tt/5.png','img/tt/6.png','img/tt/7.png','img/tt/8.png','img/tt/9.png','img/tt/$.png',
        'img/calc_al_1.png','img/calc_al_2.png','img/calc_al_3.png','img/calc_al_4.png','img/calc_al_5.png',
        'img/calc_dl_1.png','img/calc_dl_2.png','img/calc_dl_3.png','img/calc_dl_4.png','img/calc_dl_5.png','img/calc_dl_6.png','img/calc_dl_7.png','img/calc_dl_8.png','img/calc_dl_9.png','img/calc_dl_10.png','img/calc_dl_11.png','img/calc_dl_12.png','img/calc_dl_13.png','img/calc_dl_14.png','img/calc_dl_15.png',
        'img/tip_academic.png', 'img/tip_deadline.png', 'img/tip_100.png', 'img/footer_hover.png', 'img/calc_hover.png',
        'img/menu_faq_hover.png', 'img/menu_order_hover.png', 'img/menu_pricing_hover.png', 'img/menu_quote_hover.png', 'img/menu_samples_hover.png', 'img/menu_testimonials_hover.png',
        'img/top_sign_in_hover.png', 'img/top_register_hover.png'
    ]);
    stdCountPrice();
    circle_calc_count();
    $("#cdeadline").val(15);
    $("#cacademic").val(1);
    $("#cpages").val("");
    $("#cpages").focusout(function() {
        mcpages=true;
        circle_calc_count();
        mcpages=false;
    });
    $("#cdeadline").focusout(function() {
        mcpages=true;
        circle_calc_count();
        mcpages=false;
    });
    $("#cacademic").focusout(function() {
        mcpages=true;
        circle_calc_count();
        mcpages=false;
    });
    $("#cpages").keydown(function(event) {
        if (event.keyCode == 13) {
            mcpages=true;
            circle_calc_count();
            mcpages=false;
        }
    });
    $(".academic_level_select").mousedown(function(event){
        calc_selected = "academic_level";
        countCalcPosition();
        calc_dx = event.pageX-calc_position_x-parseInt($(".academic_level_select").css("margin-left"));
        calc_dy = event.pageY-calc_position_y-parseInt($(".academic_level_select").css("margin-top"));
        event.stopPropagation();
        tacademic = cacademic;
        return false;
    });

    $(".deadline_select").mousedown(function(event){
        calc_selected = "deadline";
        countCalcPosition();
        calc_dx = event.pageX-calc_position_x-parseInt($(".deadline_select").css("margin-left"));
        calc_dy = event.pageY-calc_position_y-parseInt($(".deadline_select").css("margin-top"));
        event.stopPropagation();
        tdeadline = cdeadline;
        return false;
    });

    $(".page_select").mousedown(function(event){
        ppages = vpages;
        calc_selected = "page";
        countCalcPosition();
        calc_dx = event.pageX-calc_position_x-parseInt($(".page_select").css("margin-left"));
        calc_dy = event.pageY-calc_position_y-parseInt($(".page_select").css("margin-top"));
        event.stopPropagation();
        return false;
    });

    $("body").mouseup(function(){
        bodyMouseUp();
    });

    $("body").mouseleave(function(){
        bodyMouseUp();
    });


    $("body").mousemove(function(event){
        countCalcPosition();
        if (calc_selected != "") {
            countCalcPosition();
            var lx = event.pageX-calc_dx-calc_center_abs_x;
            var ly = calc_center_abs_y-event.pageY+calc_dy;
            var fr = Math.sqrt(lx*lx+ly*ly);
            var ang = Math.acos(lx/fr)*180/Math.PI;
            if (ly < 0) {
                ang = 360-ang;
            }

            if (calc_selected == "academic_level") {
                if (ang > 150 && ang < 220) {
                    if (ang < 163) {
                        ang = 163;
                    }
                    if (ang > 207) {
                        ang = 207;
                    }
                    var tang = 163+Math.round((ang-163)/11)*11;
                    if (Math.abs(tang-ang) < 2) {
                        ang = tang;
                    }
                    $(".academic_level_select").css("margin-left",Math.round(calc_center_x+calc_academic_level_r*Math.cos(ang*Math.PI/180))+"px").css("margin-top",Math.round(calc_center_y-calc_academic_level_r*Math.sin(ang*Math.PI/180))+"px");
                    circle_calc_count();
                }
            }

            if (calc_selected == "deadline") {
                if (ang > 68 && ang < 164) {
                    if (ang < 81) {
                        ang = 81;
                    }
                    if (ang > 151) {
                        ang = 151;
                    }

                    $(".deadline_select").css("margin-left",Math.round(calc_center_x+calc_deadline_r*Math.cos(ang*Math.PI/180))+"px").css("margin-top",Math.round(calc_center_y-calc_deadline_r*Math.sin(ang*Math.PI/180))+"px");
                    circle_calc_count();
                }
            }

            if (calc_selected == "page") {
                if ((ang < 85 || ang > 338)) {
                    if (ang > 72 && ang < 85) {
                        ang = 72;
                    }

                    if ((ang < 351 && ang > 338) || (ang > 351 && ang < 355)) {
                        ang = 351;
                    }

                    $(".page_select").css("margin-left",Math.round(calc_center_x+calc_page_r*Math.cos(ang*Math.PI/180))+"px").css("margin-top",Math.round(calc_center_y-calc_page_r*Math.sin(ang*Math.PI/180))+"px");
                    circle_calc_count();
                }
            }

            event.stopPropagation();
            return false;
        }
    });
    $(".circle_calc").mousemove(function(event){
        countCalcPosition();
        var tx  = event.pageX-14-calc_center_abs_x;
        var ty  = calc_center_abs_y-event.pageY+14;
        var fr  = Math.sqrt(tx*tx+ty*ty);
        var ang = Math.acos(tx/fr)*180/Math.PI;
        if (ty < 0) {
            ang = 360-ang;
        }
        if (ang > 80 && ang < 152 && fr < 213 && fr > 161) {
            $(".circle_calc").addClass("hover");
            $(".calc_hover").hide();
        } else if (ang > 158 && ang < 217 && fr < 213 && fr > 155) {
            $(".circle_calc").addClass("hover");
            $(".calc_hover").hide();
        } else if ((ang < 74 || ang > 348) && fr < 200 && fr > 167) {
            $(".circle_calc").addClass("hover");
            $(".calc_hover").hide();
        } else if (fr < 85) {
            $(".circle_calc").addClass("hover");
            $(".calc_hover").show();;
        } else {
            $(".circle_calc").removeClass("hover");
            $(".calc_hover").hide();
        }
    });

    $(".circle_calc").click(function(event){
        countCalcPosition();
        var tx  = event.pageX-14-calc_center_abs_x;
        var ty  = calc_center_abs_y-event.pageY+14;
        var fr  = Math.sqrt(tx*tx+ty*ty);
        var ang = Math.acos(tx/fr)*180/Math.PI;
        if (ty < 0) {
            ang = 360-ang;
        }
        if (ang > 80 && ang < 152 && fr < 213 && fr > 161) {
            if (ang > 68 && ang < 164) {
                if (ang < 81) {
                    ang = 81;
                }
                if (ang > 151) {
                    ang = 151;
                }
                $(".deadline_select").css("margin-left",Math.round(calc_center_x+calc_deadline_r*Math.cos(ang*Math.PI/180))+"px").css("margin-top",Math.round(calc_center_y-calc_deadline_r*Math.sin(ang*Math.PI/180))+"px");
                circle_calc_count();
                event.stopPropagation();
                return false;
            }
        } else if (ang > 158 && ang < 217 && fr < 213 && fr > 155) {
            if (ang > 150 && ang < 220) {
                if (ang < 163) {
                    ang = 163;
                }
                if (ang > 207) {
                    ang = 207;
                }
                $(".academic_level_select").css("margin-left",Math.round(calc_center_x+calc_academic_level_r*Math.cos(ang*Math.PI/180))+"px").css("margin-top",Math.round(calc_center_y-calc_academic_level_r*Math.sin(ang*Math.PI/180))+"px");
                circle_calc_count();
                event.stopPropagation();
                return false;
            }
        } else if ((ang < 74 || ang > 348) && fr < 200 && fr > 167) {
            if ((ang < 85 || ang > 338)) {
                if (ang > 72 && ang < 85) {
                    ang = 72;
                }

                if ((ang < 351 && ang > 338) || (ang > 351 && ang < 355)) {
                    ang = 351;
                }

                $(".page_select").css("margin-left",Math.round(calc_center_x+calc_page_r*Math.cos(ang*Math.PI/180))+"px").css("margin-top",Math.round(calc_center_y-calc_page_r*Math.sin(ang*Math.PI/180))+"px");
                if (!(vpages >0)) {
                    cpages = false;
                }
                vcpages = false;
                $(".tip_100").hide();
                $(".tip_deadline").hide();
                $(".tip_academic").hide();
                circle_calc_count();
                event.stopPropagation();
                return false;
            }
        } else if (fr < 85) {
            $(".circle_calc form").submit();
        }
    });
});

function stdCountPrice() {
    var stdvalid = ($("#std_input_deadline").val() != 0) && ($("#std_input_academic_level").val() != 0);
    if (!stdvalid) {
        $("#std_price_div").text("$0").css("width","240px");
        $("#std_words_div").text("0");
        $("#std_big_price_div").hide();
        $("#std_big_price_div span").text("$0");
        $("#std_date_div").hide();
    } else {
        var al = $("#std_input_academic_level").val();
        var service_type = $("#std_input_service_type").val();
        var add = 1;
        if (service_type == "Application letter" || service_type == "Admission essay" || service_type == "Cover letter" || service_type == "Personal statement") {
            add = 1.5;
            al  = 5;
        }
        var total = deadline[$("#std_input_deadline").val()-1][al];
        var price_mod = 0.85;
        var work = 1;
        total = Math.round(Math.round(total*price_mod*add)*work);
    }
    var valid1 = stdvalid;
    var valid2 = true;
    var pages = $("#std_input_pages").val();
    if (!pages.match(/^[0-9]{1,3}$/) || pages == 0) {
        valid2 = false;
    }

    if (!valid2) {
        $("#std_price_div").text("$0").css("width","240px");
        $("#std_big_price_div").hide();
        $("#std_big_price_div span").text("$0");
        $("#std_words_div").text("0");
        $("#std_date_div").hide();
    } else {
        $("#std_words_div").text($("#std_input_pages").val()*275);
    }

    if (stdvalid && valid2) {
        totalp = total*pages;
        $("#std_price_div").text("$"+totalp);                
    }
}
