﻿
var ChooseGarment = new Object();

ChooseGarment.first = true;
ChooseGarment.currentData = new Array();
ChooseGarment.currentGarmentStyleId = 0;
ChooseGarment.fullGarmentArray = new Array();
ChooseGarment.currentPage = 1;
ChooseGarment.imagesPerPage = 3;
ChooseGarment.ExistingQuerystringVariables = "";
ChooseGarment.UrlPrefix = "";

function Garments_ChangeGarmentStyle(styleId, styleName, garmentTypeId) {
//    if (first)
//        Garments_ToggleFormToShowDesigns();
    
    if (ChooseGarment.fullGarmentArray[styleId] === undefined) {
        Garments_RequestGarmentsForStyle(styleId, garmentTypeId);
    }
    else {
        ChooseGarment.currentGarmentStyleId = styleId;
        Garments_FlipToPage(1);
    }
    $("#TitleDiv").html(styleName);
    $("#TitleDiv").show();
}

function Garments_RequestGarmentsForStyle(garmentStyleId, garmentTypeId) {
    ChooseGarment.currentGarmentStyleId = garmentStyleId;
    $.ajax({
        type: "POST",
        url: "GarmentSelectorV2.aspx/GetGarmentDataForGarmentStyle",
        cache: false,
        data: "{styleId:" + garmentStyleId + ",garmentTypeId:" + garmentTypeId + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        
        success: Garments_SuccessWithGarmentData
    });
}

function Garments_SuccessWithGarmentData(data) {
    eval(data.d);
    Garments_FlipToPage(1);
}

function Garments_FlipToPage(page) {
    if (ChooseGarment.currentPage == 'viewall')
        Garments_TurnOffViewAll();
    
    var garmentArray = ChooseGarment.fullGarmentArray[ChooseGarment.currentGarmentStyleId];
    ChooseGarment.currentPage = page;
    Garments_AdjustPagingToCurrentPage(garmentArray);
    
    if (ChooseGarment.currentPage == 'viewall') {
        Garments_ViewAll(garmentArray);
    }
    else {
        var baseIndex = (page - 1) * ChooseGarment.imagesPerPage;
        for (var i = 1; i <= ChooseGarment.imagesPerPage; ++i)
            Garments_DisplayGarment(i, baseIndex, garmentArray);
    }
}

function Garments_DisplayGarment(imageIndex, baseIndex, garmentArray) {
    var arrayIndex = baseIndex + (imageIndex - 1);
    var thisData;
    if (garmentArray[arrayIndex] !== undefined) {
        thisData = garmentArray[arrayIndex];
        Garments_SetImage("garmentImage" + (imageIndex), Garments_GetGarmentImagePathFromData(thisData), 'large');
        $("#garmentName" + (imageIndex)).html(Garments_GetGarmentNameFromData(thisData));
        $("#price" + (imageIndex)).html(Garments_GetGarmentPriceFromData(thisData));
        $("#size" + (imageIndex)).html(Garments_GetGarmentSizeFromData(thisData));
        
        $("#garmentImageLink" + (imageIndex)).attr("href", Garments_GetQueryStringOfDataAndExisting(thisData));
        
        $("#garmentImage" + (imageIndex)).attr('class','garmentsImage');
        $("#garmentImage" + (imageIndex)).show();
        $("#garmentName" + (imageIndex)).show();
        $("#price" + (imageIndex)).show();
        $("#size" + (imageIndex)).show();
    }
    else {
        Garments_SetImage("garmentImage" + (imageIndex), "images/dot.gif", 'large');
        $("#garmentImage" + (imageIndex)).attr('class','blankImage');
        $("#garmentImageLink" + (imageIndex)).attr("href", "#");
        $("#garmentName" + (imageIndex)).hide();
        $("#price" + (imageIndex)).hide();
        $("#size" + (imageIndex)).hide();
    }
}

function Garments_AdjustPagingToCurrentPage(garmentArray) {
    var content = "";
    var numberOfPages = Math.ceil(garmentArray.length / (ChooseGarment.imagesPerPage * 1.0));
    
    if (ChooseGarment.currentPage > 1) {
        content = "<a href=\"javascript:Garments_FlipToPage(" + (ChooseGarment.currentPage - 1).toString() + ");\">Previous</a>&nbsp;";
    }
    for (var i=1; i <= numberOfPages; ++i) {
        if (i != ChooseGarment.currentPage) {
            var iStr = i.toString();
            content = content + "<a href=\"javascript:Garments_FlipToPage(" + iStr + ");\">" + iStr + "</a>&nbsp;";
        }
        else {
            content = content + i.toString() + "&nbsp;";
        }
        if (i % 15 == 0) {
            content = content + "<br/>";
        }
    }
    if (ChooseGarment.currentPage < numberOfPages) {
        content = content + "<a href=\"javascript:Garments_FlipToPage(" + (ChooseGarment.currentPage + 1).toString() + ");\">Next</a>&nbsp;";
    }
    content = content + "<a href=\"javascript:Garments_FlipToPage('viewall');\">View All</a>";
    var pagingDiv = $("#PagingDiv");
    pagingDiv.html(content);
    pagingDiv.show();
}

function Garments_ToggleFormToShowDesigns() {
    splashImageElement.hide(); //splashImageElement is defined and set in the main control
    for (var i=1; i <= ChooseGarment.imagesPerPage; ++i) {
        $("#garmentImage" + i.toString()).show();
    }
    $("#garmentDisplayTable").show();
    
    first = false;
}

function Garments_ResetAllToLoading() {
    var src = "App_Themes/Shared/ajax-loading-graphics/dots64.gif";
    
    for (var i=1; i <= ChooseGarment.imagesPerPage; ++i) {
        Garments_SetImage("garmentImage" + i.toString(), src, 'small');
    }
}

function Garments_SetImage(imageTagId, imageSrc, size) {
    var width = 1, height = 1;
    if (size == 'large') {
        width = 198;
        height = 349;
    }
    else if (size == 'small') {
        width = 64;
        height = 21;
    }
    var imageObject = $("#" + imageTagId);
    imageObject.attr("height", height);
    imageObject.attr("width", width);
    imageObject.attr("src", imageSrc);
}

function Garments_TurnOffViewAll() {
    $("#ViewAllDiv").hide();
    $("#garmentDisplayTable").show();
    $("#ViewAllDiv").html("");
}

function Garments_ViewAll(garmentArray) {
    var content = "";
    content = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"viewAllTable\">";
    for (var i=0; i < garmentArray.length; ++i) {
        if (i % 3 == 0) {
            content = content + "</tr><tr>";
        }
        var largeImageSrc = Garments_GetGarmentImagePathFromData(garmentArray[i]);
        var queryStringOptions = Garments_GetQueryStringOfDataAndExisting(garmentArray[i]);
        content = content + "<td class=\"garmentImageCell\">";
        content = content + "<a href=\"" + queryStringOptions + "\">";
        content = content + "<img src=\"" + largeImageSrc + "\" class=\"garmentsImage\" />";
        content = content + "</a><br/>";
        content = content + "<div class=\"designCode\">" + Garments_GetGarmentNameFromData(garmentArray[i]) + "</div>";
        content = content + "<div class=\"designCode\">" + Garments_GetGarmentPriceFromData(garmentArray[i]) + "</div>";
        content = content + "<div class=\"designCode\">" + Garments_GetGarmentSizeFromData(garmentArray[i]) + "</div>";
        content = content + "</td>";
    }
    content = content + "</table>";
    $("#garmentDisplayTable").hide();
    $("#ViewAllDiv").html(content);
    $("#ViewAllDiv").show();
}


ChooseGarment.GarmentCodeIndex = 0;
ChooseGarment.GarmentNameIndex = 1;
ChooseGarment.GarmentQueryStringIndex = 2;
ChooseGarment.GarmentImagePathIndex = 3;
ChooseGarment.GarmentSizeIndex = 4;
ChooseGarment.GarmentPriceIndex = 5;

function Garments_GetGarmentCodeFromData(data) {
    var splitData = data.split("::");
    return splitData[ChooseGarment.GarmentCodeIndex];
}

function Garments_GetGarmentNameFromData(data) {
    var splitData = data.split("::");
    return splitData[ChooseGarment.GarmentNameIndex];
}

function Garments_GetGarmentQueryStringFromData(data) {
    var splitData = data.split("::");
    return splitData[ChooseGarment.GarmentQueryStringIndex];
}

function Garments_GetGarmentImagePathFromData(data) {
    var splitData = data.split("::");
    return splitData[ChooseGarment.GarmentImagePathIndex];
}

function Garments_GetGarmentSizeFromData(data) {
    var splitData = data.split("::");
    return splitData[ChooseGarment.GarmentSizeIndex];
}

function Garments_GetGarmentPriceFromData(data) {
    var splitData = data.split("::");
    return splitData[ChooseGarment.GarmentPriceIndex];
}


function Garments_GetQueryStringOfDataAndExisting(data) {
    return ChooseGarment.UrlPrefix + "GarmentColor.aspx?GarmentID=" + Garments_GetGarmentQueryStringFromData(data) + "&" + ChooseGarment.ExistingQuerystringVariables;
}
