/**
 * Settings - for uMeetMe.com
 * This file need mootools.1.2.1.js 
 *
 *
 * @name settings.js
 * @author AnandKumar - http://www.anandkumar.co.in
 * @date 15-Feb-2009
 *
*/

/*      Constant variable declared here         */
HEADER_MSG = 'Please correct following error(s)<br /><br />';
FOOTER_MSG = '<br />Please retry.';
START_INNER = '&bull;&nbsp;';
END_INNER = '<br />';


/*      Utility functions goes here  */
function isEmpty(element){
    if(element == null || element.value == "" || element.value.length == 0)
        return true;
    else
        return false;
}

function isValidEmail(element){
    if(isEmpty(element)){
        return false;
    }else{
        if ((new RegExp("^(([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}){0,1}$")).test(element.value)){
            return true;
        }else{
            return false;
        }
    }
}

function isNumeric(element){
    if(isEmpty(element)){
        return false;
    }else{
        if ((new RegExp("^[0-9]*$")).test(element.value)){
            return true;
        }else{
            return false;
        }
    }
}

function isValidAlphaNumHyp(element){
    if(isEmpty(element)){
        return false;
    }else{
        if ((new RegExp("^[A-Za-z0-9\-_]*$")).test(element.value)){
            return true;
        }else{
            return false;
        }
    }
}

function isValidUsZip(element){
    if(!isEmpty(element) && isNumeric(element) && element.value.length == 5){
        return true;
    }else{
        return false;
    }
}

function isValidFileType(element){
    var ext = (element.value).substring((element.value).lastIndexOf('.') + 1).toLowerCase();
    if (ext == "jpg" || ext == "jpeg"|| ext == "gif" || ext == "bmp"){
        return true;
    }else{
        return false;
    }
}

function generateErrMsg(str){
    return START_INNER + str + END_INNER;
}

function finalReturn(isError, strMsg){
    if(isError){
        strMsg = HEADER_MSG + strMsg + FOOTER_MSG;
        Sexy.error(strMsg);
        return false;
    }else{
        return true;
    }
}




/**
 *This function needs form object by name.
 *
 *
 */
function isOptedAtleastOne(obj){
    for(i=0; i< obj.length; i++){
        if(obj[i].checked){
            return true;
        }
    }
    return false;
}



/*      Form validation functions goes here     */
function validateScreenNameForm(){
    var strMsg = "";
    var isError = false;
    if(isEmpty($('username'))){
        isError = true;
        strMsg += generateErrMsg("Screen Name can not be blank.");
    }else{
        if(!isValidAlphaNumHyp($('username'))){
            isError = true;
            strMsg += generateErrMsg('Screen Name is not valid. Only alphanumeric characters and - allowed.');
        }
    }
    
    if(isEmpty($('email'))){
        isError = true;
        strMsg += generateErrMsg("Email can not be blank.");
    }else{
        if(!isValidEmail($('email'))){
            isError = true;
            strMsg += generateErrMsg("Email is not valid.");
        }
    }
    return finalReturn(isError, strMsg);
}


function validateCreateAccountForm(){
    var strMsg = "";
    var isError = false;
    
    if(isEmpty($('password'))){
        isError = true;
        strMsg += generateErrMsg("Password can not be blank.");
    } else if($('password').value.length < 8){
        isError = true;
        strMsg += generateErrMsg('Password  must be at least 8 characters long.');
    } else if($('password').value != $('repeatPassword').value){
        isError = true;
        strMsg += generateErrMsg('Confirm password must be equal to password.');
    }

    if(isEmpty($('formYear'))){
        isError = true;
        strMsg += generateErrMsg("Please select date of birth.");
    } else if(isEmpty($('formMonth'))){
        isError = true;
        strMsg += generateErrMsg("Please select date of birth.");
    } else if(isEmpty($('formDate'))){
        isError = true;
        strMsg += generateErrMsg("Please select date of birth.");
    } else{
        var monthLength = new Array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
        var year = parseInt($('formYear').value);
        var month = parseInt($('formMonth').value);
        var date = parseInt($('formDate').value);
        if(function isLeapYear(year){
            if ((year % 4) != 0) {
                return false;
            }
            else if ((year % 400) == 0) {
                return true;
            }
            else if ((year % 100) == 0) {
                return false;
            }
            else {
                return true;
            }
        }){
            monthLength[2] = 29;
        }
        if (month < 1 || month > 12) {
            isError = true;
            strMsg += generateErrMsg("Date of birth is not valid.");
        } else if (date < 1 || date > monthLength[month]) {
            isError = true;
            strMsg += generateErrMsg("Date of birth is not valid.");
        } 
    }

    if(isEmpty($('gender'))){
        isError = true;
        strMsg += generateErrMsg("Please select your gender.");
    }

    if(isEmpty($('lookGender'))){
        isError = true;
        strMsg += generateErrMsg("Please select gender you are looking for.");
    }


    if(isEmpty($('maritalStatus'))){
        isError = true;
        strMsg += generateErrMsg("Please select your marital status.");
    }

    if(isEmpty($('headLine'))){
        isError = true;
        strMsg += generateErrMsg("HeadLine can not be blank.");
    } else if($('headLine').value.length < 8){
        isError = true;
        strMsg += generateErrMsg("Headline must be minimum 5 characters long.");
    }

    if(isEmpty($('country'))){
        isError = true;
        strMsg += generateErrMsg("Please select country.");
    }

    if(isEmpty($('state'))){
        isError = true;
        strMsg += generateErrMsg("Please select state.");
    }

    if(isEmpty($('city'))){
        isError = true;
        strMsg += generateErrMsg("City can not be blank.");
    } else if(!isValidAlphaNumHyp($('city'))){
        isError = true;
        strMsg += generateErrMsg('City is not valid. Only alphanumeric and '+'-'+' are accepted.');
    }

    
    if(isEmpty($('zip'))){
        isError = true;
        strMsg += generateErrMsg("Zip can not be blank.");
    }else if(!isValidUsZip($('zip'))){
        isError = true;
        strMsg += generateErrMsg("Zip is not valid.");
    }
    

    if(!isEmpty($('lookRadius')) && !isNumeric($('lookRadius'))){
        isError = true;
        strMsg += generateErrMsg("Miles is not valid.");
    }

    if(!isEmpty($('lookZip')) && !isValidUsZip($('lookZip'))){
        isError = true;
        strMsg += generateErrMsg("Zip you are looking for is not valid.");
    }

    return finalReturn(isError, strMsg);
}





function validateAboutYourSelfForm(){
    var strMsg = "";
    var isError = false;
    if(isEmpty($('bodyType'))){
        isError = true;
        strMsg += generateErrMsg("Please select body type.");
    }

    if(isEmpty($('height'))){
        isError = true;
        strMsg += generateErrMsg("Please select height.");
    }

    if(isEmpty($('eyeColor'))){
        isError = true;
        strMsg += generateErrMsg("Please select eye color.");
    }

    if(isEmpty($('hairColor'))){
        isError = true;
        strMsg += generateErrMsg("Please select hair color.");
    }

    if(!isOptedAtleastOne(document.form1.formBodyArt)){
        isError = true;
        strMsg += generateErrMsg("Please select body art.");
    }
    
    if(!isOptedAtleastOne(document.form1.formBestFeature)){
        isError = true;
        strMsg += generateErrMsg("Please select best feature.");
    }

    if(!isOptedAtleastOne(document.form1.formSports)){
        isError = true;
        strMsg += generateErrMsg("Please select sports.");
    }
    
    if(!isOptedAtleastOne(document.form1.formActivities)){
        isError = true;
        strMsg += generateErrMsg("Please select activities.");
    }


    if(isEmpty($('excercise'))){
        isError = true;
        strMsg += generateErrMsg("Please select excercise.");
    }

    if(isEmpty($('eating'))){
        isError = true;
        strMsg += generateErrMsg("Please select eating habits.");
    }

    if(isEmpty($('smoke'))){
        isError = true;
        strMsg += generateErrMsg("Please select smoke habit.");
    }

    if(isEmpty($('drink'))){
        isError = true;
        strMsg += generateErrMsg("Please select drinking habit.");
    }

    if(isEmpty($('living'))){
        isError = true;
        strMsg += generateErrMsg("Please select living style.");
    }

    if(isEmpty($('haveChildren'))){
        isError = true;
        strMsg += generateErrMsg("Please select whether you have children.");
    }

    if(isEmpty($('wantChildren'))){
        isError = true;
        strMsg += generateErrMsg("Please select whether you want children.");
    }

    if(isEmpty($('profession'))){
        isError = true;
        strMsg += generateErrMsg("Please select profession.");
    }

    if(isEmpty($('education'))){
        isError = true;
        strMsg += generateErrMsg("Please select education.");
    }

    if(isEmpty($('income'))){
        isError = true;
        strMsg += generateErrMsg("Please select income.");
    }

    if(isEmpty($('ethnic'))){
        isError = true;
        strMsg += generateErrMsg("Please select ethnicity.");
    }

    if(isEmpty($('political'))){
        isError = true;
        strMsg += generateErrMsg("Please select political views.");
    }

    if(!isOptedAtleastOne(document.form1.religion)){
        isError = true;
        strMsg += generateErrMsg("Please select religion.");
    }

    if(!isOptedAtleastOne(document.form1.formLanguages)){
        isError = true;
        strMsg += generateErrMsg("Please select languages.");
    }

    if(isEmpty($('about'))){
        isError = true;
        strMsg += generateErrMsg("About can not be blank.");
    } else if($('about').value.length < 100){
        isError = true;
        strMsg += generateErrMsg("About yourself  must be minimum 100 characters.");
    }

    return finalReturn(isError, strMsg);
}



function validateAboutYourMateForm(){
    var strMsg = "";
    var isError = false;

    if(isEmpty($('lookAgeStart'))){
        isError = true;
        strMsg += generateErrMsg("Please select age from.");
    }

    if(isEmpty($('lookAgeStop'))){
        isError = true;
        strMsg += generateErrMsg("Please select age to.");
    }

    if(isEmpty($('lookHeightStart'))){
        isError = true;
        strMsg += generateErrMsg("Please select height from.");
    }

    if(isEmpty($('lookHeightStop'))){
        isError = true;
        strMsg += generateErrMsg("Please select height to.");
    }


    if(!isOptedAtleastOne(document.form1.formLookMaritalStatus)){
        isError = true;
        strMsg += generateErrMsg("Please select marital status.");
    }

    if(!isOptedAtleastOne(document.form1.formLookBodyType)){
        isError = true;
        strMsg += generateErrMsg("Please select body type.");
    }

    if(!isOptedAtleastOne(document.form1.formLookEyeColor)){
        isError = true;
        strMsg += generateErrMsg("Please select eye color.");
    }

    if(!isOptedAtleastOne(document.form1.formLookHairColor)){
        isError = true;
        strMsg += generateErrMsg("Please select hair color.");
    }

    if(!isOptedAtleastOne(document.form1.formLookDrink)){
        isError = true;
        strMsg += generateErrMsg("Please select drinking habits.");
    }

    if(!isOptedAtleastOne(document.form1.formLookSmoke)){
        isError = true;
        strMsg += generateErrMsg("Please select smoke habits.");
    }

    if(!isOptedAtleastOne(document.form1.formLookHaveChildren)){
        isError = true;
        strMsg += generateErrMsg("Please select whether you have children.");
    }

    if(!isOptedAtleastOne(document.form1.formLookWantChildren)){
        isError = true;
        strMsg += generateErrMsg("Please select whether you want children.");
    }

    if(!isOptedAtleastOne(document.form1.formLookEducation)){
        isError = true;
        strMsg += generateErrMsg("Please select education.");
    }

    if(!isOptedAtleastOne(document.form1.formLookProfession)){
        isError = true;
        strMsg += generateErrMsg("Please select profession.");
    }

    if(!isOptedAtleastOne(document.form1.formLookIncome)){
        isError = true;
        strMsg += generateErrMsg("Please select income.");
    }

    if(!isOptedAtleastOne(document.form1.formLookEthnic)){
        isError = true;
        strMsg += generateErrMsg("Please select ethnicity.");
    }

    if(!isOptedAtleastOne(document.form1.formLookReligion)){
        isError = true;
        strMsg += generateErrMsg("Please select religion.");
    }

    if(!isOptedAtleastOne(document.form1.formLookLanguages)){
        isError = true;
        strMsg += generateErrMsg("Please select languages.");
    }

    return finalReturn(isError, strMsg);
}

function validateAddPhotographForm(){
    var strMsg = "";
    var isError = false;

    if(!isEmpty($('formSnapA')) && !isValidFileType($('formSnapA'))){
        isError = true;
        strMsg += generateErrMsg("First image file format is not valid (Please use .jpg, .jpeg, .gif , or . bmp files).");
    }

    if(!isEmpty($('formSnapB')) && !isValidFileType($('formSnapA'))){
        isError = true;
        strMsg += generateErrMsg("Second image file format is not valid (Please use .jpg, .jpeg, .gif , or . bmp files).");
    }

    if(!isEmpty($('formSnapC')) && !isValidFileType($('formSnapA'))){
        isError = true;
        strMsg += generateErrMsg("Third image file format is not valid (Please use .jpg, .jpeg, .gif , or . bmp files).");
    }

    if(!isEmpty($('formSnapD')) && !isValidFileType($('formSnapA'))){
        isError = true;
        strMsg += generateErrMsg("Fourth image file format is not valid (Please use .jpg, .jpeg, .gif , or . bmp files).");
    }

    return finalReturn(isError, strMsg);
}