﻿/// <reference path="global.js" />
/// <reference path="jquery.js" />
/// <reference path="../index.htm" />

var products, groups = new Array();
$(document).ready(function () {
    SetupGallery();
    SetupMenu();
    SetupLogin();
    SetupHeader();
    Index();
});
function SetupGallery() {
    $("#acc").hide();
    $("#acc").after($("<center />")
        .attr("id", "_galleryLoading")
        .html("در حال بارگذاری گالری محصولات...<br />")
        .append('<img src="images/loading.gif">'));
    $.ajax({
        type: "POST",
        url: "Service.asmx/AllCategories",
        data: '',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            for (var i in result.d) {
                if (!eval(result.d[i].Data.split("~")[0].toLowerCase()))
                    continue;
                var li = $("<li />");
                var sp = $("<span />").attr("id", "cat_" + result.d[i].ID).text(result.d[i].Name);
                var ul = $("<div />");
                var a = $("<a />").text("همه محصولات اين دسته").attr({
                    "href": "gallery.htm?c=" + result.d[i].ID + "&g=0",
                    "id": "cat_" + result.d[i].ID
                });
                //ul.append(a);
                a = $("<a />").text("انتخاب‌های ويژه").attr({
                    "href": "special.htm?c=" + result.d[i].ID + "&g=-1",
                    "id": "spc_" + result.d[i].ID
                });
                //ul.append(a);
                li.append(sp).append(ul);
                $("#acc").append(li);
            }
            $.ajax({
                type: "POST",
                url: "Service.asmx/AllGalleries",
                data: '',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                processdata: true,
                success: function (result) {
                    for (var i in result.d) {
                        if (!eval(result.d[i].Data.split("~")[0].toLowerCase()))
                            continue;
                        var a = $("<a />")
                                .attr({ "id": "gal_" + result.d[i].ID, "href": "#" }).text(result.d[i].Name);
                        $("#cat_" + result.d[i].Count).next().prepend(a);
                    }
                    $('#acc div').hide();
                    $('#acc li span').click(function (event) {
                        $('#acc div').slideUp();
                        var galdiv = $(this).next()
                        if (galdiv.is(":hidden"))
                            galdiv.slideDown();
                    });
                    $("#_galleryLoading").remove();
                    $("#acc").slideDown();
                    $("#acc a").click(function (event) {
                        event.preventDefault();
                        $("#acc a").removeClass("active");
                        this.className = "active";
                        var id = this.getAttribute("id").split("_")[1];
                        Gallery(id);
                    });
                },
                error: AjaxError
            });
        },
        error: AjaxError
    });
}
function SetupMenu() {
    $.ajax({
        type: "POST",
        url: "Service.asmx/GetToday",
        data: '{"format": "2"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            $("#today").text("امروز: " + result.d);
        },
        error: AjaxError
    });
    $.ajax({
        type: "POST",
        url: "Service.asmx/GetMenuItems",
        data: '{"cat": "main", "id": "0"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            var menuTree = $("ul.sf-menu");
            menuTree.html("");
            for (var i in result.d) {
                var items = result.d[i].Data.split("~");
                if (!result.d[i].Count)
                    menuTree.append('<li id="menu_' + result.d[i].ID +
                        '"><a href="' + items[0] + '" title="' + items[1] + '">' +
                        result.d[i].Name + '</a></li>');
                else {
                    var p = menuTree.find("#menu_" + result.d[i].Count);
                    var ul;
                    var isUl = p.children("ul");
                    if (isUl.length)
                        ul = isUl;
                    else {
                        ul = $("<ul />");
                        p.append(ul);
                    }
                    ul.append('<li id="menu_' + result.d[i].ID +
                        '"><a href="' + items[0] + '" title="' + items[1] + '">' +
                        result.d[i].Name + '</a></li>');
                }
            }
            $("ul.sf-menu").superfish();
            $(".sf-menu a").click(function (event) {
                event.preventDefault();
                // Get PageID from query string
                $("#mainpanel #maincontent").slideUp("normal", function () {
                    $("#mainpanel #maincontent div").hide();
                    $("#mainpanel").append($("<center />").attr("id", "galleryLoading").append($("<img />").attr("src", "images/loading.gif")));
                });
                $.ajax({
                    type: "POST",
                    url: "Service.asmx/GetPage",
                    data: '{"id": "1", "view":"false"}',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    processdata: true,
                    success: function (result) {
                        $("#blog").show();
                        $("#mainpanel #maincontent").slideDown();
                        $("#mainpanel #galleryLoading").remove();
                    },
                    error: AjaxError
                });
            });
        },
        error: AjaxError
    });
}
function SetupLogin() {
    $("#loginpanel").hide();
    $("#logoutpanel").hide();
    var un = $.cookie("un");
    var pw = $.cookie("pw");
    if (un && pw)
        Login(un, pw);
    else
        $("#loginpanel").show();
    $("#_loginBtn").click(function () {
        if (!ValidateInput(_loginUN))
            return;
        if (!ValidateInput(_loginPW))
            return;
        Login(_loginUN.value, _loginPW.value);
    });
    $("#_logout").click(function () {
        $.cookie("un", null);
        $.cookie("pw", null);
        $.cookie("ASP.NET_SessionId", null);
        $.post("Service.asmx/Logout");
        $("#loginpanel").show();
        $("#logoutpanel").hide();
    });
    $("#_userLinks").toggle(function () {
        $("#_userMenu").css("bottom", $(window).height() - $("#_userLinks").offset().top);
        $("#_userMenu").slideDown();
    }, function () {
        $("#_userMenu").slideUp();
    });
}
function Login(un, pw) {
    _loginResult.innerHTML = "";
    $.ajax({
        type: "POST",
        url: "Service.asmx/Login",
        data: '{"un":"' + un + '", "pw":"' + pw + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            if (result.d == 4) {
                // Show user information
                $("#loginpanel").hide();
                $("#logoutpanel").show();
                if (_loginSave.checked) {
                    $.cookie("un", _loginUN.value, { expires: 30 });
                    $.cookie("pw", _loginPW.value, { expires: 30 });
                }
                _loginPW.value = "";
                var returnUrl;
                var qs = window.location.search.substring(1);
                if (qs) {
                    var items = qs.split("&");
                    var url = items[0].split("=");
                    if (url[0] == "ReturnUrl")
                        returnUrl = url[1];
                }
                if (returnUrl) {
                    window.location = returnUrl;
                    return;
                }
                else {
                    $.ajax({
                        type: "POST",
                        url: "Service.asmx/GetLinks",
                        data: '',
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        processdata: true,
                        success: function (result) {
                            if (result.d) {
                                _username.innerHTML = result.d["name"];
                                $("#_userMenu").html("");
                                for (var i in result.d) {
                                    if (i == "name")
                                        continue;
                                    $("#_userMenu").append($("<a />").text(i).attr({
                                        "href": result.d[i],
                                        "target": "_blank"
                                    }));
                                }
                                UserStatus();
                            }
                        },
                        error: AjaxError
                    });
                }
            }
            else {
                $("#loginpanel").show();
                _loginResult.style.color = "Red";
                if (result.d == 0)// Invalid user id
                    _loginResult.innerHTML = "نام کاربری اشتباه است.";
                if (result.d == 1)// Not verified yet
                    _loginResult.innerHTML = "حساب كاربری شما هنوز تایید نشده است.";
                if (result.d == 2)// user account is disabled
                    _loginResult.innerHTML = "حساب کاربری شما غیر فعال شده است.";
                if (result.d == 3)// wrong password
                    _loginResult.innerHTML = "کلمه عبور اشتباه است.";
            }
        },
        error: AjaxError
    });
}
function SetupHeader() {
    var rnd = Math.floor(Math.random() * 53);
    var div = $("<div />");
    div.load("images/header/" + rnd + ".jpg", function () {
        $("#subheader").css("backgroundImage", "url('images/header/" + rnd + ".jpg')");
        window.setTimeout("SetupHeader()", 10000);
    });
}
function Index() {
    $("#mainpanel #maincontent").children().hide();
    $("#index").show();
    $(".indexFeed").children("div").hide();
    $(".indexFeed").children("span").click(function () {
        $(".indexFeed").children("div").slideUp();
        var div = $(this).next();
        var id = $(this).parent().attr("id");
        if (div.is(":hidden"))
            div.slideDown();
        if (div.attr("ContentLoaded"))
            return;
        switch (id) {
            case "monitoring":
                div.load("snippets/monitoring.htm", SetupMonitoring);
                break;
            default:
                $.ajax({
                    type: "POST",
                    url: "Service.asmx/" + id,
                    data: '{ "code": "false" }',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    processdata: true,
                    success: function (result) {
                        div.append(result.d);
                    },
                    error: AjaxError
                });
                break;
        }
        div.attr("ContentLoaded", true);
    });
    SetupIntro();
}
function SetupIntro() {
    $("#onlineshop").click(ShowBasket);
    $.ajax({
        type: "POST",
        url: "Service.asmx/GetPage",
        data: '{"id":"1", "view":"true"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            if (result.d)
                intro.innerHTML = result.d.Data;
        },
        error: AjaxError
    });
}
function SetupMonitoring() {
    $.ajax({
        type: "POST",
        url: "Service.asmx/GetProductions2",
        data: '',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            var tbl = $("<tbody />");
            var tr = $("<tr />");
            for (var i = 1; i < result.d.length; i++) {
                tr = $("<tr />");
                td = $("<td />").text(i);
                tr.append(td);
                td = $("<td />").css("text-align", "right").addClass("blue").html(result.d[i].Title);
                td.append($("<f />").css("color", "#fff").text(", س ت: " + result.d[i].Serial));
                tr.append(td);
                var start = result.d[i].Start;
                td = $("<td />").addClass(start ? "arrow" : "cross").text(start);
                tr.append(td);
                var prepare = result.d[i].Prepare;
                td = $("<td />").addClass(prepare ? "arrow" : "cross").text(prepare);
                tr.append(td);
                var coloring = result.d[i].Coloring;
                td = $("<td />").addClass(coloring ? "arrow" : "cross").text(coloring);
                tr.append(td);
                var packaging = result.d[i].Packaging;
                td = $("<td />").addClass(packaging ? "arrow" : "cross").text(packaging);
                tr.append(td);
                td = $("<td />").html(result.d[i].Days);
                tr.append(td);
                tbl.append(tr);
            }
            $("#monitoring div").children("table").append(tbl).after('<p style="color: #fff; font-weight: bold;">متوسط زمان تولید در روزهای اخیر: <b style="font-size: 20px;">' + result.d[0].Record + '</b> روز</p>');
            //ShowTable();
        },
        error: AjaxError
    });
}
function SetupPaging(table, itemscount) {
    var rows = table.children("tbody").children();
    if (rows.length <= itemscount)
        return;
    var pages = Math.ceil(rows.length / itemscount);
    var pager = $("<ul />").addClass("PagerItem").attr("count", itemscount);
    for (var i = 1; i <= pages; i++) {
        var pagerItem = $("<li />").text(i).click(SelectPage);
        pager.append(pagerItem);
    }
    pager.children(":eq(0)").addClass("ActivePage");
    table.after(pager);
    rows.eq(itemscount - 1).nextAll().hide();
}
function SelectPage() {
    $(this).parent().children().removeClass("ActivePage");
    $(this).addClass("ActivePage");
    var page = eval(this.innerHTML);
    var itemCount = eval($(this).parent().attr("count"));
    var tbody = $(this).parent().prev().children("tbody").children();
    tbody.show();
    var low = (page - 1) * itemCount;
    var high = low + itemCount - 1;
    if (high >= tbody.length)
        high = tbody.length - 1;
    tbody.eq(low).prevAll().hide();
    tbody.eq(high).nextAll().hide();
}
function Gallery(id) {
    $("#mainpanel #maincontent").slideUp("normal", function () {
        $("#mainpanel #maincontent div").hide();
        $("#mainpanel").append($("<center />").attr("id", "galleryLoading").append($("<img />").attr("src", "images/loading.gif")));
    });
    $.ajax({
        type: "POST",
        url: "Service.asmx/GetProducts2",
        data: '{"id": "' + id + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            products = result.d;
            $.ajax({
                type: "POST",
                url: "Service.asmx/GetGroups",
                data: '{"galId": "' + id + '"}',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                processdata: true,
                success: function (result) {
                    for (var i in result.d)
                        if (result.d[i].ID)
                            groups.push(result.d[i]);
                    ShowProducts(id);
                },
                error: AjaxError
            });
        },
        error: AjaxError
    });
}
function Product(id, code, pic, name, price, count, dims) {
    this.ID = id;
    this.Code = code;
    this.Picture = pic;
    this.Name = name;
    this.Count = count;
    this.Price = price;
    this.Dims = dims;
}
function ShowProducts(id) {
    // نمایش تعداد محصولات منتخب
    $("#mainpanel #gallery").html("");
    var tryagain = $("<span />")
                .text(" در صورت عدم مشاهده کامل تصاویر، اینجا کلیک کنید.")
                .css({ "color": "#e68900", "cursor": "pointer" })
                .click(function () {
                    Gallery(id);
                });
    var galleryCount = $("<div />").css("margin", "5px 30px").html("تعداد " + products.length + " محصول انتخاب شده است.").append(tryagain);
    //var tableview = $("<div />").attr("id", "tableview").append(galleryCount);
    $("#mainpanel #gallery").append(galleryCount);
    TableView(SetupGroups(products));
}
function ShowProduct() {
    $("#mainpanel #maincontent").slideUp("normal", function () {
        $("#mainpanel #maincontent").children().hide();
        $("#mainpanel").append($("<center />").attr("id", "galleryLoading").append($("<img />").attr("src", "images/loading.gif")));
    });
    var id = "p_" + this.getAttribute("data");
    var productShow = $("#mainpanel #maincontent #product");
    productShow.html("");
    productShow.append($("<span />").addClass("btn").css("margin", "5px 30px").text("بازگشت به سبد خرید").click(function () {
        $("#mainpanel #maincontent").slideUp("normal", function () {
            $("#mainpanel #maincontent").children().hide();
            $("#mainpanel #maincontent #basket").show();
            $("#mainpanel #maincontent").slideDown();
        });
    }));
    $.ajax({
        type: "POST",
        url: "Service.asmx/GetProduct",
        data: '{"id":"' + id + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            for (var i in result.d)
                productShow.append(ShowGroup(result.d[i]));
            productShow.find("dt").click(function (event) {
                productShow.find("dd").slideUp();
                if ($(this).next().is(":hidden"))
                    $(this).next().slideDown();
            });
            $(".big").click(function (event) {
                event.preventDefault();
                var tbl = $("<table />").attr("id", "imageOverlay");
                var tr = $("<tr />");
                var td = $("<td />").attr({ "align": "center", "valign": "middle" });
                var img = $("<img />").attr({ "src": this.getAttribute("href") });
                tbl.click(function () { $(this).remove(); });
                td.append(img);
                tr.append(td);
                tbl.append(tr).appendTo("body");
            });
            $(".basket").click(AddToBasket);
            ColorAlert();
            productShow.show();
            $("#mainpanel #galleryLoading").remove();
            $("#mainpanel #maincontent").slideDown();
        },
        error: AjaxError
    });
}
function SetupGroups(prods) {
    var plist = new Array();
    for (var i in prods) {
        if (prods[i].Group)
            continue;
        var flag = false;
        var first5 = prods[i].Code.substr(0, 5);
        for (var c in plist) {
            if (plist[c].Code.substr(0, 5) == first5) {
                flag = true;
                break;
            }
        }
        if (flag) {
            plist[c].Count++;
            plist[c].ID = prods[i].GID + "_" + first5;
        }
        else
            plist.push(
                        new Product(
                            prods[i].ID,
                            prods[i].Code,
                            "files/products/" + (prods[i].Thumb ? prods[i].ID + "/thumb.jpg" : "product.jpg"),
                            prods[i].Name,
                            prods[i].Price, 1, prods[i].Dims));
    }
    for (i in groups) {
        plist.push(
                    new Product(
                        groups[i].ID,
                        null,
                        "files/" + groups[i].Data,
                        groups[i].Name,
                        0, groups[i].Count, ""));
    }
    return plist;
}
function TableView(prods) {
    var tbl = $("<table />").addClass("image-overlay").attr({ "border": "0", "cellpadding": "2", "cellspacing": "0" });
    var tr = $("<tr />");
    var tdcount = 0;
    var a;
    for (var i in prods) {
        tdcount++;
        var td = $("<td />");
        if (prods[i].Count == 1) {
            // add a product
            var dims = "";
            if (prods[i].Dims != "")
                dims = "<br />ابعاد به سانت: " + prods[i].Dims;
            a = $("<a />").attr("pid", prods[i].ID);
            a.append($("<img />").attr("src", prods[i].Picture));
            a.append($("<div />").addClass("caption").html(prods[i].Name + dims + "<br />قیمت: " + prods[i].Price));
            td.append(a);
        }
        else {
            // add a group
            a = $("<a />").attr("gid", prods[i].ID);
            a.append($("<img />").attr("src", prods[i].Picture));
            a.append($("<div />").addClass("caption").html(prods[i].Name + "<br />تعداد: " + prods[i].Count));
            td.append(a);
        }
        tr.append(td);
        if (tdcount % 3 == 0) {
            tbl.append(tr);
            tr = $("<tr />");
        }
    }
    if (tdcount % 3 != 0) {
        tbl.append(tr);
    }
    var center = $("<center />").append(tbl);
    $("#mainpanel #gallery").append(center).show();
    $("#mainpanel #galleryLoading").remove();
    $("#mainpanel #maincontent").slideDown();
    $(".image-overlay").ImageOverlay();
    $("#mainpanel #gallery a").unbind("click").click(GetGroup);
    SetupPaging(tbl, 3);
}
function GetGroup(event) {
    event.preventDefault();
    $("#mainpanel #maincontent").slideUp("normal", function () {
        $("#mainpanel #maincontent").children().hide();
        $("#mainpanel").append($("<center />").attr("id", "galleryLoading").append($("<img />").attr("src", "images/loading.gif")));
    });
    var id;
    if (this.hasAttribute("pid"))
        id = "p_" + this.getAttribute("pid");
    else
        id = "g_" + this.getAttribute("gid");
    var productShow = $("#mainpanel #maincontent #product");
    productShow.html("");
    productShow.append($("<span />").addClass("btn").css("margin", "5px 30px").text("بازگشت به جدول محصولات").click(function () {
        $("#mainpanel #maincontent").slideUp("normal", function () {
            $("#mainpanel #maincontent").children().hide();
            $("#mainpanel #maincontent #gallery").show();
            $("#mainpanel #maincontent").slideDown();
        });
    }));
    $.ajax({
        type: "POST",
        url: "Service.asmx/GetProduct",
        data: '{"id":"' + id + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            for (var i in result.d)
                productShow.append(ShowGroup(result.d[i]));
            productShow.find("dt").click(function (event) {
                productShow.find("dd").slideUp();
                if ($(this).next().is(":hidden"))
                    $(this).next().slideDown();
            });
            $(".big").click(function (event) {
                event.preventDefault();
                var tbl = $("<table />").attr("id", "imageOverlay");
                var tr = $("<tr />");
                var td = $("<td />").attr({ "align": "center", "valign": "middle" });
                var img = $("<img />").attr({ "src": this.getAttribute("href") });
                tbl.click(function () { $(this).remove(); });
                td.append(img);
                tr.append(td);
                tbl.append(tr).appendTo("body");
            });
            $(".basket").click(AddToBasket);
            ColorAlert();
            productShow.show();
            $("#mainpanel #galleryLoading").remove();
            $("#mainpanel #maincontent").slideDown();
        },
        error: AjaxError
    });
}
function ShowGroup(product) {
    var table = $("<table />").attr({ "cellpadding": "0", "cellspacing": "0", "width": "90%" });
    var tr = $("<tr />").addClass("firstRow");
    var td = $("<td />").attr("valign", "top").css("padding", "5px 0");
    var div = $("<div />").css({ "width": "340px", "margin": "0 auto" });
    var dl = $("<dl />").css("float", "right");
    dt = $("<dt />");
    dt.text("اطلاعات فنی بافت");
    dt.append($("<img />").attr("src", "images/arrow.png"));
    dd = $("<dd />");
    dd.append($("<a />").text("√ انتخاب دار قالی و نوع چله کشی و هزینه های آن"));
    dd.append($("<a />").text("√ مقدار چله و پود مورد نیاز و هزینه های آن"));
    dl.append(dt).append(dd);
    dt = $("<dt />");
    dt.text("اطلاعات پشتیبانی");
    dt.append($("<img />").attr("src", "images/arrow.png"));
    dd = $("<dd />");
    dd.append($("<a />").attr({ "href": "Reports/Pallete.aspx?id=" + product.ID, "target": "_blank" }).text("√ پالت راهنما (محاسبه مقدار نخ کسری و هزینه های آن)"));
    dd.append($("<a />").text("√ قیمت خرید تضمینی محصول بافته شده و قوانین آن"));
    dd.append($("<a />").text("√ مشاهده نقشه عددی بافت"));
    dd.append($("<a />").text("√ اجرای نقشه صوتی"));
    dl.append(dt).append(dd);
    dt = $("<dt />");
    dt.text("اطلاعات مرحله پایانی بافت");
    dt.append($("<img />").attr("src", "images/arrow.png"));
    dd = $("<dd />");
    dd.append($("<a />").text("√ هزینه پرداخت (قیچی کاری) برجسته"));
    dd.append($("<a />").text("√ هزینه پرداخت تخت، شور و شیرازه و دو گره"));
    dd.append($("<a />").text("√ انتخاب قاب و محاسبه هزینه های آن"));
    dl.append(dt).append(dd);
    dt = $("<dt />");
    dt.text("مطالب و نظرات");
    dt.append($("<img />").attr("src", "images/arrow.png"));
    dd = $("<dd />");
    dd.append($("<a />").text("√ نظرات کاربران درباره این محصول"));
    dd.append($("<a />").text("√ توضیحات محصول"));
    dd.append($("<a />").text("√ یادداشت اثر"));
    dl.append(dt).append(dd);
    div.append(dl);
    var img = $("<img />").attr("src", "files/products/" + product.ID + "/thumb.jpg");
    var big = $("<a />").addClass("big").attr({ "href": "files/products/" + product.ID + "/pallete.jpg", "target": "_blank" }).css("float", "right").append(img);
    div.append(big);
    td.append(div);
    tr.append(td);
    table.append(tr);
    tr = $("<tr />");
    td = $("<td />").attr({ "align": "center" }).addClass("picalert");
    td.text("*برای مشاهده تصویر بزرگتر محصول، روی تصویر بالا کلیک نمایید.");
    tr.append(td);
    table.append(tr);
    tr = $("<tr />");
    td = $("<td />").attr({ "align": "center" }).css("padding-top", "10px");
    var ties = product.Ties.split("*");
    var moghat = eval(ties[0]) * eval(ties[1]) / 12000;
    var dims = product.Dims.split("*");
    var surf = eval(dims[0]) * eval(dims[1]) / 10000;
    td.append($("<span />").css("color", "#91201f").text(product.Ties + " گره"));
    td.append($("<span />").addClass("separator").text("|"));
    td.append($("<span />").css("color", "#91201f").text("رجشمار " + product.Raj));
    td.append($("<span />").addClass("separator").text("|"));
    td.append($("<span />").css("color", "#91201f").text(product.Dims + " سانتیمتر"));
    td.append($("<span />").addClass("separator").text("|"));
    td.append($("<span />").css("color", "#91201f").text(product.Colors + " رنگ"));
    td.append("<br />");
    td.append($("<span />").css("color", "#e68900").text(moghat + " مقاط"));
    td.append($("<span />").addClass("separator").text("|"));
    td.append($("<span />").css("color", "#e68900").text(surf + " متر مربع"));
    td.append($("<span />").addClass("separator").text("|"));
    td.append($("<span />").css("color", "#e68900").text("بروزرسانی" + product.SDate));
    tr.append(td);
    table.append(tr);

    tr = $("<tr />");
    td = $("<td />").attr({ "align": "center" }).css("padding-top", "10px");
    td.append($("<span />").css("color", "#20911f").text("موجودی این محصول " + product.Stock + " عدد"));
    tr.append(td);
    table.append(tr);

    tr = $("<tr />");
    td = $("<td />");
    var prices = $("<table />").attr({ "cellpadding": "0", "cellspacing": "0" }).addClass("prices");
    for (var i in product.Prices) {
        var pricetr = $("<tr />");
        var pricetd = $("<td />").text(product.Prices[i].Title);
        pricetr.append(pricetd);
        pricetd = $("<td />").html("قیمت : <span style='color:#91201f; font-size: 12px;'>" + product.Prices[i].Price + "</span> تومان");
        pricetr.append(pricetd);
        pricetd = $("<td />").addClass("basket btn").attr({ "title": "اضافه به سبد خرید", "code": product.Prices[i].Code, "pt": product.Prices[i].Title, "pid": product.ID, "cat": "0" });
        pricetr.append(pricetd);
        prices.append(pricetr);
    }
    td.append(prices);
    tr.append(td);
    table.append(tr);
    tr = $("<tr />");
    td = $("<td />").attr({ "align": "left" });
    var palette = $("<div />").addClass("palette");
    for (i in product.Palette)
        palette.append($("<div />").css("background-color", product.Palette[i]));
    td.append(palette);
    tr.append(td);
    table.append(tr);
    tr = $("<tr />");
    td = $("<td />");
    td.html(product.Materials);
    td.append($("<br />"));
    td.append($("<a />").attr({ "href": "Reports/Pallete.aspx?id=" + product.ID, "target": "_blank" }).text("دریافت اطلاعات بیشتر از پالت رنگ این محصول"));
    tr.append(td);
    table.append(tr);
    return table;
}
function ColorAlert() {
    $(".picalert").animate({ "color": "#F76666" }, 1000);
    $(".picalert").animate({ "color": "#6666F7" }, 1000);
    window.setTimeout("ColorAlert()", 5000);
}
function UserStatus() {
    $.ajax({
        type: "POST",
        url: "Service.asmx/UserStatus",
        data: '',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            if (!result.d)
                return;
            $("#_basketStatus").html("").append(
                        $("<span />").addClass("btn").html("« <b>سبد خرید</b> »: " + result.d.Baskets + " محصول").click(ShowBasket)
                    );
            $("#_CreditStatus").html("").append(
                        $("<span />").addClass("btn").html("صورتحساب و مانده حساب شما: " + result.d.Credit + " تومان").click(IncreaseCredit)
                    );
            $("#_UnverifiedBills").html("").append(
                        $("<span />").addClass("btn").text("فاکتورهای تایید نشده: " + result.d.UBills).click(ShowUnverified)
                    );
            $("#_VerifiedBills").html("").append(
                        $("<span />").addClass("btn").text("فاکتورهای تایید شده: " + result.d.VBills).click(ShowVerified)
                    );
            $("#_postBillsReport").click(ShowVerified);
            $("#_accReport").click(IncreaseCredit);
            $("#_accListPrint").click(PrintAccountList);
        },
        error: AjaxError
    });
}
function AddToBasket() {
    var td = $(this);
    td.unbind("click").removeClass("basket btn").append($("<img />").attr("src", "images/loading.gif"));
    var code = this.getAttribute("code");
    var title = this.getAttribute("pt");
    var pid = this.getAttribute("pid");
    var cat = this.getAttribute("cat");
    $.ajax({
        type: "POST",
        url: "Service.asmx/AddToBasket",
        data: '{"code":"' + code + '", "title":"' + title + '", "pid":"' + pid + '", "cat":"' + cat + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            td.children().remove();
            if (result.d.CloseStore) {
                td.addClass("basket btn").click(AddToBasket);
                alert(result.d.CloseStore);
            }
            else if (!result.d) {
                td.addClass("basket btn").click(AddToBasket);
                alert("برای خرید از فروشگاه ابتدا باید در سایت عضو شوید!\n" +
                            "چنانچه قبلا عضو شده اید، ابتدا نام کاربری و رمز عبور خود را وارد نمایید");
            }
            else if (result.d.Positive) {
                td.addClass("basket btn").click(AddToBasket);
                alert(result.d.Positive);
            }
            else if (!result.d.ID) {
                td.addClass("basket btn").click(AddToBasket);
                alert("خرید محصول از نخ و نقشه تابلو فرش برای شما امکان پذیر نمی‌باشد!\n" +
                            "شما می‌توانید برای تهیه این محصولات به دفاتر نمایندگی\n" +
                            "شرکت در شهر محل اقامت خود مراجعه نمایید\n" +
                            "توجه: خرید سایر محصولات برای شما بلا مانع است");
            }
            else {
                //alert("این محصول با موفقیت به سبد خرید شما اضافه گردید.");
                td.append($("<img />").attr("src", "images/verify.png"));
                if ($("#basket").is(":visible")) {
                    var exist = false;
                    $("#basketTbl tr").each(function (index, element) {
                        if (element.getAttribute("code") == code) {
                            var c = $(element).find("span");
                            var count = eval(c.text());
                            c.text(++count);
                            exist = true;
                        }
                    });
                    if (!exist) {

                        tr = $("<tr />").attr("data", result.d.ID);
                        td = $("<td />").addClass("rowcounter");
                        tr.append(td);
                        td = $("<td />").text(title);
                        tr.append(td);
                        var c = $("<span />").text(1);
                        var up = $("<img />").attr({ "src": "images/up.png", "title": "up" }).addClass("btn").click(ChangeCount);
                        var dn = $("<img />").attr({ "src": "images/down.png", "title": "down" }).addClass("btn").click(ChangeCount);
                        td = $("<td />").append(c).append(up).append(dn);
                        tr.append(td);
                        td = $("<td />").attr("discount", result.d.Discount).text(result.d.Price);
                        tr.append(td);
                        var del = $("<img />").attr({ "src": "images/delete.png", "class": "btn", "title": "حذف" }).click(RemoveBasketRow);
                        td = $("<td />").append(del);
                        tr.append(td);
                        $("#basketTbl").append(tr);
                    }
                    CalculateTotalPrice();
                }
                else {
                    UserStatus();
                }
            }
        },
        error: AjaxError
    });
}
function ShowBasket() {
    $("#mainpanel #maincontent").slideUp("normal", function () {
        $("#mainpanel #maincontent").children().hide();
        $("#mainpanel").append($("<center />").attr("id", "galleryLoading").append($("<img />").attr("src", "images/loading.gif")));
    });
    $.ajax({
        type: "POST",
        url: "Service.asmx/AllCategories",
        data: '',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            var o = $("<option />").css("color", "#0000ff").text("لیست محصولات آماده فروش").val(0);
            var s = $("<select />").attr("id", "_categories").append(o).change(ChangeCategory);
            for (var i in result.d) {
                var data = result.d[i].Data.split("~");
                var visible = eval(data[0].toLowerCase());
                var sale = eval(data[1].toLowerCase());
                if (!sale)
                    continue;
                o = $("<option />").attr("type", data[2]).text(result.d[i].Name).val(result.d[i].ID);
                s.append(o);
            }
            var tit = $("<h4 />").css("color", "#118131").text("به فروشگاه آنلاین محصولات شرکت فرش دارکوب امروز خوش آمدید");
            $("#basket").html("").append(tit).append(s);
            $.ajax({
                type: "POST",
                url: "Service.asmx/GetBasketItems",
                data: '',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                processdata: true,
                success: function (result) {
                    if (!result.d) {
                        alert("برای خرید از فروشگاه ابتدا باید در سایت عضو شوید!\n" +
                                    "چنانچه قبلا عضو شده اید، ابتدا نام کاربری و رمز عبور خود را وارد نمایید");
                        $("#mainpanel #maincontent #index").show();
                        $("#mainpanel #galleryLoading").remove();
                        $("#mainpanel #maincontent").slideDown();
                        return;
                    }
                    $("#basket").append($("<strong />").css({ "margin": "20px 0 5px 0", "display": "block" }).text("اقلام موجود در سبد خرید")).show();
                    var tbl = $("<table />").attr({
                        "border": "1",
                        "cellpadding": "0",
                        "cellspacing": "0",
                        "id": "basketTbl",
                        "class": "basketTable"
                    });
                    var totalPrice = 0;
                    var totalDiscount = 0;
                    var tr = $("<tr />");
                    var td = $("<th />").text("ردیف");
                    tr.append(td);
                    td = $("<th />").text("عنوان محصول");
                    tr.append(td);
                    td = $("<th />").text("تعداد");
                    tr.append(td);
                    td = $("<th />").text("قیمت واحد(تومان)");
                    tr.append(td);
                    td = $("<th />").text("حذف");
                    tr.append(td);
                    tbl.append(tr);
                    var totalStr = $("<div />").attr("id", "totalPriceDiv").css("color", "#91201f");
                    var discountStr = $("<div />").attr("id", "totalDiscountDiv").css("color", "#1f6a91");
                    var verifyBtn = $("<input />").attr({ "type": "button", "value": "تایید و صدور پیش فاکتور", "id": "_updateBasket" }).css("float", "left").click(VerifyBasket);
                    var btns = $("<div />").css("margin-top", "20px");
                    btns.append(verifyBtn).append(totalStr).append(discountStr);
                    $("#basket").append(tbl).append(btns);
                    if (result.d) {
                        for (var i = 1; i < result.d.length; i++) {
                            tr = $("<tr />").attr({ "data": result.d[i].ID, "code": result.d[i].Code });
                            td = $("<td />").addClass("rowcounter").text(i);
                            tr.append(td);
                            td = $("<td />").text(result.d[i].Title);
                            tr.append(td);
                            var c = $("<span />").text(result.d[i].Count);
                            var up = $("<img />").attr({ "src": "images/up.png", "title": "up" }).addClass("btn").click(ChangeCount);
                            var dn = $("<img />").attr({ "src": "images/down.png", "title": "down" }).addClass("btn").click(ChangeCount);
                            td = $("<td />").append(c).append(up).append(dn);
                            tr.append(td);
                            td = $("<td />").attr("discount", result.d[i].Discount).text(result.d[i].Price);
                            totalPrice += result.d[i].Count * result.d[i].Price;
                            totalDiscount += result.d[i].Count * result.d[i].Discount;
                            tr.append(td);
                            var del = $("<img />").attr({ "src": "images/delete.png", "class": "btn", "title": "حذف" }).click(RemoveBasketRow);
                            td = $("<td />").append(del);
                            tr.append(td);
                            tbl.append(tr);
                        }
                    }
                    totalStr.text("جمع مبلغ محصولات موجود در سبد خرید " + totalPrice + " تومان.");
                    discountStr.text("مبلغ نهایی پس از کسر تخفیفات " + (totalPrice - totalDiscount) + " تومان.");
                    $("#basket").append($("<span />").css("color", "#118131").text("اعتبار فعلی شما: " + result.d[0].Credit + " تومان."));
                    $("#mainpanel #galleryLoading").remove();
                    $("#mainpanel #maincontent").slideDown();
                },
                error: AjaxError
            });
        },
        error: AjaxError
    });
}
function ChangeCount() {
    var img = $(this);
    var src = img.attr("src");
    var td = img.parent();
    var tr = td.parent();
    var span = td.children()[0];
    var count = eval(span.innerHTML);
    if (this.getAttribute("title") == "up")
        count++;
    else {
        if (count <= 1)
            return;
        count--;
    }
    img.attr("src", "images/waiting.gif").unbind("click");
    $.ajax({
        type: "POST",
        url: "Service.asmx/ChangeBasketItemCount",
        data: '{"id":"' + tr.attr("data") + '", "count":"' + count + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            img.attr("src", src).click(ChangeCount);
            if (!result.d) {
                alert("به دلیل موجودی محدود، امکان افزایش تعداد وجود ندارد.");
                return;
            }
            span.innerHTML = count;
            // به روز رسانی جمع مبلغ
            CalculateTotalPrice();
        },
        error: AjaxError
    });
}
function RemoveBasketRow() {
    if (!confirm("محصول مورد نظر از سبد خرید حذف گردد؟"))
        return;
    var tr = $(this).parent().parent();
    $(this).parent().children().hide();
    $(this).parent().append($("<img />").attr("src", "images/waiting.gif"));
    $.ajax({
        type: "POST",
        url: "Service.asmx/DeleteBasketItem",
        data: '{"id":"' + tr.attr("data") + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            tr.remove();
            CalculateTotalPrice();
        },
        error: AjaxError
    });
}
function VerifyBasket() {
    if ($("#basketTbl tr").length == 1) {
        alert("ابتدا محصولی را به سبد خرید خود اضافه کنید.");
        return;
    }
    $("#mainpanel #maincontent").slideUp("normal", function () {
        $("#mainpanel #maincontent").children().hide();
        $("#mainpanel").append($("<center />").attr("id", "galleryLoading").append($("<img />").attr("src", "images/loading.gif")));
    });
    $.ajax({
        type: "POST",
        url: "Service.asmx/VerifyBasket",
        data: '',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            if (!result.d) {
            }
            else if (result.d.CloseStore)
                alert(result.d.CloseStore);
            else {

                $("#_basketStatus span").html("« <b>سبد خرید</b> »: 0 محصول");

                var unvercount = eval($("#_UnverifiedBills span").text().split(":")[1].trim()) + 1;
                $("#_UnverifiedBills").html("").append(
                            $("<span />").addClass("btn").text("فاکتورهای تایید نشده: " + unvercount).click(ShowUnverified)
                        );

                var div = $("<div />").attr("id", "_preFactor");
                div.append($("<center />").append($("<h4 />").html("شرکت فرش دارکوب امروز<br />پیش فاکتور")));
                div.append($("<div />").css("float", "left").html(
                            "فروشنده: شرکت فرش دارکوب امروز<br />" +
                            "کد اقتصادی: 9169-8775-4111<br />" +
                            "نشانی: شهرک صنعتی مشهد، تلاش شمالی 19<br />" +
                            "تلفن: 2453407-0511<br />" +
                            "کد پستی: 9358187716"));
                var dateItems = result.d.Date.split(",");
                div.append($("<span />").text("تاریخ: " + dateItems[0])).append("<br />");
                div.append($("<span />").text("ساعت: " + dateItems[1])).append("<br />");
                div.append($("<span />").text("مشتری: " + result.d.Customer)).append("<br /><br />");
                var tbl = $("<table />").attr({
                    "border": "1",
                    "cellpadding": "0",
                    "cellspacing": "0",
                    "id": "basketTbl",
                    "class": "basketTable"
                });
                var tr = $("<tr />");
                var td = $("<th />").text("ردیف");
                tr.append(td);
                td = $("<th />").text("عنوان محصول");
                tr.append(td);
                td = $("<th />").text("تعداد");
                tr.append(td);
                td = $("<th />").text("قیمت واحد(تومان)");
                tr.append(td);
                td = $("<th />").attr("colspan", "2").text("درصد و مقدار تخفیف");
                tr.append(td);
                td = $("<th />").text("مبلغ کل");
                tr.append(td);
                tbl.append(tr);
                var totalCount = 0;
                var finalCost = 0;
                for (var i in result.d.Items) {
                    tr = $("<tr />");
                    td = $("<td />").text(eval(i) + 1);
                    tr.append(td);
                    td = $("<td />").text(result.d.Items[i].Title);
                    tr.append(td);
                    var count = result.d.Items[i].Count;
                    totalCount += count;
                    td = $("<td />").text(count);
                    tr.append(td);
                    var price = result.d.Items[i].Price;
                    var discount = result.d.Items[i].Discount;
                    var fee = count * (price - discount);
                    td = $("<td />").text(price);
                    tr.append(td);
                    td = $("<td />").text(result.d.Items[i].Percent);
                    tr.append(td);
                    td = $("<td />").text(discount);
                    tr.append(td);
                    td = $("<td />").text(fee);
                    finalCost += fee;
                    tr.append(td);
                    tbl.append(tr);
                }
                tr = $("<tr />").css("font-weight", "bold");
                td = $("<td />");
                tr.append(td);
                td = $("<td />").css({ "text-align": "left", "padding-left": "50px" }).text("جمع");
                tr.append(td);
                td = $("<td />").text(totalCount);
                tr.append(td);
                td = $("<td />");
                tr.append(td);
                td = $("<td />");
                tr.append(td);
                td = $("<td />");
                tr.append(td);
                td = $("<td />").text(finalCost);
                tr.append(td);
                tbl.append(tr);
                div.append(tbl);
                div.append($("<span />").text("نشانی خریدار: " + result.d.Address)).append("<br />");
                div.append($("<span />").text("اعتبار حساب شما: " + result.d.Credit + " تومان است.")).append("<br />");
                var btns = $("<div />");
                var printBtn = $("<input />").attr("type", "button").val("چاپ پیش فاکتور").click(PrintPreBill);
                var verifyBtn = $("<input />").attr({ "type": "button", "data": result.d.ID, "total": finalCost }).css("float", "left").val("تایید نهایی فاکتور").click(VerifyPreBill);
                btns.append(printBtn).append(verifyBtn);
                if (result.d.Credit < finalCost) {
                    div.append($("<span />").text("به دلیل کسری اعتبار به مقدار " + (Math.abs(result.d.Credit - finalCost)) +
                            " تومان شما قادر به نهایی کردن این فاکتور نمی‌باشید." +
                            " لطفا به صفحه افزایش اعتبار رفته و اعتبار خود را افزایش دهید."));
                    div.append($("<div />").addClass("lowcredit"));
                    verifyBtn.attr("disabled", true);
                }
                $("#basket").html("").append(div);
                div.after(btns);
            }
            $("#basket").show();
            $("#mainpanel #galleryLoading").remove();
            $("#mainpanel #maincontent").slideDown();
        },
        error: AjaxError
    });
}
function ShowUnverified() {
    $("#mainpanel #maincontent").slideUp("normal", function () {
        $("#mainpanel #maincontent").children().hide();
        $("#mainpanel").append($("<center />").attr("id", "galleryLoading").append($("<img />").attr("src", "images/loading.gif")));
    });
    $.ajax({
        type: "POST",
        url: "Service.asmx/GetUnverifiedBills",
        data: '',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            var div = $("#prebills").html("");
            div.append($("<h4 />").text("لیست فاکتورهای تایید نشده"));
            var tbl = $("<table />").attr({ "border": "1", "cellpadding": "0", "cellspacing": "0" }).addClass("basketTable");
            var thead = $("<thead />");
            var tr = $("<tr />");
            var td = $("<th />").text("ردیف");
            tr.append(td);
            td = $("<th />").text("تاریخ");
            tr.append(td);
            td = $("<th />").text("تعداد محصولات");
            tr.append(td);
            td = $("<th />").text("قیمت واحد(تومان)");
            tr.append(td);
            td = $("<th />").text("عملیات");
            tr.append(td);
            thead.append(tr);
            tbl.append(thead);
            for (var i in result.d) {
                tr = $("<tr />");
                td = $("<td />").text(eval(i) + 1);
                tr.append(td);
                td = $("<td />").text(result.d[i].Date);
                tr.append(td);
                td = $("<td />").text(result.d[i].Count);
                tr.append(td);
                td = $("<td />").text(result.d[i].Final);
                tr.append(td);
                var invalidate = $("<img />").attr({ "src": "images/delete.png", "alt": "Remove", "data": result.d[i].ID, "title": "حذف پیش فاکتور" }).addClass("btn").click(InvalidatePreBill);
                var view = $("<img />").attr({ "src": "images/left.png", "alt": "View", "data": result.d[i].ID, "title": "نمایش جزییات" }).addClass("btn").click(ViewPreBill);
                td = $("<td />").append(invalidate).append(view);
                tr.append(td);
                tbl.append(tr);
            }
            div.append(tbl).show();
            div.append(
                            "<br />با کلیک بر روی آیکن <img src='images/delete.png' />" +
                            " پیش فاکتور مربوطه حذف و محصولات آن به سبد خرید برمی‌گردند.<br />" +
                            "همچنین با کلیک بر  روی آیکن <img src='images/left.png' />" +
                            " قادر خواهید بود جزییات پیش فاکتور مربوطه را مشاهده نمایید.");
            $("#mainpanel #galleryLoading").remove();
            $("#mainpanel #maincontent").slideDown();
        },
        error: AjaxError
    });
}
function InvalidatePreBill() {
    if (!confirm("کلیه محصولات این فاکتور به سبد خرید بازگردانده شود؟"))
        return;
    var id = this.getAttribute("data");
    var tr = $(this).parent().parent();
    $.ajax({
        type: "POST",
        url: "Service.asmx/InvalidateBill",
        data: '{"id":"' + id + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            var count = $("#_basketStatus span").text().split(":")[1].trim().split(" ")[0];
            count = eval(count) + eval(tr.children()[2].innerHTML);
            $("#_basketStatus span").html("« <b>سبد خرید</b> »: " + count + " محصول");
            count = eval($("#_UnverifiedBills span").text().split(":")[1].trim()) - 1;
            $("#_UnverifiedBills").html("").append(
                        $("<span />").addClass("btn").text("فاکتورهای تایید نشده: " + count).click(ShowUnverified)
                    );
            tr.remove();
        },
        error: AjaxError
    });
}
function ViewPreBill() {
    $("#mainpanel #maincontent").slideUp("normal", function () {
        $("#mainpanel #maincontent").children().hide();
        $("#mainpanel").append($("<center />").attr("id", "galleryLoading").append($("<img />").attr("src", "images/loading.gif")));
    });
    var id = this.getAttribute("data");
    $.ajax({
        type: "POST",
        url: "Service.asmx/GetUnverifiedBillDetails",
        data: '{"id":"' + id + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            if (result.d) {
                var div = $("<div />").attr("id", "_preFactor");
                div.append($("<center />").append($("<h4 />").html("شرکت فرش دارکوب امروز<br />پیش فاکتور")));
                div.append($("<div />").css("float", "left").html(
                            "فروشنده: شرکت فرش دارکوب امروز<br />" +
                            "کد اقتصادی: 9169-8775-4111<br />" +
                            "نشانی: شهرک صنعتی مشهد، تلاش شمالی 19<br />" +
                            "تلفن: 2453407-0511<br />" +
                            "کد پستی: 9358187716"));
                //div.append($("<span />").text("شماره فاکتور: " + result.d.ID)).append("<br />");
                var dateItems = result.d.Date.split(",");
                div.append($("<span />").text("تاریخ: " + dateItems[0])).append("<br />");
                div.append($("<span />").text("ساعت: " + dateItems[1])).append("<br />");
                div.append($("<span />").text("مشتری: " + result.d.Customer)).append("<br /><br />");
                var tbl = $("<table />").attr({
                    "border": "1",
                    "cellpadding": "2",
                    "cellspacing": "0",
                    "id": "basketTbl",
                    "class": "basketTable"
                });
                var tr = $("<tr />");
                var td = $("<th />").text("ردیف");
                tr.append(td);
                td = $("<th />").text("عنوان محصول");
                tr.append(td);
                td = $("<th />").text("تعداد");
                tr.append(td);
                td = $("<th />").text("قیمت واحد(تومان)");
                tr.append(td);
                td = $("<th />").attr("colspan", "2").text("درصد و مقدار تخفیف");
                tr.append(td);
                td = $("<th />").text("مبلغ کل");
                tr.append(td);
                tbl.append(tr);
                var totalCount = 0;
                var finalCost = 0;
                for (var i in result.d.Items) {
                    tr = $("<tr />");
                    td = $("<td />").text(eval(i) + 1);
                    tr.append(td);
                    td = $("<td />").text(result.d.Items[i].Title);
                    tr.append(td);
                    var count = result.d.Items[i].Count;
                    totalCount += count;
                    td = $("<td />").text(count);
                    tr.append(td);
                    var price = result.d.Items[i].Price;
                    var discount = result.d.Items[i].Discount;
                    var fee = count * (price - discount);
                    td = $("<td />").text(price);
                    tr.append(td);
                    td = $("<td />").text(result.d.Items[i].Percent);
                    tr.append(td);
                    td = $("<td />").text(discount);
                    tr.append(td);
                    td = $("<td />").text(fee);
                    finalCost += fee;
                    tr.append(td);
                    tbl.append(tr);
                }
                tr = $("<tr />").css("font-weight", "bold");
                td = $("<td />");
                tr.append(td);
                td = $("<td />").css({ "text-align": "left", "padding-left": "50px" }).text("جمع");
                tr.append(td);
                td = $("<td />").text(totalCount);
                tr.append(td);
                td = $("<td />");
                tr.append(td);
                td = $("<td />");
                tr.append(td);
                td = $("<td />");
                tr.append(td);
                td = $("<td />").text(finalCost);
                tr.append(td);
                tbl.append(tr);
                div.append(tbl);
                div.append($("<span />").text("نشانی خریدار: " + result.d.Address)).append("<br />");
                div.append($("<span />").text("اعتبار حساب شما: " + result.d.Credit + " تومان است.")).append("<br />");
                var btns = $("<div />");
                var printBtn = $("<input />").attr("type", "button").val("چاپ پیش فاکتور").click(PrintPreBill);
                var verifyBtn = $("<input />").attr({ "type": "button", "data": result.d.ID, "total": finalCost }).css("float", "left").val("تایید نهایی فاکتور").click(VerifyPreBill);
                btns.append(printBtn).append(verifyBtn);
                if (result.d.Credit < finalCost) {
                    div.append($("<span />").text("به دلیل کسری اعتبار به مقدار " + (Math.abs(result.d.Credit - finalCost)) +
                            " تومان شما قادر به نهایی کردن این فاکتور نمی‌باشید." +
                            " لطفا به صفحه افزایش اعتبار رفته و اعتبار خود را افزایش دهید."));
                    div.append($("<div />").addClass("lowcredit"));
                    verifyBtn.attr("disabled", true);
                }
                $("#basket").html("").append(div);
                div.after(btns);
            }
            $("#basket").show();
            $("#mainpanel #galleryLoading").remove();
            $("#mainpanel #maincontent").slideDown();
        },
        error: AjaxError
    });
}
function PrintPreBill() {
    var w = window.open();
    w.document.write('<!DOCTYPE html>');
    w.document.write('<link href="styles/BillPrint.css" rel="stylesheet" type="text/css" />');
    w.document.write(_preFactor.outerHTML);
    w.print();
    w.document.close();
}
function ShowVerified() {
    $("#mainpanel #maincontent").slideUp("normal", function () {
        $("#mainpanel #maincontent").children().hide();
        $("#mainpanel").append($("<center />").attr("id", "galleryLoading").append($("<img />").attr("src", "images/loading.gif")));
    });
    var start = "";
    if (_fromDateDay.selectedIndex &&
                _fromDateMonth.selectedIndex &&
                _fromDateYear.selectedIndex) {
        start = _fromDateDay.selectedIndex + "/" +
                _fromDateMonth.selectedIndex + "/" +
                (_fromDateYear.selectedIndex + 1389);
    }
    var end = "";
    if (_toDateDay.selectedIndex &&
                _toDateMonth.selectedIndex &&
                _toDateYear.selectedIndex) {
        end = _toDateDay.selectedIndex + "/" +
                _toDateMonth.selectedIndex + "/" +
                (_toDateYear.selectedIndex + 1389);
    }
    $.ajax({
        type: "POST",
        url: "Service.asmx/GetVerifiedBills",
        data: '{"start":"' + start + '", "end":"' + end + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            _verifiedBillsList.innerHTML = "";
            if (!result.d)
                return;
            for (var i in result.d) {
                var tr = $("<tr />");
                var td = $("<td />").text(eval(i) + 1);
                tr.append(td);
                td = $("<td />").text(result.d[i].ID);
                tr.append(td);
                td = $("<td />").text(result.d[i].Date);
                tr.append(td);
                td = $("<td />").text(result.d[i].Cost);
                tr.append(td);
                var view = $("<img />").attr({ "src": "images/left.png", "alt": "View", "data": result.d[i].ID, "title": "نمایش جزییات" }).addClass("btn").click(ViewBill);
                td = $("<td />").append(view);
                tr.append(td);
                $("#_verifiedBillsList").append(tr);
            }
            $("#postbills").show();
            $("#mainpanel #galleryLoading").remove();
            $("#mainpanel #maincontent").slideDown();
        },
        error: AjaxError
    });
}
function VerifyPreBill() {
    var billDesc = $("#basket textarea");
    if (billDesc.length == 0) {
        var desc = $("<div />").html("لطفا توضیحات لازم را در کادر زیر وارد نمایید<br />").hide();
        desc.append($("<textarea />").attr({ "rows": "6", "cols": "90", "id": "_billDescription" }));
        $("#basket #_preFactor").after(desc);
        desc.slideDown();
        return;
    }
    if (!confirm("آیا از نهایی کردن این فاکتور، اطمینان دارید؟\nدر صورت تایید مبلغ این فاکتور از اعتبار حساب شما کسر خواهد شد"))
        return;
    $("#mainpanel #maincontent").slideUp("normal", function () {
        $("#mainpanel #maincontent").children().hide();
        $("#mainpanel").append($("<center />").attr("id", "galleryLoading").append($("<img />").attr("src", "images/loading.gif")));
    });
    var id = this.getAttribute("data");
    var total = this.getAttribute("total");
    $.ajax({
        type: "POST",
        url: "Service.asmx/VerifyPreBill",
        data: '{"id":"' + id + '", "desc":"' + billDesc.val().replace(/\"/g, "\'") + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            if (result.d.CloseStore)
                alert(result.d.CloseStore);
            else if (result.d.None) {
                alert("پیش فاکتور شما به دلیل کاهش موجودی اقلام، حذف گردید.");
                var count = eval($("#_UnverifiedBills span").text().split(":")[1].trim()) - 1;
                $("#_UnverifiedBills").html("").append(
                        $("<span />").addClass("btn").text("فاکتورهای تایید نشده: " + count).click(ShowUnverified)
                    );
                $("#mainpanel #galleryLoading").remove();
                ShowBasket();
                return;
            }
            else {
                count = eval($("#_UnverifiedBills span").text().split(":")[1].trim()) - 1;
                $("#_UnverifiedBills").html("").append(
                        $("<span />").addClass("btn").text("فاکتورهای تایید نشده: " + count).click(ShowUnverified)
                    );
                count = eval($("#_VerifiedBills span").text().split(":")[1].trim()) + 1;
                $("#_VerifiedBills").html("").append(
                        $("<span />").addClass("btn").text("فاکتورهای تایید شده: " + count).click(ShowVerified)
                    );
                var credit = eval($("#_CreditStatus span").text().split(":")[1].trim().split(" ")[0]) - total;
                $("#_CreditStatus").html("").append(
                        $("<span />").addClass("btn").text("اعتبار حساب شما: " + credit + " تومان").click(IncreaseCredit)
                    );
                var div = $("<div />").attr("id", "_preFactor");
                div.append($("<center />").append($("<h4 />").html("شرکت فرش دارکوب امروز<br />فاکتور فروش")));
                div.append($("<div />").css("float", "left").html(
                            "فروشنده: شرکت فرش دارکوب امروز<br />" +
                            "کد اقتصادی: 9169-8775-4111<br />" +
                            "نشانی: شهرک صنعتی مشهد، تلاش شمالی 19<br />" +
                            "تلفن: 2453407-0511<br />" +
                            "کد پستی: 9358187716"));
                div.append($("<span />").text("شماره فاکتور: " + result.d.ID)).append("<br />");
                var dateItems = result.d.Date.split(",");
                div.append($("<span />").text("تاریخ: " + dateItems[0])).append("<br />");
                div.append($("<span />").text("ساعت: " + dateItems[1])).append("<br />");
                div.append($("<span />").text("مشتری: " + result.d.Customer)).append("<br /><br />");
                var tbl = $("<table />").attr({
                    "border": "1",
                    "cellpadding": "2",
                    "cellspacing": "0",
                    "id": "basketTbl",
                    "class": "basketTable"
                });
                var tr = $("<tr />");
                var td = $("<th />").text("ردیف");
                tr.append(td);
                td = $("<th />").text("عنوان محصول");
                tr.append(td);
                td = $("<th />").text("تعداد");
                tr.append(td);
                td = $("<th />").text("قیمت واحد(تومان)");
                tr.append(td);
                td = $("<th />").attr("colspan", "2").text("درصد و مقدار تخفیف");
                tr.append(td);
                td = $("<th />").text("مبلغ کل");
                tr.append(td);
                tbl.append(tr);
                var totalCount = 0;
                var finalCost = 0;
                var guarantyTbl = $("<table />").attr({ "border": "1", "cellpadding": "0", "cellspacing": "0" });
                guarantyTbl.append('<tr><th rowspan="2">نام محصول</th><th rowspan="2">مهلت بافت<br />(روز)</th><th colspan="2">قیمت خرید تضمینی محصول بافته شده</th></tr>');
                guarantyTbl.append("<tr><th>با چله پنبه ای</th><th>با چله ابریشم</th></tr>");
                var hasGuaranty = false;
                for (var i in result.d.Items) {
                    tr = $("<tr />");
                    td = $("<td />").text(eval(i) + 1);
                    tr.append(td);
                    td = $("<td />").text(result.d.Items[i].Title);
                    tr.append(td);
                    count = result.d.Items[i].Count;
                    totalCount += count;
                    td = $("<td />").text(count);
                    tr.append(td);
                    var price = result.d.Items[i].Price;
                    var percent = result.d.Items[i].Percent;
                    var discount = price * percent / 100;
                    var fee = count * (price - discount);
                    td = $("<td />").text(price);
                    tr.append(td);
                    td = $("<td />").text(percent);
                    tr.append(td);
                    td = $("<td />").text(discount);
                    tr.append(td);
                    td = $("<td />").text(fee);
                    finalCost += fee;
                    tr.append(td);
                    tbl.append(tr);
                    if (result.d.Items[i].Guaranty) {
                        hasGuaranty = true;
                        tr = $("<tr />");
                        td = $("<td />").text(result.d.Items[i].Title);
                        tr.append(td);
                        td = $("<td />").text(result.d.Items[i].Guaranty.Days);
                        tr.append(td);
                        var woodStr = "----------";
                        if (result.d.Items[i].Guaranty.Wood)
                            woodStr = result.d.Items[i].Guaranty.Wood * result.d.Items[i].Guaranty.Price;
                        td = $("<td />").text(woodStr);
                        tr.append(td);
                        var silkStr = "----------";
                        if (result.d.Items[i].Guaranty.Silk)
                            silkStr = result.d.Items[i].Guaranty.Silk * result.d.Items[i].Guaranty.Price;
                        td = $("<td />").text(silkStr);
                        tr.append(td);
                        guarantyTbl.append(tr);
                    }
                }
                tr = $("<tr />").css("font-weight", "bold");
                td = $("<td />");
                tr.append(td);
                td = $("<td />").css({ "text-align": "left", "padding-left": "50px" }).text("جمع");
                tr.append(td);
                td = $("<td />").text(totalCount);
                tr.append(td);
                td = $("<td />");
                tr.append(td);
                td = $("<td />");
                tr.append(td);
                td = $("<td />");
                tr.append(td);
                td = $("<td />").text(finalCost);
                tr.append(td);
                tbl.append(tr);
                div.append(tbl);
                div.append($("<span />").text("نشانی خریدار: " + result.d.Address)).append("<br />");
                div.append($("<span />").text("اعتبار حساب شما پس از این فاکتور: " + result.d.Credit + " تومان.")).append("<br />");
                var desc = billDesc.val();
                if (desc != "")
                    div.append($("<span />").text("توضیحات: " + desc));
                if (hasGuaranty) {
                    var guarantydiv = $("<div />").addClass("guarantyBox");
                    guarantydiv.append("<span style='color: #5968a2;'>محصولات دارای تضمین خرید پس از بافت در این فاکتور، مشروط به پذیرش قوانین آن توسط مشتری</span>");
                    guarantydiv.append(guarantyTbl);
                    guarantydiv.append("<span style='color: #5968a2; font-size: 9px;'>تابلوفرش های عرضی که با استفاده از نقشه چرخیده به صورت قدی بافته شوند، دارای تضمین خرید نخواهند بود.<br />" +
                        "ارایه فاکتور رسمی در هنگام ارسال فرش برای خرید تضمینی توسط شرکت، الزامی است.</span>");
                    div.append(guarantydiv);
                }
                var btns = $("<div />");
                var printBtn = $("<input />").attr("type", "button").val("چاپ فاکتور").click(PrintPreBill);
                var printBtn2 = $("<input />").attr("type", "button").css("float", "left").val("چاپ فاکتور برای خریدار").click(PrintFakeBill);
                btns.append(printBtn); //.append(printBtn2);
                $("#basket").html("").append(div);
                div.after(btns);
            }
            $("#basket").show();
            $("#mainpanel #galleryLoading").remove();
            $("#mainpanel #maincontent").slideDown();
        },
        error: AjaxError
    });
}
function ViewBill() {
    $("#mainpanel #maincontent").slideUp("normal", function () {
        $("#mainpanel #maincontent").children().hide();
        $("#mainpanel").append($("<center />").attr("id", "galleryLoading").append($("<img />").attr("src", "images/loading.gif")));
    });
    var id = this.getAttribute("data");
    $.ajax({
        type: "POST",
        url: "Service.asmx/GetVerifiedBillDetails",
        data: '{"id":"' + id + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            var div = $("<div />").attr("id", "_preFactor");
            div.append($("<center />").append($("<h4 />").html("شرکت فرش دارکوب امروز<br />فاکتور فروش")));
            div.append($("<div />").css("float", "left").html(
                            "فروشنده: شرکت فرش دارکوب امروز<br />" +
                            "کد اقتصادی: 9169-8775-4111<br />" +
                            "نشانی: شهرک صنعتی مشهد، تلاش شمالی 19<br />" +
                            "تلفن: 2453407-0511<br />" +
                            "کد پستی: 9358187716"));
            div.append($("<span />").text("شماره فاکتور: " + result.d.ID)).append("<br />");
            var dateItems = result.d.Date.split(",");
            div.append($("<span />").text("تاریخ: " + dateItems[0])).append("<br />");
            div.append($("<span />").text("ساعت: " + dateItems[1])).append("<br />");
            div.append($("<span />").text("مشتری: " + result.d.Customer)).append("<br /><br />");
            var tbl = $("<table />").attr({
                "border": "1",
                "cellpadding": "2",
                "cellspacing": "0",
                "id": "basketTbl",
                "class": "basketTable"
            });
            var tr = $("<tr />");
            var td = $("<th />").text("ردیف");
            tr.append(td);
            td = $("<th />").text("عنوان محصول");
            tr.append(td);
            td = $("<th />").text("تعداد");
            tr.append(td);
            td = $("<th />").text("قیمت (تومان)");
            tr.append(td);
            td = $("<th />").attr("colspan", "2").text("درصد و مقدار تخفیف");
            tr.append(td);
            td = $("<th />").text("مبلغ کل");
            tr.append(td);
            tbl.append(tr);
            var totalCount = 0;
            var finalCost = 0;
            var guarantyTbl = $("<table />").attr({ "border": "1", "cellpadding": "0", "cellspacing": "0" });
            guarantyTbl.append('<tr><th rowspan="2">نام محصول</th><th rowspan="2">مهلت بافت<br />(روز)</th><th colspan="2">قیمت خرید تضمینی محصول بافته شده</th></tr>');
            guarantyTbl.append("<tr><th>با چله پنبه ای</th><th>با چله ابریشم</th></tr>");
            var hasGuaranty = false;
            for (var i in result.d.Items) {
                tr = $("<tr />");
                td = $("<td />").text(eval(i) + 1);
                tr.append(td);
                td = $("<td />").text(result.d.Items[i].Title);
                tr.append(td);
                var count = result.d.Items[i].Count;
                totalCount += count;
                td = $("<td />").text(count);
                tr.append(td);
                var price = result.d.Items[i].Price;
                var percent = result.d.Items[i].Percent;
                var discount = price * percent / 100;
                var fee = count * (price - discount);
                td = $("<td />").text(price);
                tr.append(td);
                td = $("<td />").text(percent);
                tr.append(td);
                td = $("<td />").text(discount);
                tr.append(td);
                td = $("<td />").text(fee);
                finalCost += fee;
                tr.append(td);
                tbl.append(tr);
                if (result.d.Items[i].Guaranty) {
                    hasGuaranty = true;
                    tr = $("<tr />");
                    td = $("<td />").text(result.d.Items[i].Title);
                    tr.append(td);
                    td = $("<td />").text(result.d.Items[i].Guaranty.Days);
                    tr.append(td);
                    var woodStr = "----------";
                    if (result.d.Items[i].Guaranty.Wood)
                        woodStr = result.d.Items[i].Guaranty.Wood * result.d.Items[i].Guaranty.Price;
                    td = $("<td />").text(woodStr);
                    tr.append(td);
                    var silkStr = "----------";
                    if (result.d.Items[i].Guaranty.Silk)
                        silkStr = result.d.Items[i].Guaranty.Silk * result.d.Items[i].Guaranty.Price;
                    td = $("<td />").text(silkStr);
                    tr.append(td);
                    guarantyTbl.append(tr);
                }
            }
            tr = $("<tr />").css("font-weight", "bold");
            td = $("<td />");
            tr.append(td);
            td = $("<td />").css({ "text-align": "left", "padding-left": "50px" }).text("جمع");
            tr.append(td);
            td = $("<td />").text(totalCount);
            tr.append(td);
            td = $("<td />");
            tr.append(td);
            td = $("<td />");
            tr.append(td);
            td = $("<td />");
            tr.append(td);
            td = $("<td />").text(finalCost);
            tr.append(td);
            tbl.append(tr);
            div.append(tbl);
            div.append($("<span />").text("نشانی خریدار: " + result.d.Address)).append("<br />");
            div.append($("<span />").text("اعتبار حساب شما پس از این فاکتور: " + result.d.Credit + " تومان.")).append("<br />");
            var desc = result.d.Desc;
            if (desc != "")
                div.append($("<span />").text("توضیحات: " + desc));
            if (hasGuaranty) {
                var guarantydiv = $("<div />").addClass("guarantyBox");
                guarantydiv.append("<span style='color: #5968a2;'>محصولات دارای تضمین خرید پس از بافت در این فاکتور، مشروط به پذیرش قوانین آن توسط مشتری</span>");
                guarantydiv.append(guarantyTbl);
                guarantydiv.append("<span style='color: #5968a2; font-size: 9px;'>تابلوفرش های عرضی که با استفاده از نقشه چرخیده به صورت قدی بافته شوند، دارای تضمین خرید نخواهند بود.<br />" +
                "ارایه فاکتور رسمی در هنگام ارسال فرش برای خرید تضمینی توسط شرکت، الزامی است.</span>");
                div.append(guarantydiv);
            }
            var btns = $("<div />");
            var printBtn = $("<input />").attr("type", "button").val("چاپ فاکتور").click(PrintPreBill);
            var printBtn2 = $("<input />").attr("type", "button").css("float", "left").val("چاپ فاکتور برای خریدار").click(PrintFakeBill);
            btns.append(printBtn); //.append(printBtn2);
            $("#basket").html("").append(div);
            div.after(btns);
            $("#basket").show();
            $("#mainpanel #galleryLoading").remove();
            $("#mainpanel #maincontent").slideDown();
        },
        error: AjaxError
    });
}
function PrintFakeBill() {

}
function CalculateTotalPrice() {
    var totalPrice = 0;
    var totalCount = 0;
    var totalDiscount = 0;
    var tbl = $("#basketTbl").find("span").each(function (index, element) {
        var count = eval(element.innerHTML);
        totalCount += count;
        var priceTd = $(element).parent().next();
        var price = eval(priceTd.text());
        var discount = eval(priceTd.attr("discount"));
        totalPrice += count * price;
        totalDiscount += count * discount;
    });
    // به روز رسانی جمع مبلغ
    $("#totalPriceDiv").text("جمع مبلغ محصولات موجود در سبد خرید " + totalPrice + " تومان.");
    $("#totalDiscountDiv").text("مبلغ نهایی پس از کسر تخفیفات " + (totalPrice - totalDiscount) + " تومان.");
    // به روز رسانی تعداد محصولات موجود در سبد خرید
    $("#_basketStatus span").html("« <b>سبد خرید</b> »: " + totalCount + " محصول");
    // به روز رسانی ردیف
    $(".rowcounter").each(function (index, element) {
        $(element).text(index + 1);
    });
}
function IncreaseCredit() {
    $("#mainpanel #maincontent").slideUp("normal", function () {
        $("#mainpanel #maincontent").children().hide();
        $("#mainpanel").append($("<center />").attr("id", "galleryLoading").append($("<img />").attr("src", "images/loading.gif")));
    });
    //accounts
    var start = "";
    if (_accDateFromDay.selectedIndex &&
                _accDateFromMonth.selectedIndex &&
                _accDateFromYear.selectedIndex) {
        start = _accDateFromDay.selectedIndex + "/" +
                _accDateFromMonth.selectedIndex + "/" +
                (_accDateFromYear.selectedIndex + 1389);
    }
    var end = "";
    if (_accDateToDay.selectedIndex &&
                _accDateToMonth.selectedIndex &&
                _accDateToYear.selectedIndex) {
        end = _accDateToDay.selectedIndex + "/" +
                _accDateToMonth.selectedIndex + "/" +
                (_accDateToYear.selectedIndex + 1389);
    }
    $.ajax({
        type: "POST",
        url: "Service.asmx/GetUserAccount",
        data: '{"start":"' + start + '", "end":"' + end + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            $("#_accList").html("");
            for (var i in result.d) {
                var tr = $("<tr />");
                var td = $("<td />").text(eval(i) + 1);
                tr.append(td);
                td = $("<td />").text(result.d[i].Date);
                tr.append(td);
                if (result.d[i].Amount < 0) {
                    td = $("<td />");
                    tr.append(td);
                    td = $("<td />").text(result.d[i].Amount * -1);
                    tr.append(td);
                }
                else {
                    td = $("<td />").text(result.d[i].Amount);
                    tr.append(td);
                    td = $("<td />");
                    tr.append(td);
                }
                td = $("<td />").text(result.d[i].Credit);
                tr.append(td);
                td = $("<td />").text(result.d[i].Desc);
                tr.append(td);
                $("#_accList").append(tr);
            }
            $("#accounts").show();
            $("#mainpanel #galleryLoading").remove();
            $("#mainpanel #maincontent").slideDown();
        },
        error: AjaxError
    });
}
function PrintAccountList() {
    var w = window.open();
    var str = '<!DOCTYPE html>';
    str += '<link href="styles/BillPrint.css" rel="stylesheet" type="text/css" />';
    str += '<div style="width: 600px; margin: 0 auto;"><center><h4>شرکت فرش دارکوب امروز<br />صورتحساب عملکرد مالی</h4>';
    var start = "";
    if (_accDateFromDay.selectedIndex &&
                _accDateFromMonth.selectedIndex &&
                _accDateFromYear.selectedIndex) {
        start = _accDateFromDay.selectedIndex + " " +
                _accDateFromMonth.options[_accDateFromMonth.selectedIndex].text + " " +
                (_accDateFromYear.selectedIndex + 1389);
    }
    var end = "";
    if (_accDateToDay.selectedIndex &&
                _accDateToMonth.selectedIndex &&
                _accDateToYear.selectedIndex) {
        end = _accDateToDay.selectedIndex + " " +
                _accDateToMonth.options[_accDateToMonth.selectedIndex].text + " " +
                (_accDateToYear.selectedIndex + 1389);
    }
    if (start)
        str += " از تاریخ: " + start;
    if (end)
        str += " تا تاریخ: " + end;
    str += "</center><br />";
    str += $("#accounts .basketTable")[0].outerHTML;
    str += "</div>";
    w.document.write(str);
    w.print();
    w.document.close();
}
function ChangeCategory() {
    var _categories = this;
    if ($(this).next().is("div"))
        $(this).next().remove();
    if (_categories.selectedIndex == 0)
        return;
    var div = $("<div />");
    div.append($("<img />").attr("src", "images/waiting.gif"));
    $(_categories).after(div);
    if (_categories.options[_categories.selectedIndex].getAttribute("type") == "1") {
        $.ajax({
            type: "POST",
            url: "Service.asmx/GetCategoryTabloues",
            data: '{"catId":"' + _categories.value + '"}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            processdata: true,
            success: function (result) {
                var s = $("<select />").append(o).change(ChangeProduct);
                var o = $("<option />").css("color", "#0000ff").text("انتخاب و نمایش محصول");
                s.append(o);
                for (var i in result.d) {
                    o = $("<option />").text(result.d[i].Name + " (" + result.d[i].Count + " تخته)").val(result.d[i].ID);
                    s.append(o);
                }
                div.html("").append(s);
            },
            error: AjaxError
        });
    }
    else {
        $.ajax({
            type: "POST",
            url: "Service.asmx/GetGalleries",
            data: '{"catId":"' + _categories.value + '"}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            processdata: true,
            success: function (result) {
                var o = $("<option />").css("color", "#0000ff").text("انتخاب گالری");
                var s = $("<select />").append(o).change(ChangeGallery);
                o = $("<option />").css("color", "#ff0000").text("همه محصولات این دسته").val(0);
                s.append(o);
                for (var i in result.d) {
                    var data = result.d[i].Data.split("~");
                    var visible = eval(data[0].toLowerCase());
                    var sale = eval(data[1].toLowerCase());
                    if (!sale)
                        continue;
                    o = $("<option />").text(result.d[i].Name).val(result.d[i].ID);
                    s.append(o);
                }
                div.html("").append(s);
            },
            error: AjaxError
        });
    }
}
function ChangeGallery() {
    var _galleries = this;
    if ($(this).next().is("div"))
        $(this).next().remove();
    if (_galleries.selectedIndex == 0)
        return;
    var div = $("<div />");
    div.append($("<img />").attr("src", "images/waiting.gif"));
    $(_galleries).after(div);
    $.ajax({
        type: "POST",
        url: "Service.asmx/NewGetProducts",
        data: '{"galleryId":"' + _galleries.value + '", "categoryId":"' + _categories.value + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            var o = $("<option />").css("color", "#0000ff").text("انتخاب محصول و نمایش موجودی").val(0);
            var g = $("<select />").append(o).change(ChangeProduct);
            for (var i in result.d) {
                var visible = result.d[i].Visible;
                var sale = result.d[i].Sale;
                if (!sale)
                    continue;
                var stock = result.d[i].Stock;
                var exist = result.d[i].Exist;
                var positiveSale = result.d[i].PSale && !exist;
                var discontinue = result.d[i].Discontinue;
                var guaranty = result.d[i].Guaranty;
                var bgcolor = "";
                if (exist)
                    bgcolor = "#b6dcff";
                else if (stock > 5)
                    bgcolor = "#c0edda";
                else if (stock <= 5 && stock > 0)
                    bgcolor = "#cbffb6";
                else if (stock == 0)
                    bgcolor = "#f9ffb6";
                else if (stock < 0 && stock >= -5)
                    bgcolor = "#fcdab6";
                else
                    bgcolor = "#ffb6b6";
                var stockStr = " (موجودی: " + stock + ")";
                if (exist)
                    stockStr = " (موجود)";
                o = $("<option />").attr({ "vis": visible, "dis": discontinue, "pos": positiveSale, "gua": guaranty }).css("background-color", bgcolor).text(result.d[i].Name + stockStr).val(result.d[i].ID);
                g.append(o);
            }
            div.html("").append(g);
        },
        error: AjaxError
    });
}
function ChangeProduct() {
    var _products = this;
    if ($(this).next().is("div"))
        $(this).next().remove();
    if (_products.selectedIndex == 0)
        return;
    var visible = eval(_products.options[_products.selectedIndex].getAttribute("vis"));
    var positive = eval(_products.options[_products.selectedIndex].getAttribute("pos"));
    var discontinue = eval(_products.options[_products.selectedIndex].getAttribute("dis"));
    var guaranty = eval(_products.options[_products.selectedIndex].getAttribute("gua"));
    var div = $("<div />");
    div.append($("<img />").attr("src", "images/waiting.gif"));
    $(_products).after(div);
    $.ajax({
        type: "POST",
        url: "Service.asmx/ProductsList",
        data: '{"id":"' + _products.value + '", "catId":"' + $("#_categories").val() + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (result) {
            var prices = $("<table />").attr({ "cellpadding": "0", "cellspacing": "0" }).addClass("prices");
            var pricetr, pricetd;
            var categories = $("#_categories")[0];
            var type = categories.options[categories.selectedIndex].getAttribute("type");
            if (type == 1) {
                pricetr = $("<tr />");
                $("<th />").text("ردیف").appendTo(pricetr);
                //$("<th />").text("ابعاد (گره)").appendTo(pricetr);
                $("<th />").text("رج شمار").appendTo(pricetr);
                $("<th />").text("ابعاد (سانت)").appendTo(pricetr);
                //$("<th />").text("بافت").appendTo(pricetr);
                $("<th />").text("نوع چله").appendTo(pricetr);
                $("<th />").text("پرداخت").appendTo(pricetr);
                $("<th />").text("شور").appendTo(pricetr);
                $("<th />").text("شیرازه").appendTo(pricetr);
                $("<th />").text("دوگره").appendTo(pricetr);
                $("<th />").text("کیفیت بافت").appendTo(pricetr);
                $("<th />").text("قیمت (تومان)").appendTo(pricetr);
                $("<th />").text("مشاهده محصول").appendTo(pricetr);
                $("<th />").text("سبد خرید").appendTo(pricetr);
                prices.append(pricetr);
                for (var i in result.d) {
                    var title = categories.options[categories.selectedIndex].text + " ";
                    title += _products.options[_products.selectedIndex].text.split("(")[0].trim();
                    title += " (" + result.d[i].WareCode + ")";
                    pricetr = $("<tr />");

                    pricetd = $("<td />").text(eval(i) + 1);
                    pricetr.append(pricetd);
                    //pricetd = $("<td />").text(result.d[i].Ties);
                    //pricetr.append(pricetd);
                    pricetd = $("<td />").text(result.d[i].Raj);
                    pricetr.append(pricetd);
                    pricetd = $("<td />").text(result.d[i].Dims);
                    pricetr.append(pricetd);
                    //pricetd = $("<td />").text(WaevingName(result.d[i].WaevingTechnic));
                    //pricetr.append(pricetd);
                    pricetd = $("<td />").text(BowstringName(result.d[i].Bowstring));
                    pricetr.append(pricetd);
                    pricetd = $("<td />").text(BrushName(result.d[i].Brush));
                    pricetr.append(pricetd);
                    pricetd = $("<td />").text(WashName(result.d[i].WashType));
                    pricetr.append(pricetd);
                    pricetd = $("<td />").text(BindingName(result.d[i].Binding));
                    pricetr.append(pricetd);
                    pricetd = $("<td />").text(Ties2Name(result.d[i].Ties2));
                    pricetr.append(pricetd);
                    pricetd = $("<td />").attr("align", "center").css({ "font-size": "14px", "background-color": "#cacb9b" }).addClass("btn").text(result.d[i].WaeveQuality).click({ obj: result.d[i] }, ShowQualityDetails);
                    pricetr.append(pricetd);
                    pricetd = $("<td />").css("background-color", "#f1eddf").text(result.d[i].Price);
                    pricetr.append(pricetd);
                    pricetd = $("<td />").addClass("btn").css("background-color", "#d3be9b").text("مشاهده محصول").click({ obj: result.d[i] }, ShowTableau);
                    pricetr.append(pricetd);
                    pricetd = $("<td />").addClass("basket btn").attr({ "title": "اضافه به سبد خرید", "code": result.d[i].Code, "pt": title, "pid": _products.value, "cat": categories.value }).click(AddToBasket);
                    pricetr.append(pricetd);

                    prices.append(pricetr);
                }
                pricetd = $("<td />").attr("colspan", 14).text("* با کلیک بر روی عدد کیفیت بافت میتوانید جزییات کارنامه آن را مشاهده نمایید!");
                pricetr = $("<tr />").append(pricetd);
                prices.append(pricetr);
                pricetd = $("<td />").attr("colspan", 14).text("* با کلیک بر روی لینک مشاهده محصول میتوانید مشخصات کامل آن را مشاهده نمایید!");
                pricetr = $("<tr />").append(pricetd);
                prices.append(pricetr);
            }
            else {
                pricetr = $("<tr />");
                pricetd = $("<td />").attr({ "colspan": "3", "align": "center" });
                var viewProd = $("<span />").attr("data", _products.value).addClass("btn").text('مشاهده محصول').click(ShowProduct);
                if (visible)
                    pricetd.append(viewProd);
                if (positive)
                    pricetd.append($("<img />").attr({ "src": "images/plus.png", "title": "این محصول فقط به هنگام مثبت بودن موجودی به فروش میرسد." }).css("margin-right", "10px"));
                if (discontinue)
                    pricetd.append($("<img />").attr({ "src": "images/delete.png", "title": "این محصول پس از اتمام موجودی از خط تولید خارج خواهد شد." }).css("margin-right", "10px"));
                if (guaranty)
                    pricetd.append($("<img />").attr({ "src": "images/coin.png", "title": "این محصول دارای تضمین خرید پس از بافت میباشد." }).css("margin-right", "10px"));
                pricetr.append(pricetd);
                prices.append(pricetr);
                for (var i in result.d) {
                    pricetr = $("<tr />");
                    pricetd = $("<td />").text(result.d[i].Title);
                    pricetr.append(pricetd);
                    pricetd = $("<td />").html("قیمت : <span style='color:#91201f; font-size: 12px;'>" + result.d[i].Price + "</span> تومان");
                    pricetr.append(pricetd);
                    pricetd = $("<td />").addClass("basket btn").attr({ "title": "اضافه به سبد خرید", "code": result.d[i].Code, "pt": result.d[i].Title, "pid": _products.value, "cat": categories.value }).click(AddToBasket);
                    pricetr.append(pricetd);
                    prices.append(pricetr);
                }
            }
            div.html("").append(prices);
        },
        error: AjaxError
    });
}
function ShowQualityDetails(event) {

    var obj = event.data.obj;

    $("#qualityDetails span").unbind().click(function () {
        $("#mainpanel #maincontent").slideUp("normal", function () {
            $("#mainpanel #maincontent").children().hide();
            $("#mainpanel #maincontent #basket").show();
            $("#mainpanel #maincontent").slideDown();
        });
    });
    var table = $("#qualityDetails table tbody");
    table.html("");
    var tr = $("<tr />");
    var td = $("<td />").text("بافت").attr("align", "center").css({ "font-weight": "bold", "color": "#2626b3" });
    tr.append(td);
    td = $("<td />").text("ریز و یکدست و محکم بودن گره ها - صاف و مستقیم بودن امتداد رج ها - صحیح کشیدن پودها");
    tr.append(td)
    td = $("<td />").text(QualityName(obj.QualityWaeve)).css({ "font-weight": "bold", "color": "#b32626" });
    tr.append(td);
    td = $("<td />").text(obj.QualityWaeveDesc);
    tr.append(td);
    td = $("<td />").attr("align", "center");
    if (obj.QualityWaevePic) {
        var img = $("<img />").attr("src", "files/" + obj.QualityWaevePic);
        var big = $("<a />").addClass("big").attr({ "href": "files/" + obj.QualityWaevePic, "target": "_blank" }).append(img);
        td.append(big);
    }
    else
        td.text("-----");
    tr.append(td);
    table.append(tr);

    tr = $("<tr />");
    td = $("<td />").text("رنگ آمیزی").attr("align", "center").css({ "font-weight": "bold", "color": "#2626b3" });
    tr.append(td);
    td = $("<td />").text("تطبیق رنگ های فرش با نقشه - عدم وجود فاصله (پرش) رنگی - عدم وجود لکه های رنگی ناشی از علامت گذاری چله ها - حفظ کیفیت رنگ پس از شور");
    tr.append(td)
    td = $("<td />").text(QualityName(obj.QualityColoring)).css({ "font-weight": "bold", "color": "#b32626" });
    tr.append(td);
    td = $("<td />").text(obj.QualityColoringDesc);
    tr.append(td);
    td = $("<td />").attr("align", "center");
    if (obj.QualityColoringPic) {
        img = $("<img />").attr("src", "files/" + obj.QualityColoringPic);
        big = $("<a />").addClass("big").attr({ "href": "files/" + obj.QualityColoringPic, "target": "_blank" }).append(img);
        td.append(big);
    }
    else
        td.text("-----");
    tr.append(td);
    table.append(tr);

    tr = $("<tr />");
    td = $("<td />").text("دقت").attr("align", "center").css({ "font-weight": "bold", "color": "#2626b3" });
    tr.append(td);
    td = $("<td />").text("اجرای صحیح و دقیق نقشه بافت - عدم وجود غلط بافی یا حذف رج");
    tr.append(td);
    td = $("<td />").text(QualityName(obj.QualityAccurance)).css({ "font-weight": "bold", "color": "#b32626" });
    tr.append(td);
    td = $("<td />").text(obj.QualityAccuranceDesc);
    tr.append(td);
    td = $("<td />").attr("align", "center");
    if (obj.QualityAccurancePic) {
        img = $("<img />").attr("src", "files/" + obj.QualityAccurancePic);
        big = $("<a />").addClass("big").attr({ "href": "files/" + obj.QualityAccurancePic, "target": "_blank" }).append(img);
        td.append(big);
    }
    else
        td.text("-----");
    tr.append(td);
    table.append(tr);

    tr = $("<tr />");
    td = $("<td />").text("تناسب").attr("align", "center").css({ "font-weight": "bold", "color": "#2626b3" });
    tr.append(td);
    td = $("<td />").text("رعایت و اجرای دقیق اندازه ها (کوتاه یا بلند نشدن فرش) - تناسب طول و عرض فرش با یکدیگر");
    tr.append(td);
    td = $("<td />").text(QualityName(obj.QualityProperiety)).css({ "font-weight": "bold", "color": "#b32626" });
    tr.append(td);
    td = $("<td />").text(obj.QualityProperietyDesc);
    tr.append(td);
    td = $("<td />").attr("align", "center");
    if (obj.QualityProperietyPic) {
        img = $("<img />").attr("src", "files/" + obj.QualityProperietyPic);
        big = $("<a />").addClass("big").attr({ "href": "files/" + obj.QualityProperietyPic, "target": "_blank" }).append(img);
        td.append(big);
    }
    else
        td.text("-----");
    tr.append(td);
    table.append(tr);

    tr = $("<tr />");
    td = $("<td />").text("تعادل").attr("align", "center").css({ "font-weight": "bold", "color": "#2626b3" });
    tr.append(td);
    td = $("<td />").text("گونیا بودن اضلاع - نداشتن سرکجی و عدم وجود کیس و چین افتادگی");
    tr.append(td);
    td = $("<td />").text(QualityName(obj.QualityBalance)).css({ "font-weight": "bold", "color": "#b32626" });
    tr.append(td);
    td = $("<td />").text(obj.QualityBalanceDesc);
    tr.append(td);
    td = $("<td />").attr("align", "center");
    if (obj.QualityBalancePic) {
        img = $("<img />").attr("src", "files/" + obj.QualityBalancePic);
        big = $("<a />").addClass("big").attr({ "href": "files/" + obj.QualityBalancePic, "target": "_blank" }).append(img);
        td.append(big);
    }
    else
        td.text("-----");
    tr.append(td);
    table.append(tr);

    tr = $("<tr />");
    td = $("<td />").text("موارد خاص").attr("align", "center").css({ "font-weight": "bold", "color": "#2626b3" });
    tr.append(td);
    td = $("<td />").text("هر نوع عیوب احتمالی دیگر که شامل موارد فوق الذکر نباشد!");
    tr.append(td);
    td = $("<td />").text(QualitySpecialName(obj.QualitySpecial)).css({ "font-weight": "bold", "color": "#b32626" });
    tr.append(td);
    td = $("<td />").text(obj.QualitySpecialDesc);
    tr.append(td);
    td = $("<td />").attr("align", "center");
    if (obj.QualitySpecialPic) {
        img = $("<img />").attr("src", "files/" + obj.QualitySpecialPic);
        big = $("<a />").addClass("big").attr({ "href": "files/" + obj.QualitySpecialPic, "target": "_blank" }).append(img);
        td.append(big);
    }
    else
        td.text("-----");
    tr.append(td);
    table.append(tr);

    var ul = $("<ul />");
    var li = $("<li />").text("ارزشیابی و تعیین نمره کیفیت هر یک از محصولات توسط دست کم" +
        " دو کارشناس شرکت فرش دارکوب امروز انجام شده و صحت آن از سوی شرکت تضمین شده است.");
    ul.append(li);
    li = $("<li />").text("مشتریان محترم تا ده روز پس از دریافت فرش ،" +
        " امکان مرجوع یا تعویض کردن آن را دارا میباشند!");
    ul.append(li);
    $("#qualityDescs").html("").append(ul);

    $("#mainpanel #maincontent").slideUp("normal", function () {
        $("#mainpanel #maincontent").children().hide();
        $("#qualityDetails").show();
        $("#mainpanel #maincontent").slideDown();
    });
    $(".big img").attr({ "width": "45px", "height": "45px" });
    $(".big").click(function (event) {
        event.preventDefault();
        var tbl = $("<table />").attr("id", "imageOverlay");
        var tr = $("<tr />");
        var td = $("<td />").attr({ "align": "center", "valign": "middle" });
        var img = $("<img />").attr({ "src": this.getAttribute("href") });
        tbl.click(function () { $(this).remove(); });
        td.append(img);
        tr.append(td);
        tbl.append(tr).appendTo("body");
    });
}
function WaevingName(id) {
    switch (id) {
        case 0:
            return "ترکی";
        case 1:
            return "فارسی";
    }
}
function BowstringName(id) {
    switch (id) {
        case 0:
            return "پنبه";
        case 1:
            return "ابریشم";
        case 2:
            return "پشم";
    }
}
function BrushName(id) {
    switch (id) {
        case 0:
            return "بدون پرداخت";
        case 1:
            return "پرداخت تخت";
        case 2:
            return "پرداخت تخت روگیری ساده";
        case 3:
            return "پرداخت تخت روگیری خاص";
        case 4:
            return "پرداخت برجسته";
        case 5:
            return "پرداخت برجسته پفکی";
        case 6:
            return "پرداخت برجسته با دورگیری";
    }
}
function WashName(id) {
    switch (id) {
        case 0:
            return "بدون شور";
        case 1:
            return "روشور";
        case 1:
            return "تمام شور";
    }
}
function BindingName(id) {
    switch (id) {
        case 0:
            return "بدون شیرازه";
        case 1:
            return "شیرازه ساده";
        case 2:
            return "شیرازه سوزنی";
    }
}
function Ties2Name(id) {
    switch (id) {
        case 0:
            return "بدون دو گره";
        case 1:
            return "دوگره ساده";
        case 1:
            return "دوگره مشبک";
        case 1:
            return "دوگره طرح پرچم";
    }
}
function QualityName(id) {
    switch (id) {
        case 0:
            return "ضعیف";
        case 1:
            return "متوسط";
        case 2:
            return "خوب";
        case 3:
            return "عالی";
    }
}
function QualitySpecialName(id) {
    switch (id) {
        case 0:
            return "ندارد";
        case 1:
            return "1-";
        case 2:
            return "2-";
        case 3:
            return "3-";
        case 4:
            return "4-";
    }
}
function ShowTableau(event) {
    var obj = event.data.obj;
    $("#tableau span").unbind().click(function () {
        $("#mainpanel #maincontent").slideUp("normal", function () {
            $("#mainpanel #maincontent").children().hide();
            $("#mainpanel #maincontent #basket").show();
            $("#mainpanel #maincontent").slideDown();
        });
    });
    var tableau = $("#mainpanel #maincontent #tableau");
    tableau.find("table").remove();
    var table = $("<table />").attr({ "cellpadding": "0", "cellspacing": "0", "width": "90%" });
    var tr = $("<tr />").addClass("firstRow");
    var td = $("<td />").attr({"valign": "top", "align":"left"}).css("padding", "5px");
    var str = "ابعاد به گره: " + obj.Ties + "<br />";
    str += "ابعاد به سانت: " + obj.Dims + "<br />";
    str += "تعداد رنگ: " + obj.Colors + "<br />";
    var ties = obj.Ties.split('*');
    str += "تعداد مقاط: " + Math.round(eval(ties[0]) * eval(ties[1]) / 120) / 100 + "<br />";
    var dims = obj.Dims.split('*');
    str += "مساحت: " + eval(dims[0]) * eval(dims[1]) / 10000 + " متر مربع";
    td.html(str);
    tr.append(td);
    td = $("<td />").css("padding", "5px");
    var img = $("<img />").attr("src", "files/products/" + obj.ProdID + "/thumb.jpg");
    var big = $("<a />").addClass("big").attr({ "href": "files/products/" + obj.ProdID + "/pallete.jpg", "target": "_blank" }).css("float", "right").append(img);
    td.append(big);
    tr.append(td);
    table.append(tr);

    tr = $("<tr />");

    td = $("<td />").attr({ "colspan": "2", "align": "center" }).addClass("picalert");
    td.text("*برای مشاهده تصویر بزرگتر محصول، روی تصویر بالا کلیک نمایید."); ;
    tr.append(td);

    table.append(tr);

    tr = $("<tr />");
    td = $("<td />").attr({ "align": "left", "colspan": "2" });
    var palette = $("<div />").addClass("palette");
    for (i in obj.Palette)
        palette.append($("<div />").css("background-color", obj.Palette[i]));
    td.append(palette);
    tr.append(td);
    table.append(tr);

    tr = $("<tr />");
    td = $("<td />").attr({ "align": "right", "colspan": "2" });
    td.append($("<b>").text("اطلاعات مرحله بافت - "));
    str = "رجشمار: " + obj.Raj + " | ";
    str += "چله: " + BowstringName(obj.Bowstring) + " | ";
    str += "نمره کیفیت: " + obj.WaeveQuality;
    td.append(str);
    var details = $("<span />").text(" (مشاهده جزییات)").addClass("btn").click({ obj: obj }, ShowQualityDetails);
    td.append(details);
    td.append("<br />");
    str = BrushName(obj.Brush) + " | ";
    str += WashName(obj.WashType) + " | ";
    str += BindingName(obj.Binding) + " | ";
    str += Ties2Name(obj.Ties2);
    if (obj.Frame)
        str += " | قاب دارد";
    if (obj.Scaff)
        str += " | دار و پایه دارد";
    td.append($("<b>").text("اطلاعات مرحله تکمیل - "));
    td.append(str);
    tr.append(td);
    table.append(tr);

    tr = $("<tr />");
    td = $("<td />").attr({ "align": "right", "colspan": "2" });
    td.html(obj.Materials);
    tr.append(td);
    table.append(tr);

    tableau.append(table);
    $("#mainpanel #maincontent").slideUp("normal", function () {
        $("#mainpanel #maincontent").children().hide();
        tableau.show();
        $("#mainpanel #maincontent").slideDown();
    });
}

