﻿function m17_SearchBySizeLoad() {
    var initialSizeDisplay = m17_GetInitSizeDisplay()
    var tireWidthArea = document.getElementById('m017-search-width');
    if (tireWidthArea != null) {
        m17_FetchWidths(initialSizeDisplay);
    }
}
addEvent(window, 'load', m17_SearchBySizeLoad);

function m17_FetchWidths(initialSizeDisplay) {
    var tireWidthArea = document.getElementById('m017-search-width');
    var tireAspectArea = document.getElementById('m017-search-aspect');
    var tireRimArea = document.getElementById('m017-search-rim');
    var tireSubmitArea = document.getElementById('m017-search-submit');
    var tireWidth = document.getElementById('m017-width');
    var tireAspect = document.getElementById('m017-aspect');
    var tireRim = document.getElementById('m017-rim');
    tireWidth.selectedIndex = 0;
    tireAspect.selectedIndex = 0;
    tireRim.selectedIndex = 0;
    tireWidthArea.style.display = 'none';
    tireAspectArea.style.display = 'none';
    tireRimArea.style.display = 'none';
    tireSubmitArea.style.display = 'none';
    if (tireWidth != null) {
        var ajaxClient = GetAjaxClient();
        if (ajaxClient != null) {
            ajaxClient.onreadystatechange = function() {
                if (ajaxClient.readyState == 4) {
                    if (initialSizeDisplay) {
                        m17_InitPopulateList(tireWidthArea, tireWidth, ajaxClient.responseText);
                    }
                    else {
                        m17_PopulateList(tireWidthArea, tireWidth, ajaxClient.responseText); 
                    }
                }
            }
            var query = 'method=widths';
            ajaxClient.open('GET', document.appPath + '/App_Services/TireLibrary.ashx?' + query, true);
            ajaxClient.send(null);
        }
    }

}

function m17_FetchAspects(initialSizeDisplay) {
    var tireWidthArea = document.getElementById('m017-search-width');
    var tireAspectArea = document.getElementById('m017-search-aspect');
    var tireRimArea = document.getElementById('m017-search-rim');
    var tireSubmitArea = document.getElementById('m017-search-submit');
    var tireWidth = document.getElementById('m017-width');
    var tireAspect = document.getElementById('m017-aspect');
    var tireRim = document.getElementById('m017-rim');
    tireAspect.selectedIndex = 0;
    tireRim.selectedIndex = 0;
    tireAspectArea.style.display = 'none';
    tireRimArea.style.display = 'none';
    tireSubmitArea.style.display = 'none';
    if (tireWidth != null && tireWidth.value != null && tireWidth.value.length > 0) {
        if (tireAspect != null) {
            var width = m17_EncodeQuery(tireWidth.value);
            if (width != document.ddlPrompt) {
                var ajaxClient = GetAjaxClient();
                if (ajaxClient != null) {
                    ajaxClient.onreadystatechange = function() {
                        if (ajaxClient.readyState == 4) {
                            if (initialSizeDisplay) {
                                m17_InitPopulateList(tireAspectArea, tireAspect, ajaxClient.responseText);
                            }
                            else {
                                m17_PopulateList(tireAspectArea, tireAspect, ajaxClient.responseText);
                            }
                        }
                    }
                    var query = 'method=aspects&width=' + width;
                    ajaxClient.open('GET', document.appPath + '/App_Services/TireLibrary.ashx?' + query, true);
                    ajaxClient.send(null);
                }
            }
        }
    }
}

function m17_FetchRims(initialSizeDisplay) {
    var tireWidthArea = document.getElementById('m017-search-width');
    var tireAspectArea = document.getElementById('m017-search-aspect');
    var tireRimArea = document.getElementById('m017-search-rim');
    var tireSubmitArea = document.getElementById('m017-search-submit');
    var tireWidth = document.getElementById('m017-width');
    var tireAspect = document.getElementById('m017-aspect');
    var tireRim = document.getElementById('m017-rim');
    tireRim.selectedIndex = 0;
    tireRimArea.style.display = 'none';
    tireSubmitArea.style.display = 'none';
    if (tireAspect != null && tireAspect.value != null && tireAspect.value.length > 0) {
        if (tireRim != null) {
            var width = m17_EncodeQuery(tireWidth.value);
            var aspect = m17_EncodeQuery(tireAspect.value);
            if (width != document.ddlPrompt && aspect != document.ddlPrompt) {
                var ajaxClient = GetAjaxClient();
                if (ajaxClient != null) {
                    ajaxClient.onreadystatechange = function() {
                        if (ajaxClient.readyState == 4) {
                            if (initialSizeDisplay) {
                                m17_InitPopulateList(tireRimArea, tireRim, ajaxClient.responseText);
                            } else {
                                m17_PopulateList(tireRimArea, tireRim, ajaxClient.responseText);
                            }
                        }
                    }
                    var query = 'method=rims&width=' + width + '&aspect=' + aspect;
                    ajaxClient.open('GET', document.appPath + '/App_Services/TireLibrary.ashx?' + query, true);
                    ajaxClient.send(null);
                }
            }
        }
    }
}

function m17_ShowSizeSubmit() {
    var tireRim = document.getElementById('m017-rim');
    var rim = tireRim.value;
    var tireSubmitArea = document.getElementById('m017-search-submit');
    if (rim != document.ddlPrompt) {
        tireSubmitArea.style.display = 'block';
    } else {
        tireSubmitArea.style.display = 'none';
    }

}

function m17_Submit(ThemeName) {
    var sheet = document.createElement('style')
    sheet.innerHTML += ".body .one-third .module-017 .box .search-term label {display: none;}";
    sheet.innerHTML += ".body .one-third .module-017 .box #m017-width  {display: none;}";
    sheet.innerHTML += ".body .one-third .module-017 .box #m017-aspect  {display: none;}";
    sheet.innerHTML += ".body .one-third .module-017 .box #m017-rim  {display: none;}";
    sheet.innerHTML += ".body .one-third .module-017 .box #m017-search-button  {display: none;}";
    sheet.innerHTML += ".body .one-third .module-017 .box .box-bottom #m17_Loading {display: block;}";
    sheet.innerHTML += ".body .one-third .module-017 .box .box-inner  {height: 50px;}";
    document.body.appendChild(sheet);

    document.getElementById('m17_Loading').innerHTML += "<img src=\"http://www.r2cthemes.com/" + document.getElementById('m17_Loading').getAttribute('rel') + "/i/loading/ajax-loader.gif\" onError=\"this.onerror=null;this.src='http://www.r2cthemes.com/blue/i/loading/ajax-loader.gif';\" alt=\"loading\" class=\"m17_Loading\" />";
}

function m17_PopulateList(area, element, response) {

    for (var count = element.options.length - 1; count > -1; count--) {
        element.options[count] = null;
    }
    var prompt = new Option(document.ddlPrompt, '', true, true);
    element.options[0] = prompt;
    if (response.indexOf('<html>') < 0) {
        var pairs = response.split('||');
        if (pairs != null) {
            for (var index = 0; index < pairs.length; index++) {
                var pair = pairs[index];
                if (pair != null) {
                    var splits = pair.split('|');
                    var name = splits[0];
                    var value = name;
                    if (splits.length > 1)
                        value = splits[1];
                    var option = new Option(name, value, false, false);
                    element.options[element.length] = option;
                }
            }
        }
        area.style.display = 'block';
    }
}

function m17_InitPopulateList(area, element, response) {

    var initIndex = 0;
    var initWidthChk = "m017-search-width";
    var initAspectsChk = "m017-search-aspect";
    var initRimsChk = "m017-search-rim";

    for (var count = element.options.length - 1; count > -1; count--) {
        element.options[count] = null;
    }
    var prompt = new Option(document.ddlPrompt, '', true, true);
    element.options[0] = prompt;
    if (response.indexOf('<html>') < 0) {
        var pairs = response.split('||');
        if (pairs != null) {
            for (var index = 0; index < pairs.length; index++) {
                var pair = pairs[index];
                if (pair != null) {
                    var splits = pair.split('|');
                    var name = splits[0];
                    if (name == 205 && area.id == initWidthChk) {
                        initIndex = index + 1;
                    }
                    if (name == 65 && area.id == initAspectsChk) {
                        initIndex = index + 1;
                    }
                    if (name == 15 && area.id == initRimsChk) {
                        initIndex = index + 1;
                    }
                    var value = name;
                    if (splits.length > 1)
                        value = splits[1];
                    var option = new Option(name, value, false, false);
                    element.options[element.length] = option;
                }
            }
        }
        area.style.display = 'block';
    }

    if (initIndex > 0 && area.id == initWidthChk) {
        document.getElementById('m017-width').selectedIndex = initIndex;
        m17_FetchAspects(true)
    }

    if (initIndex > 0 && area.id == initAspectsChk) {
        document.getElementById('m017-aspect').selectedIndex = initIndex;
        m17_FetchRims(true)
    }

    if (initIndex > 0 && area.id == initRimsChk) {
        document.getElementById('m017-rim').selectedIndex = initIndex;
        document.getElementById('m017-search-submit').style.display = 'block';
    }
}

function m17_EncodeQuery(query) {
    query = query.replace(' ', '+');
    return query;
}

function m17_GetInitSizeDisplay() {
    var init = false;
    if (document.m017InitSizeDisplay != null)
        init = document.m017InitSizeDisplay;
    return init;
}
