/****************************************************************************************/
/*                                  Validator JavaScript                                */
/*--------------------------------------------------------------------------------------*/
/*   Author:        Shezod Ruzmetov                                                     */
/*   Date:          7/23/01 5:44 AM                                                     */
/*   Filename:      Validate.js                                                         */
/*   Description:   Used for client-side validation and                                 */
/*                  other major client-side scripting tasks                             */
/****************************************************************************************/

/////////////////// Handles "check all" and "invert selection" features ///
function check(controller, obj, name, action) {
    for (var j = 0; j < obj.elements.length; j++) {
        if (obj.elements[j].name == name &&
            obj.elements[j].type == 'checkbox') {

            /* inversion */
            if (action == 'invert') {
                (obj.elements[j].checked) ?
                    (obj.elements[j].checked = false) :
                        (obj.elements[j].checked = true);

            } else { /* check all */
                (controller.checked) ?
                    (obj.elements[j].checked = true) :
                        (obj.elements[j].checked = false);
            }
        }
    }
}





/////////////////// Handles "Predifned scales" feature ////////////////////
function weighting(controller, obj) {
    var idx = 0;
    /* setting the value of idx  */
    for (var j = 0; j < obj.elements.length; j++) {
        if ( obj.elements[j].name.indexOf('if_checked_') !=-1 ) {
            idx++;
        }
    }

    if ( controller.checked ) {
        for (var j = 0; j < obj.elements.length; j++) {
            if (obj.elements[j].name.indexOf('if_checked_') !=-1 )    { obj.elements[j].value = idx-- }
            if (obj.elements[j].name.indexOf('if_not_checked_') !=-1 ){ obj.elements[j].value = 0     }
        }
    } else { obj.reset() }
}





//////////////////// Validator for "Create New Pass" /////////////////////////
function validatePass(obj) {
    var missing = "";
    if (!obj.f_name.value) { missing+= "First name\n" }
    if (!obj.l_name.value) { missing+= "Last name\n"  }
    if (!obj.email.value)  { missing+= "Email\n"      }

    if (obj.email.value) {
        if (obj.email.value.indexOf('@') == -1 ) {
            missing+= "Email address doesn't seem to be valid\n";
        }
    }

    if (missing) {
        var msg = "Following required fields are found to be missing:\n";
            msg+= "--------------------------------\n";
            alert(msg+missing+"--------------------------------\nPlease provide all the above information");
        return false;
    } else {
        return true;
    }
}


/////////////////// Modify Pass, question. Checks if the item has been //////
/////////////////// selected before proceeding for deletion      ///////////
var confirmMsg = 'Are you sure you want to delete selected item(s)?\n';
    confirmMsg+= 'Click "OK" to delete, click "Cancel" otherwise';

function validateModify(obj, id, del) {
    var j; var chkd;
    for (j=0; j < obj.elements.length; j++) {
        if (obj.elements[j].name == id  && obj.elements[j].checked) {
            chkd = 1;
            break;
        }
    }

    if (chkd) {
        if (del) {
            if ( confirm(confirmMsg) ) { return true }
            else { return false }
        } else { return true }
    }
return false;
}




/////////////////Validator for "Add New Question"
function validateQuestion(obj) {

    return true;
}


//////////////// Validate "Add Scales"
function validateScale(obj) {
	if (obj.title.value) { return true }
	alert("Title field shouldn't be submitted blank");
	return false;

}