// JavaScript Document



function checkForm1() {

    missinginfo = "";

    for (i = 0; i < document.getElementsByName('ans_age').length; i++) {
        if (document.getElementsByName('ans_age')[i].checked) {
            var ans_age = true;
        }
    }
    if (ans_age) {
        $$('div.q1').setStyle('backgroundPosition', 'left bottom');
    } else {
        $$('div.q1').setStyle('backgroundPosition', 'left top');
        missinginfo += "\n- Δεν έχετε επιλέξει ηλικία";
    }

    for (i = 0; i < document.getElementsByName('ans_skin_type').length; i++) {
        if (document.getElementsByName('ans_skin_type')[i].checked) {
            var ans_skin_type = true;
        }
    }
    if (ans_skin_type) {
        $$('div.q3').setStyle('backgroundPosition', 'left bottom');
    } else {
        $$('div.q3').setStyle('backgroundPosition', 'left top');
        missinginfo += "\n- Δεν έχετε επιλέξει τύπο επιδερμίδας";
    }

    if (isOneChecked('ans_symp[]')) {
        var ans_symp = true;
    }

    if (ans_symp) {
        $$('div.q2').setStyle('backgroundPosition', 'left bottom');
    } else {
        $$('div.q2').setStyle('backgroundPosition', 'left top');
        missinginfo += "\n- Δεν έχετε επιλέξει σύμπτωμα που παρουσιάζει η επιδερμίδα σας";
    }

    if (isOneChecked('ans_skin_result[]')) {
        var ans_skin_result = true;
    }

    if (ans_skin_result) {
        $$('div.q4').setStyle('backgroundPosition', 'left bottom');
    } else {
        $$('div.q4').setStyle('backgroundPosition', 'left top');
        missinginfo += "\n- Δεν έχετε συμπληρώσει τι αποτέλεσμα θα θέλατε";
    }

    if (missinginfo != "") {
        missinginfo = "_____________________________________________________\n" +
         "Δεν έχετε συμπληρώσει σωστά όλα τα απαραίτητα στοιχεία:\n" +
          missinginfo;

        alert(missinginfo);
        return false;
    } else {
        return true;
    }
}


function checkForm2() {

    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('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 (!valid_postcodeGR(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 isOneChecked(name) {
    var boxes = document.getElementsByName(name);

    var checked = false;

    for (i = 0; i < boxes.length; i++) {
        if (boxes[i].checked == true) {
            //        alert('4');
            checked = true;
        }
    }

    return checked;
}



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]{2}[0-9]{7}$/;
        if (str.match(re)) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}


