public static UIImage BundledOrReplacementImage(string imageName, BundledOrReplacementOptions bundledOrReplacement)
		{
			const string pngPrefix = ".png";
			string name = imageName;

			switch (bundledOrReplacement) 
			{
				case BundledOrReplacementOptions.BundledOrReplacement:
				{
					if (name.EndsWith (pngPrefix)) 
					{
						name = imageName.Substring(0, imageName.Length - pngPrefix.Length);
					}
						
					var image = UIImage.FromFile (name);

					if (image != null) 
					{
						return image;
					}
				}
                break;
				case BundledOrReplacementOptions.Bundled:
				{
					return UIImage.FromBundle (getFrameworkBundle().PathForResource (imageName, "png"));
				}
					
			}

		    return null;
		}
        public static UIImage BundledOrReplacementImage(string imageName, BundledOrReplacementOptions bundledOrReplacement)
        {
            const string pngPrefix = ".png";
            string       name      = imageName;

            switch (bundledOrReplacement)
            {
            case BundledOrReplacementOptions.BundledOrReplacement:
            {
                if (name.EndsWith(pngPrefix))
                {
                    name = imageName.Substring(0, imageName.Length - pngPrefix.Length);
                }

                var image = UIImage.FromFile(name);

                if (image != null)
                {
                    return(image);
                }
            }
            break;

            case BundledOrReplacementOptions.Bundled:
            {
                return(UIImage.FromBundle(getFrameworkBundle().PathForResource(imageName, "png")));
            }
            }

            return(null);
        }
        public static UIColor BundledOrReplacementColor(string colourName, BundledOrReplacementOptions bundledOrReplacement)
        {
            switch (bundledOrReplacement)
            {
            case BundledOrReplacementOptions.BundledOrReplacement:
            {
                return(getColor(BundledOrReplacementString(colourName, BundledOrReplacementOptions.BundledOrReplacement)));
            }

            case BundledOrReplacementOptions.Bundled:
            {
                return(getColor(BundledOrReplacementString(colourName, BundledOrReplacementOptions.Bundled)));
            }
            }

            return(null);
        }
        public static string BundledOrReplacementString(string stringName, BundledOrReplacementOptions bundledOrReplacement)
        {
            switch (bundledOrReplacement)
            {
            case BundledOrReplacementOptions.BundledOrReplacement:
            {
                var replacedString = NSBundle.MainBundle.LocalizedString(stringName, null, "JudoName");

                if (replacedString != stringName)
                {
                    return(replacedString);
                }
            }
            break;

            case BundledOrReplacementOptions.Bundled:
            {
                return(getFrameworkBundle().LocalizedString(stringName, stringName, "JudoTheme", null));
            }
            }

            return(null);
        }
		public static UIColor BundledOrReplacementColor(string colourName, BundledOrReplacementOptions bundledOrReplacement)
		{
			switch(bundledOrReplacement)
			{
				case BundledOrReplacementOptions.BundledOrReplacement:
				{
					return getColor(BundledOrReplacementString(colourName, BundledOrReplacementOptions.BundledOrReplacement));
				}
				case BundledOrReplacementOptions.Bundled:
				{
					return getColor(BundledOrReplacementString(colourName, BundledOrReplacementOptions.Bundled));
				}
			}

		    return null;
		}
		public static string BundledOrReplacementString(string stringName, BundledOrReplacementOptions bundledOrReplacement)
		{
			switch(bundledOrReplacement)
			{
				case BundledOrReplacementOptions.BundledOrReplacement:
				{
					var replacedString = NSBundle.MainBundle.LocalizedString (stringName, null, "JudoName");

					if (replacedString != stringName) 
					{
						return replacedString;
					}
				}
                    break;
				case BundledOrReplacementOptions.Bundled:
				{
					return getFrameworkBundle().LocalizedString (stringName, stringName, "JudoTheme", null);
				}
			}

		    return null;
		}