/* 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
                        eduDz
                     ---------------                                                
      Derniere mise a jour  :  Mars 09                                                       
      Auteur            : InSiDe
      Dev 1.6.6 Phoenix Rising (Commencée le 13 Dec 08)
      
      Source du script : siteduzero.com (Intégralement), je suis nul en JS dsl :/
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

*/
    $(document).ready( function () 
    {     
    /* Menus Popups  (code du SDZ, désolé pour le copier/coller) */
        $(".bouton_deroulable").live('click', function()
        {
            
            
            if ($(this).next().css("display") == "none")
            {
                $(".bouton_deroulable_menu").hide();
                $(this).next().show();
            }
            else
            {
                $(this).next().hide();
            }
        });        
            
        /* Le menu se referme après que la balise soit insérée */
        $(".bouton_cliquable").click(function(){$(".bouton_deroulable_menu").hide();});

        /* Le menu se referme si on clique sur la zFrom */
        $("#message").click(function(){$(".bouton_deroulable_menu").hide();});
        

        $("#lien_autres_emoticones").click( function () 
        {       
            $( "#bloc_autres_emoticones" ).dialog({ title: 'Autres smilies', show: "blind"});
                    
            return false;            
        });  
    });    


	// Enregistre le curseur du textarea
	function storeCaret(id_textarea)
	{ 
            champ = document.getElementById(id_textarea);
		if (champ.createTextRange)
		champ.curseur = document.selection.createRange().duplicate();
	}
	
	
	// Insère une balise dans le textarea
	function balise(balise_debut, balise_fin, id_textarea)
	{
            var champ = document.getElementById(id_textarea);
            var scroll = champ.scrollTop;
            balise_debut = remplace(balise_debut, '<br />', "\n");
	
            if(balise_fin == '')
		balise_debut = ' ' + balise_debut + ' ';

		if (champ.curseur)
		{
                  champ.curseur.text = balise_debut + champ.curseur.text + balise_fin;
		}
		else if (champ.selectionStart >= 0 && champ.selectionEnd >= 0)
		{
                  var debut = champ.value.substring(0, champ.selectionStart);
                  var entre = champ.value.substring(champ.selectionStart, champ.selectionEnd);
                  var fin = champ.value.substring(champ.selectionEnd);
                  champ.value = debut + balise_debut + entre + balise_fin + fin;
                  champ.focus();
                  champ.setSelectionRange(debut.length + balise_debut.length, champ.value.length - fin.length - balise_fin.length);
		}
		else
		{
                  champ.value  += balise_debut + balise_fin;
                  champ.focus();
		}
            champ.scrollTop = scroll;
	}
	
	// Remplace search par replace dans data
	function remplace(data, search, replace)
	{
            var temp = data;
            var longueur = search.length;
		while (temp.indexOf(search) > -1)
		{
                  pos = temp.indexOf(search);
                  temp = (temp.substring(0, pos) + replace + temp.substring((pos + longueur), temp.length));
		}
            return temp;
	}


      /* AJOUT DE BALISES */


	// Ajoute une balise au textarea (menu droulant)
	function add_bal(nom, val, id_liste, id_textarea, id_prev)
	{
            bal = document.getElementById(id_liste).value;
		if (bal != '')
		balise('<'+nom+' '+val+'="'+bal+'">','</'+nom+'>', id_textarea);
		else
		balise('<'+nom+'>','</'+nom+'>', id_textarea);
            parse(id_textarea, id_prev);
		if (document.getElementById(id_liste))
		document.getElementById(id_liste).options[0].selected = true;
	}
	
	// Ajoute une balise au textarea (prompt pour l'argument)
	function add_bal2(nom, val, id_textarea)
	{
	var champ = document.getElementById(id_textarea);
	var texte = '';
		if (nom == 'citation')
		{
		texte = 'Veuillez entrer le nom de l\'auteur de la citation';
		bal = prompt(texte);
			if (!bal && nom == 'citation')
			bal = 'Pas de titre';
		balise_debut = '<'+nom+' '+val+'="'+bal+'">';
		balise_fin = '</'+nom+'>';
		}
		else if (nom == 'lien')
		{
			if (champ.curseur)
			txt_selectionne = champ.curseur.text;
			else if (champ.selectionStart >= 0 && champ.selectionEnd >= 0)
			txt_selectionne = champ.value.substring(champ.selectionStart, champ.selectionEnd);
			else
			txt_selectionne = '';
		
			if (txt_selectionne.indexOf('http://') == 0
			|| txt_selectionne.indexOf('https://') == 0
			|| txt_selectionne.indexOf('ftp://') == 0
			|| txt_selectionne.indexOf('apt://') == 0)
			{
				texte = 'Veuillez entrer le texte du lien';
				bal2 = prompt(texte);
				balise_debut = '<'+nom+' '+val+'="';
				balise_fin = '">'+bal2+'</'+nom+'>';
			}
			
			else if (txt_selectionne == '')
			{
				texte = 'Veuillez entrer le lien';
				bal = prompt(texte);
				if(bal == null) bal = 'URL';
				bal2 = prompt('Veuillez entrer le texte du lien');
				balise_debut = '<'+nom+' '+val+'="'+bal+'">'+bal2;
				balise_fin = '</'+nom+'>';
			}
			else
			{
				texte = 'Veuillez entrer le lien';
				bal = prompt(texte);
				if(bal == null) bal = 'URL';
				
				balise_debut = '<'+nom+' '+val+'="'+bal+'">';
				balise_fin = '</'+nom+'>';
			}
		}
		
		else if (nom == 'miniature')
		{	if (champ.curseur)
			txt_selectionne = champ.curseur.text;
			else if (champ.selectionStart >= 0 && champ.selectionEnd >= 0)
			txt_selectionne = champ.value.substring(champ.selectionStart, champ.selectionEnd);
			else
			txt_selectionne = '';
			// si c'est un lien
			if (txt_selectionne.indexOf('http://') == 0)
			{
				
				balise_debut = '<'+nom+' longueur="x" largeur="y">';
				balise_fin = bal+'</'+nom+'>';
			}
	
			else
			{
				texte = 'Veuillez entrer le lien de l\image';
				bal = prompt(texte);
				
				if(bal == null) bal = 'URL';
				
				
				balise_debut = '<'+nom+' longueur="x" largeur="y">';
				balise_fin = bal+'</'+nom+'>';
			}
		}

                
		balise(balise_debut,balise_fin, id_textarea);
	
		if (document.getElementById(nom))
		document.getElementById(nom).options[0].selected = true;
	}
	

    function emoticone(smiley)
    {
        balise(':'+smiley+':', '', 'message');
    }
      function insere(smiley)
      {
            var champ = window.opener.document.getElementById(textarea);
            var scroll = champ.scrollTop;
            smiley = ' ' + smiley + ' ';

            if (champ.curseur)
            {
                  champ.curseur.text = smiley;
            }
            
            else if (champ.selectionStart != 'undefined' && champ.selectionEnd != 'undefined')
            {
                  var debut = champ.value.substring(0, champ.selectionStart);
                  var fin = champ.value.substring(champ.selectionEnd);
                  champ.value = debut + smiley + fin;
                  champ.focus();
                  champ.setSelectionRange(debut.length + smiley.length, champ.value.length - fin.length);
            }
            else
            {
                  champ.value  += smiley;
                  champ.focus();
            }     
            champ.scrollTop = scroll;

            var champ = window.opener.document.getElementById(textarea);
            var div_prev = window.opener.document.getElementById('prev_'+textarea);
            var contenu = champ.value;
      }

//ajoute un tableau au textarea
function add_table(id_textarea, id_prev)
{
    var row_nbr = ''; //Nombre de lignes
    var column_nbr = ''; // Nombre de colonnes
    var has_header =''; // Booléen: Va-t-on insérer l'entête ?
    var tmp ='';
    var countc, countr;

    row_nbr = document.getElementById('row_nbr').value;
    column_nbr = document.getElementById('column_nbr').value;
    has_header = document.getElementById('table_header').checked;

    // We checked that the user doesn't try to inster to many cells
    if (column_nbr > 20)
    {
        column_nbr = 20;
    }
    
    if (row_nbr > 99)
    {
        row_nbr = 99;
    }

    if (has_header)
    {
        tmp += '<tr>'+"\n";
        for (countc = 0; countc < column_nbr; countc ++)
        {
            tmp += '<th>-</th>'+"\n";
        }
        tmp += '</tr>'+"\n";
    }

    for (countr = 0; countr < row_nbr; countr ++)
    {
        tmp += '<tr>'+"\n";
        for (countc = 0; countc < column_nbr; countc ++)
        {
            tmp += '<td>-</td>'+"\n";
        }
        tmp += '</tr>'+"\n";
    }
    
    balise('<table>'+"\n"+tmp,'</table>', id_textarea);
}      
      
