
function writespan(texte,field)
{
    document.getElementById(field).innerHTML = texte;
}

function checkfav(gameid,userid)
{
    resp = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'game-action.php?check=1&gid='+encodeURIComponent(gameid)+'&uid='+encodeURIComponent(userid));
    if (resp == 2)
    {
        writespan('add to favorite','btnfav');
    }
    else if (resp == 1)
    {
        writespan('unset favorite','btnfav');
    }
}

function validGameVote(gid,uid,value)
{
    var browser=navigator.appName;
    var resp = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'game-action.php?check=10&gid='+gid+'&value='+value);
    var newvalue = 30*value;
    if (browser == 'Microsoft Internet Explorer')
        document.getElementById('xos_rater'+gid).style.width = newvalue;
    else
        document.getElementById('xos_rater'+gid).style.width = newvalue+'px;';
    //document.getElementById(gid).style.color = 'green';
    document.getElementById(gid).innerHTML = 'your vote has been cast';
    
    /*if (resp == 1)  Bioutifoul effect !
         new Effect.Grow('rating_ok');*/ 
        
}

function pop_up(link,title,height,width) 
{
    //var a;
    //for(i in window)
    //    a += i+':'+window[i]+'<br/>';
    //var p = document.createElement('p');
    //    p.innerHTML = a;
    //document.getElementsByTagName('body')[0].appendChild(p);
    var left = (window.screenX || window.screenLeft) + Math.round(((window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth)- width ) / 2.0);
    var top  = (window.screenY || window.screenTop) + Math.round(((window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight) - height) / 2.0);
    var options = 'left='+left+',top='+top+',height='+height+',width='+width+',scrollbar="no"';// resize a verifier ...
    pop = window.open(link, 'xos', options);
    // if isset pop -> pop.close();
    pop.focus();
}

function favorite (gameid,userid)
{
    if (document.getElementById('btnfav').innerHTML == 'add to favorite')
    {
        resp = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'game-action.php?check=2&gid='+encodeURIComponent(gameid)+'&uid='+encodeURIComponent(userid));
        // writespan('<span style="color:#1A7917;font-size: 14px; font-weight: bold;">Game added to favorite !</span>','favouritemsg');
        writespan('unset favorite','btnfav');
    }
    else if (document.getElementById('btnfav').innerHTML == 'unset favorite')
    {
        resp = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'game-action.php?check=3&gid='+encodeURIComponent(gameid)+'&uid='+encodeURIComponent(userid));
        //   writespan('<span style="color:#CC0000;font-size: 14px; font-weight: bold;">Favorite unset !</span>','favouritemsg');
        writespan('add to favorite','btnfav');
    }
}

function show_tab (tab)
{
    document.getElementById('toolbox_embed_tab'      ).style.display = 'none';
    document.getElementById('toolbox_rating_tab'     ).style.display = 'none';
    document.getElementById('toolbox_' + tab + '_tab').style.display = '';
}

function show_rule(rule)
{
    document.getElementById('rules_' + rule + '_tab').style.display = '';
}

function hide_rule(rule)
{
    document.getElementById('rules_' + rule + '_tab').style.display = 'none';
}

function toggle_rule()
{
    if (document.submitgameform.addfilecheck.checked == false)
    {
        document.getElementById('rules_addfile_tab').style.display = 'none';
        document.getElementById('addfile_tab').style.display = 'none';
    }
    else if(document.submitgameform.addfilecheck.checked == true)
    {
        document.getElementById('rules_addfile_tab').style.display = '';
        document.getElementById('addfile_tab').style.display = '';
    }
}
function toggle_sourcerule()
{
    if (document.submitgameform.addsourcecheck.checked == false)
    {
        document.getElementById('rules_addsource_tab').style.display = 'none';
        document.getElementById('addsource_tab').style.display = 'none';
    }
    else if(document.submitgameform.addsourcecheck.checked == true)
    {
        document.getElementById('rules_addsource_tab').style.display = '';
        document.getElementById('addsource_tab').style.display = '';
    }
}

function show_error(label)
{
  show_hide(label+ "_img_err", "", "show");
}

function hide_error(label)
{
 show_hide(label+ "_img_err", "", "hide");
}

function show_picture(path,largeur,hauteur,game_id)
{
    if (largeur) document.getElementById('game_illus_img').width = largeur;
    if (hauteur) document.getElementById('game_illus_img').height = hauteur;
    document.getElementById('game_illus_img').src = path;    
}

function newgameForm(type)
{
    var validOrNot = 0;
	var nbCat = 0;
    if (document.getElementById('gametitleEN').value == '' && document.getElementById('gametitleFR').value == '' && document.getElementById('gametitleES').value == '' && document.getElementById('gametitlePL').value == '' && document.getElementById('gametitlePT').value == '')
    {
        writespan('missing game title','errtitle');
        show_rule('title');
        show_error('gametitle');
        validOrNot++;
    }
    else if (document.getElementById('gametitleEN').value.length > 30 || document.getElementById('gametitleFR').value.length > 30 || document.getElementById('gametitleES').value.length > 30 || document.getElementById('gametitlePL').value.length > 30 || document.getElementById('gametitlePT').value.length > 30)
    {
        writespan('title too long','errtitle');
        show_rule('title');
        show_error('gametitle');        
        validOrNot++;        
    }
    else
    {
       hide_rule('title');
       hide_error('gametitle');
    }
    
    if (document.getElementById('gamedescEN').value == '' && document.getElementById('gamedescFR').value == '' && document.getElementById('gamedescES').value == '' && document.getElementById('gamedescPL').value == '' && document.getElementById('gamedescPT').value == '')
    {
        writespan('missing game description','errdesc');
        show_rule('desc');
        show_error('gamedesc');       
        validOrNot++;
    }
    
    else if (document.getElementById('gamedescEN').value.length > 250 || document.getElementById('gamedescFR').value.length > 250 || document.getElementById('gamedescES').value.length > 250 || document.getElementById('gamedescPL').value.length > 250 || document.getElementById('gamedescPT').value.length > 250)
    {
        writespan('game description is too long','errdesc');
        show_rule('desc');
        show_error('gamedesc');       
        validOrNot++;        
    }
    else
    {
        hide_rule('desc');
        hide_error('gamedesc');
    }
    
    if (document.getElementById('commandEN').value == '' && document.getElementById('commandFR').value == '' && document.getElementById('commandES').value == '' && document.getElementById('commandPL').value == '' && document.getElementById('commandPT').value == '')
    {
        writespan('missing game instructions','errcom');
        show_rule('command');
        show_error('command');
        validOrNot++;        
    }
    else if (document.getElementById('commandEN').value.length > 250 || document.getElementById('commandFR').value.length > 250 || document.getElementById('commandES').value.length > 250 || document.getElementById('commandPL').value.length > 250 || document.getElementById('commandPT').value.length > 250)
    {
        writespan('game instructions are too long','errcom');
        show_rule('command');
        show_error('command');
        validOrNot++;
    }
    else
    {
        hide_rule('command');
        hide_error('command');
    }
    
    if (document.submitgameform.action.checked == true)
		nbCat++;
	if (document.submitgameform.strategy.checked == true)
		nbCat++;
	if (document.submitgameform.adventure.checked == true)
		nbCat++;
	if (document.submitgameform.reflexion.checked == true)
		nbCat++;
	if (document.submitgameform.simulation.checked == true)
		nbCat++;
	if (document.submitgameform.sport.checked == true)
		nbCat++;
	if (document.submitgameform.educ.checked == true)
		nbCat++;
	if (document.submitgameform.other.checked == true)
		nbCat++;
		
    if (nbCat == 0)
	{
        writespan('select ne category','errcat');
        show_error('gamecat'); 
        validOrNot++;
    }
	else if (nbCat > 3)
	{
		writespan('You cannot select more than 3 categories','errcat');
        show_error('gamecat'); 
        validOrNot++;
	}
    else
    {
        hide_error('gamecat');
    }
    if (type == 'new')
    {
        
        if (document.getElementById('illus').value == '')
        {
            writespan('missing game illustration','errillus');
            show_rule('illus');
            show_error('illus');
            validOrNot++;
        }
        
        if (document.getElementById('game_file').value == '')
        {
            writespan('missing or invalid game file','errfile');
            show_rule('game_file');
            show_error('game_file');
            validOrNot++;
        }
    }
    
    if (document.submitgameform.terms.checked == false)
    {
                    writespan('terms of use','errterm');
                show_error('terms');
        validOrNot++;
    }
    else
    {
        hide_error('terms');
    }
    
    if (validOrNot == 0)
        return true;
    else 
        return false;
}

function testSendMail(type)
{
    if (type == 'question')
    {
        if (document.sendmailform.question_type[0].checked == false && document.sendmailform.question_type[1].checked == false &&  document.sendmailform.question_type[2].checked == false)
        {
            document.getElementById('errmsg').style.display = "";
            document.getElementById('errmsg2').innerHTML = 'Select an option (question, remark suggestion)';
            return false;
        }
        if (document.sendmailform.subject.value == '')
        {
            document.getElementById('errmsg').style.display = "";
            document.getElementById('errmsg2').innerHTML = 'Please enter a subject for your message';
            return false;
        }
        if (document.sendmailform.message.value == '')
        {
            document.getElementById('errmsg').style.display = "";
            document.getElementById('errmsg2').innerHTML = 'Your message body is empty !';
            return false;
        }
        else
        {
            document.sendmailform.submit();
            return true;
        }
    }
    if (type == 'mail')
    {
        if (document.sendmailform.receivers.value == '')
        {
            document.getElementById('errmsg').style.display = "";
            document.getElementById('errmsg2').innerHTML = 'Select a receiver for your email';
            return false;
        }
        if (document.sendmailform.subject.value == '')
        {
            document.getElementById('errmsg').style.display = "";
            document.getElementById('errmsg2').innerHTML = 'Please enter a subject for your message';
            return false;
        }
        if (document.sendmailform.message.value == '')
        {
            document.getElementById('errmsg').style.display = "";
            document.getElementById('errmsg2').innerHTML = 'Your message body is empty !';
            return false;
        }
        else
        {
            return true;
        }
        
    }
    if (type == 'bug')
    {
        if (document.sendbugform.subject.value == '')
        {
            document.getElementById('errmsgbug').style.display = "";
            document.getElementById('errmsgbug2').innerHTML = 'Please enter a subject for your message';
            return false;
        }
        if (document.sendbugform.message.value == '')
        {
            document.getElementById('errmsgbug').style.display = "";
            document.getElementById('errmsgbug2').innerHTML = 'Your message body is empty !';
            return false;
        }  /*... bug tiny MCE... */
        else
        {
            document.sendbugform.submit();
            return true;
        }
    }
    if (type == 'moderation')
    {
        if (document.sendmoderationform.subject.value == '')
        {
            document.getElementById('errmsgmod').style.display = "";
            document.getElementById('errmsgmod2').innerHTML = 'Please enter a subject for your message';
            return false;
        }
        if (document.sendmoderationform.message.value == '')
        {
            document.getElementById('errmsgmod').style.display = "";
            document.getElementById('errmsgmod2').innerHTML = 'Your message body is empty !';
            return false;
        }  /*... bug tiny MCE... */
        else
        {
            document.sendmoderationform.submit();
            return true;
        }
    }
}

function refreshComments(gameid)
{
   var nbcom = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'game-action.php?check=getnbcomment&game='+gameid);
   if (nbcom == 0)
   {
        document.getElementById('comments').style.height = '100px';
        var resp = '';
   }
   else if ( nbcom > 0 && nbcom < 5)
   {
        var resp = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'game-action.php?check=5&game='+gameid);     
        document.getElementById('comments').style.height = 120*nbcom+'px';        
   }
   else
   {
        document.getElementById('comments').style.height = '400px';
        var resp = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'game-action.php?check=5&game='+gameid);
   }
   document.getElementById('comments').innerHTML = resp;
}

function refreshCommentsGroup(groupid)
{
   var nbcom = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'group-action.php?check=getnbcommentgroup&group='+groupid);
   if (nbcom == 0)
   {
        document.getElementById('comments').style.height = '100px';
        var resp = '';
   }
   else if ( nbcom > 0 && nbcom < 5)
   {
		var resp = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'group-action.php?action=refreshcommentgroup&group='+groupid);     
        document.getElementById('comments').style.height = 120*nbcom+'px';        
   }
   else
   {	
        document.getElementById('comments').style.height = '400px';
        var resp = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'group-action.php?action=refreshcommentgroup&group='+groupid);
   }
   document.getElementById('comments').innerHTML = resp;
}

function postComment(gameid,moderation)
{
    var postLanguage = document.getElementById('commentLang').value;
    var comment = document.getElementById('mycomment').value;
    if (comment != '')
        file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'game-action.php?check=4&comment='+encodeURIComponent(comment)+'&game='+gameid+'&comment_lang='+postLanguage);
    refreshComments(gameid);
    document.getElementById('mycomment').value = '';
    if(moderation == 1)// moderation a priori on affiche le message de confirmation
        document.getElementById('comments-message').style.display = '';
}

function postCommentGroup(groupid,moderation)
{
    var postLanguage = document.getElementById('commentLang').value;
    var comment = document.getElementById('mycomment').value;
    if (comment != '')
        file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'group-action.php?action=addcommentgroup&comment='+encodeURIComponent(comment)+'&group='+groupid+'&comment_lang='+postLanguage);
    refreshCommentsGroup(groupid);
    document.getElementById('mycomment').value = '';
    if(moderation == 1)// moderation a priori on affiche le message de confirmation
        document.getElementById('comments-message').style.display = '';
}

function flagComment(comid,divid)
{
    resp = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'game-action.php?check=9&comid='+encodeURIComponent(comid));
    document.getElementById('com'+divid).style.display = '';
    //if (resp == 1)
        //new Effect.Grow('com'+divid);    
}

function hitTack(gameid)
{
    resp = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'game-action.php?check=hit&game='+encodeURIComponent(gameid));
}

function incrementPlayer(gameid,action)
{
    resp = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'game-action.php?check=increment&action='+encodeURIComponent(action)+'&game='+encodeURIComponent(gameid));
}

function switchbtn()
{
    if(document.getElementById('downloadbtn').disabled == true)
        document.getElementById('downloadbtn').disabled = false;
    else
        document.getElementById('downloadbtn').disabled = true;
}

function changePageComment(page,game,total)
{
    resp = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'game-action.php?check=5&game='+game+'&page='+page);
    document.getElementById('comments').innerHTML = resp;
    
    var pages = 'page ';
    for (var i = 1; i<total+1; i++)
    {
        if (i == page)
        {
            pages +=  '<span id="page'+i+'" style="font-weight:bolder;font-size:16px;">'+page+'</span>&nbsp;';
        }
        else
        {
            pages += '<span id="page'+i+'" class="LienGrisSouligne" style="font-size:12px;"><a href="#" onclick="changePageComment('+i+','+game+','+total+');return false;">'+i+'</a></span>&nbsp;';
        }
    }
    document.getElementById('comments-pages').innerHTML = pages;

    return false;
}

function votePos(game)
{
    var resp = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'game-action.php?check=votepos&game='+game);
    if (resp == -1)
    {
        document.getElementById('votemsg').innerHTML = 'leaderboard';
        document.getElementById('votemsg').style.color = 'red';
    }
    else
    {
        document.getElementById('votemsg').innerHTML = 'thanks for voting';
        document.getElementById('votemsg').style.color = 'green';
    }
        
}

function voteNeg(game)
{
    var resp = file((typeof rooturl != 'undefined' ? rooturl+'/' : '')+'game-action.php?check=voteneg&game='+game);
    if (resp == -1)
    {
        document.getElementById('votemsg').innerHTML = 'leaderboard';
        document.getElementById('votemsg').style.color = 'red';
    }
    else
    {
        document.getElementById('votemsg').innerHTML = 'thanks for voting';
        document.getElementById('votemsg').style.color = 'green';
    }
}


function platformGame (platformSelected)
{

	/*browser selected */
    // si plateform selected vide => detectio automatique (permet de switcher sans rechargement de page pour widget)
    if (!platformSelected)
    {
        if($('#gameplatform').attr("value") != "gamdget")
            platformSelected = "gamdget";
        else
            platformSelected = "whosegame";
        
    }
	if (platformSelected=='whosegame') 
	{
        
        $('#plateform_button_whosegame_up').removeClass('display_block');
        $('#plateform_button_whosegame_up').addClass('display_none');
        $('#plateform_button_whosegame_down').removeClass('display_none');
        $('#plateform_button_whosegame_down').addClass('display_block');
        
        $('#plateform_button_gamedget_up').addClass('display_block');
        $('#plateform_button_gamedget_up').removeClass('display_none');
        $('#plateform_button_gamedget_down').addClass('display_none');
        $('#plateform_button_gamedget_down').removeClass('display_block');
        
        $('#plateform_explicazions_gamedget').removeClass('bold');
        $('#plateform_explicazions_whosegame').addClass('bold');
        

	}
	else
	{
        $('#plateform_button_whosegame_up').addClass('display_block');
        $('#plateform_button_whosegame_up').removeClass('display_none');
        $('#plateform_button_whosegame_down').addClass('display_none');
        $('#plateform_button_whosegame_down').removeClass('display_block');
        
        $('#plateform_button_gamedget_up').removeClass('display_block');
        $('#plateform_button_gamedget_up').addClass('display_none');
        $('#plateform_button_gamedget_down').removeClass('display_none');
        $('#plateform_button_gamedget_down').addClass('display_block');
        
        $('#plateform_explicazions_gamedget').addClass('bold');
        $('#plateform_explicazions_whosegame').removeClass('bold');

	}
    //alert(platformSelected);
    $('#gameplatform').attr('value', platformSelected);
	//document.getElementById('gameplatform').value = platformSelected;

}

function get_html_translation_table (table, quote_style) {
    // Returns the internal translation table used by htmlspecialchars and htmlentities  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/get_html_translation_table
    // +   original by: Philip Peterson
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: noname
    // +   bugfixed by: Alex
    // +   bugfixed by: Marco
    // +   bugfixed by: madipta
    // +   improved by: KELAN
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Frank Forte
    // +   bugfixed by: T.Wild
    // +      input by: Ratheous
    // %          note: It has been decided that we're not going to add global
    // %          note: dependencies to php.js, meaning the constants are not
    // %          note: real constants, but strings instead. Integers are also supported if someone
    // %          note: chooses to create the constants themselves.
    // *     example 1: get_html_translation_table('HTML_SPECIALCHARS');
    // *     returns 1: {'"': '&quot;', '&': '&amp;', '<': '&lt;', '>': '&gt;'}
    
    var entities = {}, hash_map = {}, decimal = 0, symbol = '';
    var constMappingTable = {}, constMappingQuoteStyle = {};
    var useTable = {}, useQuoteStyle = {};
    
    // Translate arguments
    constMappingTable[0]      = 'HTML_SPECIALCHARS';
    constMappingTable[1]      = 'HTML_ENTITIES';
    constMappingQuoteStyle[0] = 'ENT_NOQUOTES';
    constMappingQuoteStyle[2] = 'ENT_COMPAT';
    constMappingQuoteStyle[3] = 'ENT_QUOTES';

    useTable       = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS';
    useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT';

    if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES') {
        throw new Error("Table: "+useTable+' not supported');
        // return false;
    }

    entities['38'] = '&amp;';
    if (useTable === 'HTML_ENTITIES') {
        entities['160'] = '&nbsp;';
        entities['161'] = '&iexcl;';
        entities['162'] = '&cent;';
        entities['163'] = '&pound;';
        entities['164'] = '&curren;';
        entities['165'] = '&yen;';
        entities['166'] = '&brvbar;';
        entities['167'] = '&sect;';
        entities['168'] = '&uml;';
        entities['169'] = '&copy;';
        entities['170'] = '&ordf;';
        entities['171'] = '&laquo;';
        entities['172'] = '&not;';
        entities['173'] = '&shy;';
        entities['174'] = '&reg;';
        entities['175'] = '&macr;';
        entities['176'] = '&deg;';
        entities['177'] = '&plusmn;';
        entities['178'] = '&sup2;';
        entities['179'] = '&sup3;';
        entities['180'] = '&acute;';
        entities['181'] = '&micro;';
        entities['182'] = '&para;';
        entities['183'] = '&middot;';
        entities['184'] = '&cedil;';
        entities['185'] = '&sup1;';
        entities['186'] = '&ordm;';
        entities['187'] = '&raquo;';
        entities['188'] = '&frac14;';
        entities['189'] = '&frac12;';
        entities['190'] = '&frac34;';
        entities['191'] = '&iquest;';
        entities['192'] = '&Agrave;';
        entities['193'] = '&Aacute;';
        entities['194'] = '&Acirc;';
        entities['195'] = '&Atilde;';
        entities['196'] = '&Auml;';
        entities['197'] = '&Aring;';
        entities['198'] = '&AElig;';
        entities['199'] = '&Ccedil;';
        entities['200'] = '&Egrave;';
        entities['201'] = '&Eacute;';
        entities['202'] = '&Ecirc;';
        entities['203'] = '&Euml;';
        entities['204'] = '&Igrave;';
        entities['205'] = '&Iacute;';
        entities['206'] = '&Icirc;';
        entities['207'] = '&Iuml;';
        entities['208'] = '&ETH;';
        entities['209'] = '&Ntilde;';
        entities['210'] = '&Ograve;';
        entities['211'] = '&Oacute;';
        entities['212'] = '&Ocirc;';
        entities['213'] = '&Otilde;';
        entities['214'] = '&Ouml;';
        entities['215'] = '&times;';
        entities['216'] = '&Oslash;';
        entities['217'] = '&Ugrave;';
        entities['218'] = '&Uacute;';
        entities['219'] = '&Ucirc;';
        entities['220'] = '&Uuml;';
        entities['221'] = '&Yacute;';
        entities['222'] = '&THORN;';
        entities['223'] = '&szlig;';
        entities['224'] = '&agrave;';
        entities['225'] = '&aacute;';
        entities['226'] = '&acirc;';
        entities['227'] = '&atilde;';
        entities['228'] = '&auml;';
        entities['229'] = '&aring;';
        entities['230'] = '&aelig;';
        entities['231'] = '&ccedil;';
        entities['232'] = '&egrave;';
        entities['233'] = '&eacute;';
        entities['234'] = '&ecirc;';
        entities['235'] = '&euml;';
        entities['236'] = '&igrave;';
        entities['237'] = '&iacute;';
        entities['238'] = '&icirc;';
        entities['239'] = '&iuml;';
        entities['240'] = '&eth;';
        entities['241'] = '&ntilde;';
        entities['242'] = '&ograve;';
        entities['243'] = '&oacute;';
        entities['244'] = '&ocirc;';
        entities['245'] = '&otilde;';
        entities['246'] = '&ouml;';
        entities['247'] = '&divide;';
        entities['248'] = '&oslash;';
        entities['249'] = '&ugrave;';
        entities['250'] = '&uacute;';
        entities['251'] = '&ucirc;';
        entities['252'] = '&uuml;';
        entities['253'] = '&yacute;';
        entities['254'] = '&thorn;';
        entities['255'] = '&yuml;';
    }

    if (useQuoteStyle !== 'ENT_NOQUOTES') {
        entities['34'] = '&quot;';
    }
    if (useQuoteStyle === 'ENT_QUOTES') {
        entities['39'] = '&#39;';
    }
    entities['60'] = '&lt;';
    entities['62'] = '&gt;';


    // ascii decimals to real symbols
    for (decimal in entities) {
        symbol = String.fromCharCode(decimal);
        hash_map[symbol] = entities[decimal];
    }
    
    return hash_map;
}


function html_entity_decode (string, quote_style) {
    // Convert all HTML entities to their applicable characters  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/html_entity_decode
    // +   original by: john (http://www.jd-tech.net)
    // +      input by: ger
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Onno Marsman
    // +   improved by: marc andreu
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    bugfixed by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Ratheous
    // -    depends on: get_html_translation_table
    // *     example 1: html_entity_decode('Kevin &amp; van Zonneveld');
    // *     returns 1: 'Kevin & van Zonneveld'
    // *     example 2: html_entity_decode('&amp;lt;');
    // *     returns 2: '&lt;'
    var hash_map = {}, symbol = '', tmp_str = '', entity = '';
    tmp_str = string.toString();
    
    if (false === (hash_map = this.get_html_translation_table('HTML_ENTITIES', quote_style))) {
        return false;
    }

    for (symbol in hash_map) {
        entity = hash_map[symbol];
        tmp_str = tmp_str.split(entity).join(symbol);
    }
    tmp_str = tmp_str.split('&#039;').join("'");
    
    return tmp_str;
}


// fct utilisant sunday_morning
// on aurait voulu faire une boucle sur l'array div_source mais la synchro entre la reponse de google et la boucle ne le permettent pas
// pour faire simplet et vite, on le fait sachant que le tableau a 3 entrees
function translate_div_submit_step_1(div_source, div_dest, langue_source, langue_dest)
{
    langue_source = langue_source.toLowerCase();
    langue_dest = langue_dest.toLowerCase();
    
    if($('#'+div_source[0]).attr('value'))
    {
        $.sundayMorning($('#'+div_source[0]).attr('value'), {
        source:langue_source,
        destination:langue_dest
        }, function(response) {
            // on reporte la traduction dans le div de dest
            $('#'+div_dest[0]).attr('value', html_entity_decode(response.translation, "ENT_QUOTES"));
        });
    }
    
    if($('#'+div_source[1]).attr('value'))
    {
        $.sundayMorning($('#'+div_source[1]).attr('value'), {
        source:langue_source,
        destination:langue_dest 
        }, function(response) {
            
            // on reporte la traduction dans le div de dest
            $('#'+div_dest[1]).attr('value', html_entity_decode(response.translation, "ENT_QUOTES"));
        });
    }
    
    if($('#'+div_source[2]).attr('value'))
    {
        $.sundayMorning($('#'+div_source[2]).attr('value'), {
        source:langue_source,
        destination:langue_dest 
        }, function(response) {
            
            // on reporte la traduction dans le div de dest
            $('#'+div_dest[2]).attr('value', html_entity_decode(response.translation, "ENT_QUOTES"));
        });
    }

    if($('#'+div_source[3]).attr('value'))
    {
        $.sundayMorning($('#'+div_source[3]).attr('value'), {
        source:langue_source,
        destination:langue_dest 
        }, function(response) {
            // on reporte la traduction dans le div de dest
            $('#'+div_dest[3]).attr('value', html_entity_decode(response.translation, "ENT_QUOTES"));
        });
    }
}