﻿// validate form
function validateRequiredFields(){

	var theForm = document.forms['aspnetForm'];
	var objForm = document.getElementById("aspnetForm");
	
	var inputs = objForm.getElementsByTagName("input");
	var selects = objForm.getElementsByTagName("select");
	var textareas = objForm.getElementsByTagName("textarea");
	
	prepareForValidation(inputs,textareas,selects);
	
	var generalAlertText = new String();
	var agreementAlertText = new String();
	var selectsAlertText = new String();
	var emailAlert = new String();
	var passAlert = new String();
	
	generalAlertText = "- " + "Red bordered fields are required!" + "\n";
	agreementAlertText = "";
	selectsAlertText = "";
	emailAlert = "";
	passAlert ="";
		
	var Err = 0;
	var emailErr = 0;
	var showGeneralAlert = 0;
	var re = / /g;
		
	//inputuri//
	for (i=0;i < inputs.length; i++)
	{
		if (inputs(i).req=="1" && inputs(i).value.replace(re, "")=="" && (inputs(i).type=="text" || inputs(i).type=="file" || inputs(i).type=="password"))
		{		
    		inputs(i).className="textBoxNoValid";
    		showGeneralAlert = 1;
    		Err = 1;
		}
	}
	
    //textarea//
	for (i=0;i<textareas.length; i++)
	{
		if (textareas(i).req=="1" && textareas(i).value.replace(re, "")=="")
		{
			textareas(i).className="textBoxNoValid";
			showGeneralAlert = 1;
			Err = 1;
		}					
	}
	
	//selecturi//	
	for (i=0;i < selects.length; i++)
	{
		if (selects(i).req=="1" && selects(i).value=="-1")
		{
			selectsAlertText += "- " + selects(i).errLabel  + "\n";
			Err = 1;
		}
	}
	
	//checkBox//
	for (i=0;i < inputs.length; i++)
	{
		if (inputs(i).req=="1" && inputs(i).type == "checkbox" && inputs(i).checked == false)
		{
		    agreementAlertText += "- " + inputs(i).errLabel  + "\n";
		    Err = 1;
		}
	}
	
	//adresa email (validare format si comparare valori)//
	for (i=0;i < inputs.length; i++)
	{
	    if (inputs(i).req=="1" && inputs(i).type=="text" && inputs(i).validationType=="email" && inputs(i).value.replace(re, "")!="")
	    {
		    var emailValue = inputs(i).value;
			
		    if(inputs(i).value.search(/^[a-zA-Z0-9._-]+@([a-zA-Z0-9._-]+\.)+([a-zA-Z0-9_-]){2,5}$/) == -1)//daca adresa de email e invalida
		    {
		        inputs(i).className="textBoxNoValid";
		        emailErr = 1;
		        Err = 1;
		    }
		    else//daca e valida, compar
		    {
		        for (j=0;j < inputs.length; j++)
                {
	                if (inputs(j).type=="text" && inputs(j).validationType=="confirmEmail")
	                {
	                    var emailCompareValue = inputs(j).value;
	                    var textBoxIndex = j;
	                }
	            }
		       
	            if(emailCompareValue != emailValue)
		        {
		            inputs(textBoxIndex).className="textBoxNoValid";
		            emailErr = 2;
		            Err = 1;
		        }
		    }
	    }
	}
			
	if (Err == 1)
	{
	    var txtAlert;
	    txtAlert = "";
	    if (showGeneralAlert == 1) 
	        txtAlert += generalAlertText;
	    
	    if (emailErr == 1)
	    {
	        emailAlert += "- " + "Please input a valid email address!" + "\n"
	    }
	    if (emailErr == 2)
	    {
	        emailAlert += "- " + "Emails adresses does not match!" + "\n"
	    }
	        		
		txtAlert += selectsAlertText + emailAlert + agreementAlertText;
		alert(txtAlert);
		
		return false;
	}	
	return true;
	
}

function prepareForValidation(inputs,textareas,selects)
{
    for (i=0;i < inputs.length; i++)
	{
		if (inputs(i).req == "1" && inputs(i).type != "checkbox")
		{
		    inputs(i).className="textBox";
		}
	}
	for (i=0;i < textareas.length; i++)
	{
	    if (textareas(i).req == "1")
		{
		    textareas(i).className="textBox";
		}
	}
	for (i=0;i < selects.length; i++)
	{
	    if (selects(i).req == "1")
		{
		    selects(i).className="comboBox";
		}
	}
}

function validateNumber()
{
	if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 46 && event.keyCode != 8 && event.keyCode != 9 && event.keyCode != 96 && event.keyCode != 97 && event.keyCode != 98 && event.keyCode != 99 && event.keyCode != 100 && event.keyCode != 101 && event.keyCode != 102 && event.keyCode != 103 && event.keyCode != 104 && event.keyCode != 105 && event.keyCode != 106 && event.keyCode != 107) //delete and backspace and numeric
	{
        event.cancelBubble = true;
	    event.returnValue = false;
	}			
}

function validateAllowedChars(strValue, strRange){
	
	var allowedChars;
	var i;
	var returnString = "";
	
	if (strRange == "az")
	    {
	       allowedChars = "1234567890-_=+[];':\,./?~!@#$%^&*()qazwsxedcrfvtgbyhnujmikolpQAZWSXEDCRFVTGBYHNUJMIKOLP " 
	    }
		
	    for (i = 0; i < strValue.length; i++)
	    {   
		    var c = strValue.charAt(i);
		    if (allowedChars.indexOf(c) == -1)
		    {
		        returnString += c;
		    }
		}
		
	return returnString;
}	

