$(function() {
    $('#pageLoading').hide();
    waNavigationInit('ajaxLink', 'hashLink', 'ajax_content');

    $('.ajax_content').live('load', afficherLoader);
    $('.ajax_content').live('loaded', function() {
        cacherLoader();
        Layout();
        $('img').load(function() {
            Layout();
        });
    });

    $('a.acheterAnalyse').live('click', acheterAnalyse);
	$('a#bouton_loupe').click(function() {
		$('#formulaireRecherche').fadeIn();
		return false;
	});
    $('#formulaireRecherche input[type="image"]').live('click', rechercher);
	$('#formulaireRecherche input[type="text"]').keydown(function(e) {
		if (e.keyCode==13) rechercher();
	});

    refreshLibelleMdp();
    $('#mdpClair').html($('#mdp').val());
    $('#mdp2Clair').html($('#mdp2').val());

    $('#motDePasse').live('click', function() {
        var curDisplay = $('#mdpClair').css('visibility');
        if (curDisplay == 'hidden') {
            $('#mdpClair').css('visibility', 'visible');
            $('#mdp2Clair').css('visibility', 'visible');
        } else {
            $('#mdpClair').css('visibility', 'hidden');
            $('#mdp2Clair').css('visibility', 'hidden');
        }        
        refreshLibelleMdp();
    });

    $('#mdp').live('keyup', function() { $('#mdpClair').html($('#mdp').val()); });
    $('#mdp2').live('keyup', function() { $('#mdp2Clair').html($('#mdp2').val()); });

    // Déconnexion
    $('#logout').live('click', function(e) {
        logout();
        // Rediriger que si la page actuelle requiert une identification (A FAIRE)
        document.location.href = '/';
        e.stopPropagation();
        $('#widgetFormLogin').html(widget_include('formLogin'));
        return false;
    });

    // Connexion
    $('#formLoginSubmit').live('click', sendFormLogin);
    $('#formLoginMainSubmit, .formLoginMainSubmit').live('click', sendFormLoginMain);

    // Ajouter un portefeuille
    // $('#formPortefeuilleAjouter input[type="submit"]').live('click', ajouterPortefeuille);
    $('.ajouterPortefeuilleFormulaire').live('click', ajouterPortefeuille);

    
    // Inscription
    $('#formInscription .submit').live('click', function() {
        var action = $('#formInscription').attr('action');
        var UnClient = new Client();
        var civilite = $('input[name="civilite"][type="radio"]:checked').val();
        if (civilite == undefined) civilite = '';
        UnClient.Civilite = civilite;
        UnClient.Nom = $('#nom').val();
        UnClient.Prenom = $('#prenom').val();
        UnClient.DateDeNaissance = $('#dateDeNaissance').val();
        UnClient.IdProfession = $('#idProfession option:selected').val();
        UnClient.Mail = $('#mail').val();
        UnClient.Tel = $('#tel').val();
        UnClient.Adresse = $('#adresse').val();
        UnClient.Cp = $('#cp').val();
        UnClient.Ville = $('#ville').val();
        UnClient.Mdp = $('#mdp').val();
        UnClient.Mdp2 = $('#mdp2').val();
        if (action == 'inscription.html') {
            UnClient.Insert();
        } else {
            UnClient.Update();
        }
        return false;
    });

    // Ouvrir la fenetre d'ajout de portefeuille
    $('a.ajouterPortefeuille').live('click', function() {
        if ($('.winAjouterPortefeuille').eq(0).css('display') == 'none') {
            $('.winAjouterPortefeuille').fadeIn('slow');
            $('#nom').focus();
        }
        return false;
    });
    $('a.winCloseAjouterPortefeuille').live('click', function() {
        $('.winAjouterPortefeuille').fadeOut('slow');
       return false;
    });

    $('#pagePortefeuilles a.supprimer').live('click', supprimerPortefeuille);
    $('#pagePortefeuilles a.pagePrecedente').live('click', navigationPortefeuilles);
    $('#pagePortefeuilles a.pageSuivante').live('click', navigationPortefeuilles);
    $('#pagePortefeuilles a.modifier').live('click', modifierPortefeuille);
    $('#pagePortefeuilles a.enregistrer').live('click', enregistrerPortefeuille);
    $('#pagePortefeuilles .textbox').live('keypress', function(e) {
        if (e.which == 13) {
            var idPortefeuille = $(this).attr('idPortefeuille');
            enregistrerPortefeuille(idPortefeuille);
        }
    });
});

function refreshLibelleMdp() {
    var curDisplay = $('#mdpClair').css('visibility');

    if (curDisplay == 'hidden') {
        $('#motDePasse').html('Afficher les mots de passe');
    } else {
        $('#motDePasse').html('Cacher les mots de passe');
    }
}

/**
 * Fonction permettant l'envoi du formulaire de connexion
 */
function sendFormLogin(e) {
    var canSubmit = false;
    var mail      = $("#formLoginEmail");
    var mdp       = $("#formLoginPassword");

    if(mail.val() == "" || mdp.val() == "") {
        alert("Vous devez saisir votre adresse mail ainsi que votre mot de passe pour vous connecter");
    } else {
        canSubmit = true;
    }

    if(canSubmit) {
        var response = login(mail.val(), mdp.val());
        if (response != null && response.Authenticate == true) {
            $('#widgetFormLogin').html(widget_include('formLogin'));
            $('#dock a[href="connexion.html"]').attr('href', 'client.html');
            $('#dock a[href="client.html"] span').text('Compte client');
			return postConnect();
        } else {
            alert('Nous sommes désolé mais nous n\'avons pas réussi à vous identifier, veuillez vérifier vos identifiants.');
        }
    }

    e.stopPropagation();
    return false;
}
function postConnect() {
	var ret = $('input[name=return]').val();
	if (ret) {
        if (ret.indexOf('?') == -1 && ret.indexOf('.html') == -1) ret += '.html';
		document.location.href = ret;
		return false;
	}

	if (window.location.hash.substr(1, 7) == 'analyse') {
		waNavigationRefresh();
	} else if (window.location.hash.substr(1, 20) == 'client-portefeuilles') {
		waNavigationRefresh();
	} else {
		return true;
		document.location.href = 'client.html';
	}
	return true;
}
function sendFormLoginMain(e) {
    var canSubmit = false;
    var mail      = $("#formLoginMainEmail");
    var mdp       = $("#formLoginMainPassword");
    if(mail.val() == "" || mdp.val() == "") {
        alert("Vous devez saisir votre adresse mail ainsi que votre mot de passe pour vous connecter");
    } else {
        canSubmit = true;
    }

    if(canSubmit) {
        var response = login(mail.val(), mdp.val());
        if (response != null && response.Authenticate == true) {
            $('#widgetFormLogin').html(widget_include('formLogin'));
            $('#dock a[href="connexion.html"]').attr('href', 'client.html');
            $('#dock a[href="client.html"] span').text('Compte client');
			return postConnect();
        } else {
            alert('Nous sommes désolé mais nous n\'avons pas réussi à vous identifier, veuillez vérifier vos identifiants.');
        }
    }

    e.stopPropagation();
    return false;
}

/**
 * Fonction permettant de se connecter
 */
function login(username, password) {
    var response = null;
    $.ajax({
        type: 'POST',
        url: 'connect.html?ajax=true',
        async: false,
        data: {
            mail: username,
            mdp: password
        },
        dataType: 'json',
        error: function(xhr, err) {
            alert(err);
        },
        success: function(data) {
            response = data;
        }
    });
    return response;
}

/**
 * Fonction permettant de se déconnecter
 */
function logout() {
    $.ajax({
        type: 'GET',
        url: 'disconect.html',
        async: false,
        data: {
            ajax: true
        }
    });
    
    return true;
}

/**
 * Fonction permettant de récupérer le contenu HTML d'un template
 */
function widget_include(widget) {
    var response = null;

    $.ajax({
        type: 'GET',
        url: 'widget.html',
        dataType: 'html',
        async: false,
        data: {
            ajax: true,
            name: widget
        },
        error: function() {
            response = '';
        },
        success: function(data) {
            response = data;
        }
    });

    return response;
}

/**
 * Fonction pour supprimer un portefeuille
 */
function supprimerPortefeuille() {
    var data = {
        ajax: true,
        id: $(this).attr('idPortefeuille'),
        act: 'del'
    };
    $.get('client-portefeuilles.html', data, function() {
        $('#portefeuille'+$(this).attr('idPortefeuille')).remove();
        refreshPortefeuilles();
    });
    return false;
}

/**
 * Fonction pour ajouter un portefeuille
 */
function ajouterPortefeuille() {
    var data = {
        nom: $('#nom').val(),
        gestionnaire: $('#gestionnaire').val(),
        valeur: $('#valeur').val()
    };
    $.post('client-portefeuilles.html?ajax=true', data, function(data) {
        $('#nom').val('');
        $('#gestionnaire').val('');
        $('#valeur').val('');
        $('.winAjouterPortefeuille').fadeOut('slow');
		waNavigationClick("client-portefeuille.html?idportefeuille="+data);
        return true;
    });
    return false;
}

/**
 * Fonction pour mettre à jour la liste des portefeuilles dans l'espace client
 */
function refreshPortefeuilles() {
    var lignes = '';
    $.ajax({
        url: 'client-portefeuilles.html?ajax&act=list',
        async: false,
        type: 'GET',
        dataType: 'json',
        success: function(data) {
            for (x = 0; x < data.length; x++) {
                lignes += '<tr class="ligne-commande" id="portefeuille'+data[x].Id+'">';
//                lignes += '<td align="center"><a rel="ajaxLink" href="performance.html?idportefeuille='+data[x].Id+'" idPortefeuille="'+data[x].Id+'" title="Jugez la performance de vos fonds ?" class="app4"><span class="ui-icon app4-portefeuille"/></a></td>';
//                lignes += '<td align="center"><a rel="ajaxLink" href="assurance-vie.html?idportefeuille='+data[x].Id+'" idPortefeuille="'+data[x].Id+'" title="Votre contrat d\'assurance vie est-il un bon contrat ?" class="app6"><span class="ui-icon app6-portefeuille"/></a></td>';
                lignes += '<td align="center"></td>';
                lignes += '<td align="center"></td>';
				if (data[x].EstVide) {
	                lignes += '<td align="center"><span class="ui-icon app2-portefeuille-disabled" tip="Vous devez attribuer des valeurs aux catégories<br>de votre portefeuille pour utiliser cette application" /></td>';
	                lignes += '<td align="center"><span class="ui-icon appportefeuille-portefeuille-disabled" tip="Vous devez attribuer des valeurs aux catégories<br>de votre portefeuille pour utiliser cette application"/></td>';
				} else {
	                lignes += '<td align="center"><a rel="ajaxLink" href="gestion-portefeuille.html?idportefeuille='+data[x].Id+'" idPortefeuille="'+data[x].Id+'" title="Votre portefeuille a-t-il été bien géré ? Analyse de la gestion sur 12 mois" class="app2"><span class="ui-icon app2-portefeuille"/></a></td>';
	                lignes += '<td align="center"><a rel="ajaxLink" href="client-portefeuille.html?idportefeuille='+data[x].Id+'&analyse" idPortefeuille="'+data[x].Id+'" title="Analyse historique des performances / risques de votre portefeuille" class="appportefeuille"><span class="ui-icon appportefeuille-portefeuille"/></a></td>';
				}
                lignes += '<td align="center"><a rel="ajaxLink" href="client-portefeuille.html?idportefeuille='+data[x].Id+'" idPortefeuille="'+data[x].Id+'" title="Modifier le contenu du portefeuille" class="gerer"><span class="ui-icon detail-portefeuille"/></a></td>';
                lignes += '<td>'+data[x].Nom+'</td>';
                lignes += '<td>'+data[x].Gestionnaire+'</td>';
                lignes += '<td align="center">'+data[x].Date+'</td>';
                lignes += '<td align="center">'+data[x].Valeur+'</td>';
                lignes += '<td class="actions">';
                lignes += '<a class="ajaxLink" href="client-portefeuille.html&idportefeuille='+data[x].Id+'"  idPortefeuille="'+data[x].Id+'" class="gerer"><span>Gérer</span></a>';
                lignes += '<a href="page#client-portefeuilles" idPortefeuille="'+data[x].Id+'" class="supprimer"><span>Supprimer</span></a>';
                lignes += '</td>';
                lignes += '<td align="center"><a href="page#client-portefeuilles" idPortefeuille="'+data[x].Id+'" title="Modifier intitulé et valeur portefeuille" class="modifier"><span class="ui-icon modifier-portefeuille"/></a></td>';
				lignes += '<td align="center"><a href="page#client-portefeuilles" idPortefeuille="'+data[x].Id+'" title="Supprimer portefeuille" class="supprimer"><span class="ui-icon supprimer-portefeuille"/></a></td>';
                lignes += '</tr>';
            }
        }
    });
    if ($('.portefeuille-top table.list tbody') != undefined) {
        $('.portefeuille-top table.list tbody').html(lignes);
		$('[tip]').tooltip({
			bodyHandler: function() {
				return $(this).attr('tip');
			},
			showURL: false
		});
    }
    navigationPortefeuilles(0);
    return;
}

function navigationPortefeuilles(begin) {
    var pageDemandee = 0;
    var p = waNavigationGetParam('p');
    if (p !== null) {
        pageDemandee = parseInt(p);
    } else {
        var numPage = $(this).attr('numpage');
        if (numPage != undefined) {
            pageDemandee = parseInt(numPage);
        }
    }
    var pageSuivante = false;
    var maxParPage = 6;
    if (pageDemandee > 0) begin = (pageDemandee-1)*maxParPage;
    var end = begin + maxParPage;
    var lignes = $('#pagePortefeuilles .right table.list tbody tr');
    var nbLignes = lignes.length;

    for (x = 0; x < nbLignes; x++) {
        if (x >= begin && x < end) {
            lignes.eq(x).show();
        } else {
            lignes.eq(x).hide();
            pageSuivante = true;
        }
    }

    if (lignes.eq(end).length == 0) pageSuivante = false;

    var numPageSuivante = 0;
    var numPagePrecedente = 0;

    if (pageDemandee == 0 || pageDemandee == 1) {
        numPagePrecedente = 1;
        numPageSuivante = 2;
    } else {
        numPagePrecedente = parseInt(pageDemandee) - 1;
        numPageSuivante = parseInt(pageDemandee) + 1;
    }

    if (begin > 0) {
        $('.pagePrecedente').show();
        $('.pagePrecedente').attr('numpage', numPagePrecedente);
    } else {
        $('.pagePrecedente').hide();
    }

    if (pageSuivante) {
        $('.pageSuivante').show();
        $('.pageSuivante').attr('numpage', numPageSuivante);
    } else {
        $('.pageSuivante').hide();
    }

    return;
}

function modifierPortefeuille() {

    var idPortefeuille = $(this).attr('idPortefeuille');
    var intitule = $('#portefeuille'+idPortefeuille+' td').eq(5).html();
    var gestionnaire = $('#portefeuille'+idPortefeuille+' td').eq(6).html().replace(/ /, '');
    var valeur = $('#portefeuille'+idPortefeuille+' td').eq(8).html().replace(/ /, '');

    $('#portefeuille'+idPortefeuille+' td').eq(10).html('<a href="page#client-portefeuilles" idPortefeuille="'+idPortefeuille+'" class="enregistrer"><span class="ui-icon ui-icon-disk"/></a>');
    $('#portefeuille'+idPortefeuille+' td').eq(5).html('<input class="textbox" idPortefeuille="'+idPortefeuille+'" name="nom" type="text" size="12" value="'+intitule+'" />');
    $('#portefeuille'+idPortefeuille+' td').eq(6).html('<input class="textbox" idPortefeuille="'+idPortefeuille+'" name="gestionnaire" type="text" size="12" value="'+gestionnaire+'" />');
    $('#portefeuille'+idPortefeuille+' td').eq(8).html('<input class="textbox" name="valeur" idPortefeuille="'+idPortefeuille+'" type="text" size="8" value="'+valeur+'" />');

    return;
}

function enregistrerPortefeuille(idPortefeuille) {
    if (typeof idPortefeuille == 'object')
        idPortefeuille = $(this).attr('idPortefeuille');
    
    var intitule = $('#portefeuille'+idPortefeuille+' input[name="nom"]').val();
    var gestionnaire = $('#portefeuille'+idPortefeuille+' input[name="gestionnaire"]').val();
    var valeur = $('#portefeuille'+idPortefeuille+' input[name="valeur"]').val();

    $.ajax({
        async: false,
        type: 'POST',
        url: 'client-portefeuilles.html?ajax=true&act=mod',
        dataType: 'json',
        data: {
            'idPortefeuille': idPortefeuille,
            'nom': intitule,
            'gestionnaire': gestionnaire,
            'valeur': valeur
        },
        beforeSend: function() {
            $('#portefeuille'+idPortefeuille+' td').eq(10).html('<img src="img/loading.gif" alt="" />');
        },
        success: function(data) {
            $('#portefeuille'+idPortefeuille+' td').eq(10).html('<a href="page#client-portefeuilles" idPortefeuille="'+idPortefeuille+'" title="Modifier" class="modifier"><span class="ui-icon modifier-portefeuille"/></a>');
            $('#portefeuille'+idPortefeuille+' td').eq(5).html(data.Nom);
            $('#portefeuille'+idPortefeuille+' td').eq(6).html(data.Gestionnaire);
            $('#portefeuille'+idPortefeuille+' td').eq(8).html(data.Valeur);
        }
    });

    return;
}

function validerPortefeuille() {
	waNavigationClick('client-portefeuilles.html');
}

function acheterAnalyse() {
   
    $.ajax({
        async: false,
        type: 'GET',
        url: 'analyse.html',
        dataType: 'text',
        data: {
            ajax: true,
            idAnalyse: $(this).attr('idAnalyse'),
            act: 'acheter',
            from: 'page'
        },
        success: function(data) {
            //alert(data);
            waNavigationRefresh();
        }
    });

    return false;
}

function rechercher() {
    $('.ajax_content').hide();
    $('#pageLoading').show();
	$('#formulaireRecherche').fadeOut();

    window.location.hash = 'recherche&q=' + urlencode($('input[name="q"]').val());
    waNavigationRefresh();

    $('.ajax_content').show();
    $('#pageLoading').hide();

    return false;
}

function afficherLoader() {
    $('.ajax_content').hide();
    $('#pageLoading').show();
}

function cacherLoader() {
    $('.ajax_content').show();
    $('#pageLoading').hide();
}
