// JavaScript Document
// created by Smart Web Concept - copyright www.smartwebconcept.ro

function validareFormularCuRestrictii() { //v4.0
// id, min, max, constrain
// err_text='The following error(s) occurred:';
// err_email_format=' must contain an e-mail address.';
// err_number_format=' must contain a number.';
// err_number_range_min=' must contain a number between ';
// err_number_range_max=' and ';
// err_checkbox=' must be checked';
// err_minLimits=' must be longer than ';
// err_maxLimits=' must be shorter than ';
// err_required_field=' is required.';
 err_text='Au aparut urmatoarele erori:';
 err_email_format=' trebuie sa contina o adresa de email.';
 err_number_format=' trebuie sa contina un numar.';
 err_number_range_min=' trebuie sa contina un numar intre ';
 err_number_range_max=' si ';
 err_checkbox=' trebuie bifata';
 err_minLimits=' numar minim de caractere permis ';
 err_maxLimits=' numar maxim de caractere permis ';
 err_required_field=' e camp obligatoriu.';
//alert('S-a apelat functia de validare a formularului!!');alert('test');

  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',selected_index,args=validareFormularCuRestrictii.arguments;
    for (i=0; i<(args.length-3); i+=4) {
		test=args[i+3]; 
		lm=args[i+1]; 
		lM=args[i+2];
		val=document.getElementById(args[i]);
		var checkbox=validare_checkbox(args[i]);
		if(!checkbox){
			nm=labels(args[i]);
			errors += '- '+nm+err_checkbox+'\n';
		}
      	if (val) { 
			nm=val.name; 
			// start my code
			nm=labels(args[i]);
			// validare select
			//selected_index=val.selectedIndex;
			//var optiune_invalida=test.slice(1);
			//if (selected_index==optiune_invalida){
			//	errors += '- '+nm+err_required_field+'\n';
			//}
			// end my code
			
			if ((val=val.value)!="") {// pentru validarea select-ului trebuie ca optiunea invalida sa aiba value=""
        		if(lm!=""){
					if(val.length<lm){
						//errors += '- '+nm+err_minLimits+lm+'\n';
						errors += '- '+nm+err_minLimits+'\n';
					}
				}
				if(lM!=""){
					if(val.length>lM){
						//errors += '- '+nm+err_maxLimits+lM+'\n';
						errors += '- '+nm+err_maxLimits+'\n';
					}
				}
				
				if (test.indexOf('isEmail')!=-1) { 
					p=val.indexOf('@');
          			if (p<1 || p==(val.length-1)) errors+='- '+nm+err_email_format+'\n';
        		} else if (test!='R') { 
					num = parseFloat(val);
          			if (isNaN(val)) errors+='- '+nm+err_number_format+'\n';
          			if (test.indexOf('inRange') != -1) { 
						p=test.indexOf(':');
            			min=test.substring(8,p); 
						max=test.substring(p+1);
            			if (num<min || max<num) errors+='- '+nm+err_number_range_min+min+err_number_range_max+max+'.\n';
      				} 
				} 
			} 
			else if (test.charAt(0) == 'R') errors += '- '+nm+err_required_field+'\n';
		}
    } if (errors) alert(err_text+'\n'+errors);
    document.valoareReturnata = (errors == '');
  } 
}

function labels(eticheta){
	//alert(eticheta);
	nm1=document.getElementsByTagName("label");
	nm3=eticheta; // daca nu e definit un label pentru camp, returneaza id-ul campului
	var nm="";
		for(j=0;j<nm1.length;j++){
			//var nm=nm+nm1[j].htmlFor+" - ";
			if(nm1[j].htmlFor==eticheta){
				nm=nm1[j].innerHTML;
				nm2=nm.indexOf('<');
				if(nm2==-1){
					nm3=nm;
				}
				else{
					nm3=nm.substr(0,nm2);
				}
			}
		}
	return nm3;
}

// validare checkbox-uri
function validare_checkbox(id){
	var box=document.getElementById(id);
	if(box.type=="checkbox"){
		if (box.checked == false)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	else{
		return true;
	}
}


