// JavaScript Document

var max_startDay;
var max_endDay;

var reload=0;

function canSubmit(frm,txtPass,txtConfirm)
{
	if (verifPass(txtPass,txtConfirm) == false)
		return false;
	if (doVerify(frm) == false)
		return false;
}

function MsgBox(txt)
{
	alert(txt);
}

function reloadCaptcha(captPath)
{
	reload++;
	var img = document.getElementById("img_captcha");
	img.src = captPath + "?rel=" + reload;
}

function verifPass(txtPass,txtConfirm)
{
	tpass = txtPass;
	tcont = txtConfirm;
	if (txtPass.value.length > 0 && txtConfirm.value.length > 0)
	{
		if (txtPass.value != txtConfirm.value)
		{
			MsgBox("The password you have entered and its confirmation don't match. Please re-enter");
			txtPass.value = "";
			txtConfirm.value = "";
			txtPass.focus();
			return false;
		}
		else
			return true;
	}
	else
		return true;
		
}

function doVerify(frm)
			{
						
			
				
				var i = 0;
				var start_date_ctrls = 0;
				var end_date_ctrls = 0;
				var Dtctrls_Count = 4;
				var strMine = new Array(2);
				var aStr = "";
				for (i=0; i < frm.elements.length; i++)
				{
					
					aStr = frm.elements[i].name;
					/*strMine[0] = String.slice(frm.elements[i].name,0,8);
					strMine[1] = String.slice(frm.elements[i].name,0,7);
					strMine[2] = String.slice(frm.elements[i].name,0,6);*/
					
					strMine[0] =  aStr.substr(0,8); 
					strMine[1] = aStr.substr(0,7);  
					strMine[2] = aStr.substr(0,6);  
					
					
					
					for (j = 0; j<=2; j++)
					{
//						MsgBox("J = " + j + " strMine = " + strMine[j]);
						if  (strMine[j] == "cboMnth_")
						{
							smnthInx = i;
							start_date_ctrls++;
						}
						if  (strMine[j] == "txtDay_")
						{
							sDayInx = i;
							start_date_ctrls++;
						}
						if  (strMine[j] == "cboYr_")
						{
							sYrInx = i;
							start_date_ctrls++;
						}
						if (strMine[j] == "txtStart")
							start_date_ctrls++;
							
						if  (strMine[j] == "cboMnth_")
						{
							end_date_ctrls++;
							emnthInx = i;
						}
						if  (strMine[j] == "txtDay_")
						{
							eDayInx = i;
							end_date_ctrls++;
						}
						if  (strMine[j] == "cboYr_")
						{
							eYrInx = i;
							end_date_ctrls++;
						}
						if  (strMine[j] == "txtEnd")
							end_date_ctrls++;
					}
				}
				
				//MsgBox("Start date ctrls = " + start_date_ctrls + "\n Month = " + frm.elements[smnthInx].value);
				if (start_date_ctrls == Dtctrls_Count)
				{
					max_startDay = lastDay(parseInt(frm.elements[smnthInx].value));
					if (max_startDay < frm.elements[sDayInx].value)
					{
						MsgBox("The specified date (" + frm.elements[sDayInx].value + ") exceeds the maximum number of days in selected month")
						return(false);
					}
				}
				if (end_date_ctrls == Dtctrls_Count)
					max_endDay = lastDay(parseInt(frm.elements[emnthInx].value));
				
				
				
				for (i=0; i < frm.elements.length; i++)
				{
					switch(frm.elements[i].type)
					{
						case "text":
						{
							if (checkValidity(frm.elements[i]) == false)
								return (false);
						}
						break;
						case "hidden":
						{
							if (checkValidity(frm.elements[i]) == false)
								return (false);
						}
						break;
					
						case "textarea":
						{
							if (checkValidity(frm.elements[i]) == false)
								return (false);
						}
						break;

						case "password":
						{
							/*if (frm.elements[i].name == "txtSiri")
							{*/
								
								if (frm.elements[i].value.length == 0)
								{
									MsgBox("Please supply a passord or password's confirmation in the empty field(s)");
									return (false);
								}
								
							//}
							
						}
						break;
						default:
						
					
					}
					
				}
				if (start_date_ctrls == Dtctrls_Count)
				{
					frm.elements["txtStart"].value = frm.elements[sYrInx].value + "-";
					frm.elements["txtStart"].value += frm.elements[smnthInx].value + "-";
					frm.elements["txtStart"].value += frm.elements[sDayInx].value;
				}
				
				if (end_date_ctrls == Dtctrls_Count)
				{
					frm.elements["txtEnd"].value = frm.elements[eYrInx].value + "-";
					frm.elements["txtEnd"].value += frm.elements[emnthInx].value + "-";
					frm.elements["txtEnd"].value += frm.elements[eDayInx].value;
				}
				//frm.submit();
				return (true);
				
			}



function lastDay(mnth)
{
	switch(mnth)
	{
		case 1:
			return (31);
			break;
		case 2:
			return (29);
			break;
		case 3:
			return (31);
			break;
		case 4:
			return (30);
			break;
		case 5:
			return (31);
			break;
		case 6:
			return (30);
			break;
		case 7:
			return (31);
			break;
		case 8:
			return (31);
			break;
		case 9:
			return (30);
			break;
		case 10:
			return (31);
			break;
		case 11:
			return (30);
			break;
		case 12:
			return (31);
			break;
		default:
			return (0);
	}
}


function verifyArray(ctrls)
{
	for (var i = 0; i < ctrls.length; i++)
	{
		switch(ctrls[i].type)
		{
			case "text":
			{
				if (checkValidity(ctrls[i]) == false)
					return (false);
			}
			break;
			case "hidden":
			{
				if (checkValidity(ctrls[i]) == false)
					return (false);
			}
			break;
		
			case "textarea":
			{
				if (checkValidity(ctrls[i]) == false)
					return (false);
			}
			break;
	
			case "password":
			{
				if (ctrls[i].value.length == 0)
				{
					MsgBox("Please supply a passord or password's confirmation in the empty field(s)");
					return (false);
				}
			}
			break;
			default:
		}
	}
	return true;
}

function checkValidity(obj)
{

	//MsgBox("obj.name = " + obj.name + " our month = " + mnth);
	if (obj.value.length == 0)
	{
		if (obj.title.length != 0)
		{
			MsgBox("You must supply a value for " + obj.title);
			obj.focus();
			return (false);
		}
		else
		{
			obj.value = "-";
		}
	}
	else
	{
		if (obj.alt == "0")
		{
			if (isNaN(obj.value))
			{
			
				MsgBox("The value supplied for " + obj.title + " is not numeric, only numeric values are acceptable for this field.");
				return (false);
			}
			/*if (obj.name == mnth)
			{
				if (parseInt(obj.value)  > max_startDay)
				{
					MsgBox("You have entered a date that is greater than the maximum number of days for specified month in field for " + obj.title);
					return (false);
				}
			}*/
		}
		
		if (obj.alt == "1")
		{
			if (!checkEmail(obj.value))
			{
			
				obj.focus();
				//MsgBox("The value supplied for " + obj.title + " is not numeric, only numeric values are acceptable for this field.");
				return (false);
			}
			
		}
			
		
	
	}

}


function clearAll(frm)
{
	if (confirm("Are you sure you want to empty all the entries on this form?") == true)
	{
		frm.reset();
		/*for (i=0; i < frm.elements.length; i++)
		{
			switch(frm.elements[i].type)
			{
				case "text":
				{
					frm.elements[i].value = "";
				}
				break;
				case "hidden":
				{
					frm.elements[i].value = "";
				}
				break;
			
				case "textarea":
				{
					frm.elements[i].value = "";
				}
				break;
				
				case "password":
				{
					frm.elements[i].value = "";
				}
				break;
			}
		}*/
	}
	
}

	function checkEmail(str)
	{

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		var bad = "The E-mail Address you provided does not seem to be valid";
		
		if (str.indexOf(at)==-1){
		   MsgBox(bad)
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   MsgBox(bad)
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    MsgBox(bad)
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    MsgBox(bad)
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    MsgBox(bad)
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    MsgBox(bad)
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    MsgBox(bad)
		    return false
		 }

 		 return true					
	}
