// trim function
function trim(str)
{
  return str.replace(/^\s+|\s+$/, '');
}

// date validation
function isDate(str)
{
	if(/d{4}-d{2}-d{2}/.test(str))
		return true;
}

// return true if valu is empoty, ather ways return flase
function isEmpty(str)
{
	s = trim(str);
	
	if(s == null || s.length == 0)
		return true;
		
	return !/\S/.test(s);
}
function isMail(str) // fld is validation input fild
{
    var tfld = trim(str);
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   
    if (tfld == "") {
        return false;
    } else if (!emailFilter.test(tfld)) {
        return false;
    } else if (tfld.match(illegalChars)) {
        return false;
    } else {
        return true;
    }
    
    return false;
}

function isRadioeChecked(formName, radioName)
{
	var radio =document.forms[formName].elements[radioName];
	
	
	var result = false;
	
	for(var index = 0; index < radio.length; index++)
	{
		if(radio[index].checked == true)
		{
			result = radio[index].value;
			break;
		}
	}
		
	return result;
}
function isZip(zipV)
{
	var reg = new RegExp("^\\d{5}$");
	
	if(reg.test(zipV))
	{
		return true;
	}
	
	return false;
}
function isPhone(phoneV)
{
	reg = new RegExp("^\\d{3}\-\\d{3}\-\\d{4}$");
	if(reg.test(phoneV))
		return true;
	
	return false;
}
////
/// this function validat email, number, zip code, phone and not empty values
function TextValid(value, type)
{
	switch(type)
	{
		case 'email':
			return isMail(value);
			break;
		case 'number':
			reg = new RegExp("^\\d{1,7}$");
			return reg.test(value);
			break;
		case 'zip':
			return isZip(value);
			break;
		case 'phone':
			return isPhone(value);
			break;
		default:
			return !isEmpty(value);
	}
}
///
function TextFildValid(fild, type, tag)
{
	var testFild = document.getElementById(fild);
	var tagHTML = document.getElementById(tag);
	
	if(TextValid(testFild.value, type))
	{
		if(tagHTML)tagHTML.className = "fBold";
		return true;
	}
	else
	{
		if(tagHTML)tagHTML.className = "fRed";
		return false;
	}
}
function RadioFildValid(fild, formName, tag)
{
	var tagHTML = document.getElementById(tag);
	
	res = isRadioeChecked(formName, fild);
	if(res)
	{
		if(tag)tagHTML.className = "fBold";
		return res;
	}
	else
	{
		if(tag)tagHTML.className = "fRed";
		return false;
	}
}
function SelectFildValid(fild, tag)
{
	var selectFild = document.getElementById(fild);
	
	index = selectFild.selectedIndex;
	value = selectFild.options[index].value; 
	if(!value)
	{
		if(tag) {SetTagClass(tag, "fRed");}
		return false;
	}
	else
	{
		if(tag) {SetTagClass(tag, "fBold");}
		return value;
	}
}
function SerErrorText(res)
{
	var tag = document.getElementById('errorDiv');
	if(tag)
	{
		if(res)
			tag.innerHTML = "&nbsp;";
		else
			tag.innerHTML = "The information is not correct. Please enter a valid information in highlighted fields.";
	}
}
function SetTagClass(tag, className)
{
	var tagHTML = document.getElementById(tag);	
	
	if(tagHTML)
		tagHTML.className = className;
}
function isDateSelects(selYear, selMon, selDay, tag)
{
    var result = false;
	var year  = SelectFildValid(selYear, null);
	var month = SelectFildValid(selMon,  null);
	var day   = SelectFildValid(selDay,  null);
	
	year = parseInt(year);
	month = parseInt(month);
	day = parseInt(day);
	
	if(year && month && day)
	{

		switch(month)
		{
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				result = true;
			case 4:
			case 6:
			case 9:
			case 11:
					result = (day < 31);
			case 2:
					if(year%4 == 0)
						result = (day < 30);
					else
						result = (day < 29);
		}	
	}
	if(tag)
         {
               if(result)
                   SetTagClass(tag, "fBold");
               else
                   SetTagClass(tag, "fRed");
         }
         
	return result;
}
function ChangeElStatus(elName, status)
{
	if(typeof(elName) == "string")
		elName = [elName];
	
	for(index = 0; index < elName.length; index++)
	{
		var element = document.getElementById(elName[index]);
		
		if(status)
		{
			if(element)element.disabled = false;
			SetTagClass(elName[index]+"HTML", "fBold");
		}
		else
		{
			if(element)element.disabled = true;
			SetTagClass(elName[index]+"HTML", "fGrey");
		}
	}
}
function DyEnSelect(elName, elStatus, selectN, seleVal)
{
	val = SelectFildValid(selectN);

	if(val == seleVal)
	{
		ChangeElStatus(elName, elStatus);
	}
	else
	{
		ChangeElStatus(elName, !elStatus);
	}
}

// JavaScript Document
function ToggleArchaicTools(paremtid)
{
	var ArchaicTools = document.getElementById (paremtid);
	lastDirectory = paremtid;
	if (ArchaicTools) ArchaicTools.style.display = ArchaicTools.style.display == 'none' ? 'block' : 'none';
}