
mysettings = Object();
hidestrings = Array();

hidelist = {app_type:{'independent':["SIR.*","sponsorship.*"],'regional':["sponsorship.*"],'sponsored':["SIR.*"]},
			Aus:{0:["Regional.*"],5:["Recent.*"],10:["Recent.*"],15:["Recent.*"]},
			Occupation:{60:[".*4050.*"],40:[".*60.*"],50:[".*60.*"]}
			};

function make_hide_strings(){
	var temp = Array();
	var myarr = Array();
	for(var x in hidelist){
//		alert(x + " - " + mysettings[x]);
		if(myarr = hidelist[x][mysettings[x]]){
//			alert(myarr.length);
			temp = temp.concat(myarr);
		}
	}
//	alert(temp.length);
	return temp;
}

function hide_all(x){
//    x.style.height = "0 px";
    x.style.display = "none";
//    for(i in x.all){
//        if(x.all[i].style) x.all[i].hidden=1;
//    }
}

function show_all(x){
//    x.style.height = "auto";
    x.style.display = "";
//    for(i in x.all){
//        if(x.all[i].style) x.all[i].hidden=0;
//    }
}

function get_radio_val(x){
    for(var i=0;i<x.length; i++){
        if(x[i].checked) return x[i].value;
    }
    return 0;
}

function get_settings(){
    var myinputs = document.getElementsByTagName("input");
    for(var i=0; i < myinputs.length; i++){
        check_elt(myinputs[i]);
    }
    var myinputs = document.getElementsByTagName("select");
    for(var i=0; i < myinputs.length; i++){
        check_elt(myinputs[i]);
    }
	hidestrings = make_hide_strings();
	hide_inputs();
	hide_rows();
    check_checkbox();
}

function check_hide_row(x){
    for(var i in hidestrings){
		var myre = new RegExp("^Row_" + hidestrings[i] + "$");
		if(x.id.match(myre)) return 1;
	}
    return 0;
}

function check_hide_input(x){
    for(var i in hidestrings){
//		alert(hidestrings[i]);
		var myre = new RegExp("^" + hidestrings[i] + "$");
		if(x.id.match(myre)) return 1;
	}
    return 0;
}

function hide_rows(){
//    var mysettings = get_settings();
    var mycount = Object();
    for(var r=0; r < document.getElementById("mytable").rows.length; r++){
        var myrow = document.getElementById("mytable").rows[r];
        if(check_hide_row(myrow)){
            hide_all(myrow);
        } else {
            show_all(myrow);
            if(myrow.section){
                if(mycount[myrow.section]){mycount[myrow.section]++;} else {mycount[myrow.section]=1;}
            }
        }
    }
    for(var i in mycount){
//        alert(i + " " + mycount[i]);
        document.getElementById(i+"_Score").rowSpan = mycount[i];
    }
}

function hide_inputs(){
	var myinputs = document.getElementsByTagName("input");
    for(var r=0; r < myinputs.length; r++){
        var x = myinputs[r];
        if(x.checked && check_hide_input(x)){
        	var mydefault = get_default_checked(x.name);
			if(mydefault){
				mydefault.checked = 1;
				var myval = (mydefault.id == x.id)? 0: mydefault.value;
			} else {
				x.checked = 0;
				var myval = 0;
			}
			mysettings[x.name] = myval;
			var myid = x.name + "_Score";
         	if(document.getElementById(myid)) document.getElementById(myid).innerHTML = set_text(myval);
       }
    }
}

function check_elt(myelt){
//        alert("myelt: " + myelt.name + "; type: " + myelt.type);
        switch (myelt.type){
            case "radio": check_radio(myelt);break;
            case "select": check_select(myelt);break;
            case "select-one": check_select(myelt);break;
            case "checkbox": check_checkbox();break;
        }
}

function check_score(){
    get_settings();
	var myscore = 0;
    for(var i in mysettings){
        if(1*mysettings[i]) myscore += 1*mysettings[i];
    }
    myscore = (myscore > 0) ? myscore : 0;
    document.getElementById("points_score").innerHTML = "<b>" + myscore + "</b>";
//    var app_type = get_radio_val(document.getElementById("app_type"));
    var mydata = {'independent':{pass:120,name:"Skilled - Independent"},'regional':{pass:100,name:"Skilled - Regional Sponsored"},'sponsored':{pass:100,name:"Skilled - Sponsored"}};
    var mytext = (mydata[mysettings.app_type].name + " is " + mydata[mysettings.app_type].pass );
    mytext += (myscore < mydata[mysettings.app_type].pass) ? ", you would <b>not</b> appear to meet the criteria for this type of visa." : ", you would appear to meet the criteria for this type of visa.";
    document.getElementById("eligibility").innerHTML = mytext;
}

function set_text(myval){
    if(myval==-1000){
        return "0";
    } else if(myval==-2000){
        return "Not Met";
    } else if(myval==""){
        return "Met";
    } else {
        return myval;
    }
}

function check_radio(x){
    var myid = x.name + "_Score";
//    alert(myid);
    if(x.hidden && x.checked){
        if(document.getElementById(myid)) document.getElementById(myid).innerHTML = "&nbsp;";
        x.checked = 0;
        var mydefault = get_default_checked(document.getElementById(x.name));
        if(mydefault){
            mydefault.checked = 1;
            return check_radio(mydefault);
        }
        return 0;

    } else if(x.checked){
        mysettings[x.name] = x.value;
        if(document.getElementById(myid)) document.getElementById(myid).innerHTML = set_text(x.value);
//		alert(x.name + " - " + x.value);
        return x.value;
    } else {
        return 0;
    }
}


function check_select(x){
    var myid = x.name + "_Score";
    if(x.hidden){
        getElementById(myid).innerHTML = "&nbsp;";
        return 0;
    } else {
        var myoption = x.options[x.selectedIndex];
//		alert(x.name + " - " + myoption);
        if(myoption){
            mysettings[x.name] = myoption.value;
            document.getElementById(myid).innerHTML = set_text(myoption.value);
            return myoption.value;
        } else {
            return 0;
        }
    }
}


function check_checkbox(x){
        if (document.getElementById("SAge").checked && document.getElementById("SEnglish").checked && document.getElementById("SOccupation").checked && (document.getElementById("SDegree").checked || document.getElementById("S60Emp").checked || document.getElementById("S4050Emp").checked)){
             document.getElementById("Spouse_Score").innerHTML = 5;
             mysettings.Spouse = 5;
             return 5;
        } else {
             document.getElementById("Spouse_Score").innerHTML = 0;
             mysettings.Spouse = 0;
             return 0;
        }
}


function get_default_checked(myname){
	var myinputs = document.getElementsByTagName("input");
	for(var i=0; i < myinputs.length; i++){
		if(myinputs[i].name == myname && myinputs[i].defaultChecked) return myinputs[i];
	}
 }

