function is_ie() // ie 4+
{
	return ((navigator.userAgent.toLowerCase().indexOf("msie") != -1) && (navigator.userAgent.toLowerCase().indexOf("opera") == -1) && parseInt(navigator.appVersion) >= 4);
}

function is_moz()
{
	return ((navigator.userAgent.toLowerCase().indexOf("mozilla")!=-1) && (navigator.userAgent.toLowerCase().indexOf("gecko") != -1) && (navigator.userAgent.toLowerCase().indexOf("khtml") == -1));
}

function showChilds(parent)
{	
	for (n=0; n < parent.childNodes.length; n++)
		parent.childNodes[n].style.display = 'block';
}

function hideChilds(parent)
{
	for (n=0; n < parent.childNodes.length; n++)
		parent.childNodes[n].style.display = 'none'
}

// 	COOKIE
function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

//    FONT SIZE CODE    

function increaseFontSize()
{
	var size = readCookie('cirroso_font_size');
	size = size * 1;
	if (size == 0)
		size=75;
	size += 5;
	if (size > 150)
		size = 150;
	document.getElementById('the_main_container').style.fontSize = size+"%";
	document.cookie = 'cirroso_font_size=' + size + '; expires=Wed, 1 Jan 2020 0:00:00 UTC; path=/';
}

function defaultFontSize()
{
	var size = 75;
	document.getElementById('the_main_container').style.fontSize = size+"%";
	document.cookie = 'cirroso_font_size=' + size + '; expires=Wed, 1 Jan 2020 0:00:00 UTC; path=/';
}

function decreaseFontSize()
{
	var size = readCookie('cirroso_font_size');
	size -= 5;
	if (size < 65)
		size = 65;
	document.getElementById('the_main_container').style.fontSize = size+"%";
	document.cookie = 'cirroso_font_size=' + size + '; expires=Wed, 1 Jan 2020 0:00:00 UTC; path=/';
}

function loadFontSize()
{
	
	var size = readCookie('cirroso_font_size');
	if (size == null)
		size = '76';
	document.getElementById('the_main_container').style.fontSize = size+"%";
}

//    POPUP CODE    

function onBodyClick()
{
	if (skip_body_click == true)
	{
		skip_body_click = false;
		return;
	}
		
	if (popped_up != null)
	{
		document.getElementById(popped_up).style.display = 'none';
		popped_up = null;
		document.body.onclick = null;
		selected_editor.focus();
	}
}

function popup(src, popup)
{		
	menu = document.getElementById(popup);
	if (popped_up != null)
		document.getElementById(popped_up).style.display = 'none';
	popped_up = popup;

	menu.style.top = src.offsetTop + src.parentNode.offsetTop + "px" ;
	menu.style.display = 'block';
	skip_body_click = true;
	document.body.onclick = function (){onBodyClick();};
}

function popdown()
{	
	if (popped_up != null)
		document.getElementById(popped_up).style.display = 'none';
	popped_up = null;

	document.body.onclick = null;
}

//  EDITOR FUCTIONS     
//  funzioni editor
//  codice rubato da :
//  chris wetherell
//  http://www.massless.org
//  chris [THE AT SIGN] massless.org

function onMenuEnter()
{
	into_menu = true;
}

function onMenuExit()
{
	into_menu = false;
}

function onMenuClick()
{
	if (hide_styles == true)
		hide_styles = false;
	selected_editor.focus();
}

function editorBlurTimeout()
{
	if (hide_styles == true)
	{
		selected_editor = null; 
		document.getElementById('editor_menu').style.display = 'none';
	}
}

function onEditorBlur()
{
	if (into_menu != true)
	{
		hide_styles = true;
		window.setTimeout('editorBlurTimeout()', 100);
	}
}

function onEditorFocus(src)
{
	if (hide_styles == true)
		hide_styles = false;
	selected_editor = src;
	document.getElementById('editor_menu').style.display = 'block';
}

function mozWrap(txtarea, lft, rgt) {

	var selLength = txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	var caret = selEnd + lft.length + rgt.length;

	txtarea.focus();

	if (selEnd==1 || selEnd==2) selEnd=selLength;
	var s1 = txtarea.value.substring(0,selStart);
	var s2 = txtarea.value.substring(selStart, selEnd)
	var s3 = txtarea.value.substring(selEnd, selLength);
	txtarea.value = s1 + lft + s2 + rgt + s3;

	txtarea.selectionEnd = caret;
}

function IEWrap(txtarea, lft, rgt) {
	txtarea.focus();
	strSelection = document.selection.createRange().text;
	
	document.selection.createRange().text = lft + strSelection + rgt;
	
}

function wrapSelection(txtarea, lft, rgt) {
	if (is_ie()) // ie 4+ functions
	{
		IEWrap(txtarea, lft, rgt);
	}
	else if (is_moz()) // mozilla/gecko functions
	{
		mozWrap(txtarea, lft, rgt);
	}
	else if (document.getElementById)	// every dom1 compliant browser
	{
		txtarea.value += lft + rgt;
		txtarea.focus();
	}
}

function insertOnCaretGEBI(txtarea, txt) {

	var selLength = txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	var caret = selEnd + txt.length;
	txtarea.focus();

	if (selEnd==1 || selEnd==2) selEnd=selLength;
	var s1 = (txtarea.value).substring(0,selStart);
	var s3 = (txtarea.value).substring(selEnd, selLength);
	txtarea.value = s1 + txt + s3;
	txtarea.selectionEnd = caret;
}

function insertOnCaretDA(area,txt) {
	area.focus();
	document.selection.createRange().text = txt;	
}

function insertOnCaret(txt) 
{
	onMenuClick();
	if (popped_up != null)
		popdown();
	if (selected_editor != null)
	{	
		if (is_ie()) // ie 4+ functions
		{
			insertOnCaretDA(selected_editor, txt);
		}
		else if (is_moz()) // mozilla/gecko functions
		{
			insertOnCaretGEBI(selected_editor, txt);
		}
		else if (document.getElementById)	// every dom1 compliant browser
		{
			selected_editor.value += txt;
			selected_editor.focus();
		}
	}
}


function applyColor(color) 
{
	onMenuClick();
	if (popped_up != null)
		popdown();
	if (selected_editor != null){
		var lft = "[color="+color+"]";
		wrapSelection(selected_editor, lft, '[/color]');
	}
}

function applySize(size) 
{	
	onMenuClick();
	if (popped_up != null)
		popdown();
	if (selected_editor != null){
		var lft = "[size="+size+"]";
		wrapSelection(selected_editor, lft, '[/size]');
	}
}

function applyTag(tag) 
{
	onMenuClick();
	if (popped_up != null)
		popdown();
	if (selected_editor != null){
		var lft = "["+tag+"]";
		wrapSelection(selected_editor, lft, '[/'+tag+']');
	}
}

