﻿var appPath = '/'
var ERROR_DISPLAY = 'ALERT';
var SERVICE_TYPE = 'Moving';
var INITIAL_SERVICE = '-1';
var INITIAL_HOMEIMPROVEMENTCAT = '-1';

var Type = '';
var Service = '';
var HomeImprovementZipCode = '';
var HomeImprovementCategory = '';
var HomeImprovementService = '';


function Init()
{
	InitilizeDdlHomeImprovementCategory('ddlHomeImprovementCategory');
}

function GetStateIDFromZip(el) {
    var s;
    $.ajax({
        async: false
            , type: "POST"
            , contentType: "application/json; charset=utf-8"
            , url: appPath + "WebServices/AJAXHelper.asmx/GetStateIDOfZipCode"
            , data: "{ zip : '" + $('#' + el).val() + "' }"
            , dataType: "json"
            , success: function(msg) {
                s = msg;
            }
            , error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert('error');
            }
    });

    if (s != null) {
        return s;
    }

    return '';
}

function ValidateFields(el, sp, val, err) {

    if ($('#' + el).val() == val) {
        $('#' + sp).removeClass('validfields').addClass('invalidfields');
        return err;
    }

    $('#' + sp).removeClass('invalidfields').addClass('validfields');
    return '';
}

function ValidateZipCode(el, sp, req, inv) {

    if ($('#' + el).val() == '') {
        $('#' + sp).removeClass('validfields').addClass('invalidfields');
        return req;
    }
    else {
        fromStateID = GetStateIDFromZip(el);
        if (fromStateID == '' || !($('#' + el).val().match(/^\d\d\d\d\d$/))) {
            $('#' + sp).removeClass('validfields').addClass('invalidfields');
            return inv;
        }
    }

    $('#' + sp).removeClass('invalidfields').addClass('validfields');
    return '';
}

function Validate() {
    var Errors = '';

    Errors += ValidateFields('ddlHomeImprovementCategory', 'spnHomeImprovementCategory', '-1', 'Category - Required\n\r');
    Errors += ValidateFields('ddlHomeImprovementService', 'spnHomeImprovementService', '-1', 'Service - Required\n\r');
    Errors += ValidateZipCode('txtHomeImprovementZipCode', 'spnHomeImprovementZipCode', 'Zip Code - Required\n\r', 'Zip Code - Invalid\n\r');

    if (Errors != '') {
        if (ERROR_DISPLAY == 'ALERT') {
            alert(Errors);
        }
        else {
            $('#spnErrors').show();
        }
        return false;
    }
    else {
        $('#spnErrors').hide();
        return true;
    }
}

function SubmitForm() 
{
    var destination = '/QuoteForm.aspx';
    var queryString = '';
    
    if (Validate()) 
    {
        queryString = '?PageNumber=1';
        queryString += '&ServiceID=' + $('#ddlHomeImprovementService').val();
        queryString += '&ZipCode=' + $('#txtHomeImprovementZipCode').val();
        
        if (destination != '' && queryString != '') {
            window.location.href = destination + queryString;
        }
    }
}

var hiCategoryIdArray = new Array(341, 3422, 342, 343, 344, 3430, 3424, 345, 346, 347, 348, 3425, 3432, 349, 3428, 3410, 3427, 3431, 3411, 3426, 3412, 3413, 3429, 3414, 3415, 3416, 3417, 3418, 3419, 3423, 3420, 3421);
var hiCategoryNameArray = new Array('Additions & Remodeling', 'Appliances','Architectural Design & Engineering','Bathroom Remodeling','Carpentry & Woodwork','Cleaning Services','Closets & Storage','Concrete & Masonry','Countertops','Custom Home','Decks, Fences & Porches','Decorators & Interior Designers','Demoltion & Disposal','Electrical','Fireplaces','Flooring Hardwood/Laminate','Garages, Doors & Openers','Green Projects','Heating & Cooling','Home Electronics, Wiring & Computers','Kitchen Remodeling','Landscaping','Mold Remediation/Water Damage','Painting Interior/Exterior','Plumbing','Roofing & Gutters','Siding Installation','Small Projects & Repairs','Sunrooms','Swimming Pools, Spas & Saunas','Tile','Window & Doors');
var hi_341_IdArray = new Array(2001,2002,2003,2004,2005,2006,2007,2192,2008,2009,2010,2011,2012);
var hi_341_NameArray = new Array('Additions - Major','Additions - Minor','Basement Remodeling','Bath Remodeling - Major','Excavation','Framing','Kitchen Remodeling - Major','Minor Remodels - Carpentry Framing','Remodeling - Major','Remodeling - Minor','Special Finishes','Sunrooms','Walls');
var hi_3422_IdArray = new Array(2180,2181,2182);
var hi_3422_NameArray = new Array('Appliance Installation','Appliance Refinish','Appliance Repair & Service');
var hi_342_IdArray = new Array(2013,2014);
var hi_342_NameArray = new Array('Architectural Plans & Design','Engineering Services');
var hi_343_IdArray = new Array(2004,2016,2017,2018,2019,2006,2021,2191,2192,2008,2009,2024);
var hi_343_NameArray = new Array('Bath Remodeling - Major','Bath Remodeling - Minor','Cabinet - Install','Cabinet - Refacing','Countertops','Framing','Hot Tubs and Spas','Minor Remodels - Carpentry Countertops','Minor Remodels - Carpentry Framing','Remodeling - Major','Remodeling - Minor','Water Heaters');
var hi_344_IdArray = new Array(2025,2026,2027,2028,2029);
var hi_344_NameArray = new Array('Carpentry - Interior Woodwork','General Carpentry','Remodel - Cabinet','Remodel - Closets','Remodel - Framing');
var hi_3430_IdArray = new Array(2133,2209,2210,2156,2163);
var hi_3430_NameArray = new Array('Debris Hauling','Exterior Cleaning','Maid Services','Power Washing','Window Cleaning');
var hi_3424_IdArray = new Array(2187,2019,2006,2188,2189,2190,2191,2192);
var hi_3424_NameArray = new Array('Carpentry','Countertops','Framing','Minor Remodels - Cabinets','Minor Remodels - Carpentry Cabinets','Minor Remodels - Carpentry Closets','Minor Remodels - Carpentry Countertops','Minor Remodels - Carpentry Framing');
var hi_345_IdArray = new Array(2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041);
var hi_345_NameArray = new Array('Brick Work','Chimney Cleaning','Concrete - Foundation/Walls','Concrete - Removal','Concrete - Repairs','Concrete - Stamped/Color','Marble & Granite','Masonry/Stone Work','Retaining Walls','Stucco/Texture - Exterior','Stucco/Texture - Interior','Swimming Pools');
var hi_346_IdArray = new Array(2042,2043,2006,2007,2046,2036,2192,2048,2008,2009);
var hi_346_NameArray = new Array('Countertops - Install','Countertops - Repair','Framing','Kitchen Remodeling - Major','Kitchen Remodeling - Minor','Marble & Granite','Minor Remodels - Carpentry Framing','Outdoor Kitchens','Remodeling - Major','Remodeling - Minor');
var hi_347_IdArray = new Array(2051,2052,2053,2006,2192);
var hi_347_NameArray = new Array('Architects','Custom Home - with lot','Custom Home - without lot','Framing','Minor Remodels - Carpentry Framing');
var hi_348_IdArray = new Array(2055,2086,2056,2057,2058,2059,2060,2061,2062,2063);
var hi_348_NameArray = new Array('Arbors/Trelis/Patio Covers','Arbors/Trellis/Patio Covers','Deck - New','Deck - Repair/Modification','Deck Cleaning/Treatment','Fence - Chainlink','Fence - Repair','Fence - Vinyl','Fence - Wood','Hot Tubs');
var hi_3425_IdArray = new Array(2193,2194,2195);
var hi_3425_NameArray = new Array('Designer Window Treatments','Interior Designers','Lighting Design');
var hi_3432_IdArray = new Array(2133,2216);
var hi_3432_NameArray = new Array('Debris Hauling','Demoltion & Disposal');
var hi_349_IdArray = new Array(2064,2065,2066,2067,2068,2063,2070,2071);
var hi_349_NameArray = new Array('Computers, Cables & Networks','Electrical - Install','Electrical - Repairs','Home Media Systems','Home Security/Alarms','Hot Tubs','Low Voltage Wiring','Solar Panels');
var hi_3428_IdArray = new Array(2031,2204);
var hi_3428_NameArray = new Array('Chimney Cleaning','Fireplaces');
var hi_3410_IdArray = new Array(2072,2073,2074,2075,2076);
var hi_3410_NameArray = new Array('Flooring - Hardwood Install','Flooring - Hardwood Refinishing','Flooring - Laminate','Flooring - Sub-flooring','Flooring - Vinyl/Laminate');
var hi_3427_IdArray = new Array(2200,2201,2202);
var hi_3427_NameArray = new Array('Doors, Garage - Sliding Glass','Garage Door Openers','Patios, Walkways & Steps');
var hi_3431_IdArray = new Array(2213,2071);
var hi_3431_NameArray = new Array('High Efficiency Lighting','Solar Panels');
var hi_3411_IdArray = new Array(2077,2078,2079,2080,2081,2082,2024);
var hi_3411_NameArray = new Array('Air Conditioning','Boiler & Radiators','Fans','HVAC - Install','HVAC - Servicing','Solar Power','Water Heaters');
var hi_3426_IdArray = new Array(2064,2067,2068,2070);
var hi_3426_NameArray = new Array('Computers, Cables & Networks','Home Media Systems','Home Security/Alarms','Low Voltage Wiring');
var hi_3412_IdArray = new Array(2017,2085);
var hi_3412_NameArray = new Array('Cabinet - Install','Cabinet - Refinishing');
var hi_3413_IdArray = new Array(2055,2086,2035,2056,2089,2065,2091,2063,2093,2094,2038,2071,2097,2041,2099);
var hi_3413_NameArray = new Array('Arbors/Trelis/Patio Covers','Arbors/Trellis/Patio Covers','Concrete - Stamped/Color','Deck - New','Drainage','Electrical - Install','Gazebos','Hot Tubs','Landscaping - Design/Install','Landscaping - Maintenance','Retaining Walls','Solar Panels','Sprinklers - Install/Design','Swimming Pools','Tiles - Exterior');
var hi_3429_IdArray = new Array(2205,2206,2207);
var hi_3429_NameArray = new Array('Environmental Services','Mold Remediation','Water Damage');
var hi_3414_IdArray = new Array(2100,2101,2102,2103,2104,2040,2106);
var hi_3414_NameArray = new Array('Drywall/Sheetrock - Install','Drywall/Sheetrock - Repairs','Painting - Exterior','Painting - Interior','Painting - Minor','Stucco/Texture - Interior','Wallpaper - Install/Repairs');
var hi_3415_IdArray = new Array(2107,2063,2109,2110,2111,2071);
var hi_3415_NameArray = new Array('Faucets, Fixtures and Pipes','Hot Tubs','Plumbing - Install','Plumbing - Servicing','Septic, Sewer & Water Mains','Solar Panels');
var hi_3416_IdArray = new Array(2113,2114,2115,2116,2117,2118,2119,2071);
var hi_3416_NameArray = new Array('Celings','Gutters - Install','Roofing - Cedar Shake','Roofing - Composite','Roofing - Metal','Roofing - Tar/Torchdown','Roofing - Tile','Solar Panels');
var hi_3417_IdArray = new Array(2121,2122,2123,2124,2010);
var hi_3417_NameArray = new Array('Exterior - Stucco/Texture','Siding - Aluminum','Siding - Composite/Wood','Siding - Vinyl','Special Finishes');
var hi_3418_IdArray = new Array(2018,2127,2128,2129,2031,2131,2043,2133,2134,2058,2136,2137,2138,2089,2140,2141,2100,2101,2066,2005,2146,2091,2148,2114,2150,2151,2152,2153,2154,2110,2156,2157,2158,2159,2160,2071,2162,2163,2164);
var hi_3418_NameArray = new Array('Cabinet - Refacing','Carpet - Cleaning','Carpet - Installation','Carpet - Repair','Chimney Cleaning','Concrete - Repair','Countertops - Repair','Debris Hauling','Deck - Repairs/Modification','Deck Cleaning/Treatment','Doors - Garage','Doors - Install','Doors - Repairs','Drainage','Dryout Repairs - Non Structural','Dryout Repairs - Structural','Drywall/Sheetrock - Install','Drywall/Sheetrock - Repairs','Electrical - Repairs','Excavation','Fence Repairs','Gazebos','Generators','Gutters - Install','Gutters - Repair','Handyman','Home/Office Cleaning','Insulation','Laminate & Vinyl','Plumbing - Servicing','Power Washing','Roof Cleaning/Treatment','Roofing - Repairs','Sheds','Siding - Repairs','Solar Panels','Wallpaper - Install/Removal','Window Cleaning','Window Repair');
var hi_3419_IdArray = new Array(2001,2002,2091,2168,2071,2011);
var hi_3419_NameArray = new Array('Additions - Major','Additions - Minor','Gazebos','Remodeling','Solar Panels','Sunrooms');
var hi_3423_IdArray = new Array(2184,2041,2024);
var hi_3423_NameArray = new Array('Saunas','Swimming Pools','Water Heaters');
var hi_3420_IdArray = new Array(2036,2172,2173);
var hi_3420_NameArray = new Array('Marble & Granite','Tile - Exterior','Tile - Interior');
var hi_3421_IdArray = new Array(2137,2175,2176,2177,2178,2179);
var hi_3421_NameArray = new Array('Doors - Install','Garage Doors, Openers','Skylights - Install','Windows Install - Major','Windows Install - Minor','Windows Treatments');

function InitilizeDdlHomeImprovementCategory(objId) {

    $('#' + objId).attr('disabled', true).html(CreateSelectOption('', 'Loading Categories'));

    var options = '';
    options = CreateSelectOption('-1', 'Select a category');
    
    for ( i = 0; i < hiCategoryIdArray.length; i++ ) 
    {
         options += CreateSelectOption(hiCategoryIdArray[i], hiCategoryNameArray[i]);
    }
    
    $('#' + objId).attr('disabled', false).html(options);
    $('#' + objId).val(INITIAL_HOMEIMPROVEMENTCAT);
    
    InitilizeDdlHomeImprovementService(INITIAL_HOMEIMPROVEMENTCAT);
}

function InitilizeDdlHomeImprovementService(Id) 
{
    switch (Id) {
        case ('341'): var objIdArray = hi_341_IdArray; var objNameArray = hi_341_NameArray; break;
        case ('3422'): var objIdArray = hi_3422_IdArray; var objNameArray = hi_3422_NameArray; break;
        case ('342'): var objIdArray = hi_342_IdArray; var objNameArray = hi_342_NameArray; break;
        case ('343'): var objIdArray = hi_343_IdArray; var objNameArray = hi_343_NameArray; break;
        case ('344'): var objIdArray = hi_344_IdArray; var objNameArray = hi_344_NameArray; break;
        case ('3430'): var objIdArray = hi_3430_IdArray; var objNameArray = hi_3430_NameArray; break;
        case ('3424'): var objIdArray = hi_3424_IdArray; var objNameArray = hi_3424_NameArray; break;
        case ('345'): var objIdArray = hi_345_IdArray; var objNameArray = hi_345_NameArray; break;
        case ('346'): var objIdArray = hi_346_IdArray; var objNameArray = hi_346_NameArray; break;
        case ('347'): var objIdArray = hi_347_IdArray; var objNameArray = hi_347_NameArray; break;
        case ('348'): var objIdArray = hi_348_IdArray; var objNameArray = hi_348_NameArray; break;
        case ('3425'): var objIdArray = hi_3425_IdArray; var objNameArray = hi_3425_NameArray; break;
        case ('3432'): var objIdArray = hi_3432_IdArray; var objNameArray = hi_3432_NameArray; break;
        case ('349'): var objIdArray = hi_349_IdArray; var objNameArray = hi_349_NameArray; break;
        case ('3428'): var objIdArray = hi_3428_IdArray; var objNameArray = hi_3428_NameArray; break;
        case ('3410'): var objIdArray = hi_3410_IdArray; var objNameArray = hi_3410_NameArray; break;
        case ('3427'): var objIdArray = hi_3427_IdArray; var objNameArray = hi_3427_NameArray; break;
        case ('3431'): var objIdArray = hi_3431_IdArray; var objNameArray = hi_3431_NameArray; break;
        case ('3411'): var objIdArray = hi_3411_IdArray; var objNameArray = hi_3411_NameArray; break;
        case ('3426'): var objIdArray = hi_3426_IdArray; var objNameArray = hi_3426_NameArray; break;
        case ('3412'): var objIdArray = hi_3412_IdArray; var objNameArray = hi_3412_NameArray; break;
        case ('3413'): var objIdArray = hi_3413_IdArray; var objNameArray = hi_3413_NameArray; break;
        case ('3429'): var objIdArray = hi_3429_IdArray; var objNameArray = hi_3429_NameArray; break;
        case ('3414'): var objIdArray = hi_3414_IdArray; var objNameArray = hi_3414_NameArray; break;
        case ('3415'): var objIdArray = hi_3415_IdArray; var objNameArray = hi_3415_NameArray; break;
        case ('3416'): var objIdArray = hi_3416_IdArray; var objNameArray = hi_3416_NameArray; break;
        case ('3417'): var objIdArray = hi_3417_IdArray; var objNameArray = hi_3417_NameArray; break;
        case ('3418'): var objIdArray = hi_3418_IdArray; var objNameArray = hi_3418_NameArray; break;
        case ('3419'): var objIdArray = hi_3419_IdArray; var objNameArray = hi_3419_NameArray; break;
        case ('3423'): var objIdArray = hi_3423_IdArray; var objNameArray = hi_3423_NameArray; break;
        case ('3420'): var objIdArray = hi_3420_IdArray; var objNameArray = hi_3420_NameArray; break;
        case ('3421'): var objIdArray = hi_3421_IdArray; var objNameArray = hi_3421_NameArray; break;
    }  
    
    $('#ddlHomeImprovementService').attr('disabled', true).html(CreateSelectOption('', 'Loading Services'));
    
    var options = '';
    options = CreateSelectOption('-1', 'Select a service');
    
    if( objIdArray != null ) 
    {        
        for ( i = 0; i < objIdArray.length; i++ ) 
        {
             options += CreateSelectOption(objIdArray[i], objNameArray[i]);
        }      
        
        $('#ddlHomeImprovementService').attr('disabled', false)
    }    
    
    $('#ddlHomeImprovementService').html(options);
    $('#ddlHomeImprovementService').val(INITIAL_SERVICE);
}

document.write('<div id="DhtmlDiv" class="js_form_zipfinder"><div class="jsf_close"><span onclick="HideDhtml()">Close</span></div><div class="jsf_iframe"><iframe src="MiscPages/ZipCodeFinder.aspx?FromJS=true" id="iFrameZipFinder" scrolling="no" frameborder="0" width="250" height="250"></iframe></div></div>');
function ShowZipFinder(obj) {
    findPosition(obj, "DhtmlDiv");
}
function findPosition(oElement, dhtmlDiv) {
    oDiv = document.getElementById(dhtmlDiv);
    if (typeof (oElement.offsetParent) != 'undefined') {
        for (var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent) {
            posX += oElement.offsetLeft;
            posY += oElement.offsetTop;
        }
        oDiv.style.top = posY; // - document.getElementById('divSmartLinking').scrollTop;
        if (dhtmlDiv == 'DhtmlDiv')
            oDiv.style.top = posY - 70 + 'px'; // - document.getElementById('divTree').scrollTop;
        //alert(document.getElementById('divSmartLinking').scrollTop);
        oDiv.style.left = posX + 155 + 'px';
    }
    else {
        oDiv.style.top = oElement.y + 'px';
        oDiv.style.left = oElement.x + 'px';
    }
    oDiv.style.visibility = 'visible';
    oDiv.style.display = 'block';
}

function HideDhtml() 
{
    $('#DhtmlDiv').hide();
}
function SetZipFromZipFinder(zipcode)
{
    $('#txtHomeImprovementZipCode').val(zipcode);
    setTimeout("HideDhtml();", 100);
}

function CreateForm()
{
	var html = '';
	html += "<div class='form_wrap'>";
	html +="	<div><span id='spnErrors' class='ErrorMessage' style='display : none;' >The fields marked in red are missing or invalid</span></div>";
	html +="	<div id='divHomeImprovement'>";
	html +="		<div class='js_fields'>";
	html +="			<div class='ht'><!-- --></div>";
	html +="			<div class='f'><span id='spnHomeImprovementCategory'>Category:</span></div>";
	html +="			<div class='v'>";
	html +="				<select id='ddlHomeImprovementCategory' disabled='disabled' class='ddlStyle' onchange='InitilizeDdlHomeImprovementService(this.value)'>";
	html +="					<option value=''>Loading Categories</option>";
	html +="				</select>";
	html +="			</div>";
	html +="			<div class='ht'><!-- --></div>";
	html +="		</div>";
	html +="		<div class='js_fields'> ";
	html +="			<div class='f'><span id='spnHomeImprovementService'>Service:</span></div>";
	html +="			<div class='v'>";
	html +="				<select id='ddlHomeImprovementService' disabled='disabled'>";
	html +="					<option value='0'>Loading Services</option>";
	html +="				</select>";
	html +="			</div>";
	html +="			<div class='ht'><!-- --></div>";
	html +="		</div>";
	html +="		<div class='js_fields'>";
	html +="			<div class='f'><span id='spnHomeImprovementZipCode'>Zip Code:</span></div>";
	html +="			<div class='v'>";
	html +="				<input type='text' maxlength='5' id='txtHomeImprovementZipCode' /> <span id='Span4' onclick='ShowZipFinder(this)'>Zip Code Finder</span>";
	html +="			</div>";
	html +="			<div class='ht'><!-- --></div>";
	html +="		</div> ";
	html +="		<div class='js_btn'>";
	html +="			<div><img src='/images/submit.gif' alt='Get Quotes' onclick='SubmitForm()' /></div>";
	html +="		</div>";
	html +="	</div>";
	html +="</div>";
	document.write(html);
	setTimeout("Init();", 1000);
}