﻿/*
	Validate a form's elements according to varius attributes
*/

function validateForm(form, title, submit)
{  
	var i, j, u, sum;
	var input;
	var valid;
	var sErrorMsg = "";

	//if (!title)
	//	title = "Please correct the following(s):";

	for (i=0; i<form.elements.length; i++)
	{
		input = form.elements[i];
		// skip input when it's not rendered (ie. parent display:none)
		if (input.offsetHeight == 0) continue;
		valid = true;

		// Validate value according to element type and validation type
		switch (input.type.toLowerCase())
		{
		case "text":
		case "password":
		case "textarea":
		case "file":
			if (!input.getAttribute("validation")) continue;
			if (input.getAttribute("mandatory"))
			{
				if (input.getAttribute("mandatory").toLowerCase() == "false" && input.value.length == 0) continue;
			}
			else
				continue;
			switch (input.getAttribute("validation").toLowerCase())
			{
			case "string":
				if (input.value.length == 0)
					valid = false;
				break;
			case "password":
				if (input.value.length == 0)
					valid = false;
				break;
			case "integer":
				if (!/\d+/.test(input.value))
					valid = false;
				break;
			case "email":
				if (!/^[\w\.\-]+@[\w\-]+(\.\w+)+$/.test(input.value))
					valid = false;
				break;
			case "phone":
				if (!/^\+?\d+(-\d+)*$/.test(input.value))
					valid = false;
				break;
			case "id":
				j = input.value.toString();
				input.value = j.replace(/\D/g, "");
				if (/\d+/.test(input.value))
				{
					sum = 0;
					for (j=0; j<input.value.length; j++)
					{
						u = (j % 2 ? 2 : 1) * parseInt(input.value.charAt(input.value.length - j - 1));
						sum += u > 9 ? Math.floor(u / 10) + u % 10 : u;
					}
					if (sum % 10) valid = false;
				}
				else
					valid = false;
				break;
			case "compare":
				// Check the compareInput attribute
				if (input.getAttribute("compareInput"))
					if (input.value != form.elements[input.getAttribute("compareInput")].value)
						valid = false;
			}

			// Validate max and min according to validation type
			if (valid == true)
			{
				switch (input.getAttribute("validation").toLowerCase())
				{
				case "integer":
					if (input.getAttribute("validmax"))
					{
						if (parseInt(input.value) > parseInt(input.getAttribute("validmax")))
							valid = false;
					}
					if (input.getAttribute("validmin"))
					{
						if (parseInt(input.value) < parseInt(input.getAttribute("validmin")))
							valid = false;
					}
					break;
				default:
					if (input.getAttribute("validmax"))
					{
						if (input.value.length > input.getAttribute("validmax")) valid = false;
					}
					if (input.getAttribute("validmin"))
					{
						if (input.value.length < input.getAttribute("validmin")) valid = false;
					}
					break;
				}
			}
			break;
		case "select-one":
			if (input.getAttribute("mandatory"))
				if (input.selectedIndex == 0)
					valid = false;
			break;
		case "select-multiple":
			if (input.getAttribute("mandatory"))
			{
				sum = 0;
				for (j=0; j<input.options.length; j++)
				{
					if (input.options[j].selected) sum++;
				}
				if ((!input.getAttribute("validmax")) && (!input.getAttribute("validmin")))
				{
					if (sum == 0) valid = false;
				}
				else
				{
					if (input.getAttribute("validmax"))
					{
						if (sum > input.getAttribute("validmax")) valid = false;
					}
					if (input.getAttribute("validmin"))
					{
						if (sum < input.getAttribute("validmin")) valid = false;
					}
				}
			}
			break;
		case "checkbox":
			if (input.getAttribute("mandatory"))
				if (!input.checked)
					valid = false;
			break;
		}

		if (!valid)
		{
			if (input.getAttribute("validationError"))
				sErrorMsg += input.getAttribute("validationError") + "\n";
			else
				sErrorMsg += "Error in field " + input.name + "\n";
		}
	}
	if (sErrorMsg.length)
	{
		alert((title ? title + "\n" : "") + sErrorMsg);
		return false;
	}
	else
	{
		if (submit)
			form.submit();
		return true;
	}
}

function showSubMenu(rowID)
{

	var count = document.all["sideMenuContainer"].length;
	for (i=0; i < count; i++)
	{
		if (document.all["sideMenuContainer"][i].divID == rowID)
		{	
			if (document.all["sideMenuContainer"][i].style.display=="")
			{
				document.all["sideMenuContainer"][i].style.display="none";
				document.all["sideMenuRow"][i].background="images/rightBar_closeCategory.gif"
				
			}
			else
			{
			document.all["sideMenuContainer"][i].style.display="";
			document.all["sideMenuRow"][i].background="images/rightBar_openCategory.gif"
			}
		}
		else
		{
			document.all["sideMenuContainer"][i].style.display="none";
			document.all["sideMenuRow"][i].background="images/rightBar_closeCategory.gif"
		}
	}
	
}

function changeColor(Index)
{
	document.all.BigColorImage.src="Objects/Colors/Big_" + Index + ".gif"

}

function changeDetails(Index)
{	
//alert(Index);
	//alert(document.all["SmallDetailsImage"].length);
	var count = document.all["SmallDetailsImage"].length;
	for (i=0; i<count; i++)
	{	
		
		if (document.all["SmallDetailsImage"][i].imgId==Index)
		{
			document.all["SmallDetailsImage"][i].src="Objects/Details/Small_" + Index + "_over.gif"
			document.all["MeduimPicContainer"][i].style.display="";
			document.all["BottomTextContainer"][i].style.display="";
		}
		else
		{
			document.all["SmallDetailsImage"][i].src="Objects/Details/Small_" + document.all["SmallDetailsImage"][i].imgId + ".jpg"
			document.all["MeduimPicContainer"][i].style.display="none";
			document.all["BottomTextContainer"][i].style.display="none";
		}
	}
	
	document.all.BigDetailsImage.src="Objects/Details/Big_" + Index + ".gif"

}

function changeGallery(Index)
{
	//alert(document.all["SmallDetailsImage"].length);
	var count = document.all["SmallGalleryImage"].length;
	for (i=0; i<count; i++)
	{	
		
		if (document.all["SmallGalleryImage"][i].imgId==Index)
		{
			document.all["SmallGalleryImage"][i].src="Objects/Gallery/Small_" + Index + "_over.gif"
			document.all["BottomTextContainer"][i].style.display="";
		}
		else
		{
			document.all["SmallGalleryImage"][i].src="Objects/Gallery/Small_" + document.all["SmallGalleryImage"][i].imgId + ".jpg"
			document.all["BottomTextContainer"][i].style.display="none";
		}
	}
	
	document.all.BigGalleryImage.src="Objects/Gallery/Big_" + Index + ".gif"

}

function validateRegistrationForm()
{

  if(!frmDefault.SName.value)
  {
    alert("נא מלא שם פרטי");
    frmDefault.SName.focus();
    return;
  }

  if(!frmDefault.FName.value)
  {
    alert("נא מלא שם משפחה");
    frmDefault.FName.focus();
    return ;
  }

  
  if(!frmDefault.eMail.value || !/^[\w\.\-]+@[\w\-]+(\.\w+)+$/.test(frmDefault.eMail.value))
  {
    alert("נא מלא כתובת דוא''ל תקינה");
    frmDefault.eMail.focus();
    return;
  }
  
  if(!frmDefault.mobile.value)
  {
    alert("נא מלא טלפון נייד");
    frmDefault.mobile.focus();
    return;
  }
  
  if(!frmDefault.homePhone.value)
  {
    alert("נא מלא טלפון בבית");
    frmDefault.homePhone.focus();
    return;
  }
  
  if(!frmDefault.model.value)
  {
    alert("נא מלא סוג רכב");
    frmDefault.model.focus();
    return;
  }

  if(!frmDefault.year.value)
  {
    alert("נא מלא שנת ייצור");
    frmDefault.year.focus();
    return;
  }

 if(!(frmDefault.guideCourseYes.checked || frmDefault.guideCourseNo.checked))
  {
    alert("נא מלא האם עברת הדרכת שטח של יונדאי");
    
    return;
  }
  
  if(!frmDefault.adult.value)
  {
    alert("נא מלא מס' מבוגרים");
    frmDefault.adult.focus();
    return;
  }
  
  if(!frmDefault.child.value)
  {
    alert("נא מלא מס' ילדים");
    frmDefault.child.focus();
    return;
  }
    if(!frmDefault.tripDate.value)
  {
    alert("נא מלא תאריך טיול מבוקש");
    frmDefault.tripDate.focus();
    return ;
  }
  frmDefault.action = "Submit.aspx";
  frmDefault.submit();
}
