var config = {
	"formats": {
		"ODB": {},
		"ODB_1": { 
			"comments": "", 
			"arrStep": "stp",
			"isMerge": "yes"
		 },
		"Gerber274x_1": {
			"nf1": 3,
			"nf2": 5,
			"units": "inch",
			"zeroes": "leading",
			"decimal": "no",
			"nf_comp": 0,
			"break_sr": "yes",
			"data_type": "ascii",
			"separator": "*",
			"threshold": 200,
			"drill_only": "no",
			"multiplier": 1,
			"resolution": 3,
			"tool_units": "inch",
			"coordinates": "absolute",
			"merge_by_rule": "no",
			"signed_coords": "no",
			"text_line_width": 0.0024
		},
		"Gerber274x_2": {
			"nf1": 3,
			"nf2": 5,
			"units": "inch",
			"zeroes": "leading",
			"decimal": "no",
			"nf_comp": 0,
			"break_sr": "yes",
			"data_type": "ascii",
			"separator": "*",
			"threshold": 200,
			"drill_only": "no",
			"multiplier": 1,
			"resolution": 3,
			"tool_units": "inch",
			"coordinates": "absolute",
			"merge_by_rule": "no",
			"signed_coords": "no",
			"text_line_width": 0.0024
		},
		"Excellon2_1": {
			"nf1": 3,
			"nf2": 5,
			"units": "mm",
			"zeroes": "leading",
			"decimal": "no",
			"nf_comp": 0,
			"break_sr": "yes",
			"data_type": "ascii",
			"separator": "nl",
			"threshold": 200,
			"drill_only": "no",
			"multiplier": 1,
			"resolution": 3,
			"tool_units": "mm",
			"coordinates": "absolute",
			"merge_by_rule": "no",
			"signed_coords": "no",
			"text_line_width": 0.0024
		},
		"Excellon2_2": {
			"nf1": 2,
			"nf2": 3,
			"units": "inch",
			"zeroes": "leading",
			"decimal": "no",
			"nf_comp": 0,
			"break_sr": "yes",
			"data_type": "ascii",
			"separator": "nl",
			"threshold": 200,
			"drill_only": "no",
			"multiplier": 1,
			"resolution": 3,
			"tool_units": "inch",
			"coordinates": "absolute",
			"merge_by_rule": "no",
			"signed_coords": "no",
			"text_line_width": 0.0024
		},
		"Excellon2_3": {
			"nf1": 2,
			"nf2": 5,
			"units": "inch",
			"zeroes": "trailing",
			"decimal": "no",
			"nf_comp": 0,
			"break_sr": "yes",
			"data_type": "ascii",
			"separator": "nl",
			"threshold": 200,
			"drill_only": "no",
			"multiplier": 1,
			"resolution": 3,
			"tool_units": "mm",
			"coordinates": "absolute",
			"merge_by_rule": "no",
			"signed_coords": "no",
			"text_line_width": 0.0024
		},
		"IPC356_1": {
			"nf1": 2,
			"nf2": 4,
			"units": "inch",
			"zeroes": "none",
			"decimal": "no",
			"nf_comp": 0,
			"break_sr": "yes",
			"data_type": "ascii",
			"separator": "*",
			"threshold": 200,
			"drill_only": "no",
			"multiplier": 1,
			"resolution": 3,
			"tool_units": "inch",
			"coordinates": "absolute",
			"merge_by_rule": "no",
			"signed_coords": "no",
			"text_line_width": 0.0024
		}
	},
	"customer": {
		"Customer_2": {
			"path": "C:/Users/Administrator/Desktop/Customer_2",
			"db": "genesis",
			"step": "cad",
			"rules": [
				{ 
					"valid": function(props){
						var file = props.file;
						return /.+\.tgz$/ig.test(file.name)
					}, 
					"type": "ODB",		
					"format": "ODB"
				},
				{
					"valid": function(props){
						var file = props.file;
						return /.+\.ipc$/ig.test(file.name)
					},  
					"type": "IPC356",		
					"format": "IPC356_1"
				},
				{
					"valid": function(props){
						var file = props.file;
						return /.+\.rou$/ig.test(file.name)
					},  
					"type": "Excellon2",		
					"format": "Excellon2_3"
				},
				{
					"valid": function(props){
						var file = props.file;
						return /.+\.art$/ig.test(file.name)
					},  
					"type": "Gerber274x",		
					"format": "Gerber274x_1"
				},
				{
					"valid": function(props){
						var file = props.file;
						return /.+\.drl$/ig.test(file.name)
					},  
					"type": "Excellon2",		
					"format": "Excellon2_1",
					"format_params": function(props){
						var params = props.params
						if(params.nc_param){
							var leading = params.nc_param["SUPPRESS_LEAD_ZEROES"]
							var trailing = params.nc_param["SUPPRESS_TRAIL_ZEROES"]
							var zeroes = "none"
							if(/yes/ig.test(leading)){
								zeroes = "leading"
							}
							if(/yes/ig.test(trailing)){
								zeroes = "trailing"
							}
							return {
								"nf1": params.nc_param["INTEGER_PLACES"]? Number(params.nc_param["INTEGER_PLACES"]) : 3,
								"nf2": params.nc_param["DECIMAL_PLACES"]? Number(params.nc_param["DECIMAL_PLACES"]) : 5,
								"units": /METRIC/ig.test(params.nc_param["OUTPUT_UNITS"])? "mm" :"inch",
								"zeroes": zeroes,
								"decimal": "no",
								"nf_comp": 0,
								"break_sr": "yes",
								"data_type": "ascii",
								"separator": "nl",
								"threshold": 200,
								"drill_only": "no",
								"multiplier": 1,
								"resolution": 3,
								"tool_units": /METRIC/ig.test(params.nc_param["OUTPUT_UNITS"])? "mm" :"inch",
								"coordinates": params.nc_param["COORDINATES"]? params.nc_param["COORDINATES"].toLowerCase() :"absolute",
								"merge_by_rule": "no",
								"signed_coords": "no",
								"text_line_width": 0.0024
							}
						}
					}
				}
			],
			"tl_name": [
				{"orig_name" : "pasttop.art", "tl_name" : "past_top" },
				{"orig_name" : "pleg.art", "tl_name" : "silk_top" },
				{"orig_name" : "soldtop.art", "tl_name" : "sm_top" },
				{"orig_name" : ["top.art","^top$"], "tl_name" : "top" },
				{"orig_name" : ["lay(\\d+)\\.art","layer_(\\d+)"], "tl_name" : "l_($1)"},
				{"orig_name" : ["bottom.art","^bottom$"], "tl_name" : "bottom" },
				{"orig_name" : "soldbotm.art", "tl_name" : "sm_botm" },
				{"orig_name" : "sleg.art", "tl_name" : "silk_bot" },
				{"orig_name" : "pastbotm.art", "tl_name" : "past_botm" },
				{"orig_name" : "multipack.art", "tl_name" : "array" },
				{"orig_name" : "outline.art", "tl_name" : "outline" },
				{"orig_name" : "fab.art", "tl_name" : "fab" },
				{"orig_name" : "top-enig", "tl_name" : "top-enig" },
				{"orig_name" : "bot-enig", "tl_name" : "bot-enig" },
				{"orig_name" : "fab_page2", "tl_name" : "fab_page2" },
				{"orig_name" : ["-(\\d+)-(\\d+)\.drl","(\\d+)-(\\d+)-laser\.drl","d(\\d+)-(\\d+)"], "tl_name" : "d_($1)-($2)"}
			]
		},
		"Customer_1": {
			"path": "C:/Users/Administrator/Desktop/Customer_1",
			"db": "genesis",
			"step": "cad",
			"rules": [
				{ 
					"valid": function(props){
						var file = props.file;
						var job = props.job;
						var reg = new RegExp("^"+job+"-a","ig")
						return /.+\.tgz$/ig.test(file.name) && reg.test(file.baseName)
					}, 
					"type": "ODB",		
					"format": "ODB_1"
				},
				{ 
					"valid": function(props){
						var file = props.file;
						return /.+\.tgz$/ig.test(file.name)
					}, 
					"type": "ODB",		
					"format": "ODB"
				},
				{
					"valid": function(props){
						var file = props.file;
						return /.+\.art$/ig.test(file.name)
					},  
					"type": "Gerber274x",		
					"format": "Gerber274x_1"
				},
				{
					"valid": function(props){
						var file = props.file;
						return /.+\.drl$/ig.test(file.name)
					},  
					"type": "Excellon2",		
					"format": "Excellon2_1"
				}
			],
			"tl_name": [
				{"orig_name" : "^spt$", "tl_name" : "spt" },
				{"orig_name" : "^smt$", "tl_name" : "smt" },
				{"orig_name" : "^smb$", "tl_name" : "smb" },
				{"orig_name" : "^spb$", "tl_name" : "spb" },
				{"orig_name" : "^ssb$", "tl_name" : "ssb" },
				{"orig_name" : "^sst$", "tl_name" : "sst" },
				{"orig_name" : "^top$", "tl_name" : "top" },
				{"orig_name" : "^drill$", "tl_name" : "drill" },
				{"orig_name" : "^rout$", "tl_name" : "rout" },
				{"orig_name" : "^bottom$", "tl_name" : "bottom" },
				{"orig_name" : ["^isl(\\d+)$","^layer_(\\d+)$"], "tl_name" : "l_($1)"},
				{"orig_name" : ["_isl(\\d+)_isl(\\d+)","d(\\d+)-(\\d+)"], "tl_name" : "d_($1)-($2)"},
				{"orig_name" : ["_top_isl(\\d+)"], "tl_name" : "d_1-($1)"},
				{"orig_name" : ["_isl(\\d+)_bottom"], "tl_name" : "d_($1)-($1+1)"}
			]
		}
	},
	"data_format": [
		{"tl_name":"^sst$" , "new_name":"sst" , "attr":{ "context":"board", "type":"solder_paste" }},
		{"tl_name":"^spt$" , "new_name":"spt" , "attr":{ "context":"board", "type":"solder_paste" }},
		{"tl_name":"^smt$" , "new_name":"smt" , "attr":{ "context":"board", "type":"solder_mask" }},
		{"tl_name":"^top$" , "new_name":"top" , "attr":{ "context":"board", "type":"signal" }},
		{"tl_name":"l_(\\d+)","new_name":"layer_($1)" ,"attr":{"context":"board","type":"signal"}},
		{"tl_name":"^bottom$","new_name":"bottom" ,"attr":{"context":"board","type":"signal"}},
		{"tl_name":"^smb$" , "new_name":"smb" , "attr":{ "context":"board", "type":"solder_mask" }},
		{"tl_name":"^spb$" , "new_name":"spb" , "attr":{ "context":"board", "type":"solder_paste" }},
		{"tl_name":"^ssb$" , "new_name":"ssb" , "attr":{ "context":"board", "type":"solder_paste" }},
		{"tl_name":"d_(\\d+)-(\\d+)","new_name":"d($1)-($2)" ,"attr":{"context":"board","type":"drill"}},
		{"tl_name":"drill","new_name":"drill" ,"attr":{"context":"board","type":"drill"}},
		{"tl_name":"rout","new_name":"rout" ,"attr":{"context":"board","type":"rout"}}
	],
	"delSameJob": "yes"
}

module.exports = config

