
var INVOICEITEMS = new Array( );
var SHIPPING = 0;

var EXPEDITED_DAYS = 0;
var NORMAL_DAYS = 25;

var WHOLE_PERCENT = 0.00;
var WHOLE_CODE = null;

var PRE_ADDRESS = null;

function setSelectValue( select, value ) {
    for( var i = 0; i < select.length; i++ ) {
        if( select.options[i].value == value || ( select.options[i] == null && select.options[i].text == value ) ) {
            select.options[i].selected = true;
        }
        else {
            select.options[i].selected = false;
        }
    }
}

function changeCountryCode( select ) {
    
    if( select.value == 'US' ) {
        
        document.getElementById( 'STATE' ).style.display = 'inline';
        document.getElementById( 'STATE_OTH' ).style.display = 'none';

    }
    else {
        document.getElementById( 'STATE' ).style.display = 'none';                     
        document.getElementById( 'STATE_OTH' ).style.display = 'inline';
    }
    reCalculate( );
}

function reCalculate( skipBadWeddingAlert ) {
    
    clearInvoice( );
    
    
    var selectedTypeIndex = -1;
    var selectedTypeValue = document.getElementById( 'TYPE' ).value;
    var i = 0;
    for( var i = 0; i < PRICES.length; i++ ) {
        
        if( PRICES[i][0] == selectedTypeValue ) {
            
            selectedTypeIndex = i;
            
        }
        
    }
    
    if( selectedTypeIndex == -1 ) {
        
        fatalError( );
        return;
    }
    var weddingDate = getAndValidateWeddingDate( );
    if( weddingDate == null ) {
        document.getElementById( 'DATE_NOTE' ).style.display = 'block';
    } 
    else {
        document.getElementById( 'DATE_NOTE' ).style.display = 'none';
    }        

    var shipping = MISC_PRICING['domestic_regular_shipping'];
    var countryCodeSelection = document.getElementById( 'COUNTRY' ).value; 
    if( countryCodeSelection != 'US' ) {
        
        if( countryCodeSelection == 'CA' ) {
            shipping = MISC_PRICING['canada_regular_shipping'];
        }
        else if( countryCodeSelection == 'GB' ) {
            shipping = MISC_PRICING['uk_regular_shipping'];
        }
        else {
            var shipPriceKey = countryCodeSelection.toLowerCase() + "_regular_shipping";
            shipping = MISC_PRICING[shipPriceKey];
            if( shipping == null ) {
                shipping = 30;
            }
        }
    }
    
    if( document.getElementById( 'REQUIRE_SIGNATURE' ).checked ) {
        shipping += 1.35;
    }
    
    if( weddingDate != null ) {

        var wdStatus = dateStatus( weddingDate );
         
        
        if( wdStatus == 0 ) {
            
            //addInvoiceItem( 'Expedite pending approval', 20, 'EXPEDITE_IMMEDIATE' );
            shipping += MISC_PRICING['expedited_shipping_charge'];
        }
        else if( wdStatus == 1 ) {
            
            //addInvoiceItem( 'Expedite charge', 20, 'EXPEDITE' );
            shipping += MISC_PRICING['expedited_shipping_charge'];
        
        }
        
    }

    
    var numLetters = PRICES[selectedTypeIndex][8];
    
    var let1row = document.getElementById( 'LETTER1ROW' );
    var let2row = document.getElementById( 'LETTER2ROW' );
    var let3row = document.getElementById( 'LETTER3ROW' );
    
    if( numLetters == 1 ) {
        
        showRow( let1row );
        hideRow( let2row );
        hideRow( let3row );
        
    }
    if( numLetters == 2 ) {
        
        showRow( let1row );
        showRow( let2row );
        hideRow( let3row );
        
    }
    if( numLetters == 3 ) {
        
        showRow( let1row );
        showRow( let2row );
        showRow( let3row );
        
    }
    
    document.getElementById( 'LETTER1LABEL' ).innerHTML = PRICES[selectedTypeIndex][9] + ':';
    document.getElementById( 'LETTER2LABEL' ).innerHTML = PRICES[selectedTypeIndex][10] + ':';
    document.getElementById( 'LETTER3LABEL' ).innerHTML = PRICES[selectedTypeIndex][11] + ':';

    
    var subTotal = 0;
    var colorString = '';
    var colorStringArray = new Array( );
    var selectedColors = new Array( );
    var numColors = 0;
    
    colorStringArray.push( document.getElementById( 'COVERAGE' ).value );
    
    var colorPreviewRow = document.getElementById( 'COLOR-PREVIEW-ROW' );
    var colorPreviewDiv = document.getElementById( 'COLOR-PREVIEW' );
    colorPreviewDiv.innerHTML = '';
    
    for( var i = 1; i < 11; i++ ) {
        
        var select = document.getElementById( 'COLOR' + i );
        for( var k = 0; k < select.options.length; k++ ) {
            
            if( select.options[k].selected ) {

                if( select.options[k].value != "" ) {
                    
                    var colorName = select.options[k].text;
                    var colorCode = select.options[k].value;
                    
                    var foundColor = 0;
                    for( var j = 0; j < colorStringArray.length; j++ ) {
                        
                        if( colorStringArray[j] == colorName ) {
                            foundColor = 1;
                        }
                    }
                    if( foundColor == 0 ) {
                    
                        numColors++;
                        colorStringArray.push( colorName );
                        var price = 0;
                        if( numColors > 4 ) {
                            price = Number( PRICES[selectedTypeIndex][5] );
                            subTotal += Number( PRICES[selectedTypeIndex][5] );
                        }
                        var colorNameNoSpace = colorName;
                        colorNameNoSpace = colorNameNoSpace.replace( /\s/g, '' );
                        colorPreviewDiv.innerHTML += "<img src='images/colors/" + colorNameNoSpace + "-75x75.jpg' />";
                        
                        
                    }
                }
            }
        }

    }
    
    if( numColors == 0 ) {
        hideRow( colorPreviewRow );
    }
    else {
        showRow( colorPreviewRow );
    }
    
    colorString = colorStringArray.join( ', ' );
    
    addInvoiceItem( PRICES[selectedTypeIndex][1] + ' (' + generateFontString( numLetters ) + ')', 
                    PRICES[selectedTypeIndex][2], 
                    'MT-' + PRICES[selectedTypeIndex][0], 
                    'FONTS', generateFontOptions( numLetters ),
                    'COLORS', colorString );
                    
    subTotal += Number( PRICES[selectedTypeIndex][2] );
    
    if( document.getElementById( 'DS' ).checked ) {
        addInvoiceItem( 'Doublesided', PRICES[selectedTypeIndex][3], 'DS' );
        subTotal += Number( PRICES[selectedTypeIndex][3] );
    }
    if( document.getElementById( 'CUST_FONT' ).checked ) {
        addInvoiceItem( 'Custom Font Alterations', PRICES[selectedTypeIndex][4], 'CUST_FONT' );
        subTotal += Number( PRICES[selectedTypeIndex][4] );
    }
    if( document.getElementById( 'GOLD' ).checked ) {
        addInvoiceItem( '"Gold" coating', PRICES[selectedTypeIndex][6], 'GOLD' );
        subTotal += Number( PRICES[selectedTypeIndex][6] );
    }
    
    var boqCount = 0;
    if( document.getElementById( 'ADDBOUQET' ).checked ) {
        document.getElementById( 'BOUQUETINFO' ).style.display = 'inline';
        boqCount = Number( document.getElementById( 'BOUQUETCOUNT' ).value );
        var boqFont =  document.getElementById( 'BOUQUETFONT' ).value;
        var boqPrice = MISC_PRICING['few_bouquet_jewels_per'];
        if( boqCount > 4 ) {
            boqPrice = MISC_PRICING['many_bouquet_jewels_per'];
        }
        for( var i = 1; i < 11; i++ ) {
            var input = document.getElementById( 'BOUQUETLETTER' + i );
            if( i <= boqCount ) {
                input.style.display = 'inline';
                var boqLetter = input.value;
                addInvoiceItem( "Bouquet Jewelry (" + boqLetter + ":" + boqFont + ")", boqPrice, 'BOUQUET', 'Letter', boqLetter, 'Font', boqFont );

            }
            else {
                input.style.display = 'none';
            }
        }
    
    }
    else {
        document.getElementById( 'BOUQUETINFO' ).style.display = 'none';
    }
    
    if( document.getElementById( 'SERVINGSET' ).checked ) {
        
        shipping += 4;
        
        var servingSetStyle = document.getElementById( 'SERVINGSETSTYLE' ).value;
        var servingSetStyleLabel = "Blended";
        var servingSetItemNumber = "SERVINGSETBLENDED";
        if( servingSetStyle == "FADED" ) {
            servingSetStyleLabel = "Faded";
            servingSetItemNumber = "SERVINGSETFADED";
        }
        
        document.getElementById( 'SERVINGINFOSPAN' ).style.display = 'inline';
        var ssPrice = MISC_PRICING['serving_set'];
        var brideName = document.getElementById( 'SERVINGSETBRIDE' ).value;
        var groomName = document.getElementById( 'SERVINGSETGROOM' ).value;
        if( brideName == "" ) {
            brideName = "NotProvided";
        }
        if( groomName == "" ) {
            groomName = "NotProvided";
        }
        
        var ssDate = document.getElementById( 'SERVINGSETDATE' ).value;
        if( ssDate == null || ssDate == "" ) {
            document.getElementById( 'SERVINGSETDATE' ).value = weddingDate;
            ssDate = weddingDate;
        }
        if( ssDate == null || ssDate == "" ) {
            ssDate = "NotProvided";
        }
        addInvoiceItem( servingSetStyleLabel + " Serving Set (" + brideName + " & " + groomName + " on " + ssDate + ")", ssPrice, servingSetItemNumber, 'Names', brideName + " & " + groomName, 'Date', ssDate );
        
    }
    else {
        document.getElementById( 'SERVINGINFOSPAN' ).style.display = 'none';
    }
    
    var thickRow = document.getElementById( 'THICKROW' );
    var sidesRow = document.getElementById( 'SIDEROW' );
    
    var thickPrice = PRICES[selectedTypeIndex][7];
    var sidePrice = PRICES[selectedTypeIndex][12];
    
    if( thickPrice == 0 ) {
        hideRow( thickRow );
        hideRow( sidesRow );
    }
    else {
        showRow( thickRow );
        if( document.getElementById( 'THICK' ).checked ) {
            addInvoiceItem( '3/8" Thick Aluminum', thickPrice, 'THICK' );
            subTotal += Number( thickPrice );
            if( sidePrice > 0 ) {
                
                showRow( sidesRow );
                if( document.getElementById( 'SIDES' ).checked ) {
                    addInvoiceItem( 'Cover sides', sidePrice, 'SIDES' );
                    subTotal += Number( sidePrice );
                }
            
            }
        }
        else {
            hideRow( sidesRow );
        }
    }
    
    for( var i = 4; i < numColors; i++ ) {
        addInvoiceItem( 'Extra color', price, 'EXTRA_COLOR' );
    }
    
    SHIPPING = shipping;
    
    drawInvoice( shipping );
    drawPreview( numLetters );
    _drawPreview( 'BOQ_PREVIEW_', 'BOUQUETLETTER', 'BOUQUETFONT', '', boqCount, 1 );
}

function generateFontString( numLetters ) {
    
    var sArray = new Array( );
    for( var i = 1; i <= numLetters; i++ ) {
        
        var letSelect = document.getElementById( 'LETTER' + i );
        var fontSelect = document.getElementById( 'LETTER' + i + '_FONT' );
        
        var letter = "";
        var fontName = "";
        for( var k = 0; k < letSelect.options.length; k++ ) {
            
            if( letSelect.options[k].selected ) {
                letter = letSelect.options[k].value;
            }
            
        }
        for( var j = 0; j < fontSelect.options.length; j++ ) {
            
            if( fontSelect.options[j].selected ) {
                fontName = fontSelect.options[j].value;
            }
            
        }
        
        sArray.push( letter + ':' + fontName );
        
    }
    return sArray.join( '/' );
    
}

function generateFontOptions( numLetters ) {
    
    var sArray = new Array( );
    for( var i = 1; i <= numLetters; i++ ) {
        
        var letSelect = document.getElementById( 'LETTER' + i );
        var fontSelect = document.getElementById( 'LETTER' + i + '_FONT' );
        
        var letter = "";
        var fontName = "";
        for( var k = 0; k < letSelect.options.length; k++ ) {
            
            if( letSelect.options[k].selected ) {
                letter = letSelect.options[k].value;
            }
            
        }
        for( var j = 0; j < fontSelect.options.length; j++ ) {
            
            if( fontSelect.options[j].selected ) {
                fontName = fontSelect.options[j].value;
            }
            
        }
        
        sArray.push( letter + ':' + fontName );
        
    }
    return sArray.join( '/' );
    
}

function clearInvoice( ) {
    
    var invoiceTable = document.getElementById( 'INVOICE' );
    while( invoiceTable.rows.length > 0 ) {
        invoiceTable.deleteRow( 0 );
    }
    
    //invoiceTable.innerHTML = '';
    INVOICEITEMS = new Array( );
    
}

function drawInvoice( shipping ) {
    
    var invoiceTable = document.getElementById( 'INVOICE' );
    var headerRow = invoiceTable.insertRow( invoiceTable.rows.length );
    headerRow.className = 'invoice-header';
    
    var cell = headerRow.insertCell( headerRow.cells.length );
    cell.className = 'invoice-header';
    cell.width = '99%';
    cell.innerHTML = 'Item';
    
    var priceLabel = 'Price';
    
    if( WHOLE_PERCENT > 0 ) {
        cell = headerRow.insertCell( headerRow.cells.length );
        cell.className = 'invoice-header';
        cell.width = '1%';
        cell.innerHTML = 'Retail';
        priceLabel = 'Wholesale';
    }
    
    cell = headerRow.insertCell( headerRow.cells.length );
    cell.className = 'invoice-header';
    cell.width = '1%';
    cell.innerHTML = priceLabel;

    var subTotalValue = 0;
    var retSubTotalValue = 0;
    for( var i = 0; i < INVOICEITEMS.length; i++ ) {
        
        var row = invoiceTable.insertRow( invoiceTable.rows.length );
        var cella = row.insertCell( row.cells.length );
        if( WHOLE_PERCENT > 0 ) {
            var cellOrig = row.insertCell( row.cells.length );
            var retailVal = INVOICEITEMS[i][1] / ( 1 - WHOLE_PERCENT );
            retSubTotalValue += Number( retailVal );
            cellOrig.innerHTML = '$' + formatCurrency( Number( retailVal ) );
        }
        var cellb = row.insertCell( row.cells.length );
        cella.innerHTML = INVOICEITEMS[i][0];
        cellb.innerHTML = '$' + formatCurrency( INVOICEITEMS[i][1] );
        subTotalValue += Number( INVOICEITEMS[i][1] );
        cellb.className = 'price';
    }
    
    var subtot = invoiceTable.insertRow( invoiceTable.rows.length );
    var cella = subtot.insertCell( subtot.cells.length );
    if( WHOLE_PERCENT > 0 ) {
        var tCell = subtot.insertCell( subtot.cells.length );
        tCell.innerHTML = "$" + formatCurrency( retSubTotalValue );
    }
    var cellb = subtot.insertCell( subtot.cells.length );

    cella.className = 'subtotal';
    cellb.className = 'subtotal';
    cella.innerHTML = 'SubTotal:';
    cellb.innerHTML = '$' + formatCurrency( subTotalValue );
    
    
    var ship = invoiceTable.insertRow( invoiceTable.rows.length );
    cella = ship.insertCell( ship.cells.length );
    if( WHOLE_PERCENT > 0 ) {
        var tCell = ship.insertCell( ship.cells.length );
        tCell.innerHTML = '&nbsp;';
    }
    cellb = ship.insertCell( ship.cells.length );
    cella.className = 'shipping';
    cellb.className = 'shipping';
    cella.innerHTML = 'Shipping:';
    cellb.innerHTML = '$' + formatCurrency( shipping );

    var tot = invoiceTable.insertRow( invoiceTable.rows.length );
    cella = tot.insertCell( tot.cells.length );
    if( WHOLE_PERCENT > 0 ) {
        var tCell = tot.insertCell( tot.cells.length );
        tCell.innerHTML = '&nbsp;';
    }
    cellb = tot.insertCell( tot.cells.length );
    cella.className = 'total';
    cellb.className = 'total';
    cella.innerHTML = 'Total:';
    var total = Number( subTotalValue ) + Number( shipping );
    cellb.innerHTML = '$' + formatCurrency( total );
    
    
}

function validateAndSubmit( action ) {
    
    reCalculate( 1 );
    var ppForm = null;
    var forms = document.getElementsByTagName( 'form' );
    for( var i = 0; i < forms.length; i++ ) {
        if( forms[i].name == 'PP_FORM' ) {
            ppForm = forms[i];
        }
    }
    
    if( ppForm == null ) {
        
        fatalError( );
        return;
    
    }
    
    if( action != null ) {
        
        ppForm.action = action;
        
    }
    
    ppForm.innerHTML = '';
    
    //FName
    var fname = mwTrim( document.getElementById( 'FIRST_NAME' ).value );
    if( fname == "" ) {
        
        alert( "You need to fill in your first name" );
        setFocus( 'FIRST_NAME' );
        return;
        
    }
    //LName
    var lname = mwTrim( document.getElementById( 'LAST_NAME' ).value );
    if( lname == "" ) {
        
        alert( "You need to fill in your last name" );
        setFocus( 'LAST_NAME' );
        return;
        
    }
    
    
    //Phone
    var phone = mwTrim( document.getElementById( 'PHONE' ).value );
    
    //Email1
    var email1 = mwTrim( document.getElementById( "EMAIL1" ).value );
    
    
    //Email2
    var email2 = mwTrim( document.getElementById( 'EMAIL2' ).value );
    
    if( email1 != email2 || email1 == "" ) {
        
        alert( "The email addresses you entered do not match each other or are missing, please look them over." );
        setFocus( 'EMAIL1' );
        return;
        
    }
    
    //Wedding Date
    var weddingDate = getAndValidateWeddingDate( );
    
    if( weddingDate == null ) {
        
        alert( "The event date you entered is invalid. If you're unsure exactly when your event will be please enter an approximation." );
        setFocus( 'DATE' );
        return;
        
    }
    
    var wdStatus = dateStatus( weddingDate );
    if( wdStatus == 0 ) {
     
        alert( "Note: The event date you have entered is before I am generally able to fulfill new orders. Your order will still be placed, but I may have to issue a refund if I cannot make that date." );
        
    }
    
    //Country
    var country = mwTrim( document.getElementById( 'COUNTRY' ).value );
    
    //Addr1
    var addr1 = mwTrim( document.getElementById( 'ADDR1' ).value );
    if( addr1 == "" ) {
        
        alert( "You forgot to enter the first line of your address!" );
        setFocus( 'ADDR1' );
        return;
        
    }
    
    
    //Addr2
    var addr2 = mwTrim( document.getElementById( 'ADDR2' ).value );
    
    //City
    var city = mwTrim( document.getElementById( 'CITY' ).value );
    if( city == "" ) {
        
        alert( "You forgot to enter a city!" );
        setFocus( 'CITY' );
        return;
        
    }
    
    
    //State
    var state = mwTrim( document.getElementById( 'STATE' ).value );
    if( country == 'US' && state == "" ) {
        alert( "You forgot to select a state!" );
        setFocus( 'STATE' );
        return;
    }
    
    //StateOth
    var stateOth = mwTrim( document.getElementById( 'STATE_OTH' ).value );
    if( country != 'US' && stateOth == "" ) {
        
        alert( "You forgot to enter a state/province!" );
        setFocus( "STATE_OTH" );
        return;
        
    }
    
    if( country != 'US' ) {
        state = stateOth;
    }
    
    //ZIP
    var zip = mwTrim( document.getElementById( 'ZIP' ).value );
    
    if( country == "US" && ( !zip.match( /\d\d\d\d\d/ ) ) ) {
        
        alert( "You forget to enter a zip!" );
        setFocus( 'ZIP' );
        return;
        
    }
    
    addHiddenToForm( 'first_name', fname, ppForm );
    addHiddenToForm( 'last_name', lname, ppForm );
    addHiddenToForm( 'email', email1, ppForm );
    addHiddenToForm( 'country', country, ppForm );
    addHiddenToForm( 'address1', addr1, ppForm );
    addHiddenToForm( 'address2', addr2, ppForm );
    addHiddenToForm( 'city', city, ppForm );
    addHiddenToForm( 'state', state, ppForm );
    addHiddenToForm( 'zip', zip, ppForm );
    addHiddenToForm( 'invoice', weddingDate + '-' + lname + '-' + TWG_SESSION_NUMBER, ppForm );
    
    if( WHOLE_PERCENT != 0 ) {
        addHiddenToForm( 'custom', "WCODE:" + WHOLE_CODE + "|WPERC:" + WHOLE_PERCENT, ppForm );
    }
    
    var itemCount = 0;
    for( var i = 0; i < INVOICEITEMS.length; i++ ) {
        
        itemCount++;
        var name = INVOICEITEMS[i][0];
        var price = INVOICEITEMS[i][1];
        var item_number = INVOICEITEMS[i][2];
        var on0 = INVOICEITEMS[i][3] == null ? "" : INVOICEITEMS[i][3];
        var os0 = INVOICEITEMS[i][4] == null ? "" : INVOICEITEMS[i][4];
        var on1 = INVOICEITEMS[i][5] == null ? "" : INVOICEITEMS[i][5];
        var os1 = INVOICEITEMS[i][6] == null ? "" : INVOICEITEMS[i][6];
        
        if( os0.length > 199 ) {
            os0 = '!' + os0;
        }
        if( os1.length > 199 ) {
            os1 = '!' + os1;
        }
        
        addHiddenToForm( 'item_name_' + itemCount, name, ppForm );
        addHiddenToForm( 'amount_' + itemCount, price, ppForm );
        addHiddenToForm( 'item_number_' + itemCount, item_number, ppForm );
        addHiddenToForm( 'on0_' + itemCount, on0, ppForm );
        addHiddenToForm( 'os0_' + itemCount, os0, ppForm );
        addHiddenToForm( 'on1_' + itemCount, on1, ppForm );
        addHiddenToForm( 'os1_' + itemCount, os1, ppForm );
        
    }
    
    addHiddenToForm( 'address_override', '1', ppForm );
    addHiddenToForm( 'shipping_1', SHIPPING, ppForm );
    addHiddenToForm( 'cn', 'Special Instructions', ppForm );
    addHiddenToForm( 'no_shipping', '2', ppForm );
    addHiddenToForm( 'rm', 'POST', ppForm );
    addHiddenToForm( 'business', 'order@topperswithglitz.com', ppForm );
    addHiddenToForm( 'cmd', '_cart', ppForm );
    addHiddenToForm( 'redirect_cmd', '_xclick', ppForm );
    addHiddenToForm( 'upload', '1', ppForm );

    ppForm.submit( );

}

function addHiddenToForm( name, value, form ) {
    
    var em = document.createElement( 'input' );
    em.type = 'hidden';
    em.name = name;
    em.value = value;
    form.appendChild( em );
    
}

function fatalError( ) {
    
    alert( "We're sorry, there seems to have been a problem processing your selection. Please email orders@topperswithglitz.com to place your order. Thank you and we're sorry for the inconvenience." );    
    
}
function addInvoiceItem( text, price, item_number, on0, os0, on1, os1 ) {
    
    price = ( 1 - WHOLE_PERCENT ) * price;
    price = formatCurrency( price );
    var item = new Array( text, price, item_number, on0, os0, on1, os1 );
    INVOICEITEMS.push( item );
    
}





function dateStatus( dateString ) {
    
    var partArray = dateString.split( '/' );
    var month = dateString.substring( 0, 2 );
    var day = dateString.substring( 3, 5 );
    var year = dateString.substring( 6, 8 );

    var weddingDate = new Date( );
    weddingDate.setFullYear( Number( year ) + Number( 2000 ) );
    weddingDate.setMonth( Number( month ) - 1 );
    weddingDate.setDate( day );
    weddingDate.setHours( 0 );
    weddingDate.setMinutes( 1 );
    weddingDate.setSeconds( 0 );
    
    var nowDate = new Date();
    var nowSecs = nowDate.getTime();
    var wdSecs = weddingDate.getTime();
    
    var daysBetween = 0;
    
    while( nowSecs < wdSecs ) {
        
        nowSecs += 86400000;
        var tDate = new Date();
        tDate.setTime( nowSecs );
        
        var weekday = tDate.getDay();
        if( weekday > 0 && weekday < 6 ) {
            
            daysBetween++;
            if( daysBetween > NORMAL_DAYS ) {
                return 2;
            }
        }
    }   
    if( daysBetween < EXPEDITED_DAYS ) {
        
        return 0;
        
    }
    if( daysBetween < NORMAL_DAYS ) {
        
        return 1;
        
    }
    
    return 2;
    
}
        

function getAndValidateWeddingDate( ) {
    
    
    //var weddingDate = mwTrim( document.getElementById( 'DATE' ).value );
    
    var month = document.getElementById( 'WD_MONTH' ).value;
    var day = document.getElementById( 'WD_DAY' ).value;
    var year = document.getElementById( 'WD_YEAR' ).value;
    
    if( month == "" || day == "" || year == "" ) {
        return null;
    }

    return month + "/" + day + "/" + year;
    
}

function _drawPreview( previewPrefix, letterPrefix, fontPrefix, fontPostFix, letterCount, singleFont ) {
    
    for( var i = 1; i < letterCount + 1; i++ ) {
        
        var display = 1;
        var image = document.getElementById( previewPrefix + i );
        var letSelect = document.getElementById( letterPrefix + i );
        
        var fontSelect;
        if( singleFont ) {
            fontSelect = document.getElementById( fontPrefix );
        }
        else {
            fontSelect = document.getElementById( fontPrefix + i + fontPostFix );
        }
        var letter = "";
        var font = "";
        for( var k = 0; k < letSelect.options.length; k++ ) {
            
            if( letSelect.options[k].selected ) {
                letter = letSelect.options[k].value;
                k = 5000;
            }
            
        }
        for( var j = 0; j < fontSelect.options.length; j++ ) {
            
            if( fontSelect.options[j].selected ) {
                font = fontSelect.options[j].value;
                j = 5000;
            }
            
        }
        
        if( font == "" || letter == "" ) {

            image.src = 'images/preview-holder.gif';
            if( i != 1 ) {
                display = 0;
            }
        
        }
        else {
            image.src = calculateThumbFile( letter, font );
        }
        
        if( display ) {
            image.style.display = 'block';
        }
        else {
            image.style.display = 'none';
        }
        
    }
    for( var j = letterCount + 1; j <= 20; j++ ) {
        var img = document.getElementById( previewPrefix + j );
        if( img ) {
            img.style.display = 'none';
        }
    }
    
    
}
function drawPreview( numLetters ) {
    
    _drawPreview( "PREVIEW_", "LETTER", "LETTER", "_FONT", numLetters, 0 );
    
}

function calculateThumbFile( letter, font ) {
    
    var file = 'fontImages/';
    file += font.replace( /\s+/g, "" );
    file += '/t_';
    
    
    if( letter.toUpperCase() != letter ) { //is lowercase
        file += 'l_';
    }
    file += escape( letter.toUpperCase() );
    file += '.gif';
    return file;
    
}

function formatCurrency( input ) {
    if( input.toFixed ) {
        return input.toFixed( 2 );
    }
    return input;
}

function loadAddress( hash ) {
    
    if( hash != null ) {
        
        document.getElementById('FIRST_NAME').value = PRE_ADDRESS['FNAME'];
        document.getElementById('LAST_NAME').value = PRE_ADDRESS['LNAME'];
        document.getElementById('PHONE').value = PRE_ADDRESS['PHONE'];
        document.getElementById('EMAIL1').value = PRE_ADDRESS['EMAIL'];
        document.getElementById('EMAIL2').value = PRE_ADDRESS['EMAIL'];
        document.getElementById('ADDR1').value = PRE_ADDRESS['ADDR1'];
        document.getElementById('ADDR2').value = PRE_ADDRESS['ADDR2'];
        document.getElementById('CITY').value = PRE_ADDRESS['CITY'];
        document.getElementById('ZIP').value = PRE_ADDRESS['ZIP'];
        
        var state = PRE_ADDRESS['STATE'];
        if( state != null && state != "" ) {
            var stateSel = document.getElementById('STATE');
            
            for( var i = 0; i < stateSel.options.length; i++ ) {
                
                if( stateSel.options[i].value == PRE_ADDRESS['STATE'] ) {
                    stateSel.options[i].selected = true;
                }
                else {
                    stateSel.options[i].selected = false;
                }
                
            }
        }
    }
    
}
