//if( document.addEventListener ) document.addEventListener( 'DOMContentLoaded', dealerform, false );

function dealerform(){
  // Hide forms
  jQuery( 'form.dealerform' ).hide().end();

  // Processing
  jQuery( 'form.dealerform' ).find( 'li/label' ).not( '.nocmx' ).each( function( i ){
    var labelContent = this.innerHTML;
    var labelWidth = document.defaultView.getComputedStyle( this, '' ).getPropertyValue( 'width' );
    var labelSpan = document.createElement( 'span' );
        labelSpan.style.display = 'block';
        labelSpan.style.width = labelWidth;
        labelSpan.innerHTML = labelContent;
    this.style.display = '-moz-inline-box';
    this.innerHTML = "";
    this.appendChild( labelSpan );
  } ).end();

  // Show forms
  jQuery( 'form.dealerform' ).show().end();
}

// +-----------------------------------------------------+
// | function: submitContact                             |
// +-----------------------------------------------------+
function submitContact() {
    
    var postData    = '';
    var fields      = Array(
        Array('refID',                      1),
		Array('DID',                        1),
		Array('dealerName',                 1),
		Array('dealerMail',                 1),
		Array('dealerSubject',              1),
        Array('salutation',                 1),
        Array('firstname',                  1),
        Array('surname',                    1),
        Array('company',                    1),
        Array('street',                     1),
        Array('zipcode',                    1),
        Array('city',                       1),
        Array('phone',                      1),
        Array('phone_private',              1),
        Array('email',                      1),
        Array('enquiry',                    1)
    );

    //error_password_confirm
    for(i = 0; i < fields.length; i++) {
        if( fields[i][1] == 1 ) {
            postData = ''+ postData + fields[i][0] + '=' + escape( jQuery("#"+ fields[i][0] +"").val() ) + '&';
        } else {
            postData = ''+ postData + fields[i][0] + '=' + escape( jQuery("#"+ fields[i][0] +":checked").length ) + '&';
        }
    }

    j = ajaxSubmit('submitContact', postData, fields);

}

// +-----------------------------------------------------+
// | function: submitTradein                             |
// +-----------------------------------------------------+
function submitTradein() {

    var postData    = '';
    var configData  = '';
    var fields      = Array(
        Array('refID',                      1),
		Array('DID',                        1),
		Array('dealerName',                 1),
		Array('dealerMail',                 1),
		Array('dealerSubject',              1),
        Array('salutation',                 1),
        Array('firstname',                  1),
        Array('surname',                    1),
        Array('street',                     1),
        Array('zipcode',                    1),
        Array('city',                       1),
        Array('phone',                      1),
        Array('email',                      1),
        Array('key1',                       1),
        Array('key2',                       1),
        Array('performance',                1),
        Array('displacement',               1),
        Array('accreditation',              1),
        Array('chassis',                    1),
        Array('owner',                      1),
        Array('cartype',                    1),
        Array('variante',                   1),
		Array('style',                      1),
		Array('color',                      1),
		Array('licence_number',             1),
		Array('odometer_reading',           1),
		Array('anniversary_date',           1),
		Array('accident_free',              1),
		Array('accident_info',              1),
		Array('checkbook',                  1),
		Array('additional_configuration',   1)
    );

    //error_password_confirm
    for(i = 0; i < fields.length; i++) {
        if( fields[i][1] == 1 ) {
            postData = ''+ postData + fields[i][0] + '=' + escape( jQuery("#"+ fields[i][0] +"").val() ) + '&';
        } else {
            postData = ''+ postData + fields[i][0] + '=' + escape( jQuery("#"+ fields[i][0] +":checked").length ) + '&';
        }
    }

    
    for( i = 0; i <= jQuery('#configuration_items').val(); i++ ) {
        if( jQuery("#configuration_"+ i +":checked").length ) {
            configData += escape( jQuery("#configuration_"+ i +"").val() ) + ',';
        }
    }
    
    postData += 'configuration=' + configData +'';

    j = ajaxSubmit('submitTradein', postData, fields);

}

// +-----------------------------------------------------+
// | function: submitTestdrive                           |
// +-----------------------------------------------------+
function submitTestdrive() {

    jQuery("#loading").removeClass('content-hide');
    
    var postData            = '';
    var testdriveModells    = '';
    var testdriveCars       = 0;
    var fields      = Array(
        Array('refID',                      1),
		Array('DID',                        1),
		Array('dealerName',                 1),
		Array('dealerMail',                 1),
		Array('dealerSubject',              1),
        Array('salutation',                 1),
        Array('firstname',                  1),
		Array('age',						1),
        Array('surname',                    1),
        Array('street',                     1),
        Array('zipcode',                    1),
        Array('city',                       1),
        Array('phone',                      1),
        Array('phone_private',              1),
		Array('phone_mobile',				1),
        Array('email',                      1),
        Array('date_month',                 1),
        Array('date_day',                   1),
        Array('date_time',                  1),
        Array('fueltype1',					1),
		Array('fueltype2',					1),
		Array('toyota_owner',				1),
		Array('period',						1)
    );

    //error_password_confirm
    for(i = 0; i < fields.length; i++) {
        if( fields[i][1] == 1 ) {
            postData = ''+ postData + fields[i][0] + '=' + escape( jQuery("#"+ fields[i][0] +"").val() ) + '&';
        } else {
            postData = ''+ postData + fields[i][0] + '=' + escape( jQuery("#"+ fields[i][0] +":checked").length ) + '&';
        }
    }

    for( i = 0; i <= jQuery('#testdrive_items').val(); i++ ) {
        if( jQuery("#testdrive_modell_"+ i +":checked").length ) {
            testdriveModells += escape( jQuery("#testdrive_modell_"+ i +"").val() ) + ',';
            testdriveCars = testdriveCars+1;
        }
    }
    
    postData += 'testdrive_modells=' + testdriveModells +'&testdrive_cars='+ testdriveCars +'';

    jQuery.ajax({
        type: 'POST',
        dataType: 'json',
        url: '/proc/submitTestdrive.asp',
        data: postData,
        success: function(j){
            
            for(i = 0; i < fields.length; i++) {
                if( fields[i][1] == 1 ) {
                    checkField(j, fields[i][0]);
                }
            }

            if( j.date_month == 0 && j.date_day == 0 && j.date_time == 0 ) {
                jQuery("#field_testdrive_date").removeClass("errortext");
            } else {
                jQuery("#field_testdrive_date").addClass("errortext");
            }

            checkField(j, 'testdrive_cars');
            
            if( j.error_code > 0 ) {
                jQuery('#error_text').html(j.error_msg).removeClass('content-hide');
                
                if( j.error_code == 99 ) {
                    jQuery("#field_testdrive_date").addClass("errortext");
                }
            } else {
                jQuery('#formContent').hide();
                jQuery('#confirmContent').show();
            }
            
            jQuery("#loading").addClass('content-hide');
            
        },
        error: function(o,e,k){
            jQuery("#loading").addClass('content-hide');
        }
    });

}

// +-----------------------------------------------------+
// | function: submitNewsletter                          |
// +-----------------------------------------------------+
function submitNewsletter() {
    
    var postData    = '';
    var fields      = Array(
        Array('refID',                      1),
		Array('DID',                        1),
		Array('dealerName',                 1),
		Array('dealerMail',                 1),
		Array('dealerSubject',              1),
		Array('FID',                        1),
		Array('Subnavi',                    1),
		Array('pageSubnavi',                1),
        Array('salutation',                 1),
        Array('firstname',                  1),
        Array('surname',                    1),
        Array('street',                     1),
        Array('zipcode',                    1),
        Array('city',                       1),
        Array('phone',                      1),
        Array('phone_private',              1),
        Array('email',                      1)
    );

    //error_password_confirm
    for(i = 0; i < fields.length; i++) {
        if( fields[i][1] == 1 ) {
            postData = ''+ postData + fields[i][0] + '=' + escape( jQuery("#"+ fields[i][0] +"").val() ) + '&';
        } else {
            postData = ''+ postData + fields[i][0] + '=' + escape( jQuery("#"+ fields[i][0] +":checked").length ) + '&';
        }
    }

    j = ajaxSubmit('submitNewsletter', postData, fields);

}

// +-----------------------------------------------------+
// | function: submitService                             |
// +-----------------------------------------------------+
function submitService() {
    
    var postData    = '';
    var fields      = Array(
        Array('refID',                      1),
		Array('DID',                        1),
		Array('dealerName',                 1),
		Array('dealerMail',                 1),
		Array('dealerSubject',              1),
        Array('salutation',                 1),
        Array('firstname',                  1),
        Array('surname',                    1),
        Array('street',                     1),
        Array('zipcode',                    1),
        Array('city',                       1),
        Array('phone',                      1),
        Array('phone_private',              1),
        Array('email',                      1),
        Array('date_month',                 1),
        Array('date_day',                   1),
        Array('date_time',                  1),
        Array('enquiry',                    1)
    );

    //error_password_confirm
    for(i = 0; i < fields.length; i++) {
        if( fields[i][1] == 1 ) {
            postData = ''+ postData + fields[i][0] + '=' + escape( jQuery("#"+ fields[i][0] +"").val() ) + '&';
        } else {
            postData = ''+ postData + fields[i][0] + '=' + escape( jQuery("#"+ fields[i][0] +":checked").length ) + '&';
        }
    }

    j = ajaxSubmit('submitService', postData, fields);

}

// +-----------------------------------------------------+
// | function: submitTracingService                      |
// +-----------------------------------------------------+
function submitTracingService() {
    
    var postData    = '';
    var fields      = Array(
        Array('refID',                      1),
		Array('DID',                        1),
		Array('dealerName',                 1),
		Array('dealerMail',                 1),
		Array('dealerSubject',              1),
        Array('salutation',                 1),
        Array('firstname',                  1),
        Array('surname',                    1),
        Array('street',                     1),
        Array('zipcode',                    1),
        Array('city',                       1),
        Array('phone',                      1),
        Array('phone_private',              1),
        Array('email',                      1),
        Array('construction_year',          1),
        Array('pkw_type',                   1),
        Array('color',                      1),
        Array('kilometrage',                1),
        Array('fueltype1',                  1),
        Array('fueltype2',                  1),
        Array('price',                      1),
        Array('enquiry',                    1)
    );

    //error_password_confirm
    for(i = 0; i < fields.length; i++) {
        if( fields[i][1] == 1 ) {
            postData = ''+ postData + fields[i][0] + '=' + escape( jQuery("#"+ fields[i][0] +"").val() ) + '&';
        } else {
            postData = ''+ postData + fields[i][0] + '=' + escape( jQuery("#"+ fields[i][0] +":checked").length ) + '&';
        }
    }

    j = ajaxSubmit('submitTracingService', postData, fields);
}

function submitTracingServiceBasic() {

    var postData    = '';
    var fields      = Array(
        Array('refID',                      1),
		Array('DID',                        1),
		Array('dealerName',                 1),
		Array('dealerMail',                 1),
		Array('dealerSubject',              1),
        Array('salutation',                 1),
        Array('firstname',                  1),
        Array('surname',                    1),
        Array('street',                     1),
        Array('zipcode',                    1),
        Array('city',                       1),
        Array('phone',                      1),
        Array('phone_private',              1),
        Array('email',                      1),
        Array('construction_year',          1),
        Array('pkw_type',                   1),
        Array('enquiry',                    1)
    );

    //error_password_confirm
    for(i = 0; i < fields.length; i++) {
        if( fields[i][1] == 1 ) {
            postData = ''+ postData + fields[i][0] + '=' + escape( jQuery("#"+ fields[i][0] +"").val() ) + '&';
        } else {
            postData = ''+ postData + fields[i][0] + '=' + escape( jQuery("#"+ fields[i][0] +":checked").length ) + '&';
        }
    }

    j = ajaxSubmit('submitTracingServiceBasic', postData, fields);
}

// +-----------------------------------------------------+
// | function: ajaxSubmit                                |
// +-----------------------------------------------------+
function ajaxSubmit(ajax_url, postData, fields) {

    jQuery("#loading").removeClass('content-hide');
    
    jQuery.ajax({
        type: 'POST',
        dataType: 'json',
        url: '/proc/'+ ajax_url +'.asp',
        data: postData,
        success: function(j){
            
            for(i = 0; i < fields.length; i++) {
                if( fields[i][1] == 1 ) {
                    checkField(j, fields[i][0]);
                }
            }

            if( j.error_code > 0 ) {
                jQuery('#error_text').html(j.error_msg).removeClass('content-hide');
            } else {
                jQuery('#formContent').hide();
                jQuery('#confirmContent').show();
            }
            
            jQuery("#loading").addClass('content-hide');
            
            return j;
            
        },
        error: function(o,e,k){
            jQuery("#loading").addClass('content-hide');
            jQuery('#error_text').html("Es ist ein unerwarteter Fehler aufgetreten. Bitte versuchen Sie es später noch einmal.").removeClass('content-hide');
        }
    });
}

// +-----------------------------------------------------+
// | function: checkField                                |
// +-----------------------------------------------------+
function checkField(j,field_name) {
    if( eval('j.'+ field_name +'') == 1 ) {
        jQuery("#field_"+ field_name +"").addClass("errortext");
        jQuery("#"+ field_name +"").addClass("errorfield");
    } else {
        jQuery("#field_"+ field_name +"").removeClass("errortext");
        jQuery("#"+ field_name +"").removeClass("errorfield");
    }
}