/*
 * JavaScript Source Code
 * Created by Kalin Ganev
 * <k.ganev AT ratola DOT bg>
 * Date Created:  November 14, 2005
 * Last Modified: November 14, 2005
 */

function $() {
  var elements = new Array();
	
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);

    if (arguments.length == 1) 
      return element;

    elements.push(element);
  }

  return elements;
}



function getEditModeById (int_layerID) {
	var i;
	var bool_result;

	for( i=0, bool_result=false; i<arr_layersEditable.length; i++ )
		if ( arr_layersEditable[i][0] == int_layerID ) {
			bool_result = arr_layersEditable[i][2];
			break;
		}

	return bool_result;
}




function setEditModeById (int_layerID, bool_editMode) {
	var i;

	for( i=0; i<arr_layersEditable.length; i++ )
		if ( arr_layersEditable[i][0] == int_layerID ) {
			arr_layersEditable[i][2] = bool_editMode;
			break;
		}
}




function getContentById (int_layerID) {
	var i;
	var str_result;

	for( i=0, str_result=""; i<arr_layersEditable.length; i++ )
		if ( arr_layersEditable[i][0] == int_layerID ) {
			str_result = arr_layersEditable[i][1];
			break;
		}

	return str_result;
}




function setContentById (int_layerID, str_layerContent) {
	var i;

	for( i=0; i<arr_layersEditable.length; i++ )
		if ( arr_layersEditable[i][0] == int_layerID ) {
			arr_layersEditable[i][1] = str_layerContent;
			break;
		}
}




function switchToEditMode (int_layerID) {
	var str_layerID, str_textEditID;


	if ( !getEditModeById(int_layerID) ) {
		str_layerID = "DivEditable" + int_layerID;
		str_textEditID = "TextEdit" + int_layerID;

		changeBgColor(int_layerID,true);
		document.getElementById(str_layerID).innerHTML = '<form>'
			+ '<textarea rows=5 autocomplete="off" class="TextEdit" id="'
			+ str_textEditID
			+ '" onblur="switchToReadOnlyMode('
			+ int_layerID
			+ ');">'
			+ getContentById(int_layerID)
			+ '</textarea></form>';
		document.getElementById(str_textEditID).focus();
		setEditModeById(int_layerID, true);
	}
}

function handleEditLayerResponse () {
	if ( 4 == gobj_httpRequest.readyState )
		if ( "true" != gobj_httpRequest.responseText )
			alert(gobj_httpRequest.responseText);
			//alert("A server error arose while storing layer content.");
}


function switchToReadOnlyMode (int_layerID) {
	var str_layerID, str_textEditID, str_layerContent;


	if ( getEditModeById(int_layerID) ) {
		str_layerID = "DivEditable" + int_layerID;
		str_textEditID = "TextEdit" + int_layerID;

		str_layerContent = document.getElementById(str_textEditID).value;
		document.getElementById(str_layerID).innerHTML = str_layerContent;
		setEditModeById(int_layerID, false);
		setContentById(int_layerID, str_layerContent);
		changeBgColor(int_layerID,false);
		// Ajax stuff
		
		if( gobj_httpRequest ) {
			//alert (str_layerContent);
			// storing layer information to server database
			str="PageID="+gint_pageID
				+"&LayerID=" + int_layerID
				+"&LangID=" + gint_langID
				+"&LayerContent=" + str_layerContent;
			gobj_httpRequest.open("post", "inc/layer_edit.php?", true);
			gobj_httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			gobj_httpRequest.onreadystatechange = handleEditLayerResponse;
			gobj_httpRequest.send(str);
		}
	}
}

function ajaxGetDispatcher (url) {
	if( gobj_httpRequest ) {
			gobj_httpRequest.open("get", url, true);
			gobj_httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			gobj_httpRequest.onreadystatechange = ajaxRetriever;
			gobj_httpRequest.send(url);
	}
}

function changeBgColor (int_layerID, bool_mode) {
	var str_layerID;


	str_layerID = "DivEditable" + int_layerID;
	if (bool_mode) {
			// mouse over
			document.getElementById(str_layerID).style.backgroundColor = "#990";
	}
	else
		if ( !getEditModeById(int_layerID) )
			// mouse out
			document.getElementById(str_layerID).style.backgroundColor = "";
}

