NS_IMETHODIMP
HTMLImageElement::Initialize(nsISupports* aOwner, JSContext* aContext,
                             JSObject *aObj, uint32_t argc, jsval *argv)
{
  if (argc <= 0) {
    // Nothing to do here if we don't get any arguments.

    return NS_OK;
  }

  // The first (optional) argument is the width of the image
  uint32_t width;
  JSBool ret = JS_ValueToECMAUint32(aContext, argv[0], &width);
  NS_ENSURE_TRUE(ret, NS_ERROR_INVALID_ARG);

  nsresult rv = SetIntAttr(nsGkAtoms::width, static_cast<int32_t>(width));

  if (NS_SUCCEEDED(rv) && (argc > 1)) {
    // The second (optional) argument is the height of the image
    uint32_t height;
    ret = JS_ValueToECMAUint32(aContext, argv[1], &height);
    NS_ENSURE_TRUE(ret, NS_ERROR_INVALID_ARG);

    rv = SetIntAttr(nsGkAtoms::height, static_cast<int32_t>(height));
  }

  return rv;
}
//DetectLevel
INT Obj_Character::GetDetectLevel(VOID)
{
	if(TRUE==GetDetectLevelDirtyFlag())
	{
		INT nValue=GetDetectLevelRefix() + 0;//0 is base stealth level for every character
		SetIntAttr(CharIntAttrs_T::ATTR_DETECT_LEVEL, nValue);
		ClearDetectLevelDirtyFlag();
	}
	return GetIntAttr(CharIntAttrs_T::ATTR_DETECT_LEVEL);
}
//Exp Refix
INT Obj_Character::GetExpRefix(VOID)
{
	if(TRUE==GetExpRefixDirtyFlag())
	{
		INT nValue = GetBaseExpRefix();
		nValue += GetExpRefixRefix();
		0>nValue?nValue=0:NULL;
		MAX_EXP_REFIX_IN_CHAR<nValue?nValue=MAX_EXP_REFIX_IN_CHAR:NULL;
 		SetIntAttr(CharIntAttrs_T::ATTR_EXP_REFIX, nValue);
		ClearExpRefixDirtyFlag();
	}
	return GetIntAttr(CharIntAttrs_T::ATTR_EXP_REFIX);
}
//mountID
INT Obj_Character::GetMountID(VOID)
{
	if(TRUE==GetMountIDDirtyFlag())
	{
		INT nValue=GetMountIDRefix();
		if(INVALID_ID==nValue)
		{
			nValue=GetBaseMountID();
		}
		SetIntAttr(CharIntAttrs_T::ATTR_MOUNT_ID, nValue);
		ClearMountIDDirtyFlag();
	}
	return GetIntAttr(CharIntAttrs_T::ATTR_MOUNT_ID);
}