/*
    Copyright 2015 Adobe Systems Incorporated.  All rights reserved.    
*/
/*jslint vars: true, plusplus: true, devel: true, browser: true, nomen: true, maxerr: 50 */

var COLORPREVIEW_CONSTANTS = {
    /* This is a forgiving RegExp where it will pass all color code strings(hex format with 3 or 6 digits, rgb, rgba, hsl, hsla, or color name format according CSS Color Module Level 3 (http://www.w3.org/TR/css3-color/)) that are valid in syntax */
    COLOR_REGEX : /#[a-f0-9]{6}\b|#[a-f0-9]{3}\b|\brgb\(\s*(?:[0-9a-z]{1,})\b\s*,\s*(?:[0-9a-z]{1,})\b\s*,\s*(?:[0-9a-z]{1,})\b\s*\)|\brgb\(\s*(?:[0-9a-z]{1,}%)\s*,\s*(?:[0-9a-z]{1,}%)\s*,\s*(?:[0-9a-z]{1,}%)\s*\)|\brgba\(\s*(?:[0-9a-z]{1,})\b\s*,\s*(?:[0-9a-z]{1,})\b\s*,\s*(?:[0-9a-z]{1,})\b\s*,\s*(?:[0-9a-z]|[0-9a-z]\.0|[0-9a-z]?\.[0-9a-z]{1,3})\s*\)|\brgba\(\s*(?:[0-9a-z]{1,}%)\s*,\s*(?:[0-9a-z]{1,}%)\s*,\s*(?:[0-9a-z]{1,}%)\s*,\s*(?:[0-9a-z]|[0-9a-z]\.0|[0-9a-z]?\.[0-9a-z]{1,3})\s*\)|\bhsl\(\s*(?:[0-9a-z]{1,})\b\s*,\s*(?:[0-9a-z]{1,})\b%\s*,\s*(?:[0-9a-z]{1,})\b%\s*\)|\bhsla\(\s*(?:[0-9a-z]{1,})\b\s*,\s*(?:[0-9a-z]{1,})\b%\s*,\s*(?:[0-9a-z]{1,})\b%\s*,\s*(?:[0-9a-z]|[0-9a-z]\.0|[0-9a-z]?\.[0-9a-z]{1,3})\s*\)/gi,

	NAMED_COLOR_REGEX : /\baliceblue\b|\bantiquewhite\b|\baqua\b|\baquamarine\b|\bazure\b|\bbeige\b|\bbisque\b|\bblack\b|\bblanchedalmond\b|\bblue\b|\bblueviolet\b|\bbrown\b|\bburlywood\b|\bcadetblue\b|\bchartreuse\b|\bchocolate\b|\bcoral\b|\bcornflowerblue\b|\bcornsilk\b|\bcrimson\b|\bcyan\b|\bdarkblue\b|\bdarkcyan\b|\bdarkgoldenrod\b|\bdarkgray\b|\bdarkgreen\b|\bdarkgrey\b|\bdarkkhaki\b|\bdarkmagenta\b|\bdarkolivegreen\b|\bdarkorange\b|\bdarkorchid\b|\bdarkred\b|\bdarksalmon\b|\bdarkseagreen\b|\bdarkslateblue\b|\bdarkslategray\b|\bdarkslategrey\b|\bdarkturquoise\b|\bdarkviolet\b|\bdeeppink\b|\bdeepskyblue\b|\bdimgray\b|\bdimgrey\b|\bdodgerblue\b|\bfirebrick\b|\bfloralwhite\b|\bforestgreen\b|\bfuchsia\b|\bgainsboro\b|\bghostwhite\b|\bgold\b|\bgoldenrod\b|\bgray\b|\bgreen\b|\bgreenyellow\b|\bgrey\b|\bhoneydew\b|\bhotpink\b|\bindianred\b|\bindigo\b|\bivory\b|\bkhaki\b|\blavender\b|\blavenderblush\b|\blawngreen\b|\blemonchiffon\b|\blightblue\b|\blightcoral\b|\blightcyan\b|\blightgoldenrodyellow\b|\blightgray\b|\blightgreen\b|\blightgrey\b|\blightpink\b|\blightsalmon\b|\blightseagreen\b|\blightskyblue\b|\blightslategray\b|\blightslategrey\b|\blightsteelblue\b|\blightyellow\b|\blime\b|\blimegreen\b|\blinen\b|\bmagenta\b|\bmaroon\b|\bmediumaquamarine\b|\bmediumblue\b|\bmediumorchid\b|\bmediumpurple\b|\bmediumseagreen\b|\bmediumslateblue\b|\bmediumspringgreen\b|\bmediumturquoise\b|\bmediumvioletred\b|\bmidnightblue\b|\bmintcream\b|\bmistyrose\b|\bmoccasin\b|\bnavajowhite\b|\bnavy\b|\boldlace\b|\bolive\b|\bolivedrab\b|\borange\b|\borangered\b|\borchid\b|\bpalegoldenrod\b|\bpalegreen\b|\bpaleturquoise\b|\bpalevioletred\b|\bpapayawhip\b|\bpeachpuff\b|\bperu\b|\bpink\b|\bplum\b|\bpowderblue\b|\bpurple\b|\bred\b|\brosybrown\b|\broyalblue\b|\bsaddlebrown\b|\bsalmon\b|\bsandybrown\b|\bseagreen\b|\bseashell\b|\bsienna\b|\bsilver\b|\bskyblue\b|\bslateblue\b|\bslategray\b|\bslategrey\b|\bsnow\b|\bspringgreen\b|\bsteelblue\b|\btan\b|\bteal\b|\bthistle\b|\btomato\b|\bturquoise\b|\bviolet\b|\bwheat\b|\bwhite\b|\bwhitesmoke\b|\byellow\b|\byellowgreen\b/gi,

    /* This is a strict RegExp where it will pass only color code strings that are valid in syntax and semantically */
    VALID_COLOR_REGEX : /#[a-f0-9]{6}\b|#[a-f0-9]{3}\b|\brgb\(\s*(?:[0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b\s*,\s*(?:[0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b\s*,\s*(?:[0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b\s*\)|\brgb\(\s*(?:[0-9]{1,2}%|100%)\s*,\s*(?:[0-9]{1,2}%|100%)\s*,\s*(?:[0-9]{1,2}%|100%)\s*\)|\brgba\(\s*(?:[0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b\s*,\s*(?:[0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b\s*,\s*(?:[0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b\s*,\s*(?:1|1\.0+|0|0?\.[0-9]{1,3})\s*\)|\brgba\(\s*(?:[0-9]{1,2}%|100%)\s*,\s*(?:[0-9]{1,2}%|100%)\s*,\s*(?:[0-9]{1,2}%|100%)\s*,\s*(?:1|1\.0+|0|0?\.[0-9]{1,3})\s*\)|\bhsl\(\s*(?:[0-9]{1,2}|1[0-9]{2}|2[0-9]{2}|3[0-5][0-9]|360)\b\s*,\s*(?:[0-9]{1,2}|100)\b%\s*,\s*(?:[0-9]{1,2}|100)\b%\s*\)|\bhsla\(\s*(?:[0-9]{1,2}|1[0-9]{2}|2[0-9]{2}|3[0-5][0-9]|360)\b\s*,\s*(?:[0-9]{1,2}|100)\b%\s*,\s*(?:[0-9]{1,2}|100)\b%\s*,\s*(?:1|1\.0+|0|0?\.[0-9]{1,3})\s*\)/gi,

	BLANK_HTML : '<!doctype html><html><head><meta charset="utf-8"><title></title></head><body></body></html>',
	PREVIEW_STYLES_FILE_PATH : 'configuration/PreviewExtensions/ColorPreviewResources/PreviewStyles.css',
	VALID_COLOR_PREVIEW_PADDING : 10, //Browser control border & padding in pixel for valid color preview
	INVALID_COLOR_PREVIEW_PADDING : 6, //Browser control border & padding in pixel for invalid color preview
	VALID_COLOR_PREVIEW_WIDTH : 80, //Browser Control width in pixel for a valid color preview
	VALID_COLOR_PREVIEW_HEIGHT : 80, //Browser Control height in pixel for a valid color preview
	INVALID_COLOR_PREVIEW_WIDTH : 170, //Browser Control width in pixel for an invalid color preview
	INVALID_COLOR_PREVIEW_HEIGHT : 18, //Browser Control height in pixel for an invalid color preview
    ERROR_MESSAGE_FONT_NAME: "SourceSansPro-Regular", 
    ERROR_MESSAGE_FONT_SIZE: 12,
	BROWSER_CONTROL : "browsercontrol",
	PREVIEW_MODE : "EquiSpaced",
	CAN_I_HANDLE_THE_TRIGGER : {WillNotHanlde : 0, WillHandleNow: 1, WillHandleLater: 2},
	HIGHLIGHT_CODE : {Yes : true, No : false}
};