// Function checks if JavaScript textual field is blank.
// @param  obj    JS object textual field (Input or TextArea)
// @param  msg    optional message which may be shown if the field is blank
// @return true if check successful
function isNotEmpty(obj, msg)
{
    if ( obj && obj.value.match(/^\s*$/g) )
    {
        if ( msg && msg != '')
        {
            alert(msg)
            obj.focus();
        }
        return false;
    }
    return true;
}


function checkEmail(email, message)
{
   if (isNotEmpty(email) &&
       email.value.match(/^[-!#$%&\'*+\\.\/0-9=?a-zA-Z^_`{|}~]+@([a-zA-Z0-9\._-]+\.)+([0-9a-zA-Z]){2,4}$/) == null)
   {
    if (message && message != '')
    {
        alert(message);
        email.focus();
    }
    return false;
   }
   return true;
}
  
// Select <select> option by value
function select_option(select_obj, value)
{
    for (i = 0; i < select_obj.options.length; i++)
    {
        if (select_obj.options[i].value == value)
        {
            select_obj.options[i].selected = true;
        }
    }
}

function checkState(state_obj, country_obj)
{
    if (state_obj.selectedIndex != 0)
    {
        country_obj.selectedIndex = 0;
    }
}

function checkCountry(state_obj, country_obj)
{
    if (country_obj.selectedIndex != 0)
    {
        state_obj.selectedIndex = 0;
    }
}

function openWindow(url,width,height)
{
    var popupWin = window.open(url,'actimind_popup_window','width='+width+',height='+height+',location=no,resizable=yes,scrollbars=yes');
	//alert(popupWin.document.onload);
	popupWin.document.onload="window.focus()";
	//alert(popupWin.document.onload);
}

// Function trims space characters of specified field value
function trim(obj)
{
    obj.value = obj.value.replace(/^\s*/, "");
    obj.value = obj.value.replace(/\s+$/, "");
}

function isSpecified(element_obj) {
		if (element_obj) {
			//If this element is a file - we should check if there is file option present and if it is - what is the choice - to keep, replace or delete a file
			if (element_obj.form.elements[element_obj.name + "_fileOption"] != null)
			{
				value = getRadioElementValue(element_obj.form.elements[element_obj.name + "_fileOption"]);
				if (value=="keep")
				{
					return true; //we assume that file options only appear if file is uploaded ok
				}
				else if (value=="replace")
				{
					return element_obj.form.elements[element_obj.name + "_new"] == null
						? false
						: trim(element_obj.form.elements[element_obj.name + "_new"]) != '';
				}
				else
				{
					return false;
				}
			}
			if ((element_obj[0]) && (element_obj[0].type == 'radio')) {
				var checked = false;
				for (k = 0; k < element_obj.length; k++) {
					checked = checked || element_obj[k].checked;
				}
				return checked;
			}
			else if (element_obj.type == 'select-one' || element_obj.type == 'select-multiple')
			{
				var value = getSelectedValue(element_obj);
				return (value.length > 0);
			}
			else 
			{
				trim(element_obj);
				return (element_obj.value.length > 0);
			}
		}
		return true;
	}

	function focusOn(element)
	{
		if ((element[0]) && (element[0].type == 'radio'))
		{
			element[0].focus();
		}
		else 
		{
			element.focus();
		}
	}

	function checkRequiredElements(form, reqEl) {
		var message = "Please specify values for the following fields:\r\n";
		var elementToFocus = null;

		for (var i = 0; i < reqEl.length; i++) {
			var element = form.elements[reqEl[i][0]];
			if (isSpecified(element) == false) {
				if (elementToFocus == null) {
					elementToFocus = element;
				} else {
					message += ', ';
				}
				message += reqEl[i][1];
			}
		}
		if (elementToFocus != null) {
			alert(message);
			if (elementToFocus.type != 'hidden') {
				focusOn(elementToFocus);
			}
			return false;
		}
		return true;
	}

	function getSelectedRadio(radioCol)
	{
		var i;
		for (i = 0; i < radioCol.length; i++)
		{	
			if (radioCol[i].checked)
			{
				return radioCol[i];
			}
		}
		return null;
	}

	function getSelectedValue(selectObj)
	{
		if (selectObj.selectedIndex >= 0)
		{
			return selectObj.options[selectObj.selectedIndex].value;
		} else {
			return null;
		}
	}

	function getRadioElementValue(radioCol)
	{
		var i;
		
		if (radioCol.selectedIndex == null)
		{
			for (i = 0; i < radioCol.length; i++)
			{	
				if (radioCol[i].checked)
				{
					return radioCol[i].value;
				}
			}
		}
		else
		{
			return getSelectedValue(radioCol);
		}
	}

	function checkRequiredInfo(form, infoArray, infoEl)
	{
		var elementToFocus = null;
		var n = 0;
		var i = 0;
		outer:
		for (i = 0; i < infoArray.length; i++)
		{
			if (infoArray[i][0] == infoEl)
			{
				var j;
				for (j = 1; j < infoArray[i][1].length; j++)
				{
					var element = form.elements[infoArray[i][1][j]];
					if (isSpecified(element) == false) {
						elementToFocus = element;
						n = i;
						break outer;
					}
				}
			}
		}
		if (elementToFocus != null)
		{
			alert(infoArray[n][1][0]);
			focusOn(elementToFocus);
			return false;
		} else
			return true;
	}

	function setRequired(form, elementName, control) {
    
        if (control=="Select") //Select control
        {
            col = form.elements[elementName].options;
	    	for (i = 0; i < col.length; i++) {
		    	j = 0;
			    //alert(col[i].selected);
    			while((depEl = document.images[elementName + col[i].value + j]) != null)
	    		{
		    		//alert(depEl + ' - ' + elementName + col[i].value + j);
			    	depEl.src = col[i].selected ? "img/star.gif" : "img/pixel.gif";
				    j++;
    			}
	    	}
        } 
        else // Radio buttons control
        {
    		col = form.elements[elementName];
	    	for (i = 0; i < col.length; i++) {
		    	j = 0;
			    //alert(col[i].checked);
    			while((depEl = document.images[elementName + col[i].value + j]) != null)
	    		{
		    		//alert(depEl + ' - ' + elementName + col[i].value + j);
			    	depEl.src = col[i].checked ? "img/star.gif" : "img/pixel.gif";
				    j++;
    			}
	    	}
		}
	}