
function checkQuestions(source, arguments) {
	var valid=true;
	var missinginfo="";

	if (!isOneChecked('q1[]')) {
	    valid = false;
	    missinginfo += "Δεν έχετε απαντήσει την ερώτηση 1.\n"
	}
	if (!isOneChecked('q2[]')) {
	    valid = false;
	    missinginfo += "Δεν έχετε απαντήσει την ερώτηση 2.\n"
	} else {
	if (document.getElementById('q2_other').checked == true) {
	    if (document.getElementById('q3[]').value == "") {
	        valid = false;
	        missinginfo += "Δεν έχετε απαντήσει ολόκληρη την ερώτηση 2.\n"
	    }
	}   
	}
	if (!isOneChecked('q4[]')) {
	    valid = false;
	    missinginfo += "Δεν έχετε απαντήσει την ερώτηση 3.\n"
	}
	if (!isOneChecked('q5[]')) {
	    valid = false;
	    missinginfo += "Δεν έχετε απαντήσει την ερώτηση 4.\n"
	}
	if (!isOneChecked('q6[]')) {
	    valid=false;
		missinginfo += "Δεν έχετε απαντήσει την ερώτηση 5.\n"
	}
		
	if (!valid) {
		alert(missinginfo);
	}
	return valid;
}


function checkQuestions2(source, arguments) {
    var valid = true;
    var missinginfo = "";

    if (!isOneChecked('q7[]')) {
        valid = false;
        missinginfo += "Δεν έχετε απαντήσει την ερώτηση 6.\n"
    }
    if (!isOneChecked('q8[]') || !isOneChecked('q9[]') || !isOneChecked('q10[]') ) {
        valid = false;
        missinginfo += "Δεν έχετε απαντήσει ολόκληρη την ερώτηση 7.\n"
    }

    if (!valid) {
        alert(missinginfo);
    }
    return valid;
}

function isOneChecked(name) {
	var boxes=document.getElementsByName(name);
	var checked=false;
	for (i=0;i<boxes.length;i++) {
		if (boxes[i].checked==true) {
			checked=true;
		}
	}
	return checked;
}
function checkForm(source,arguments){
    
    missinginfo = "";	

	if (document.getElementById('gender').options[document.getElementById('gender').selectedIndex].value == "0"){
		missinginfo += "\n- Δεν έχετε επιλέξει τίτλο";	
	}
    if (document.getElementById('fname').value == "") {
		missinginfo += "\n- Δεν έχετε συμπληρώσει Όνομα";
	} else {
        if (!valid_name(document.getElementById('fname').value)) { 
			missinginfo += "\n- Το Όνομά που έχετε συμπληρώσει δεν είναι αποδεκτό"; 
		}
	}
    if (document.getElementById('sname').value == ""){
        missinginfo += "\n- Δεν έχετε συμπληρώσει Επίθετο";
	} else {
		if (!valid_name(document.getElementById('sname').value)) {
		       missinginfo += "\n- Το Επίθετο που έχετε συμπληρώσει δεν είναι αποδεκτό"; 
		}
	}
	if ((document.getElementById('bday_dd').options[document.getElementById('bday_dd').selectedIndex].value==0) || (document.getElementById('bday_mm').options[document.getElementById('bday_mm').selectedIndex].value==0) || (document.getElementById('bday_yyyy').options[document.getElementById('bday_yyyy').selectedIndex].value==0)) {
		missinginfo += "\n- Δεν έχετε συμπληρώσει ημερομηνία γεννήσεως";
	}
	if (document.getElementById('unique_code').value == "" ) {
        	missinginfo += "\n- Δεν έχετε συμπληρώσει Μοναδικό Κωδικό";
	}else{
		if(!isUnique(document.getElementById('unique_code').value)) {
			missinginfo += "\n- Δεν έχετε συμπληρώσει σωστά το Μοναδικό Κωδικό";
		}
	}
	 if (document.getElementById('email').value == "" ) {
            missinginfo += "\n- Δεν έχετε συμπληρώσει Email";
	}else{
        if (!isEmail(document.getElementById('email').value)) {
		    missinginfo += "\n- Το Email που έχετε συμπληρώσει δεν είναι αποδεκτό"; 
	    }
	}
	if ((!valid_tel(document.getElementById('phone').value)) || (!(len(document.getElementById('phone').value)>9)))    {
			missinginfo += "\n- Το τηλέφωνο που έχετε συμπληρώσει δεν είναι αποδεκτό";
	}
	if (document.getElementById('optin').checked==true) {

		if (document.getElementById('address').value == ""){
			missinginfo += "\n- Δεν έχετε συμπληρώσει Διεύθυνση";
		} else {
			if (!valid_addressGR(document.getElementById('address').value)) {
			       	missinginfo += "\n- H Διεύθυνση που έχετε συμπληρώσει δεν είναι αποδεκτή";
			}
		}
		if (document.getElementById('postcode').value == "" ) {
        		missinginfo += "\n- Δεν έχετε συμπληρώσει ΤΚ";
		}
	}
       
	if (document.getElementById('accept').checked==false) {
		missinginfo += "\n- Δεν έχετε αποδεχτεί τους όρους του διαγωνισμού";
	}


        if (missinginfo != "") {
                missinginfo ="_____________________________________________________\n" +
                "Δεν έχετε συμπληρώσει σωστά όλα τα απαραίτητα στοιχεία:\n" +
                missinginfo ;

                alert(missinginfo);
                return false;
	}else {
		return true;
	}
}
function stripCharsInBag(s, bag){
        var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
        // February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

function DaysArray(n) {
        for (var i = 1; i <= n; i++) {
                this[i] = 31
                if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
                if (i==2) {this[i] = 29}
   }
   return this
}

function isDate(dtStr){
        var britedate=""
        var daysInMonth = DaysArray(12)
        var pos1=dtStr.indexOf(dtCh)
        var pos2=dtStr.indexOf(dtCh,pos1+1)
        var strMonth=dtStr.substring(pos1+1,pos2)
        var strDay=dtStr.substring(0,pos1)
        var strYear=dtStr.substring(pos2+1)
        strYr=strYear

        britedate = strYr + "/" + strMonth + "/" + strDay

        if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
        if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
        for (var i = 1; i <= 3; i++) {
                if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
        }
        month=parseInt(strMonth)
        day=parseInt(strDay)
        year=parseInt(strYr)
        if (pos1==-1 || pos2==-1){
        //        alert("The date format should be : dd/mm/yyyy")
                return false
        }
        if (strMonth.length<1 || month<1 || month>12){
        //        alert("Please enter a valid month")
                return false
        }
        if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
        //        alert("Please enter a valid day")
                return false
        }
        if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
        //        alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
                return false
        }
        if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isNumber(stripCharsInBag(dtStr, dtCh))==false){
        //        alert("Please enter a valid date")
                return false
        }

// document.Register.i_birthdate.value = britedate
return true
}

function isEmail(str) {
        var supported = 0;
        if (window.RegExp) {
                var tempStr = "a";
                var tempReg = new RegExp(tempStr);
                if (tempReg.test(tempStr)) supported = 1;
        }
        if (!supported)
                return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
        var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
        var r2 = new RegExp("^[a-zA-Z0-9\\-\\.\\_]+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
        return (!r1.test(str) && r2.test(str));
}

function valid_chars(valid,str) {
        var temp;
        for (var i=0; i<str.length; i++) {
                temp = "" + str.substring(i, i+1);
                flag = valid.indexOf(temp)+1 ;
                if (!flag) return false ;
        }
        return true ;
}

function valid_name(str) {
        return valid_chars(" -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZαβγδεζηθικλμνξοπρστυφχψωςΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩάέίύόήώϊϋΐΰ’ΈΊΎΏΉΈ",str);
}
function valid_addressGR(str) {
        return valid_chars(", -1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZαβγδεζηθικλμνξοπρστυφχψωςΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩάέίύόήώϊϋΐΰ’ΈΊΎΏΉΈ ",str);
}

function valid_tel(str) {
        return valid_chars("1234567890-+",str);
}

function valid_postcodeGR(str) {
        return valid_chars("1234567890",str);
}

function valid_postcodeINT(str) {
        return valid_chars("1234567890abcdefghijklmopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ",str);
}

function isNumber(str) {
        return valid_chars("1234567890",str);
}

function len(str) {
        return str.length;
}

function isUnique(str) {
	if (valid_chars("1234567890abcdefghijklmopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",str)) {
		var re=/^[a-zA-Z]{1}[0-9]{8}$/;
		if (str.match(re)) { 
			return true;
		}else{
			return false;
		}
	}else{
		return false;
	}
}

