// JavaScript Document
function getObject()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {
  // code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
else
  {
  alert("Your browser does not support XMLHTTP!");
  }
  return xmlhttp;
}

function setCaretPosition(ctrl, pos)
{
 
	if(ctrl.setSelectionRange)
	{
		ctrl.focus();
		ctrl.setSelectionRange(pos,pos);
	}
	else if (ctrl.createTextRange) 
	{
		var range = ctrl.createTextRange();
		range.collapse(true);
		range.moveEnd('character', pos);
		range.moveStart('character', pos);
		range.select();
	}
}

function Selection(textareaElement) {
    this.element = textareaElement;
}

Selection.prototype.create = function() {
    if (document.selection != null && this.element.selectionStart == null) {
        return this._ieGetSelection();
    } else {
        return this._mozillaGetSelection();
    }
}

Selection.prototype._mozillaGetSelection = function() {
    return { 
        start: this.element.selectionStart, 
        end: this.element.selectionEnd 
    };
}

Selection.prototype._ieGetSelection = function() {
    this.element.focus();

    var range = document.selection.createRange();
    var bookmark = range.getBookmark();

    var contents = this.element.value;
    var originalContents = contents;
    var marker = this._createSelectionMarker();
    while(contents.indexOf(marker) != -1) {
        marker = this._createSelectionMarker();
    }

    var parent = range.parentElement();
    if (parent == null || parent.type != "textarea") {
        return { start: 0, end: 0 };
    }
    range.text = marker + range.text + marker;
    contents = this.element.value;

    var result = {};
    result.start = contents.indexOf(marker);
    contents = contents.replace(marker, "");
    result.end = contents.indexOf(marker);

    this.element.value = originalContents;
    range.moveToBookmark(bookmark);
    range.select();

    return result;
}

Selection.prototype._createSelectionMarker = function() {
    return "##SELECTION_MARKER_" + Math.random() + "##";
}

function addtext(newtext, id)
{
	var ide = 'bb'+id;
	var selection = new Selection(document.getElementById(ide));
	var s = selection.create();
	
	var pS = s.start;
	var pE = s.end;
	var l = document.getElementById(ide).value.length;
	
	var str = document.getElementById(ide).value;
	var selected = document.getElementById(ide).value.substring(pS,pE);
	var start = document.getElementById(ide).value.substring(0,pS);
	var end = document.getElementById(ide).value.substring(pE,l);

	var newValue = start;
	
	if(newtext.substring(0,1) == "1")
	{
		var ending = newtext.substring(2,newtext.length);
		var tag = '['+ending;
		var ctag = '[/'+ending;
												
		newValue += tag + selected + ctag;
	}else{
		newValue += newtext;	
	}
	
	newValue += end;
	document.getElementById(ide).value = newValue;
	
	setCaretPosition(document.getElementById(ide),pE);
	
	return false;
}

function toonEditor(id)
{
	var ide = 'ed'+id;
	var txt = 'txt'+id;
	document.getElementById(ide).style.display = 'block';
	document.getElementById(txt).style.display = 'none';
}

function updateSite(id)
{
	var ide = 'ed'+id;
	var txt = 'txt'+id;
	document.getElementById(ide).style.display = 'none';
	document.getElementById(txt).style.display = 'block';	
}

function showEd(id){toon('edImg'+id);}
function hideEd(id){sluit('edImg'+id);}

function sluit(id)
{
	document.getElementById(id).style.display = 'none';
}

function toon(id)
{
	document.getElementById(id).style.display = 'block';
}

function updateSite(id, keyword){
	

	xmlHttp=getObject();
	
	var newText = document.getElementById('bb'+id).value;
	var url="php/scr_update.php";

	xmlHttp.onreadystatechange=function() 
		{ 
			if(xmlHttp.readyState==4) 
			{ 
				sluit('ed'+id);
				toon('txt'+id);
				document.getElementById('txt'+id).innerHTML = xmlHttp.responseText;
			} 
		} 
		
		var parameter="key="+keyword+"&value="+newText; 
		xmlHttp.open("POST",url,true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
		xmlHttp.send(parameter); 
}

