//===========================================================master job big window=========================================================================
var column = d => [...document.querySelectorAll(`#Detail > tbody > tr > td:nth-child(${d})`)];
var mixing = column(5).map(item => item.innerText.split("+"));
var test = column(2).reduce((acc,curr) => [...acc, (curr.innerText || acc.pop())], []);
var obj = test.reduce((acc,curr,i) => (acc[curr] = [...(acc[curr] || []), mixing[i]], acc), {});
localStorage.setItem('master', JSON.stringify(obj));
/*
**********************************************************************************************************************************************************
*/
//=========================================================child job small window==============================================================================
function txt_download (content, filename) {
var el = document.createElement('a');
el.download = filename;
el.style.display = 'none';
var blob = new Blob([content]);
el.href = URL.createObjectURL(blob);
document.body.appendChild(el);
el.click();
document.body.removeChild(el);
};
var obj = JSON.parse(localStorage.getItem('master'));
var standardName = document.querySelector("#lblTestStd").innerText;
if(!(mixingArr = obj[standardName]))
throw `No data for ${standardName} in master job`;
var column = d => [...document.querySelectorAll(`[id^=gvRpt_Select_DXDataRow] > td:nth-child(${d})`)];
var components = column(4).map(el => el.innerText);
//var referNumbers = column(6).map(el => (el.innerText.match(/HJ.*-(\d+)/) || [])[1]);
var referNumbers = column(2).map(el => (el.innerText.match(/^(\d+)$/) || [])[1]);
var dict = referNumbers.reduce((acc,curr,i) => (acc[curr || ""] = components[i], acc), {});
var content = Object.keys(dict).filter(Boolean).map(referNumber => {
if(matchArr = mixingArr.find(item => item.includes(referNumber)))
return matchArr.map(item => dict[item] || "null").join("+");
return `Component ${dict[referNumber]} cannot refer to master job.`
}).filter((item,i,arr) => arr.indexOf(item) === i).join("\r\n");
if(content) txt_download(content, `${standardName}_mixing.txt`);
//localStorage.removeItem('master');