/* This script is Copyright (c) Paul McFedries and 
Logophilia Limited (http://www.mcfedries.com/).
Permission is granted to use this script as long as 
this Copyright notice remains in place.*/

function round_decimals(original_number, decimals) {
    var result1 = original_number * Math.pow(10, decimals)
    var result2 = Math.round(result1)
    var result3 = result2 / Math.pow(10, decimals)
    return pad_with_zeros(result3, decimals)
}

function pad_with_zeros(rounded_value, decimal_places) {

    // Convert the number to a string
    var value_string = rounded_value.toString()
    
    // Locate the decimal point
    var decimal_location = value_string.indexOf(".")

    // Is there a decimal point?
    if (decimal_location == -1) {
        
        // If no, then all decimal places will be padded with 0s
        decimal_part_length = 0
        
        // If decimal_places is greater than zero, tack on a decimal point
        value_string += decimal_places > 0 ? "." : ""
    }
    else {

        // If yes, then only the extra decimal places will be padded with 0s
        decimal_part_length = value_string.length - decimal_location - 1
    }
    
    // Calculate the number of decimal places that need to be padded with 0s
    var pad_total = decimal_places - decimal_part_length
    
    if (pad_total > 0) {
        
        // Pad the string with 0s
        for (var counter = 1; counter <= pad_total; counter++) 
            value_string += "0"
        }
    return value_string
}



 
 function createCoursesNames(){
 	var dir_1 = new Array("Μαθηματικά","Φυσική","Χημεία","Βιολογία");
 	var dir_2 = new Array("Αρχαία","Ιστορία","Λογοτεχνία","Λατινικά");
 	var dir_3 = new Array("Μαθηματικά","Φυσική","Α.Ε.Π.Π.","Α.Ο.Δ.Ε");
 	var dir_4 = new Array("Μαθηματικά","Φυσική","Χημεία - Βιοχημεία","Ηλεκτρολογία");
	
 	selectedDir = document.getElementById('direction').options[document.getElementById('direction').selectedIndex].value;
	switch(selectedDir){
		case "1": 
			document.getElementById('nc_1').innerHTML = dir_1[0];
			document.getElementById('nc_2').innerHTML = dir_1[1];
			document.getElementById('nc_3').innerHTML = dir_1[2];
			document.getElementById('nc_4').innerHTML = dir_1[3];
			break;
		case "2": 
			document.getElementById('nc_1').innerHTML = dir_2[0];
			document.getElementById('nc_2').innerHTML = dir_2[1];
			document.getElementById('nc_3').innerHTML = dir_2[2];
			document.getElementById('nc_4').innerHTML = dir_2[3];
			break;
		case "3": 
			document.getElementById('nc_1').innerHTML = dir_3[0];
			document.getElementById('nc_2').innerHTML = dir_3[1];
			document.getElementById('nc_3').innerHTML = dir_3[2];
			document.getElementById('nc_4').innerHTML = dir_3[3];
			break;
		case "4": 
			document.getElementById('nc_1').innerHTML = dir_4[0];
			document.getElementById('nc_2').innerHTML = dir_4[1];
			document.getElementById('nc_3').innerHTML = dir_4[2];
			document.getElementById('nc_4').innerHTML = dir_4[3];
			break;
	}
 }
 
 function init(){
 	createCoursesNames();
	toggleAoth();
 }
 
 function cag(elementId){
 	var vocalg;
	var scriptg;
 	data = elementId.id.split('_');
	valuer = elementId.value;
	if(isNumeric(valuer) == true){
		indexer = data[1];
		if(document.getElementById('gv_'+indexer).value != "" && document.getElementById('gs_'+indexer).value != ""){
			vocalg = eval(document.getElementById('gv_'+indexer).value);
			scriptg  = eval(document.getElementById('gs_'+indexer).value);
			if(vocalg > scriptg && ((vocalg - scriptg) > 2)){
				vocalg = eval(scriptg) + 2;
			}else{
				if((scriptg - vocalg) > 2){
					vocalg = eval(scriptg) - 2;
				}
			}
			gVocal = 0.3 * eval(vocalg);
			gScript = 0.7 * eval(scriptg);
			//alert(vocalg+" * 0.3 + "+ scriptg +"* 0.7 = "+gVocal+"+"+gScript);
			accessGrade = eval(gVocal) + eval(gScript);
			document.getElementById('ga_'+indexer).value = round_decimals(accessGrade,"1");
		}
	}else{
		alert('Η τιμή που δώσατε στο πεδίο δεν είναι αριθμητική ή είναι εκτός ορίων');
		elementId.value = "";
		deleteMainValues();
		elementId.focus();
	}

 }
 
 function isNumeric(valuer){
	var status = true;
	if((valuer * 1) != valuer){
		status = false;
	}
	if((valuer * 1) < 0){
		status = false;
	}
	if((valuer * 1) > 20){
		status = false;
	}
	return status;
 }
 
 function cof(elementId){
 	data = elementId.id.split('_');
	indexer = data[1];
	if(isNumeric(elementId.value) == true){
		document.getElementById('gv_'+indexer).value = "";
		document.getElementById('gs_'+indexer).value = "";
	}else{
		alert('Η τιμή που δώσατε στο πεδίο δεν είναι αριθμητική ή είναι εκτός ορίων');
		elementId.value = "";
		deleteMainValues();
		elementId.focus();
	}
 }
 
 function toggleAoth(){
 	if (document.getElementById('epil').options[document.getElementById('epil').selectedIndex].value == 1){
 	aothValue = document.getElementById('aoth').options[document.getElementById('aoth').selectedIndex].value;
	if(aothValue == 0){
		document.getElementById('gv_7').disabled = true;
		document.getElementById('gv_7').value = "";
		document.getElementById('gs_7').disabled = true;
		document.getElementById('gs_7').value = "";
		document.getElementById('ga_7').disabled = true;
		document.getElementById('ga_7').value = "";
	}else{
		document.getElementById('gv_7').disabled = false;
		document.getElementById('gs_7').disabled = false;
		document.getElementById('ga_7').disabled = false;
	}
	}else{
		document.getElementById('aoth').options[0].selected = true;
		document.getElementById('gv_7').disabled = true;
		document.getElementById('gv_7').value = "";
		document.getElementById('gs_7').disabled = true;
		document.getElementById('gs_7').value = "";
		document.getElementById('ga_7').disabled = true;
		document.getElementById('ga_7').value = "";
	}
 }
 
 function resetAll(){
 	var response = confirm("Όλα τα πεδία θα διαγραφούν. \r\n Θέλετε να συνεχίσετε;");
	if (response == true){
 		inputs = document.getElementsByTagName('input');
		counter = 0;
		do{
			inputs[counter].value = "";
			counter++;
		}while(counter < inputs.length);
		deleteMainValues();
	}
 }
 
 function calculateGa(){
 	
	document.getElementById('gga').value = "";
	
	if (document.getElementById('ga_7').disabled == false){
		totalC = 7;
	}else{
		totalC = 6;
	}
	
	var allValues = new Array();
	counter = 1;
	sum = 0;
	allOk = true;
	do{
		if(document.getElementById('ga_'+counter).value == ""){
			allOk = false;
		}else{
			//alert(document.getElementById('ga_'+counter).value);
			sum += eval(document.getElementById('ga_'+counter).value);
		}
		counter++;
	}while(counter <= totalC);
	
	if(allOk == true){
		av = round_decimals((sum / totalC),"2");
		document.getElementById('gga').value = av;
		if (av >= 10){
			calculatePoints();
		}else{
			alert('Ο βαθμός πρόσβασης ['+av+'] είναι μικρότερος του 10.');
			deleteMainValues();
		}
	}else{
		alert('Παρακαλώ συμπληρώστε όλα τα απαραίτητα πεδία.');
		deleteMainValues();
	}
	
 }
 
 function calculatePoints(){
	document.getElementById('f1').value = "";
	document.getElementById('f2').value = "";
	document.getElementById('f3').value = "";
	document.getElementById('f4').value = "";
	document.getElementById('f5').value = "";
	document.getElementById('s_1').innerHTML = "";
	document.getElementById('s_2').innerHTML = "";
	document.getElementById('s_3').innerHTML = "";
	document.getElementById('s_4').innerHTML = "";
	document.getElementById('s_5').innerHTML = "";
	
	var selectedDir = document.getElementById('direction').options[document.getElementById('direction').selectedIndex].value;
	
	switch(selectedDir){
		case "1":
			points_2_4 = (130 * document.getElementById('ga_2').value) + (70 * document.getElementById('ga_3').value) + (800 * document.getElementById('gga').value);
			document.getElementById('f2').value = points_2_4;
			document.getElementById('f4').value = points_2_4;
			points_3 = (130 * document.getElementById('ga_5').value) + (70 * document.getElementById('ga_4').value) + (800 * document.getElementById('gga').value);
			document.getElementById('f3').value = points_3;
			
			if((document.getElementById('epil').options[document.getElementById('epil').selectedIndex].value == 1) && (document.getElementById('aoth').options[document.getElementById('aoth').selectedIndex].value == 1)){
				points_5 = (130 * document.getElementById('ga_7').value) + (70 * document.getElementById('ga_6').value) + (800 * document.getElementById('gga').value);
				document.getElementById('f5').value = points_5;
			}
			
			if((document.getElementById('epil').options[document.getElementById('epil').selectedIndex].value == 4) && (document.getElementById('aoth').options[document.getElementById('aoth').selectedIndex].value == 0)){
				points_1 = (90 * document.getElementById('ga_1').value) + (40 * document.getElementById('ga_6').value) + (800 * document.getElementById('gga').value);
				document.getElementById('f1').value = points_1;
			}
			
			break;
			
		case "2":
			points_1 = (130 * document.getElementById('ga_2').value) + (70 * document.getElementById('ga_3').value) + (800 * document.getElementById('gga').value);
			document.getElementById('f1').value = points_1;

			if((document.getElementById('epil').options[document.getElementById('epil').selectedIndex].value == 1) && (document.getElementById('aoth').options[document.getElementById('aoth').selectedIndex].value == 1)){
				points_5 = (130 * document.getElementById('ga_7').value) + (70 * document.getElementById('ga_6').value) + (800 * document.getElementById('gga').value);
				document.getElementById('f5').value = points_5;
			}
			
			if((document.getElementById('epil').options[document.getElementById('epil').selectedIndex].value == 1)){
				points_2_4 = (90 * document.getElementById('ga_6').value) + (40 * document.getElementById('ga_1').value) + (800 * document.getElementById('gga').value);
				document.getElementById('f2').value = points_2_4;
				document.getElementById('f4').value = points_2_4;
			}
			
			if((document.getElementById('epil').options[document.getElementById('epil').selectedIndex].value == 3)){
				points_3 = (90 * document.getElementById('ga_6').value) + (40 * document.getElementById('ga_1').value) + (800 * document.getElementById('gga').value);
				document.getElementById('f3').value = points_3;
			}
			
			break;
			
		case "3":
			points_2_4 = (130 * document.getElementById('ga_2').value) + (70 * document.getElementById('ga_3').value) + (800 * document.getElementById('gga').value);
			document.getElementById('f2').value = points_2_4;
			document.getElementById('f4').value = points_2_4;

			if((document.getElementById('epil').options[document.getElementById('epil').selectedIndex].value == 1) && (document.getElementById('aoth').options[document.getElementById('aoth').selectedIndex].value == 1)){
				points_5 = (130 * document.getElementById('ga_7').value) + (70 * document.getElementById('ga_6').value) + (800 * document.getElementById('gga').value);
				document.getElementById('f5').value = points_5;
			}
			
			if((document.getElementById('epil').options[document.getElementById('epil').selectedIndex].value == 3)){
				points_3 = (90 * document.getElementById('ga_6').value) + (40 * document.getElementById('ga_1').value) + (800 * document.getElementById('gga').value);
				document.getElementById('f3').value = points_3;
			}
			
			if((document.getElementById('epil').options[document.getElementById('epil').selectedIndex].value == 4)){
				points_1 = (90 * document.getElementById('ga_1').value) + (40 * document.getElementById('ga_6').value) + (800 * document.getElementById('gga').value);
				document.getElementById('f1').value = points_1;
			}
			
			break;
			
		case "4":
			points_2_4 = (130 * document.getElementById('ga_2').value) + (70 * document.getElementById('ga_3').value) + (800 * document.getElementById('gga').value);
			document.getElementById('f2').value = points_2_4;
			document.getElementById('f4').value = points_2_4;

			if((document.getElementById('epil').options[document.getElementById('epil').selectedIndex].value == 1) && (document.getElementById('aoth').options[document.getElementById('aoth').selectedIndex].value == 1)){
				points_5 = (130 * document.getElementById('ga_7').value) + (70 * document.getElementById('ga_6').value) + (800 * document.getElementById('gga').value);
				document.getElementById('f5').value = points_5;
			}
			
			if((document.getElementById('epil').options[document.getElementById('epil').selectedIndex].value == 3)){
				points_3 = (90 * document.getElementById('ga_6').value) + (40 * document.getElementById('ga_1').value) + (800 * document.getElementById('gga').value);
				document.getElementById('f3').value = points_3;
			}
			
			if((document.getElementById('epil').options[document.getElementById('epil').selectedIndex].value == 4)){
				points_1 = (90 * document.getElementById('ga_1').value) + (40 * document.getElementById('ga_6').value) + (800 * document.getElementById('gga').value);
				document.getElementById('f1').value = points_1;
			}
			
			break;
	
	}
	
	calculateSchools();
	
 }
 
 function deleteMainValues(){
 	document.getElementById('gga').value = "";
 	document.getElementById('f1').value = "";
	document.getElementById('f2').value = "";
	document.getElementById('f3').value = "";
	document.getElementById('f4').value = "";
	document.getElementById('f5').value = "";
	document.getElementById('s_1').innerHTML = "";
	document.getElementById('s_2').innerHTML = "";
	document.getElementById('s_3').innerHTML = "";
	document.getElementById('s_4').innerHTML = "";
	document.getElementById('s_5').innerHTML = "";
	document.getElementById('results').innerHTML = "";
 }