﻿function editInPlace(fieldname, type) {
	var contentID = $("#" + fieldname).attr("contentID");
	var channelID = $("#" + fieldname).attr("channelID");
	var lang = $("#" + fieldname).attr("lang");

	$("#" + fieldname).closest('a').removeAttr('href');

	if (type == 'html') {
		CKEDITOR.replace(fieldname);
	}
	else {

		var modeRead = $("#" + fieldname).attr("readMode");
		var modeEdit = $("#" + fieldname).attr("editMode");

		if (modeEdit == "false") {
			$("#" + fieldname).css('background-color', '#FFFF99');
			$("#" + fieldname).attr("readMode", "false");
			$("#" + fieldname).attr("editMode", "true");
			$("#" + fieldname).attr("contentEditable", "true");
			$("#" + fieldname).focus();
		}

	}

	var cancelBt = "<img src=\"/edit/image/cancel.png\" onclick=\"cancelEditInPlace(event, '" + fieldname + "', '" + type + "');\" border='0'/>";
	var saveBt = "<img src=\"/edit/image/save.png\" onclick=\"saveEditInPlace(event, '" + fieldname + "', '" + type + "');\" border='0'/>";
	$("#" + fieldname + "_options").html("&#160;&#160;" + saveBt + "&#160;&#160;" + cancelBt);
}

function cancelEditInPlace(event, fieldname, type) {
	ie8SafePreventEvent(event);
	if (type == 'html') {
		var codeeditor = "CKEDITOR.instances." + fieldname + ".destroy();";
		eval(codeeditor);
	}
	$("#" + fieldname).css('background-color', '');
	$("#" + fieldname + "_options").html("");
	$("#" + fieldname).attr("contenteditable", "false");

	return false;
}

function encHTML(str) {
	str = str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
	return str;
};

function saveEditInPlace(event, fieldname, type) {
	ie8SafePreventEvent(event);

	if (type == 'html') {
		var codeeditor = "CKEDITOR.instances." + fieldname + ".destroy();";
		eval(codeeditor);
	}



	$.post("/EDIT/Service.aspx?jsoncallback=?",
				{
					"action": "saveField",
					"channelID": $("#" + fieldname).attr("channelID"),
					"contentID": $("#" + fieldname).attr("contentID"),
					"lang": $("#" + fieldname).attr("lang"),
					"type": type,
					"fieldName": $("#" + fieldname).attr("name"),
					"fieldValue": encHTML($("#" + fieldname).html())
				},
				saveFieldResponse,
				"json"
		);

	$("#" + fieldname + "_options").html("A Actualizar..");

}

function saveFieldResponse(json) {
    //TODO change to appear as layer, not inline!

    var $field = $("#" + json.fieldname);
    var $fieldOptions = $("#" + json.fieldname + "_options");
    $field.css('background-color', '');
    $fieldOptions.empty();
	$field.attr("contenteditable", "false");

	if (json.Result == "Update Ok") {
	    $fieldOptions.attr("class", "feedbackOK");
	}
	else {
	    $fieldOptions.attr("class", "feedbackKO");
	}
	$fieldOptions.html(json.Result);
	var func = function () {
	    $fieldOptions.empty().removeClass();
	};   
	setTimeout(func, 2000);
	return true;
}


function ie8SafePreventEvent(e) {
	if (e.preventDefault) { e.preventDefault() }


	e.returnValue = false;

}
