var Version=navigator.appVersion;
var bName = navigator.appName;

//make an array implicitly (elements given as function parameters)
function makeArrayImplicit() {
        var i;
        this.length = makeArrayImplicit.arguments.length;
        for (i=1; i<=makeArrayImplicit.arguments.length; i++)
                this[i] = makeArrayImplicit.arguments[i-1];
        return (this);
}


function makeArray(n) {
        var i;
        this.length = n;
        for (i=1; i<=n; i++)
                this[i] = 0;
        return (this);
}


//create property object
function makeProperty(SupName, SubName, Name, Value, Initial, AppliesTo, Inherited, PercentValues, SpecChap, Note) {
  this.supName = SupName;
  this.subName = SubName;
  this.name = Name;
  this.value = Value;
  this.initial = Initial;
  this.appliesTo = AppliesTo;
  this.inherited = Inherited;
  this.percentValues = PercentValues;
  this.specChap = SpecChap;
  this.note = Note;
}

var numericSizeValues =  new makeArrayImplicit("2", "4", "6", "8", "10", "12", "14", "18", "24", "32", "48", "64");
var absoluteSizeValues = new makeArrayImplicit("xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large");
var relativeSizeValues = new makeArrayImplicit("larger", "smaller");
var colorNames = new makeArrayImplicit("aqua", "black", "blue", "fuchsia", "gray", "green", "lime", "maroon", "navy", "olive", "purple", "red", "silver", "teal", "white", "yellow");
var genericFamilyValues = new makeArrayImplicit("serif", "sans serif", "cursive", "fantasy", "monospace");
var percentageValues = new makeArrayImplicit("50", "70", "90", "100", "110", "130");
var emValues = new makeArrayImplicit("0.3", "0.5", "0.7", "0.9", "1", "1.1", "1.3", "1.5", "1.7", "2");
var urlValues = new makeArrayImplicit("url(im1.gif)");




var fontFamilyValues = new makeArrayImplicit("[[&lt;family-name&gt; | &lt;generic-family&gt;],]* [&lt;family-name&gt; | &lt;generic-family&gt;]");
var fontFamily = new makeProperty("font", "family", "font-family", fontFamilyValues, "UA specific", "all elements", "yes", "N/A", "5.2.2", "null", "font");

var fontStyleValues = new makeArrayImplicit("normal", "italic", "oblique");
var fontStyle = new makeProperty("font", "style", "font-style", fontStyleValues, "normal", "all elements", "yes", "N/A", "5.2.3", "null", "font");

var fontVariantValues = new makeArrayImplicit("normal", "small-caps");
var fontVariant = new makeProperty("font", "variant", "font-variant", fontVariantValues, "normal", "all elements", "yes", "N/A", "5.2.4", "null", "font");

var fontWeightValues = new makeArrayImplicit("normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900");
var fontWeight = new makeProperty("font", "weight", "font-weight", fontWeightValues, "normal", "all elements", "yes", "N/A", "5.2.5", "null", "font");

var fontSizeValues = new makeArrayImplicit("&lt;absolute-size&gt;", "&lt;relative-size&gt;", "&lt;length&gt;", "&lt;percentage&gt;");
var fontSize = new makeProperty("font", "size", "font-size", fontSizeValues, "medium", "all elements", "yes", "relative to parent element's font size", "5.2.6", "null", "font");

var fontValues = new makeArrayImplicit("[ &lt;font-style&gt; || &lt;font-variant&gt; || &lt;font-weight&gt; ]? &lt;font-size&gt; [ / &lt;line-height&gt; ]? &lt;font-family&gt;");
var font = new makeProperty("null", "null", "font", fontValues, "null", "all elements", "yes", "allowed on &lt;font-size&gt; and &lt;line-height&gt;", "5.2.7", "shorthand property", "font");


var colorValues = new makeArrayImplicit("&lt;color&gt;")
var color = new makeProperty("null", "null", "color", colorValues, "UA specific", "all elements", "yes", "N/A", "5.3.1", "shorthand property", "color and background");


var backgroundColorValues = new makeArrayImplicit("&lt;color&gt;", "transparent");
var backgroundColor = new makeProperty("background", "color", "background-color", backgroundColorValues, "transparent", "all elements", "no", "N/A", "5.3.2", "null", "color and background");

var backgroundImageValues = new makeArrayImplicit("&lt;url&gt;", "none");
var backgroundImage = new makeProperty("background", "image", "background-image", backgroundImageValues, "none", "all elements", "no", "N/A", "5.3.3", "null", "color and background");

var backgroundRepeatValues = new makeArrayImplicit("repeat", "repeat-x", "repeat-y", "no-repeat");
var backgroundRepeat = new makeProperty("background", "repeat", "background-repeat", backgroundRepeatValues, "repeat", "all elements", "no", "N/A", "5.3.4", "null", "color and background");

var backgroundAttachmentValues = new makeArrayImplicit("scroll", "fixed");
var backgroundAttachment = new makeProperty("background", "attachment", "background-attachment", backgroundAttachmentValues, "scroll", "all elements", "yes", "N/A", "5.3.5", "null", "color and background");

var backgroundPositionValues1 = new makeArrayImplicit("top", "center", "bottom");
var backgroundPositionValues2 = new makeArrayImplicit("left", "center", "right");
var backgroundPositionValues = new makeArrayImplicit("[ " + "&lt;percentage&gt;" + " | " + "&lt;length&gt;" + " ]{1,2} | [ top | center | bottom ] || [ left | center | right ]");
var backgroundPosition = new makeProperty("background", "position", "background-position", backgroundPositionValues, "0% 0%", "block-level and replaced elements", "no", "refer to the size of the element itself", "5.3.6", "null", "color and background");

var backgroundValues = new makeArrayImplicit("&lt;background-color&gt; || &lt;background-image&gt; || &lt;background-repeat&gt; || &lt;background-attachment&gt; || &lt;background-position&gt;");
var background = new makeProperty("null", "null", "background", backgroundValues, "null", "all elements", "no", "allowed on &lt;background-position&gt;", "5.3.7", "shorthand property", "color and background");


var wordSpacingValues = new makeArrayImplicit("normal", "&lt;length&gt;");
var wordSpacing = new makeProperty("word", "spacing", "word-spacing", wordSpacingValues, "normal", "all elements", "yes", "N/A", "5.4.1", "null", "text");

var letterSpacingValues = new makeArrayImplicit("normal", "&lt;length&gt;");
var letterSpacing = new makeProperty("letter", "spacing", "letter-spacing", letterSpacingValues, "normal", "all elements", "yes", "N/A", "5.4.2", "null", "text");

// i changed charity's code here.
var textDecorationValues1 = new makeArrayImplicit("none", "underline", "overline", "line-through", "blink");
var textDecorationValues = new makeArrayImplicit("none | [ underline || overline || line-through || blink ]");
var textDecoration = new makeProperty("text", "decoration", "text-decoration", textDecorationValues1, "none", "all elements", "no", "N/A", "5.4.3", "null", "text");

var verticalAlignValues = new makeArrayImplicit("baseline", "sub", "super", "top", "text-top", "middle", "bottom", "text-bottom", "&lt;percentage&gt;");
var verticalAlign = new makeProperty("vertical", "align", "vertical-align", verticalAlignValues, "baseline", "inline elements", "no", "refer to the 'line-height' of the element itself", "5.4.4", "null", "text");

var textTransformValues = new makeArrayImplicit("none", "capitalize", "uppercase", "lowercase");
var textTransform = new makeProperty("text", "transform", "text-transform", textTransformValues, "none", "all elements", "yes", "N/A", "5.4.5", "null", "text");

var textAlignValues = new makeArrayImplicit("left", "right", "center", "justify");
var textAlign = new makeProperty("text", "align", "text-align", textAlignValues, "UA specific", "block-level elements", "yes", "N/A", "5.4.6", "null", "text");

var textIndentValues = new makeArrayImplicit("&lt;length&gt;", "&lt;percentage&gt;");
var textIndent = new makeProperty("text", "indent", "text-indent", textIndentValues, "0", "block-level elements", "yes", "refer to parent element's width", "5.4.7", "null", "text");

var lineHeightValues = new makeArrayImplicit("normal", "&lt;number&gt;", "&lt;length&gt;", "&lt;percentage&gt;");
var lineHeight = new makeProperty("line", "height", "line-height", lineHeightValues, "normal", "all elements", "yes", "relative to the font size of the element itself", "5.4.8", "null", "text");


var marginTopValues = new makeArrayImplicit("&lt;length&gt;", "&lt;percentage&gt;", "auto");
var marginTop = new makeProperty("margin", "top", "margin-top", marginTopValues, "0", "all elements", "no", "refer to parent element's width", "5.5.1", "null", "box");

var marginRightValues = new makeArrayImplicit("&lt;length&gt;", "&lt;percentage&gt;", "auto");
var marginRight = new makeProperty("margin", "right", "margin-right", marginRightValues, "0", "all elements", "no", "refer to parent element's width", "5.5.2", "null", "box");

var marginBottomValues = new makeArrayImplicit("&lt;length&gt;", "&lt;percentage&gt;", "auto");
var marginBottom = new makeProperty("margin", "bottom", "margin-bottom", marginBottomValues, "0", "all elements", "no", "refer to parent element's width", "5.5.3", "null", "box");

var marginLeftValues = new makeArrayImplicit("&lt;length&gt;", "&lt;percentage&gt;", "auto");
var marginLeft = new makeProperty("margin", "left", "margin-left", marginLeftValues, "0", "all elements", "no", "refer to parent element's width", "5.5.4", "null", "box");

var marginValues = new makeArrayImplicit("[ " + "&lt;length&gt;" + " | " + "&lt;percentage&gt;" + " | auto ]{1,4}");
var margin = new makeProperty("null", "null", "margin", marginValues, "null", "all elements", "no", "refer to parent element's width", "5.5.5", "shorthand property", "box");

var paddingTopValues = new makeArrayImplicit("&lt;length&gt;", "&lt;percentage&gt;");
var paddingTop = new makeProperty("padding", "top", "padding-top", paddingTopValues, "0", "all elements", "no", "refer to parent element's width", "5.5.6", "null", "box");

var paddingRightValues = new makeArrayImplicit("&lt;length&gt;", "&lt;percentage&gt;");
var paddingRight = new makeProperty("padding", "right", "padding-right", paddingRightValues, "0", "all elements", "no", "refer to parent element's width", "5.5.7", "null", "box");

var paddingBottomValues = new makeArrayImplicit("&lt;length&gt;", "&lt;percentage&gt;");
var paddingBottom = new makeProperty("padding", "bottom", "padding-bottom", paddingBottomValues, "0", "all elements", "no", "refer to parent element's width", "5.5.8", "null", "box");

var paddingLeftValues = new makeArrayImplicit("&lt;length&gt;", "&lt;percentage&gt;");
var paddingLeft = new makeProperty("padding", "left", "padding-left", paddingLeftValues, "0", "all elements", "no", "refer to parent element's width", "5.5.9", "null", "box");

var paddingValues = new makeArrayImplicit("[ " + "&lt;length&gt;" + " | " +  "&lt;percentage&gt;" + " ]{1,4}");
var padding = new makeProperty("null", "null", "padding", paddingValues, "0", "all elements", "no", "refer to parent element's width", "5.5.10", "shorthand property", "box");

var borderTopWidthValues = new makeArrayImplicit("thin", "medium", "thick", "&lt;length&gt;");
var borderTopWidth = new makeProperty("border", "top-width", "border-top-width", borderTopWidthValues, "medium", "all elements", "no", "N/A", "5.5.11", "null", "box");

var borderRightWidthValues = new makeArrayImplicit("thin", "medium", "thick", "&lt;length&gt;");
var borderRightWidth = new makeProperty("border", "right-width", "border-right-width", borderRightWidthValues, "medium", "all elements", "no", "N/A", "5.5.12", "null", "box");

var borderBottomWidthValues = new makeArrayImplicit("thin", "medium", "thick", "&lt;length&gt;");
var borderBottomWidth = new makeProperty("border", "bottom-width", "border-bottom-width", borderBottomWidthValues, "medium", "all elements", "no", "N/A", "5.5.13", "null", "box");

var borderLeftWidthValues = new makeArrayImplicit("thin", "medium", "thick", "&lt;length&gt;");
var borderLeftWidth = new makeProperty("border", "left-width", "border-left-width", borderLeftWidthValues, "medium", "all elements", "no", "N/A", "5.5.14", "null", "box");

var borderWidthValues = new makeArrayImplicit("[ thin | medium | thick | " + "&lt;length&gt;" + " ]{1,4}");
var borderWidth = new makeProperty("null", "null", "border-width", borderWidthValues, "medium", "all elements", "no", "N/A", "5.5.15", "shorthand property", "box");

var borderColorValues = new makeArrayImplicit("&lt;color&gt;{1,4}");
var borderColor = new makeProperty("border", "color", "border-color", borderColorValues, "the value of the 'color' property", "all elements", "no", "N/A", "5.5.16", "null", "box");

var borderStyleValues = new makeArrayImplicit("none", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset");
var borderStyle = new makeProperty("null", "null", "border-style", borderStyleValues, "none", "all elements", "no", "N/A", "5.5.17", "null", "box");

var borderTopValues = new makeArrayImplicit("&lt;border-top-width&gt; || &lt;border-style&gt; || &lt;color&gt;");
var borderTop = new makeProperty("null", "null", "border-top", borderTopValues, "null", "all elements", "no", "N/A", "5.5.18", "shorthand property", "box");

var borderRightValues = new makeArrayImplicit("&lt;border-right-width&gt; || &lt;border-style&gt; || &lt;color&gt;");
var borderRight = new makeProperty("null", "null", "border-right", borderRightValues, "null", "all elements", "no", "N/A", "5.5.19", "shorthand property", "box");

var borderBottomValues = new makeArrayImplicit("&lt;border-bottom-width&gt; || &lt;border-style&gt; || &lt;color&gt;");
var borderBottom = new makeProperty("null", "null", "border-bottom", borderBottomValues, "null", "all elements", "no", "N/A", "5.5.20", "shorthand property", "box");

var borderLeftValues = new makeArrayImplicit("&lt;border-left-width&gt; || &lt;border-style&gt; || &lt;color&gt;");
var borderLeft = new makeProperty("null", "null", "border-left", borderLeftValues, "null", "all elements", "no", "N/A", "5.5.21", "shorthand property", "box");

var borderValues = new makeArrayImplicit("&lt;border-width&gt; || &lt;border-style&gt; || &lt;color&gt;");
var border = new makeProperty("null", "null", "border", borderValues, "null", "all elements", "no", "N/A", "5.5.22", "shorthand property", "box");


var widthValues = new makeArrayImplicit("&lt;length&gt;", "&lt;percentage&gt;", "auto");
var width = new makeProperty("width", "null", "width", widthValues, "auto", "block-level and replaced elements", "no", "refer to parent element's width", "5.5.23", "null", "box");

var heightValues = new makeArrayImplicit("&lt;length&gt;", "auto");
var height = new makeProperty("height", "null", "height", heightValues, "auto", "block-level and replaced elements", "no", "N/A", "5.5.24", "null", "box");


var fltValues = new makeArrayImplicit("left", "right", "none");
var flt = new makeProperty("float", "null", "float", fltValues, "none", "all elements", "no", "N/A", "5.5.25", "null", "box");

var clearValues = new makeArrayImplicit("none", "left", "right", "both");
var clear = new makeProperty("clear", "null", "clear", clearValues, "none", "all elements", "no", "N/A", "5.5.26", "null", "box");

var displayValues = new makeArrayImplicit("block", "inline", "list-item", "none");
var display = new makeProperty("display", "null", "display", displayValues, "block", "all elements", "no", "N/A", "5.6.1", "null", "classification");

var whiteSpaceValues = new makeArrayImplicit("normal", "pre", "nowrap");
var whiteSpace = new makeProperty("white-space", "null", "white-space", whiteSpaceValues, "normal", "block-level elements", "yes", "N/A", "5.6.2", "null", "classification");

var listStyleTypeValues = new makeArrayImplicit("disc", "circle", "square", "decimal", "lower-roman", "upper-roman", "lower-alpha", "upper-alpha", "none");
var listStyleType = new makeProperty("list-style", "type", "list-style-type", listStyleTypeValues, "disc", "elements with 'display' value 'list-item'", "yes", "N/A", "5.6.3", "null", "classification");

var listStyleImageValues = new makeArrayImplicit("&lt;url&gt;", "none");
var listStyleImage = new makeProperty("list-style", "image", "list-style-image", listStyleImageValues, "none", "elements with 'display' value 'list-item'", "yes", "N/A", "5.6.4", "null", "classification");

var listStylePositionValues = new makeArrayImplicit("inside", "outside");
var listStylePosition = new makeProperty("list-style", "position", "list-style-position", listStylePositionValues, "outside", "elements with 'display' value 'list-item'", "yes", "N/A", "5.6.5", "null", "classification");

var listStyleValues = new makeArrayImplicit("&lt;keyword&gt; || &lt;position&gt; || &lt;url&gt;");
var listStyle = new makeProperty("null", "null", "list-style", listStyleValues, "null", "elements with 'display' value 'list-item'", "yes", "N/A", "5.6.6", "shorthand property", "classification");

function chkP() {

	if ((snippet == "author") || (snippet == "show author") || (snippet == "authors") || (snippet == "show authors") || (snippet == "credit") || (snippet == "show credit") || (snippet == "credits") || (snippet == "show credits")) {
		return 1;
	} else {
		return 0;
	}
}
