﻿function copyToClipboard(txt) {

    if (window.clipboardData) {
        window.clipboardData.clearData();
        window.clipboardData.setData("Text", txt);
        return true;
    } else if (navigator.userAgent.indexOf("Opera") != -1) {
        window.location = txt;
        return true;
    } else if (window.netscape) {
        try {
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
        } catch (e) {
            alert("You need set 'signed.applets.codebase_principal_support=true'at about:config'");
            return false;
        }

        var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);

        if (!clip)
            return false;

        var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);

        if (!trans)
            return false;

        trans.addDataFlavor('text/unicode');
        var str = new Object();
        var len = new Object();
        var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);

        var copytext = txt;
        str.data = copytext;
        trans.setTransferData("text/unicode", str, copytext.length * 2);

        var clipid = Components.interfaces.nsIClipboard;

        if (!clip)
            return false;

        clip.setData(trans, null, clipid.kGlobalClipboard);

        return true;
    }
}
// ------------ Private Functions ------------
var targetDiv = null;
var targetLoading = null;
var sysinfo = null;

function showResponse(transport)
{
    if (targetLoading != null)
        $('#' + targetLoading).css('display', 'none');

    if (targetDiv != null)
        $('#' + targetDiv).html(transport);

    document.body.style.cursor = 'auto';

	if(sysinfo!=null)
	    admin_afficherInfo(sysinfo);
}

function sendRequest(url, pars, div, loading) {
    targetDiv = div;
    targetLoading = loading;

    if (targetLoading != null)
        $('#' + targetLoading).css('display', '');

    //document.body.style.cursor = 'url(../App_Themes/loading.gif)';
    document.body.style.cursor = 'wait';

    //    $.post(url, pars,
    //                      function(data) {
    //                        showResponse(data)
    //                    }, "text");

    $.ajax({
        url: url,
        type: "POST",
        data: pars,
        dataType: "text",
        success: function(data) { showResponse(data); },
        error: function(xhr, err, e) {
            if (targetLoading != null)
                $('#' + targetLoading).css('display', 'none');

            document.body.style.cursor = 'auto';
            
            alert("We apologized that Mogher has encountered an error while connecting the server. Please contact the support team for help.");
        }
    });
}

// ------------ Public Functions ------------
function rechercherChar(Char, div, loading)
{
	var url = 'recherchercaractere.aspx';
	var QueriedChar = Char;
	var pars = {QueriedChar:QueriedChar};
	sendRequest(url, pars, div, loading);
}

function rechercherCharByID(id, div, loading) {
    var url = 'recherchercaractere.aspx';
    var pars = { ID: id };
    sendRequest(url, pars, div, loading);
}

function getReadings(caracteres, div, loading)
{
    var url = 'rechercherpourpro.aspx';
    var pars = { caracteres: caracteres };
	sendRequest(url, pars, div, loading);
}

function rechercherParDefinition(definition, div, loading)
{
    var url = 'rechercherpardefinition.aspx';
    var pars = 'definition=' + definition;
	sendRequest(url, pars, div, loading);
}

function rechercherTsuanntsiu(id, div, loading) {
    var url = 'autreslangues.ashx';
    var pars = { id: id };
    sendRequest(url, pars, div, loading);
}

function newDefinition(Char, div, loading)
{
	var url = 'nouvelledefinition.aspx';
	var pars = { Char: Char };
	sendRequest(url, pars, div, loading);
}

function newIdiom(ref, idname, div, loading)
{
	var url = 'nouveauidiome.aspx';
	var pars = 'Reference=' + ref + '&idname=' + idname;
	sendRequest(url, pars, div, loading);
}

function newComment(CharCode, type, div, loading)
{
	var url = 'nouveaucommentaire.aspx';
	var pars = { Reference: CharCode, Type: type };
	sendRequest(url, pars, div, loading);
}

function saveComment(CharID, type, content, div, loading)
{
	var url = 'enregistrer.aspx';
	var pars = { action: 'nc', Reference: CharID, Type: type, Content: content };
	sendRequest(url, pars, div, loading);
}

function saveUserDefinition(Char, FormalReadings, InformalReadings, MandarinReadings, Definition, TiechewOnly, div, loading)
{
	var url = 'enregistrer.aspx';
	var pars = { action: 'nud', CharCode: Char, FormalReadings: FormalReadings, InformalReadings: InformalReadings, MandarinReadings: MandarinReadings, Definition: Definition, TiechewOnly: TiechewOnly };
	//$(div).innerH
	sendRequest(url, pars, div, loading);
}

function saveIdiom(ref, idiom, reading, def, id, div, loading)
{
	var url = 'enregistrer.aspx';
	var pars = 'action=ni&Reference=' + ref + "&Idiom=" + idiom + "&Reading=" + reading + "&Definition=" + def + "&id=" + id;
	sendRequest(url, pars, div, loading);
}

// ------------ Admin Console Functions ------------
function admin_rechercherCaractere(caractere, div, loading)
{
	var url = 'recherchercaractere.aspx';
	var pars = 'caractereRecherche=' + caractere;
	sendRequest(url, pars, div, loading);
}

function admin_modifierCaractere(caractere, loading)
{
	var url = 'enregistrer.aspx';
	var pars = 'action=mc&' + 
	    'caractere=' + caractere +
	    '&caractereTraditionnel=' + $('#caractèreTraditionnel') +
	    '&racine=' + $('racine').options[$('racine').selectedIndex].name +
	    '&compteTraitSaufRacine=' + $('#compteTraitSaufRacine');
	sysinfo = 'Caractère Modifié.';
	sendRequest(url, pars, null, loading);
}

function admin_modifierDefinition(id, loading)
{
	var url = 'enregistrer.aspx';
	var pars = 'action=md' + 
	    '&id=' + id +
    	'&litteral=' + $('#litteral') +
    	'&usuelle=' + $('#usuelle') +
    	'&mandarine=' + $('#mandarine') +
    	'&definition=' + $('#definition') +
    	'&tiechewonly=' + $('#tiechewonly') +
    	'&english=' + $('#english');
	sysinfo = 'Définition Modifié.';
	sendRequest(url, pars, null, loading);
}

function admin_approuverDefinition(id, loading)
{
	var url = 'enregistrer.aspx';
	var pars = 'action=adm' + 
	    '&id=' + id +
	    '&caractere=' + $('#caractere') +
    	'&litteral=' + $('#litteral') +
    	'&usuelle=' + $('#usuelle') +
    	'&mandarine=' + $('#mandarine') +
    	'&definition=' + $('#definition') +
    	'&tiechewonly=' + $('#tiechewonly') +
    	'&english=' + $('#english');
	sysinfo = 'Définition Approuvé.';
	sendRequest(url, pars, null, loading);
}

function admin_afficherInfo(info)
{
    $('sysinfo').innerText = info;
    $('sysinfowin').style.display = '';
}

function admin_cacherInfo()
{
    $('sysinfowin').style.display = 'none';
}