var textareaFocus;

/* Setta la textarea che ha il focus in questo momento */
function setFocus(nome) {
  textareaFocus = nome;
}


/* Aggiunge una stringa prima e dopo la stringa selezionata all' interno
 * dell' oggetto form obj
 * cfirst = carattere o stringa da inserire prima della frase selezionata
 * clast = carattere da aggiungere in fondo alla riga
 * obj = oggetto (textarea o textfield)
 */
function addChar(cfirst,clast) {
    seltext = getSel();
    obj = textareaFocus;
    ttext= obj.value;

    n = 0;
    while (ttext.length > 0) {
      i = ttext.indexOf(seltext);
      if (i > 0) {
        n = n + 1;
        ttemp = ttext;
        ttext = ttemp.substring(0,i) + ttemp.substring(i+seltext.length,ttemp.length);
      } else {
        break;
      }
    }
    if (n > 1) {
      alert("Attenzione: esistono diverse (" + (n - 1) + ") corrispondenze della frase selezionata all'interno del testo. Seleziona una parte piú specifica!");
    } else {
      obj.value = obj.value.replace(seltext,cfirst + seltext + clast);
    }
}

/* Visualizza un messaggio se si inserisce un testo piu' lungo
   della lunghezza del campo, passata come parametro
   obj = oggetto da controllare (es. nome della textarea)
   l = lunghezza campo
*/
function lunghezzatesto(obj,l) {
    ltesto = obj.value.length;
    if (ltesto > l) {
      obj.value = obj.value.substring(0,l)
      CharsLeft = 0
      window.alert("Il testo puo contenere solo " + l + " caratteri");
    } else {
      CharsLeft = l - ltesto
    }
}

/* Ritorna il testo selezionato */
function getSel() {
   if (document.getSelection)
      return document.getSelection();
    else if (document.selection)
      return document.selection.createRange().text;
    else return '';
}

/* Ritorna il testo selezionato nella finestra che ha aperto
 * quella corrente
 */
function getOpenerSel() {
   if (window.opener.document.getSelection)
      return window.opener.document.getSelection();
    else if (window.opener.document.selection)
      return window.opener.document.selection.createRange().text;
    else return '';
}

/* Apre una finestra di popup
 * page = nome della pagina da aprire
 * w = larghezza della finestra
 * h = altezza della finestra
 * x = coordinata x dello schermo in cui si apre della finestra
 * y = coordinata y dello schermo in cui si apre la finestra
 * res = indica se si abilita il resizable oppure no (yes | no)
 * scrol = indica se visualizzare la scrollbar oppure no (yes | no)
 */
function openPopup(page,w,h,x,y,res,scrol) {
    win = window.open(page,'winpop','width='+w+',height='+h+',left='+x+',top='+y+',screenX='+x+',screenY='+y+',toolbar=no,directories=no,menubar=no,status=no,resizable='+ res +',location=no,scrollbars=' + scrol + ',copyhistory=no,');
    win.focus();
}


/* Apre una pop-up e visualizza il testo passato
 */
function showPreview(testo) {
  mywin = window.open('','winpop','width=530,height=400,left=50,top=50,screenX=50,screenY=50,toolbar=no,directories=no,menubar=no,status=no,resizable=yes,location=no,scrollbars=yes,copyhistory=no,');
  mywin.document.write('<html><head><title>Ceveas</title></head><body bgcolor="#FFFFFF"><table width="100%"><tr><td align="left"><div align="justify"><font face="Verdana" size="2">' + testo + '</font></div></td></tr></table></body></html>');
  mywin.focus();
}

/* Inserisce nella textarea selezionata il link inserito nel campo di 
 * testo passato al metodo.
 * Nella textarea scrivo:
 * <ext#indirizzo#nome#/>
 */
function addLinkEsterno(objindirizzo, objnome, idcompany) {
    indirizzo = objindirizzo.value;
    nome = objnome.value;

    if (indirizzo.length <= 0) {
        alert('Inserire l\'indirizzo del sito o il nome della pagina');
    }
    if (nome.length <= 0) {
        alert('Inserire la parola da linkare');
    }

    /* Aggiungo la scritta http:// se non c'e' */
    if (indirizzo.indexOf(':') == -1) {
        indirizzo = 'http://' + indirizzo;
    }

    seltext = getOpenerSel();
    obj = window.opener.textareaFocus;
    ttext = obj.value;
    n = 0;
    while (ttext.length > 0) {
        i = ttext.indexOf(seltext);
        if (i > 0) {
            n = n + 1;
            ttemp = ttext;
            ttext = ttemp.substring(0,i) + ttemp.substring(i+seltext.length,ttemp.length);
        } else {
            break;
        }
    }
    if (n > 1) {
        alert("Attenzione: esistono diverse (" + (n - 1) + ") corrispondenze della frase selezionata all'interno del testo. Seleziona una parte piú specifica!");
    } else {
        obj.value = obj.value.replace(seltext, seltext + '<ext#' + indirizzo + '#' + nome + '#/>');
    }
    window.close();
}

/* Inserisce nella textarea selezionata il link inserito nel campo di 
 * testo passato al metodo.
 * Nella textarea scrivo:
 * <node#idCompany+indirizzo#nome#/>
 */
function addLinkNode(objindirizzo, objnome, idcompany) {
    indirizzo = objindirizzo.value;
    nome = objnome.value;

    if (indirizzo.length <= 0) {
        alert('Inserire l\'indirizzo del sito o il nome della pagina');
    }
    if (nome.length <= 0) {
        alert('Inserire la parola da linkare');
    }

    /* Nome di pagina: aggiungo l'id della Company */
    if (indirizzo.indexOf(':') == -1) {
        indirizzo = idcompany + '+' + indirizzo;
    }

    seltext = getOpenerSel();
    obj = window.opener.textareaFocus;
    ttext = obj.value;
    n = 0;
    while (ttext.length > 0) {
        i = ttext.indexOf(seltext);
        if (i > 0) {
            n = n + 1;
            ttemp = ttext;
            ttext = ttemp.substring(0,i) + ttemp.substring(i+seltext.length,ttemp.length);
        } else {
            break;
        }
    }
    if (n > 1) {
        alert("Attenzione: esistono diverse (" + (n - 1) + ") corrispondenze della frase selezionata all'interno del testo. Seleziona una parte piú specifica!");
    } else {
        obj.value = obj.value.replace(seltext, seltext + '<node#' + indirizzo + '#' + nome + '#/>');
    }
    window.close();
}


/* Inserisce nella textarea selezionata il link ad un ancora (link interno)
 * Nella textarea scrivo:
 * <int#nomeancora#nome#/>
 */
function addLinkInterno(objancora, objnome) {
    ancora = objancora.value;
    nome = objnome.value;

    if (ancora.length <= 0) {
        alert('Inserire il nome dell\'ancora a cui fare il collegamento');
    }
    if (nome.length <= 0) {
        alert('Inserire la parola da linkare');
    }

    seltext = getOpenerSel();
    obj = window.opener.textareaFocus;
    ttext = obj.value;
    n = 0;
    while (ttext.length > 0) {
        i = ttext.indexOf(seltext);
        if (i > 0) {
            n = n + 1;
            ttemp = ttext;
            ttext = ttemp.substring(0,i) + ttemp.substring(i+seltext.length,ttemp.length);
        } else {
            break;
        }
    }
    if (n > 1) {
        alert("Attenzione: esistono diverse (" + (n - 1) + ") corrispondenze della frase selezionata all'interno del testo. Seleziona una parte piú specifica!");
    } else {
        obj.value = obj.value.replace(seltext, seltext + '<int#' + ancora + '#' + nome + '#/>');
    }
    window.close();
}

/* Inserisce nella textarea selezionata l'ancora che verra poi
 * utilizzata per effettuare un collegamento a quel paragrafo
 * Nella textarea scrivo:
 * <ancora#nomeancora#/>
 */
function addLinkAncora(objnome) {
    nome = objnome.value;

    if (nome.length <= 0) {
        alert('Inserire il nome dell\'ancora');
    }

    seltext = getOpenerSel();
    obj = window.opener.textareaFocus;
    ttext = obj.value;
    n = 0;
    while (ttext.length > 0) {
        i = ttext.indexOf(seltext);
        if (i > 0) {
            n = n + 1;
            ttemp = ttext;
            ttext = ttemp.substring(0,i) + ttemp.substring(i+seltext.length,ttemp.length);
        } else {
            break;
        }
    }
    if (n > 1) {
        alert("Attenzione: esistono diverse (" + (n - 1) + ") corrispondenze della frase selezionata all'interno del testo. Seleziona una parte piú specifica!");
    } else {
        obj.value = obj.value.replace(seltext, seltext + '<ancora#' + nome + '#/>');
    }
    window.close();
}
