var form_errors = Array(); var form_error_boxes = Array(); var form_fields = Array(); var form_error_count = 0; var form_loaders = Array(); function form_loader_show(f,j,m) { var msg = "Παρακαλούμε περιμένετε..."; if ( m != undefined ) msg = m; $("input[type=submit]",j).attr("disabled","true"); if ( form_loaders[f] != undefined && form_loaders[f].achtung('closed') ) delete form_loaders[f][i]; /*form_loaders[f] = $.achtung({ timeout: 10000, message: msg, disableClose: false, className: 'ui-state-default', icon: 'wait-icon' });*/ } function form_loader_hide(f,j) { if ( form_loaders[f] != undefined ) { $("input[type=submit]",j).removeAttr("disabled"); form_loaders[f].achtung('close'); delete form_loaders[f]; } } function form_errors_show(f) { var tmp; for ( i in form_errors[f] ) { tmp = form_errors[f][i]; /*if ( form_error_boxes[f][i] != undefined && form_error_boxes[f][i].achtung('closed') ) delete form_error_boxes[f][i]; if ( form_error_boxes[f][i] == undefined ) { form_error_boxes[f][i] = $.achtung({ timeout: 0, message: tmp, className: 'ui-state-error', icon: 'ui-icon-alert' }); } else { form_error_boxes[f][i].achtung('update', { className: 'ui-state-error', icon: 'ui-icon-alert', message: tmp }); }*/ if ( $("#"+i+"_error") ) { $($("#"+i+"_error"),$("#"+f)).html(tmp); $($("#"+i+"_error"),$("#"+f)).fadeIn(600); //$("#"+i+"_error").show(300); } } } function form_errors_remove_all() { for ( i in form_error_boxes ) { for ( j in form_error_boxes[i] ) { form_error_boxes[i][j].achtung('close'); } } } function form_errors_cleanup_all() { for ( i in form_error_boxes ) form_errors_cleanup(i); } function form_errors_cleanup(f,fast) { if ( fast == undefined ) fast = false; for ( i in form_error_boxes[f] ) { if ( form_errors[f][i] == undefined ) { if ( fast ) form_error_boxes[f][i].achtung('close', { fast: true }); else form_error_boxes[f][i].achtung('update', { className: 'ui-state-default', icon: 'ui-icon-check', timeout: 1 }); } } //$.growlUI("NA: err_caption",err); } function form_errors_add(f,fl,e) { form_errors[f][fl] = e; } function form_errors_reset(f) { for ( i in form_errors[f] ) { if ( $("#"+i) ) $("#"+i).removeClass("ui-state-error"); if ( $("#"+i+"_error") ) $(".errorDiv",$("#"+i+"_error")).slideUp(300); } form_errors[f] = Array(); for ( i in form_fields[f] ) { $("#"+form_fields[f][i], $("#"+f)).removeClass("ui-state-error"); } } function form_register(f,fields) { //if ( form_errors[f] == undefined ) form_errors[f] = Array(); if ( form_error_boxes[f] == undefined ) form_error_boxes[f] = Array(); else form_errors_cleanup(f); if ( form_fields[f] == undefined ) form_fields[f] = Array(); form_fields[f] = fields; } function form_check_length(f,o,fl,n,a) { if ( o.val().length > a.max || o.val().length < a.min ) { if ( o.val().length > a.max ) form_errors_add(f,fl,"Η τιμή που δόθηκε είναι μεγάλη"); else if ( o.val().length > 0 ) form_errors_add(f,fl,"Η τιμή που δόθηκε είναι μικρή"); else if ( o.val().length == 0 && a.zero != 1 ) form_errors_add(f,fl,"Το πεδίο είναι άδειο"); else if ( o.val().length == 0 ) return true; o.addClass('ui-state-error'); return false; } else { return true; } } function form_check_empty(f,o,fl,n) { if ( o.attr('type') == 'text' ) { if ( o.val().length == 0 ) { o.addClass('ui-state-error'); if ( n != undefined ) form_errors_add(f,fl,"Το πεδίο είναι άδειο"); return false; } } return true; } function form_check_zero(f,o,fl,n) { if ( parseInt(o.val()) == 0 ) { o.addClass('ui-state-error'); if ( n != undefined ) form_errors_add(f,fl,"Η τιμή είναι μηδενική"); return false; } else return true; } function form_check_number(f,o,fl,n) { if ( isNaN(o.val()) || o.val() == "" ) { o.addClass('ui-state-error'); if ( n != undefined ) form_errors_add(f,fl,"Η τιμή δεν είναι αριθμός"); return false; } else return true; } function form_check_email(f,o,fl,n) { var address = o.val(); var valid = ( address.length > 2 && address.lastIndexOf('@') > 0 && address.lastIndexOf('.') > 0 && address.lastIndexOf('.') > address.lastIndexOf('@') ); if ( ( ! valid && address.length > 0 ) || address.length == 0 ) { o.addClass('ui-state-error'); if ( n != undefined ) form_errors_add(f,fl,"Η διεύθυνση δεν είναι έγκυρη"); return false; } else { return true; } } function form_check_password(f,o,fl,n,a) { var oo = $("#pass",$("#"+f)); var p1 = oo.val(); var p2 = o.val(); var fail = false; if ( p1.length == 0 && p2.length == 0 ) { fail = true; form_errors_add(f,fl,"Το πεδίο είναι άδειο"); } else if ( p1 != p2 ) { fail = true; form_errors_add(f,fl,"Οι κωδικοί δεν ταυτίζονται"); } if ( fail ) { o.addClass('ui-state-error'); oo.addClass('ui-state-error'); return false; } else return true; } function form_check_date(f,o,fl,n,a) { if ( form_check_empty(f,o,fl,n,a ) ) { var filter=/^[0-9]{4}\/[0-9]{2}\/[0-9]{2}/; if ( ! filter.test(o.val()) ) { o.addClass('ui-state-error'); form_errors_add(f,fl,"Η ημερομηνία δεν είναι έγκυρη"); return false; } } else { return false; } return true; } function form_check_datetime(f,o,fl,n,a) { if ( form_check_empty(f,o,fl,n,a ) ) { var filter=/^[0-9]{4}\/[0-9]{2}\/[0-9]{2} [0-9]{2}:[0-9]{2}/; if ( ! filter.test(o.val()) ) { o.addClass('ui-state-error'); form_errors_add(f,fl,"Η ημερομηνία δεν είναι έγκυρη"); return false; } } else { return false; } return true; } // vim:syntax=javascript