//******* Functions for displaying sub menus ****////
//***************************************************///

var menuItemCurrent = null;
var menuItemHide = false;
var globalEvent;

function search()
{
	var q = document.getElementById("q").value;
	if(q.length < 2) return false;
	document.location.href = "search.aspx?q=" + q;
}

function ShowPic(row)
{
	
	
	var left = document.getElementById("imgLeft"+row.id);
	var right = document.getElementById("imgRight"+row.id);
	var td = document.getElementById("td"+row.id);

	
	left.src = "images/MenuLeftOn_Inner.gif";
	right.src = "images/MenuRightOn_Inner.gif";
	td.className = "MenuIPOn";
}

function HidePic(row)
{
	var left = document.getElementById("imgLeft"+row.id);
	var right = document.getElementById("imgRight"+row.id);
	var td = document.getElementById("td"+row.id);
	
	left.src = "images/MenuLeft_Inner.gif";
	right.src = "images/MenuRight_Inner.gif";
	td.className = "MenuIP";
}

function showSubMenu(parent, id, offsetVer)
{

	menuItemHide = false;	
	if (menuItemCurrent && menuItemCurrent.id == "menuitem" + id)
	{
		return;
	}
	
	if (menuItemCurrent)
	{
		if (menuItemCurrent.filters && menuItemCurrent.filters.length)
			menuItemCurrent.filters[0].apply();
		menuItemCurrent.style.visibility = "hidden";
		if (menuItemCurrent.filters && menuItemCurrent.filters.length)
			menuItemCurrent.filters[0].play();
	}
	
	var item = document.getElementById("menuContainer" + id);	
	var mainMenu = document.getElementById("tdMainMenu");
		
	if (!item) return;
	var isRtl = document.body.style.direction == "rtl";

	item.style.top = _offsetTop(parent) - 3 + offsetVer;
	lx=((_offsetLeft(mainMenu)- mainMenu.width)-40)		
		if (isRtl)
		item.style.left=lx;
		else
		item.style.left = _offsetLeft(mainMenu) + (isRtl ? -400  -2 : + mainMenu.width + 2);//*** 100 is submenu width **//
	

	if (item.filters && item.filters.length)
		item.filters[0].apply();
	item.style.visibility = "visible";
	if (item.filters && item.filters.length)
		item.filters[0].play();
		
	menuItemCurrent = item;
}

function hideSubMenu()
{
	if (!menuItemHide )
		return;
	//if (menuItemCurrent.filters && menuItemCurrent.filters.length)
		//menuItemCurrent.filters[0].apply();
	//menuItemCurrent.style.visibility = "hidden";
	//if (menuItemCurrent.filters && menuItemCurrent.filters.length)
		//menuItemCurrent.filters[0].play();
	menuItemCurrent = null;
	menuItemHide = false;
}


function _offsetTop(obj)
{
	var top = 0;
	for (; obj; obj=obj.offsetParent)
		top += obj.offsetTop;
	return top;
}

function _offsetLeft(obj)
{
	var left = 0;
	for (; obj && obj != document.body; obj=obj.offsetParent)
		left += obj.offsetLeft;
	return left;
}

// returns true if node a contains event.toElement/relatedTarget.
function containsToElement(a)
{
	var b = globalEvent.toElement ? globalEvent.toElement : globalEvent.relatedTarget;
	while (b.parentNode)
		if ((b = b.parentNode) == a)
			return true;
	return false;
}


/*
	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 checktav(the_string,keyx){
		for(i=0;i<=the_string.length;i++) 
		{
			 
			 tav=(the_string.toLowerCase().charAt(i));
			 if(tav=="'" ||  tav=="*" || tav=="%")
			 {
			 	
			 	alert("Invalid characters " + tav)
			 	return -1;
			 }
		}
return 0;
}

