function validate_form(form)
{
	var col = form.elements;
	var errors="";
	var elem;
	var atLeastOne = false;
	
	
	
	for (var i = 0; i < form.elements.length; i++)
	{
		if(col[i].name == "@have.eld" && col[i].checked)
			atLeastOne = true;
			
		if (((col[i].type == "text")||(col[i].type == "textarea")) && (trim(col[i].value).length > 0))
			atLeastOne = true;
		else if ((col[i].type == "text") && (trim(col[i].value).length > 0))
				errors += message1 + "\n";
		else if ((col[i].type == "select-one") && (col[i].selectedIndex > 0))
			atLeastOne = true;
	}
	
	if (null != form.langList){
		if(form.langList.value != "")
			atLeastOne = true;
	}
	
	if ((false == atLeastOne) && errors =="")
	{
		return checkLibrary();	// patikrina ar nepasirinktos bibliotekos
	}
	else if (errors!="") 
		{
			alert(errors);
			return false;
		}
		else return true;
}
function checkLibrary(){
	var libChkBox = document.getElementById("exeptLnb");
	var libs = document.getElementById("libraryList");
	
	if ((null != libChkBox) && (null != libs)){
		if(libChkBox.checked == true)
			return true;
		else if (libs.selectedIndex >= 0)
			return true;
		else{
			alert(message2);
			return false;
		}
	}
	else{
		alert(message2);
		return false;
	}
}

function validate(form, noInput)
{
	var col = form.elements;
	var errors="";
	var atLeastOne = false;
	var elDocs = false;
	var no_inputs = noInput.split("@");
	for (var i = 0; i < form.elements.length; i++)
	{
		for (var j = 0; j < no_inputs.length; j++)
			if ((trim(col[i].value).substring(1) == no_inputs[j])&& (no_inputs[j] != ""))
				elDocs = true;
		if ((col[i].type == "text") && (trim(col[i].value).length > 0))
			atLeastOne = true;
		else
			 if ((col[i].type == "text") && (trim(col[i].value).length > 0)) 
				errors += message1 + "\n";
	}
	if (true == elDocs)
		return true;
	else if ((false == atLeastOne) && errors =="")
	{
		alert(message2);
		return false;
	}
	else if (errors!="") 
		{
			alert(errors);
			return false;
		}
		else return true;
}

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}


function LTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

// Removes ending whitespaces
function RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	
	return LTrim(RTrim(value));
	
}



function validate_AIform(form) {

	repl = /\*/g;
	errors="";

/*	if(form.id == "sourceSearch"){
		title = trim(form.title.value).replace(repl, '');	
		isbn = trim(form.isbn.value);
		issn = trim(form.issn.value);
		
		if ((title=="")&&(isbn=="")&&(issn==""))
		{
			alert(messageAI2);
			return false;
		}
		if ((title.length > 0)) 
			errors += messageAI1+"\n";
			
		if ((isbn.length > 0))
			errors += messageAI3+"\n";
			
		if ((issn.length > 0))
			errors += messageAI4+"\n";
			
		if (errors!="")
		{
			alert(errors);
			return false;
		}
		else
			return true;
	}
	
	else{
	
		entry = trim(form.title.value).replace(repl, '');
		
		
	
		if (entry=="") {
			alert(messageAI2);
			return false;
		}
	
		if (entry.length > 0) {
			errors += messageAI1+"\n";
		}
			
		if (errors!="") {
			alert(errors);
			return false;		
		}
	
		return true;
	}*/
	var pageDefinition = document.getElementById("hidPageDefinition").value;
	if(form.id != "sourceSearch" && pageDefinition != "aiSearchNews")
	{
		entry = trim(form.title.value);
		if (entry=="") 
		{
			alert(message2);
			return false;
		}
		else return true;
	}
	
	if(pageDefinition == "aiSearchNews") 
	{
		var dateFrom = trim(form.dateFrom.value);
		var dateTo = trim(form.dateTo.value);
		if (dateFrom=="" && dateTo=="") {
			alert(message3);
			return false;
		}
		else return true;
	}

}

// Nu cia reiketu pagal tipa viska valyti, o ne isvardinti kiekviena lauka...
// tipo text laukus, textarea ir pan.
function clearAllFields(root, location)  
{
	
	/*elem = document.getElementById("author");
	if ( elem ) elem.value="";
	elem = document.getElementById("title");
	if ( elem ) elem.value="";
	elem = document.getElementById("anywhere");
	if ( elem ) elem.value="";
	elem = document.getElementById("series");
	if ( elem ) elem.value="";
	elem = document.getElementById("subject");
	if ( elem ) elem.value="";
	elem = document.getElementById("udk");
	if ( elem ) elem.value="";
	elem = document.getElementById("isn");
	if ( elem ) elem.value="";
	elem = document.getElementById("publisher");
	if ( elem ) elem.value="";
	elem = document.getElementById("publplace");
	if ( elem ) elem.value="";
	elem = document.getElementById("dateFrom");
	if ( elem ) elem.value="";
	elem = document.getElementById("dateTo");
	if ( elem ) elem.value="";
	elem = document.getElementById("sourceId");
	if ( elem ) elem.value="";
	elem = document.getElementById("source_id");
	if ( elem ) elem.value="";
	elem = document.getElementById("@sourceId");
	if (elem)
		elem.value="";
	elem = document.getElementById("sourceIdTxtA");
	if (elem)
		elem.value="";
	elem = document.getElementById("publyear");
	if ( elem ) elem.value="";
	elem = document.getElementById("publnr");
	if ( elem ) elem.value="";
	elem = document.getElementById("keyword");
	if ( elem ) elem.value="";
	elem = document.getElementById("keyword_id");
	if ( elem ) elem.value="";
	elem = document.getElementById("ics");
	if ( elem ) elem.value="";
	
	elem = document.getElementById("about.person");
	if ( elem ) elem.value="";
	
	elem = document.getElementById("langList");
	if ( elem )
	{ 
		if(elem.selectedIndex > 0)
			elem.selectedIndex = null;
	}s
	
	elem = document.getElementById("publCountryList");
	if ( elem )
	{
		if(elem.selectedIndex>0)
			elem.selectedIndex = null;
	}
	
	// frbr checkbox'o nereikia nuvalyti
	elem = document.getElementById("frbrSearch");
	var frbr = "false";
	if (elem)
	{
		if (elem.checked)
			frbr = "true";
	} */
	
	elem = document.getElementById("about.person");
	if ( elem ) elem.value="";
	
	elem = document.getElementById("langList");
	if ( elem )
	{ 
		if(elem.selectedIndex > 0)
			elem.selectedIndex = null;
	}
	
	elem = document.getElementById("publCountryList");
	if ( elem )
	{
		if(elem.selectedIndex>0)
			elem.selectedIndex = null;
	}
	
	
	var elem;
	
	elem = document.getElementById("source_id");
	if (elem) 
		elem.value='';
	elem = document.getElementById("keyword_id");
	if (elem) 
		elem.value='';
	elem = document.getElementById('sourceIdTxtA');
	if (elem) 
		elem.value='';
	elem = document.getElementById('sourceId');
	if (elem) 
		elem.value='';
	
	elem = document.getElementById("frbrSearch");
	var frbr = false;
	if (elem)
	{
		if (elem.checked)
			frbr = true;
	}
	
	for( var n = 0; n < document.forms.length; n++ ) 
	{
	   for(var i = 0; i < document.forms[n].elements.length; i++) 
	   {
           if( document.forms[n].elements[i].type == 'text') 
           {
                document.forms[n].elements[i].value = '';
           }
           else if (document.forms[n].elements[i].type == 'checkbox')
           {
        	   document.forms[n].elements[i].checked = false;
           }
           else if (document.forms[n].elements[i].type == 'textarea')
           {
        	   document.forms[n].elements[i].value = '';
        	   document.forms[n].elements[i].defaultValue = '';
           }
           else if('select-one' == document.forms[n].elements[i].type)
           {
			   
			   if(document.forms[n].elements[i].selectedIndex > 0)
           	   		document.forms[n].elements[i].selectedIndex = 0;
           }
	   }
	}

	if (frbr)
		document.getElementById("frbrSearch").checked = true;
	
	// Kadangi lauku reiksmes guli sesijoj, tai perkraunam forma, kad jos nusinulintu ir ten.
	// FIXME: cia geriau gal reiketu AJAX'a panaudoti
	// XXX: Vaidas: buvo padaryta ir su ajaxu, bet deja eksploreris gryb� pjauna kartais su juo
	clearSession(root, location);
	
	//window.location=root + '/showCustomPage.do?showByIdentificator=' + location + '&cleanFields=true&frbrSearch=' + frbr;
}

function clearSession(root, pageDefinition)
{
	var xmlHttp;
	try
	{
	  // Firefox, Opera 8.0+, Safari
	  xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
	  // Internet Explorer
	  try
	  {
	    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	  }
	  catch (e)
	  {
	    try
	    {
	      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	    }
	    catch (e)
	    {
	      alert("Your browser does not support AJAX!");
	      return false;
	    }
	  }
	}
	xmlHttp.onreadystatechange=function()
	{
		if (xmlHttp.readyState == 4) 
		{
			if (xmlHttp.status == 200) 
			{}
		}
	}
	xmlHttp.open("POST", root + "/clearFieldsAction.do", true);
	
	xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", pageDefinition.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send('pageDefinition=' + pageDefinition);
}

function clearAIFields(root, location, params)  
{
	document.getElementById("title").value = "";
}