function changeSubCategories(elem, id, url, action, companyId)
{
	var sel_val = elem.value;
	url = url + sel_val + '/' + companyId;
	request(url, id, action);
}

function request(url, id, action)
{
	var http_request;

	if (window.XMLHttpRequest)
	{ // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
        
        if (http_request.overrideMimeType)
        {
            http_request.overrideMimeType('text/xml');
        }
	}
	else
	{
        try
        {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            try
            {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e)
            {
            }
        }
	}

    if (!http_request)
    {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
	
	http_request.onreadystatechange = function() { onReadyStateChange(http_request, id, action); };

	http_request.open('GET', url, true);
	http_request.send(null);
}

function onReadyStateChange(http_request, id, action)
{
	var result;

    if (http_request.readyState == 4)
    {
        if (http_request.status == 200)
        {
        	if(action == 'del') 
        	{
				document.getElementById('msg_cell').innerHTML = http_request.responseText;
			}
			else if(action == 'changeSubCategories')
			{
				result = http_request.responseXML;
				elems = result.getElementsByTagName('subCategoriesList').item(0).getElementsByTagName('subCategory');
				mainContainer = document.getElementById(id);
				mainContainer.innerHTML = "";

				if(elems.length > 1)
				{
					table = document.createElement('table');
					table.className = 'mod_table';
					tbody = document.createElement('tbody');
					table.appendChild(tbody);
					mainContainer.appendChild(table);
					tr = document.createElement('tr');
					tbody.appendChild(tr);
				}

				for(var i = 1; i < elems.length; i++)
				{
					td = document.createElement('td');
					input = document.createElement('input');
					input.type = 'checkbox';
					input.name = 'subCategories[]';
					input.id = 'subCategories';
					input.value = elems.item(i).getElementsByTagName('id').item(0).firstChild.data;

					if(elems.item(i).getElementsByTagName('selected').item(0).firstChild && 
						elems.item(i).getElementsByTagName('selected').item(0).firstChild.data == '1')
					{
						input.checked = true;
					}
					
					input.className = 'input_checkbox';
					text = document.createTextNode(elems.item(i).getElementsByTagName('name').item(0).firstChild.data);
					td.appendChild(input);
					td.appendChild(text);
					tr.appendChild(td);

					if(i % 2 == 0 && i != 0)
					{
						tr = document.createElement('tr');
						tbody.appendChild(tr);
					}
				}
			}
			else if(action == 'changeSubCategories2')
			{
				result = http_request.responseXML;
				elems = result.getElementsByTagName('subCategoriesList').item(0).getElementsByTagName('subCategory');
				mainContainer = document.getElementById(id);
				mainContainer.innerHTML = '';
				
				for(var i = 0; i < elems.length; i++)
				{
					option = document.createElement('option');
					option.value = elems.item(i).getElementsByTagName('id').item(0).firstChild.data;
					option.innerHTML = elems.item(i).getElementsByTagName('name').item(0).firstChild.data;
					mainContainer.appendChild(option);
				}
			}
        }
        else
        {
            alert('There was a problem with the request.');
        }
    }
}

function trim(str) 
{
	str = str.toString();
	while (str.length > 0 && str.charAt(0) == " ") 
	{
		str = str.slice(1);
	}
	while (str.length > 0 && str.charAt(str.length-1) == " ") 
	{
		str = str.slice(0,  str.length-1);
	}
	
	return str;
}

function validateEmail(email) 
{
	var email_len = email.length;
	
	if(email_len < 5)
	{
		return false;
	}

	var pos_eta = email.indexOf('@');
	if (pos_eta < 1) return false;

	if (email.indexOf('@', pos_eta + 1) != -1) return false;

	var pos_last_dot = email.lastIndexOf('.');
	if (pos_last_dot < 3) return false;

	if (!(pos_last_dot + 1 < email_len)) return false;

	if (!(pos_eta + 1 < pos_last_dot)) return false;

	return true;
}			
			
function addMsg(msg)
{
	document.getElementById('error_div').innerHTML = document.getElementById('error_div').innerHTML + "<div>"+msg+"</div>";
}

function checkFields(form_id)
{
	var error = 0;
	document.getElementById('error_div').innerHTML = '';
	form = document.getElementById(form_id);
	
	if(form.company_category.value == 0)
	{
		error = 1;
		addMsg("Nepasirinkta kategorija.");
	}
	
	var subCats = Array();
	var input_elems = document.getElementsByTagName('input');
	var sc = 0;
	
	for(var i = 0; i < input_elems.length; i++)
	{
		if(input_elems.item(i).name.substring(0, 13) == 'subCategories')
		{
			subCats[sc] = input_elems.item(i);
			sc++;
		}
	}

	if(subCats.length > 0)
	{
		var checked = 0;

		for(var i = 0; i < subCats.length; i++)
		{
			if(subCats[i].checked)
			{
				checked = 1;
			}
		}
		
		if(checked == 0)
		{
			error = 1;
			addMsg("Nepažymėtos veiklos sritys.");
		}
	}
	else
	{
		error = 1;
	}

	form.company_name.value = trim(form.company_name.value);
	if(form.company_name.value.length == 0)
	{
		error = 1;
		addMsg("Neužpildytas pavadinimo laukelis.");
	}

	form.company_phone.value = trim(form.company_phone.value);
	var phone = form.company_phone.value.match(/[!-',.\/*:-~]/gi);
	if ((form.company_phone.value.length != 0 && phone != null) || form.company_phone.value.length == 0)
	{
		error = 1;
		addMsg("Neįvestas arba įvestas neteisingas telefono numeris.");
	}

	form.company_address.value = trim(form.company_address.value);
	if(form.company_address.value == 0)
	{
		error = 1;
		addMsg("Neįvestas adresas.");
	}

	form.company_enterpriseCode.value = trim(form.company_enterpriseCode.value);
	var eCode = form.company_enterpriseCode.value.match(/[!-\/*:-~]/gi);
	if(form.company_enterpriseCode.value.length == 0 || eCode != null)
	{
		error = 1;
		addMsg("Neįvestas įmonės kodas.");
	}

	form.company_contactPersonName.value = trim(form.company_contactPersonName.value);
	if(form.company_contactPersonName.value == 0)
	{
		error = 1;
		addMsg("Neįvestas kontaktinio asmens vardas.");
	}

	form.company_contactPersonSurname.value = trim(form.company_contactPersonSurname.value);
	if(form.company_contactPersonSurname.value == 0)
	{
		error = 1;
		addMsg("Neįvesta kontaktinio asmens pavardė.");
	}

	form.company_contactPersonPosition.value = trim(form.company_contactPersonPosition.value);
	if(form.company_contactPersonPosition.value == 0)
	{
		error = 1;
		addMsg("Neįvestos kontaktinio asmens pareigos.");
	}

	form.company_contactPersonEmail.value = trim(form.company_contactPersonEmail.value);
	if((form.company_contactPersonEmail.value == 0 && !validateEmail(form.company_contactPersonEmail.value)) || 
		!validateEmail(form.company_contactPersonEmail.value) || 
		form.company_contactPersonEmail.value == 0)
	{
		error = 1;
		addMsg("Neįvestas kontaktinio asmens e.paštas.");
	}
					
	if(error == 0)
	{
		form.submit();
	}
}