// JScript File
/*
 * jQuery interface
 * Copyright (c) 2009  Oliver Astrologo
 * Dual licensed under MIT and GPL.
 * @author  Oliver Astrologo
 * @version 1.1
 */
var $tabs;
var allUploadsCompletd = false;
//var currentStep = 0;
//var processedSteps = [];
// Url per la validazione AJAX
var formAction = "/data-sources/modulo-tari.cgi";
jQuery(document).ready(function () {
    jQuery("#file1").uploadify({
        'uploader': '/flash/uploadify.swf',
        'script': '/data-sources/modulo-tari.cgi',
        'scriptData': {
            "action": "allega_file",
            "tipo": "1",
            "session_id": session_id
        },
        'fileDataName': 'attachment_file',
        'sizeLimit': 3145728,
        // 3 MB
        'fileExt': "*.*",
        // or you could use something like: "*.doc;*.wpd;*.pdf",
        'fileDesc': "All Files",
        'buttonText': "Allega file",
        'cancelImg': '/images-new/buttons/cancel.png',
        'onComplete': function (event, queueID, fileObj, response, data) {
            AddItem(eval('(' + response + ')'));
        },
        'folder': 'uploads',
        'queueID': 'file-queue-1',
        'auto': true,
        'multi': false
    });
    jQuery("#file2").uploadify({
        'uploader': '/flash/uploadify.swf',
        'script': formAction,
        'scriptData': {
            "action": "allega_file",
            "tipo": "2",
            "session_id": session_id
        },
        'fileDataName': 'attachment_file',
        'sizeLimit': 3145728,
        // 3 MB
        'fileExt': "*.*",
        // or you could use something like: "*.doc;*.wpd;*.pdf",
        'fileDesc': "All Files",
        'buttonText': "Allega file",
        'cancelImg': '/images-new/buttons/cancel.png',
        'onComplete': function (event, queueID, fileObj, response, data) {
            AddItem(eval('(' + response + ')'));
        },
        'folder': 'uploads',
        'queueID': 'file-queue-2',
        'auto': true,
        'multi': false
    });
    jQuery("#comunicazione_tipo").change(function () {
        jQuery(".attivazioni-panel,.cessazioni-panel").hide();
        if (jQuery(this).val() == 'cessazione utenza') {
            jQuery(".cessazioni-panel").show();
        } else {
            jQuery(".attivazioni-panel").show();
        }
    }).change();
});

function AddItem(myObject) {
    if (myObject['status'] > 0) {
        var itemObject = '<img src="' + myObject['filethumb'] + '" title="' + myObject['filetype'] + '"/> ' + myObject['filedesc'];
        $("#file" + myObject['tipo'] + '_desc').html(itemObject);
        $("#file" + myObject['tipo'] + '_id').val(myObject['filename']);
    } else {
        alert(myObject['message']);
    }
}

function showRequest(XMLHttpRequest) {
    jQuery('.form-submit-response').addClass("ac_loading");
    jQuery("#next-button").attr("disabled", "true");
}

function showError(XMLHttpRequest, textStatus, errorThrown) {
    alert('Spiacenti ma al momento non è possibile comunicare con il server, riprova fra poco.');
	jQuery.ajax({		
			type: "POST",
			dataType: 'json',   
			cache: false,
			beforeSend: null,   
			error: null,
			url: "/data-sources/error.php",
			data: {
				error_dump : errorThrown + ' ' + textStatus				
			},      
			success: null
		}); 	
}

function showResponse(XMLHttpRequest, textStatus) {
    jQuery('.form-submit-response').removeClass("ac_loading");
    jQuery("#next-button").removeAttr("disabled");
}

function goBack() {
    var selected = $tabs.tabs('option', 'selected');
    $tabs.tabs('select', selected - 1);
}

function validateForm() {
    jQuery(".std-input").removeClass("error");
    jQuery(".error-input-msg").fadeOut().html("");
    jQuery("#form-submit").attr("disabled", "true");
    var selected = $tabs.tabs('option', 'selected');
    var postData = jQuery("#form_tari").serialize();
    //var functionStatus;	
    jQuery.ajax({
        type: "POST",
        dataType: 'json',
        cache: false,
        beforeSend: showRequest,
        error: showError,
        url: formAction + "?mode=ajax&step=" + selected,
        data: postData,
        complete: showResponse,
        success: function (data) {
            if (data.responseStatus == 'OK') {
                if (data.redirectUrl) {
                    window.location = data.redirectUrl;
                }
                if (data.FormSuccess) {
                    jQuery("#form_tari,#required-warning-text").hide();
                    jQuery("#FormSuccess").show('slow');
                }
                if (selected == 6) {
                    jQuery("#riepilogo").load(data.riepilogo);
                }
                for (i = 0; i <= 7; i++) {
                    i <= data.validatedTabs ? $tabs.tabs('enable', i) : $tabs.tabs('disable', i);
                }
                $tabs.tabs('select', selected + 1);
                jQuery('html, body').animate({
                    scrollTop: jQuery("#form-area").offset().top
                }, 1000);
            } else {
                var errorsArray = data.errors;
                jQuery.each(errorsArray, function (index, value) {
                    jQuery("#" + value.field).addClass("error");
                    jQuery("#" + value.field + "-error").html(value.reason).fadeIn();
                });
                alert("Attenzione\nAlcuni campi non sono stati compilati correttamente, verifica e prova nuovamente.");
                jQuery('html, body').animate({
                    scrollTop: jQuery("#form-area").offset().top
                }, 1000);
            }
        }
    });
    return false;
}
jQuery(function () {
    $tabs = jQuery("#modulo-tari").tabs({
        // I tabs sono inizialmente tutti disabilitati									
        disabled: [1, 2, 3, 4, 5, 6, 7],
        select: function (event, ui) {
            ui.index == 0 ? jQuery("#prev-button").hide() : jQuery("#prev-button").show();
            ui.index == 0 ? jQuery("#introtext").show() : jQuery("#introtext").hide();
            jQuery("#next-button").html(ui.index == 7 ? 'Invia il modulo ad AMA' : 'Passaggio successivo');
        },
        show: function (event, ui) {
            for (i = 0; i <= 7; i++) {
                i <= ui.index ? jQuery("#modulo-tari").tabs('enable', i) : jQuery("#modulo-tari").tabs('disable', i);
            }
        }
    });
    jQuery("#fatturazione_coincide_intestazione").click(function () {
        var value = jQuery('#fatturazione_coincide_intestazione:checked').val();
        if (value == 1) {
            jQuery('#fatturazione_nome').val(jQuery('#intestazione_nome').val());
            jQuery('#fatturazione_cognome').val(jQuery('#intestazione_cognome').val());
            jQuery('#fatturazione_indirizzo').val(jQuery('#residenza_indirizzo').val());
            jQuery('#fatturazione_numero').val(jQuery('#residenza_numero').val());
            jQuery('#fatturazione_cap').val(jQuery('#residenza_cap').val());
            jQuery('#fatturazione_edificio').val(jQuery('#residenza_edificio').val());
            jQuery('#fatturazione_scala').val(jQuery('#residenza_scala').val());
            jQuery('#fatturazione_interno').val(jQuery('#residenza_interno').val());
            jQuery('#fatturazione_citta').val(jQuery('#residenza_citta').val());
            jQuery('#fatturazione_prov').val(jQuery('#residenza_prov').val());
        } else {
            jQuery('#fatturazione_nome').val('');
            jQuery('#fatturazione_cognome').val('');
            jQuery('#fatturazione_indirizzo').val('');
            jQuery('#fatturazione_numero').val('');
            jQuery('#fatturazione_cap').val('');
            jQuery('#fatturazione_edificio').val('');
            jQuery('#fatturazione_scala').val('');
            jQuery('#fatturazione_interno').val('');
            jQuery('#fatturazione_citta').val('');
            jQuery('#fatturazione_prov').val('');
        }
    }).change();
    jQuery("#form_tari").show();
});
