/** CTC-editorin muotoilut **/


var start_char = 0; // Merkki, josta valittu teksti alkaa
var end_char = 0; // Merkki, johon valittu teksti päättyy

var startTag = ""; // Muotoilun aloitustagi
var endTag = ""; // Muotoilun lopetustagi

var IE_range; // IE:n valinta-alue


/**
   Funktio tallettaa valitun tekstialueen aloitus- ja lopetusmerkit 
   (muut selaimet) tai koko valinta-alueen (IE) muuttujiin.
**/

function getSel(){
	var editor_textarea = document.getElementById("sisalto");
	var editor_text = editor_textarea.value;

	if(typeof(editor_textarea.selectionStart) != "undefined"){  // Muut selaimet
		start_char = editor_textarea.selectionStart;
		end_char = editor_textarea.selectionEnd;
	}
	else if(document.selection){  // IE
		IE_range = document.selection.createRange();
	}
	else{
		alert("Selaimesi ei tue tätä ominaisuutta.")
	}
}


/**
   Funktio lisää astetetut tagit valitun alueen ympärille.
   Tämä on muille selaimille tarkoitettu funktio.
**/

function writeTags(){
	var editor_textarea = document.getElementById("sisalto");
	var editor_text = editor_textarea.value;
	var scroll_y = editor_textarea.scrollTop;
	
	post_start = editor_text.substring(0,start_char);
	post_end = editor_text.substring(end_char, editor_text.length);
	post_selection = editor_text.substring(start_char, end_char);
	
	editor_textarea.value = post_start + startTag + post_selection + endTag + post_end;
	
	editor_textarea.focus();
	editor_textarea.scrollTop = scroll_y;
}


/**
   Funktio lisää astetetut tagit valitun alueen ympärille.
   Tämä on IE:lle tarkoitettu funktio.
**/

function writeTags_IE(){
	var editor_textarea = document.getElementById("sisalto");
	var scroll_y = editor_textarea.scrollTop;

	var IE_parent = IE_range.parentElement();;

	if(IE_parent.id == "sisalto"){
		var str = IE_range.text;
		IE_range.text = startTag + str + endTag;
	}
	else{
		editor_textarea.value += startTag + endTag;
	}

	editor_textarea.focus();
	editor_textarea.scrollTop = scroll_y;
}


/**
   Funktio asettaa tagit globaaleihin muuttujiin ja kutsuu funktiota,
   joka lisää tagit valinta-alueen ympärille.
**/

function setTags(start, end){
	var editor_textarea = document.getElementById("sisalto");
	startTag = start;
	endTag = end;
	
	if(typeof(editor_textarea.selectionStart) != "undefined"){  // Muut selaimet
		writeTags();
	}
	else if(document.selection){  // IE
		writeTags_IE();
	}
}


/**
   Allaolevat funktiot kutsuvat setTags-funktiota halutuilla parametreillä.
**/

function add_link(){
	
	getSel();
	
	var link=prompt("Linkin osoiten:", "http://", "CTC Editor");
	var title=prompt("Linkkisana:", "", "CTC Editor");
	
	if(!link || !title){
		if(!link && !title){
			setTags("[linkki]", "[/linkki]");
		}
		else{
			if(!link){
				setTags("[linkki="+title+"]", "[/linkki]");
			}
			else{
				setTags("[linkki]"+link+"", "[/linkki]");
			}
		}
	}
	else{
		setTags("[linkki="+link+"]"+title+"", "[/linkki]");
	}
}

function add_attachment(file){

  getSel();
  
  var link=prompt("Linkkisana:", "", "CTC Editor");
  
  if(!link){
    setTags("[liite="+file+"]", "[/liite]");
  }
  else{
    setTags("[liite="+file+"]"+link+"", "[/liite]");
  }
}

function add_tags(start,end){

	getSel();
	setTags(start,end);
}

