var Rules = { } ; Rules.simpleYesNoRule = function (variable_id, yesValue, noValue){ return function (){ var result = undefined; if (Values[variable_id] == 'yes') { result = yesValue; } else { result = noValue; } return result; } ; } ; Rules.jumpToFinish = 'finish'; Rules.conclusion = function (conclusion){ Values.conclusion = conclusion; return Rules.jumpToFinish; } ; Rules.conclusionPDF = function (conclusion){ Rules.conclusion(conclusion); Values.conclusion_generate_pdf = true ; return Rules.jumpToFinish; } ; Rules.addFlag = function (flag){ Values.flags.push(flag); } ; Rules.is203 = function (){ return (Values.conclusion == "A.iii"); } ; Rules.is304 = function (){ return (['A.i', 'A.ii', 'A.i-ii'] .indexOf(Values.conclusion) > -1); } ; Rules.hasPublicDomainFlags = function (){ var result = false ; for (var i = 0; i < _AN_Read_length('length', Values.flags); i++ ){ if (Values.flags[i][0] == 'B') { result = true ; } } return result; } ; Rules.beforeEndOfNoticeWindow = function (){ return ((Values.notice_end != undefined) && (Values.notice_end >= Values.current_year)) || ((Values.d_notice_end != undefined) && (Values.d_notice_end >= Values.current_year)) || ((Values.p_notice_end != undefined) && (Values.p_notice_end >= Values.current_year)); } ; Rules.section304Analysis = function (){ var result = 's1q1f'; if (Values.k_year < 1978) { result = 's2q2a'; Rules.addFlag('F.i'); if ((Values.pub_year > 1977) && (Values.reg_year > 1977)) { result = Rules.conclusion('B.vii'); } else { if ((Values.reg_year != undefined) && (Values.pub_year != undefined)) { Values.cright_year = Math.min(Values.pub_year, Values.reg_year); } else { Values.cright_year = Values.reg_year || Values.pub_year; } Values.cright_year = Math.min(Values.cright_year, 1978); Values.term_begin = Values.cright_year + 56; Values.term_begin = Math.max(Values.term_begin, 1978); Values.term_end = Values.term_begin + 5; Values.notice_begin = Values.term_begin - 10; Values.notice_end = Values.term_end - 2; if (Values.notice_begin > Values.current_year) { Rules.addFlag('A.i.a'); } else if (Values.cright_year < 1940) { Rules.addFlag('F.ii'); Values.d_term_begin = Values.term_begin + 19; Values.d_term_end = Values.d_term_begin + 5; Values.d_notice_begin = Values.d_term_begin - 10; Values.d_notice_end = Values.d_term_end - 2; if (Values.cright_year > 1936) { Rules.addFlag('G.i'); } if (Values.cright_year == 1939) { Rules.addFlag('G.ii.a'); } if (Values.d_notice_begin > Values.current_year) { Rules.addFlag('A.iii.a'); } else if (Values.d_notice_end < Values.current_year) { Rules.addFlag('A.ii.a'); } } else if (Values.notice_end < Values.current_year) { Rules.addFlag('A.ii.a'); } else { result = 's2q2a'; } } if ((Values.d_term_begin != undefined) && (Values.term_begin != undefined)) { Rules.addFlag('E.i'); } } return result; } ; Rules.section203Analysis = function (){ var result = 's2q2a'; if (typeof Values.grant_pub_year !== 'undefined') { Rules.addFlag('F.iv'); } Values.triggering_pub_year = Values.grant_pub_year || Values.pub_year; if (Values.k_year > 1977) { Rules.addFlag('F.iii'); if (Values.pub_right == 'yes') { if (Values.triggering_pub_year != undefined) { Values.term_begin = Math.min(Values.triggering_pub_year + 35, Values.k_year + 40); } else { Values.term_begin = Values.k_year + 40; } } else if ((Values.triggering_pub_year != Values.k_year) || (Values.pub_right == 'no')) { Values.term_begin = Values.k_year + 35; } if (Values.term_begin != undefined) { Values.term_end = Values.term_begin + 5; Values.notice_begin = Values.term_begin - 10; Values.notice_end = Values.term_end - 2; if (Values.notice_begin > Values.current_year) { Rules.addFlag('A.i.a'); } else if (Values.notice_end < Values.current_year) { Rules.addFlag('A.ii.a'); } } if (Values.pub_right == 'maybe') { Values.p_term_begin = Values.k_year + 40; if (Values.triggering_pub_year != undefined) { Values.p_term_begin = Math.min(Values.triggering_pub_year + 35, Values.p_term_begin); } Values.p_term_end = Values.p_term_begin + 5; Values.p_notice_begin = Values.p_term_begin - 10; Values.p_notice_end = Values.p_term_end - 2; if (Values.p_notice_begin > Values.current_year) { Rules.addFlag('A.i.a'); } else if (Values.p_notice_end < Values.current_year) { Rules.addFlag('A.ii.a'); } } } if ((Values.p_term_begin != undefined) && (Values.term_begin != undefined)) { Rules.addFlag('E.ii'); } return result; } ; Rules.s1q1a = 's1q1b'; Rules.s1q1b = Rules.simpleYesNoRule('work_published', 's1q1bi', 's1q1c'); Rules.s1q1bi = 's1q1bii'; Rules.s1q1bii = function (){ var result = undefined; if (Values.pub_year < 1923) { result = Rules.conclusion('B.viii'); } else if (Values.pub_year < 1990) result = 's1q1bi2'; else { result = 's1q1d'; } return result; } ; Rules.s1q1bi2 = function (){ var result = undefined; if (Values.copyright_notice == 'yes') { result = 's1q1c'; } else if (Values.copyright_notice == 'no') { result = 's1q1c'; if (Values.pub_year < 1989) { Rules.addFlag('B.i'); } else { Rules.addFlag('B.ii'); } } else { result = 's1q1c'; Rules.addFlag('B.iii'); } return result; } ; Rules.s1q1c = function (){ var result = undefined; if (Values.work_registered == 'yes') { result = 's1q1ci'; } else if (Values.work_registered == 'no') { result = 's1q1d'; } else { result = 's1q1d'; } return result; } ; Rules.s1q1ci = function (){ var result = undefined; if (Values.reg_year < 1923) { result = Rules.conclusion('B.viii'); } else { result = 's1q1d'; } return result; } ; Rules.s1q1d = function (){ var result = undefined; if (Values.user_inputted_k_year != Values.k_year) { Rules.addFlag('H.i'); } if ((Values.k_year < 1978) && ((Values.pub_year == undefined) && (Values.reg_year == undefined))) { result = Rules.conclusion('B.vii'); } else { result = Rules.section304Analysis(); if ((result != Rules.jumpToFinish) && Rules.beforeEndOfNoticeWindow() && (!Rules.hasPublicDomainFlags())) { Notifications.setEncouragement("Both notice window and copyright status look good, let's get some more details!"); } } return result; } ; Rules.s1q1f = function (){ var result = Rules.section203Analysis(); if ((result != Rules.jumpToFinish) && Rules.beforeEndOfNoticeWindow() && (!Rules.hasPublicDomainFlags())) { Notifications.setEncouragement("Both notice window and copyright status look good, let's get some more details!"); } return result; } ; Rules.section203Analysis; Rules.s2q2a = function (){ var result = undefined; if (Values.last_will == 'yes') { result = Rules.conclusion('B.iv'); } else { if ((Values.creation_year > 1977) || (((Values.pub_year == undefined) || (Values.pub_year > 1977)) && ((Values.reg_year == undefined) || (Values.reg_year > 1977)))) { result = 's2q2bi'; } else { result = 's2q2c'; } } return result; } ; Rules.s2q2bi = function (){ var result = undefined; if (Values.any_authors_alive == 'yes') { result = 's2q2c'; } else { result = 's2q2bi2'; } return result; } ; Rules.s2q2bi2 = function (){ var result = undefined; if (Values.creation_year > 1977) { Values.pd = Values.death + 71; } else if ((Values.pub_year != undefined) && (Values.pub_year < 2003)) { Values.pd = Math.max((Values.death + 71), 2048); } else { Values.pd = Math.max((Values.death + 71), 2003); } if (Values.current_year > Values.pd) { result = Rules.conclusion('B.viii'); } else { result = 's2q2c'; } return result; } ; Rules.s2q2c = function (){ var result = undefined; if (Values.within_scope_of_employment == 'yes') { if (Values.creation_year > 1977) { result = 's2q2ci'; } else { result = Rules.conclusion('B.i'); } } else { result = 's2q2d'; } return result; } ; Rules.s2q2ci = function (){ var result = undefined; if (Values.express_agreement == 'yes') { result = 's2q2d'; } else { result = Rules.conclusion('B.i'); } return result; } ; Rules.s2q2d = function (){ var result = undefined; if (Values.special_order == 'yes') { if (Values.creation_year < 1978) { Rules.addFlag('D.i'); result = 's2q2e'; } else { result = 's2q2di'; } } else { result = 's2q2e'; } return result; } ; Rules.s2q2di = function (){ var result = undefined; if (Values.signed_written_agreement == 'yes') { if (Values.creation_year < 1978) { result = Rules.conclusion('B.iii'); } else { result = 's2q2dia'; } } else { result = 's2q2e'; } return result; } ; Rules.s2q2dia = function (){ var result = undefined; if (Values.created_as_part_of_motion_picture == 'yes') { result = Rules.conclusion('C.ii'); } else if (Values.created_as_part_of_motion_picture == 'no') { result = 's2q2e'; } else { Rules.addFlag('D.ii'); result = 's2q2e'; } return result; } ; Rules.s2q2e = function (){ var result = 's2q2f'; if (Values.renego == 'yes') { Rules.addFlag('C.i'); } else if (Values.renego == 'no') { } else { Rules.addFlag('C.ii'); } return result; } ; Rules.s2q2f = function (){ var result = undefined; if (Values.authors_entered_agreement == 'yes') { if (Values.k_year < 1978) { result = Rules.conclusionPDF('A.i-ii'); } else { result = Rules.conclusionPDF('A.iii'); } } else { if (Values.k_year < 1978) { result = 's2q2fii'; } else { result = Rules.conclusion('B.vi'); } } return result; } ; Rules.s2q2fii = function (){ var result = undefined; if (Values.agreement_by_family_or_executor) { result = Rules.conclusionPDF('A.i-ii'); } else { result = Rules.conclusion('B.v'); } return result; } ;