// Global var for RS updateCallback function
var ThisObj;

function mozGetParentElementByAttr(objEl, attrName, attrVal) {
  for (
    var objParentEl = objEl;
    (objParentEl != null) && ("getAttribute" in objParentEl);
    objParentEl = objParentEl.parentNode
  ) {
    if (objParentEl.getAttribute(attrName) == attrVal) return objParentEl;
  }
  return null;
}

function mozGetParentElementByAttrAndDepth(objEl, attrName, attrVal, depth) {
  for (
    var objParentEl = objEl, i = 0;
    (objParentEl != null) && ("getAttribute" in objParentEl) && (i <= depth);
    objParentEl = objParentEl.parentNode
  ) {
    i++;
    if (objParentEl.getAttribute(attrName) == attrVal) return objParentEl;
  }
  return null;
}

function mozGetElementsByAttr(tagName, attrName, attrVal) {
  var arrRes = new Array();
  var tags = document.getElementsByTagName(tagName);
  for (var i = 0; i < tags.length; i++) {
    if (tags[i].getAttribute(attrName) == attrVal) arrRes[arrRes.length] = tags[i];
  }
  return arrRes;
}

function mozGetChildElementsByAttr(parentElement, tagName, attrName, attrVal) {
  var arrRes = new Array();
  var tags = parentElement.getElementsByTagName(tagName);
  for (var i = 0; i < tags.length; i++) {
    if (tags[i].getAttribute(attrName) == attrVal) arrRes[arrRes.length] = tags[i];
  }
  return arrRes;
}

function mozGetOffsetLeft(elm) {
  var mOffsetLeft = elm.offsetLeft;
  var mOffsetParent = elm.offsetParent;
  while(mOffsetParent) {
    mOffsetLeft += mOffsetParent.offsetLeft;
    mOffsetParent = mOffsetParent.offsetParent;
  }
  return mOffsetLeft;
}

function mozGetOffsetTop(elm) {
  var mOffsetTop = elm.offsetTop;
  var mOffsetParent = elm.offsetParent;
  while(mOffsetParent) {
    mOffsetTop += mOffsetParent.offsetTop;
    mOffsetParent = mOffsetParent.offsetParent;
  }
  return mOffsetTop;
}

function updateCallback(call_obj){
	var item_id = ThisObj.getAttribute("item_id");
	var attribute_name = ThisObj.getAttribute("attribute_name");
	msrsPOST = false;
	var call_result = "" + call_obj.return_value;
	call_result = call_result.split("|");
	if (call_result[0] == 1) {
		ThisObj.originalContent = ThisObj.editor.contentWindow.document.body.innerHTML;
		ThisObj.innerHTML = ThisObj.editor.contentWindow.document.body.innerHTML;
		ThisObj.hideBtn();
		for (var i = 0; i < window.onFlyDivs.length; i++) {
			var div = window.onFlyDivs[i];
			if (
				(div.getAttribute("item_id") == item_id)
				&& (div.getAttribute("attribute_name") == attribute_name)
				&& (div != ThisObj)
			) {
				div.innerHTML = ThisObj.innerHTML;
				div.originalContent = ThisObj.innerHTML;
			}
		}
		if (call_result.length > 1) {
			alert(call_result[1]);
		}
		} else {
			ThisObj.innerHTML = ThisObj.originalContent;
			alert(call_obj.return_value + "\nResult: " + call_obj.status + "\n" + call_obj.message);
		}
		return;
}


