// JScript source code
// whitespace characters
var whitespace = "\b"; //"\t\n\r";

function isEmpty(s)
{
	return ((s == null) || (s.length == 0))
}

function isYear (s)
{
	if (isEmpty(s))
       return false;
    else
	   return (s.length == 4);
}

function checkYear (theField, emptyOK)
{
	if (checkYear.arguments.length == 1) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(theField.value))) return true;
    if (!isYear(theField.value, false))
       return warnInvalid (theField, iYear);
    else return true;
}

function isWhitespace (s)
{   var i;
    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.
    for (i = 0; i < s.length; i++)
    {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) return false;
    }

    // All characters are whitespace.
    return true;
}

function stripWhitespace (s)
{
	return stripCharsInBag (s, whitespace)
}

// Removes all characters which appear in string bag from string s.
function stripCharsInBag (s, bag)
{
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function SimpleSearch(t)
{
	var relevancerank=new String('');
	var q=new String(t.querytext.value);
	//q=stripReservedWords(document.SearchForm.querytext.value);
	q=parseStopWords(q,'');
	relevancerank=q;
	relevancerank = '!' + relevancerank;
	relevancerank.replace(/"/g,"");

	t.BooleanQuery.value=q;
	t.ResultMaxDocs.value=500;
	t.Page.value=1;
	t.PageSize.value=10;
	t.RankTerms.value=relevancerank;
	t.method.value='Find';
	return true;
}

function SubmitSimpleSearch(t)
{
	var relevancerank=new String('');
	var q=new String(t);
	//q=stripReservedWords(document.SearchForm.querytext.value);
	q=parseStopWords(q,'');
	relevancerank=q;
	relevancerank = '!' + relevancerank;
	relevancerank.replace(/"/g,"");

	document.SearchForm.BooleanQuery.value=q;
	
	//shopping24 query...
	var whereShopping='description:';
	document.SearchForm.QueryXML.value=whereShopping+q; 
	//...end shopping24 query

	document.SearchForm.Channel.value='24ore.com';
	document.SearchForm.ResultMaxDocs.value=500;
	document.SearchForm.Page.value=1
	document.SearchForm.PageSize.value=10
	document.SearchForm.RankTerms.value=relevancerank;
	document.SearchForm.method.value='Find';

	//remember search type
	document.SearchForm.SearchType.value=0;

	document.SearchForm.submit();
	return true;
}

function SubmitSearch()
{
	var query='';

	var query1='';
	var query2='';
	var query3='';
	var query4='';

	var what1='';
	var what2='';
	var what3='';
	var what4='';

	var where1='';
	var where2='';
	var where3='';
	var where4='rnkDate:';

	var operator1='';
	var operator2='';
	var operator3=' AND '; //date condition

	var isliteral=false;
	var relevancerank=new String('');

	where1=document.SearchForm.scope1.options(document.SearchForm.scope1.selectedIndex).value;
	isliteral=(where1=='section' || where1=='subsection');

	if(where1!='') where1+=':';

	var quote='';
	var typeopt=document.SearchForm.type1.options(document.SearchForm.type1.selectedIndex).value;

	if(typeopt=='phrase' && !isliteral) quote='"';

	var q=new String();
	q=stripReservedWords(document.SearchForm.field1.value);
	if(!isliteral) relevancerank=parseStopWords(q,'');
	if(typeopt=='name')
	{
		q=namequery(q);
	}
	else
	{
		if(quote!='"' && !isliteral)
			q=booleanquery(q);
		else
		{
			if(isliteral)
				q=literalquery(q);
			else
				if(quote=='"')
				{
					q=parseStopWords(q,' BEFORE ');
					quote='';
				}
		}
	}
	what1=quote + q + quote;
	query1=where1 + what1;
	var openbraket='';
	var closebraket='';
	if(document.SearchForm.field2.value != '')
	{
		operator1=document.SearchForm.operator1.value;
		openbraket='(';
		closebraket=')';
		query1=openbraket + query1 + closebraket;
		where2=document.SearchForm.scope2.options(document.SearchForm.scope2.selectedIndex).value;
		isliteral=(where2=='section' || where2=='subsection');
		if(where2!='') where2+=':';

		quote='';
		typeopt=document.SearchForm.type2.options(document.SearchForm.type2.selectedIndex).value;
		if(typeopt=='phrase' && !isliteral) quote='"';

		q=stripReservedWords(document.SearchForm.field2.value);
		if(!isliteral && relevancerank.length==0) relevancerank=q;
		if(typeopt=='name')
		{
			q=namequery(q);
		}
		else
		{
			if(quote!='"' && !isliteral)
				q=booleanquery(q);
			else
			{
				if(isliteral) q=literalquery(q);
			}
		}

		what2=quote + q + quote;
		query2=openbraket + where2 + what2 + closebraket;
	}

	if(document.SearchForm.field3.value != '')
	{
		operator2=document.SearchForm.operator2.value;
		where3=document.SearchForm.scope3.options(document.SearchForm.scope3.selectedIndex).value;
		isliteral=(where3=='section' || where3=='subsection');
		if(where3!='') where3+=':';

		quote='';
		typeopt=document.SearchForm.type3.options(document.SearchForm.type3.selectedIndex).value;
		if(typeopt=='phrase' && !isliteral) quote='"';

		q=stripReservedWords(document.SearchForm.field3.value);
		if(!isliteral && relevancerank.length==0) relevancerank=q;
		if(typeopt=='name')
		{
			q=namequery(q);
		}
		else
		{
			if(quote!='"' && !isliteral)
				q=booleanquery(q);
			else
			{
				if(isliteral) q=literalquery(q);
			}
		}

		what3=quote + q + quote;
		query3=openbraket + where3 + what3 + closebraket;
	}

	query=query1 + operator1 + query2 + operator2 + query3;

	//date range
	var searchdate=new Date();
	var dd=searchdate.getDate();
	var mm=searchdate.getMonth()+1;
	var yy=searchdate.getFullYear();

	if(document.SearchForm.date[1].checked==true)
	{
		var period=document.SearchForm.inlast.options(document.SearchForm.inlast.selectedIndex).value;
		if(dd>period)
			dd=dd-period;
		else
		{
			var m=Math.floor(period/30);
			if(m<12)
				mm-=m;
			else
			{
				var y=Math.floor(m/12);
				yy-=y;
			}
		}
		var day=new String();
		var month=new String();
		var year=new String();
		if(dd<10) day = '0';
		day += dd;

		if(mm<10)	month = '0';
		month += mm;

		year=yy;
		query4+='[' + day + '/' + month + '/' + year + '-]'; //AltaVista format for >=

		//update query
		query=query1 + operator1 + query2 + operator2 + query3 + operator3 + query4;
	}
	else
	{
		if(document.SearchForm.date[2].checked==true)
		{
			query4='';
			dd=document.SearchForm.day1.value;
			mm=document.SearchForm.month1.value;
			yy=document.SearchForm.year1.value;
			if(!isYear(yy))
			{
				alert('4 digit year number is required.');
				document.SearchForm.year1.focus()
				return false;
			}
			var date1=dd + '/' + mm + '/' + yy;

			dd=document.SearchForm.day2.value;
			mm=document.SearchForm.month2.value;
			yy=document.SearchForm.year2.value;

			if(!isYear(yy))
			{
				alert('4 digit year number is required.');
				document.SearchForm.year2.focus()
				return false;
			}
			var date2=dd + '/' + mm + '/' + yy;

			query4+='[' + date1 + '-' + date2 +']'; //AltaVista format for between

			//update query
			query=query1 + operator1 + query2 + operator2 + query3 + operator3 + query4;
		}
	}

	document.SearchForm.BooleanQuery.value=query;
	document.SearchForm.ResultMaxDocs.value=document.SearchForm.ResultCount.options(document.SearchForm.ResultCount.selectedIndex).value;
	//ranking
	if(document.SearchForm.SortSpec.options(document.SearchForm.SortSpec.selectedIndex).value=="rnkDate")
		document.SearchForm.RankTerms.value='#date';
	else
	{
		relevancerank = '!' + relevancerank;
		relevancerank.replace(/"/g,"");
		document.SearchForm.RankTerms.value=relevancerank;
	}
	//method
	document.SearchForm.method.value='Find';
	return true;
}
function ChangeRank(t)
{
	//method
	document.SearchForm.Method.value='Find';
	if(t==0) //relevance ranking
	{
		var oldrank=new String(document.SearchForm.RankTerms.value);
		var relevance=new String(document.SearchForm.BooleanQuery.value);

		relevance.replace(/^\w+:/i,"");
		relevance.replace(/^\)\s/i,"");
		relevance=stripReservedWords(relevance);
		relevance='!' + relevance;
		document.SearchForm.RankTerms.value=relevance;
	}
	else //date ranking
	{
		document.SearchForm.RankTerms.value='#date';
	}
	document.SearchForm.submit();
}
function Similarity(t)
{
	var x=new String(stripMultiByteChars(escape(t)));
	var text=unescape(x);

	document.SearchForm.Method.value='SimilarSearch';
	document.SearchForm.Text.value=text;
	document.SearchForm.Page.value=1;

	document.SearchForm.submit();
}
function NextResults()
{
	document.SearchForm.Method.value='Find';
	document.SearchForm.Text.value='';
	var p=new Number(document.SearchForm.Page.value);
	var ps=new Number(document.SearchForm.PageSize.value);
	if(p<ps)
		document.SearchForm.Page.value = ++p;

	document.SearchForm.submit();
}
function PrevResults()
{
	document.SearchForm.method.value='Find';
	document.SearchForm.Text.value='';
	var p=new Number(document.SearchForm.Page.value);
	if(p>1)
		document.SearchForm.Page.value= --p;
	document.SearchForm.submit();
}
function GoTo(p)
{
	document.SearchForm.method.value='Find';
	document.SearchForm.Text.value='';
	document.SearchForm.Page.value=p;
	document.SearchForm.submit();
}
function literalquery(t)
{
	var x=new String(trim(t));
	var re=x.split(' ');
	if(re.length>1)
		x='{' + x + '}';

	return x;
}
function booleanquery(t)
{
	return(t.replace(/\s/g," AND "));
}
function namequery(t)
{
	var x=new String(t);
	var s=new String();
	var words=0;
	var re=x.split(' ');
	for(var i=0;i<re.length;i++)
	{
		if(!isWhitespace(re[i]))
		{
			words++;
			if(i==0)
			{
				x=re[i];
				x+=' BEFORE ';
			}
			else
			{
				s+=re[i];
				s+=' ';
			}
		}
	}

	var l=s.length-1;
	s=rtrim(s);

	if(words>2)
		x+='"' + s + '"';
	else
		x+=s;

	return '(' + x + ')';
}


function stripReservedWords(t)
{
	var c=new String(t.replace(/\sand\s|\sAND\s/g," ").replace(/\sor\s|\sOR\s/g," ").replace(/\snot\s|\sNOT\s/g," "));
	return c;
}

function trim(s) { return(s.replace(/(^\s*|\s*$)/g,"")) }
function rtrim(s) { return(s.replace(/(\s*$)/g,"")) }
function ltrim(s) { return(s.replace(/(^\s*)/g,"")) }

function HTMLEncode(s)
{
	return(s.replace(/\&/g,"&amp;").replace(/\</g,"&lt;").replace(/\>/g,"&gt;").replace(/\"/g,"&quot;"));
}

function stripMultiByteChars(t)
{
	var c=new String(t.replace(/%C3%A8/g,"è").replace(/%C3%B9/g,"ù").replace(/%C3%A0/g,"à").replace(/%C3%AC/g,"ì"));
	return c;
}

function parseStopWords(t,n)
{
	var aSW=new Array(/\sa\s/g,/\sad\s/g,/\saffinchè\s/g,/\saffinché\s/g,/\saffinche'\s/g,/\sagli\s/g,/\sai\s/g,/\sal\s/g,/\salcun\s/g,/\salcuna\s/g,/\salcunchè\s/g,/\salcunché\s/g,/\salcunche'\s/g,
/\salcune\s/g,/\salcuni\s/g,/\salcuno\s/g,/\sall'\s/g,/\salla\s/g,/\salle\s/g,/\sallo\s/g,/\saltro\s/g,/\sanche\s/g,/\sche\s/g,/\sci\s/g,/\sciò\s/g,/\scio'\s/g,/\scome\s/g,/\scon\s/g,
/\scosì\s/g,/\scosi'\s/g,/\scui\s/g,/\sda\s/g,/\sdagli\s/g,/\sdai\s/g,/\sdal\s/g,/\sdall'\s/g,/\sdalla\s/g,/\sdalle\s/g,/\sde\s/g,/\sdegli\s/g,/\sdei\s/g,/\sdel\s/g,/\sdell'\s/g,/\sdella\s/g,
/\sdelle\s/g,/\sdello\s/g,/\sdi\s/g,/\sdopo\s/g,/\sdove\s/g,/\se\s/g,/\sed\s/g,/\sera\s/g,/\sfa\s/g,/\sfra\s/g,/\sgià\s/g,/\sgia'\s/g,/\sgli\s/g,/\sha\s/g,/\shanno\s/g,/\sho\s/g,/\sil\s/g,/\sin\s/g,/\sl'\s/g,
/\sla\s/g,/\sle\s/g,/\slo\s/g,/\sloro\s/g,/\sma\s/g,/\sme\s/g,/\smi\s/g,/\sne\s/g,/\snè\s/g,/\sné\s/g,/\sne'\s/g,/\snegli\s/g,/\snei\s/g,/\snel\s/g,/\snell'\s/g,/\snella\s/g,/\snelle\s/g,/\sogni\s/g,/\sper\s/g,
/\sperché\s/g,/\sperchè\s/g,/\sperche'\s/g,/\sperciò\s/g,/\spercio'\s/g,/\sperò\s/g,/\spero'\s/g,/\spiù\s/g,/\spiu'\s/g,/\spo\s/g,/\spo'\s/g,/\spoi\s/g,/\spur\s/g,/\spuò\s/g,/\spuo'\s/g,
/\squando\s/g,/\squegli\s/g,/\squei\s/g,/\squel\s/g,/\squell'\s/g,/\squella\s/g,/\squelle\s/g,/\squelli\s/g,/\squello\s/g,/\squest'\s/g,/\squesta\s/g,/\squeste\s/g,/\squesti\s/g,
/\squesto\s/g,/\squi\s/g,/\squì\s/g,/\squi'\s/g,/\squindi\s/g,/\sse\s/g,/\ssé\s/g,/\ssè\s/g,/\sse'\s/g,/\ssempre\s/g,/\ssempreche'\s/g,/\ssemprechè\s/g,/\ssempreché\s/g,/\ssenonche'\s/g,
/\ssenonchè\s/g,/\ssenonché\s/g,/\ssi\s/g,/\ssì\s/g,/\ssia\s/g,/\ssolo\s/g,/\ssono\s/g,/\sst\s/g,/\sstata\s/g,/\sstesso\s/g,/\ssu\s/g,/\ssua\s/g,/\ssue\s/g,/\ssugli\s/g,/\ssui\s/g,/\ssul\s/g,
/\ssull'\s/g,/\ssulla\s/g,/\ssulle\s/g,/\ssuo\s/g,/\ssuoi\s/g,/\stal\s/g,/\stale\s/g,/\stali\s/g,/\stalune\s/g,/\staluni\s/g,/\staluno\s/g,/\ste\s/g,/\sti\s/g,/\stra\s/g,/\stutta\s/g,
/\stutte\s/g,/\stutti\s/g,/\stutto\s/g,/\sun\s/g,/\suna\s/g,/\suno\s/g,/\svi\s/g,/\svia\s/g);

	var s=new String(' ' + t + ' ');
	for(var i=0;i<aSW.length;i++)
	{
		s=s.replace(aSW[i]," ");
	}
	s=trim(s);

	if(n!='')s=s.replace(/\s/g, n);

	return s.replace(/\!/g,"").replace(/\?/g,"").replace(/\,/g,"").replace(/\;/g,"").replace(/\./g,"").replace(/\!/g,":").replace(/\-/g,"").replace(/\"/g,"").replace(/\(/g,"").replace(/\)/g,"");
}

function doLink(anchorRef,s)
{
	var cut=new String(s);
	var l=cut.length;
	var protocol=new String(window.location.protocol);
	var host=new String(window.location.hostname);
	if (l>0)
	{
	    if ( document.getElementsByTagName )
		{
			var url=new String(anchorRef.getElementsByTagName( 'input' )[0].value);
			var p=url.indexOf(cut,0);
			var r=url.slice(p+l);
			var rurl=protocol + '//' + host + r.replace(/\x5C/g,"/");
			window.location.href=rurl;
		}
	}
	return false;
}

//use with advanced form release 1
function booleanquery2(t,s)
{
	return(t.replace(/\s/g,s));
}
function doSearch()
{
	/*
	collectors
	and_field
	or_field
	not_field
	campi
	periodo
	*/

	var query='';

	var query1='';
	var query2='';
	var query3='';
	var query4='';
	var queryShopping='';

	var what1='';
	var what2='';
	var what3='';
	var what4='';

	var whatShop1='';
	var whatShop2='';
	var whatShop3='';

	var where1='';
	var where2='';
	var where3='';
	var where4='rnkDate:';
	var whereShopping='description:';

	var operator1='';
	var operator2='';
	var operator3=' AND '; //date condition

	var isliteral=false;
	var relevancerank=new String('');
	var q=new String();

	var ff=0;
	var coll=document.SearchForm.campi;
	var openbraket='';
	var closebraket='';
	var qopenbraket='';
	var qclosebraket='';

	var quote='';

	if (isEmpty(document.SearchForm.and_field.value) && isEmpty(document.SearchForm.and_field.value) && isEmpty(document.SearchForm.and_field.value))
	{
		document.SearchForm.and_field.focus();
		alert("Inserisci almeno un termine da ricercare.");
		return false;
	}

	if (coll != null)
	{
		for(f=0;f<coll.length;f++)
		{
			query1=query2=query3='';
			operator1=operator2='';
			what1=what2=what3='';
			where1=((coll[f].checked) ? coll[f].value : '');
			openbracket=closebracket='';
			if(where1!='')
			{
				if(coll[f].value=='Full')
				{
					ff=0;
					break;
				}
				ff++;
				where1+=':';
				qopenbraket='(';
				qclosebraket=')';
				q=stripReservedWords(document.SearchForm.and_field.value.toLowerCase());
				if(relevancerank=='')relevancerank=parseStopWords(q,'');
				if(where1=='autore:')
				{
					q=namequery(q);
				}
				else
				{
					q=parseStopWords(q,'');
					q=booleanquery2(q," AND ");
				}
				what1=qopenbraket + q + qclosebraket;
				query1=where1 + qopenbraket + q + qclosebraket;

				if(document.SearchForm.or_field.value != '')
				{
					operator1=' AND ';
					openbracket='(';
					closebracket=')';
					q=stripReservedWords(document.SearchForm.or_field.value.toLowerCase());
					q=parseStopWords(q,'');
					q=booleanquery2(q," OR ");
					what2=qopenbraket + q + qclosebraket;
					query2=qopenbraket + q + qclosebraket;
				}

				if(document.SearchForm.not_field.value != '')
				{
					operator2=' AND NOT ';
					openbracket='(';
					closebracket=')';
					q=stripReservedWords(document.SearchForm.not_field.value.toLowerCase());
					q=parseStopWords(q,'');
					q=booleanquery2(q," AND ");
					what3=qopenbraket + q + qclosebraket;
					query3=qopenbraket + q + qclosebraket;
				}

				if(ff==1) //defining shopping24 query...
				{
					queryShopping='';
					q='';
					openbracket='';
					closebracket='';
					if(what1!='') q+=what1;
					if(what2!='')
					{
						openbracket='(';
						closebracket=')';
						if(q!='') q+=operator1;
						q+=what2;
					}
					if(what3!='' && q!='')
					{
						openbracket='(';
						closebracket=')';
						q+=operator2 + what3;
					}
					if(q!='') queryShopping=whereShopping + openbracket + q + closebracket;
				}

				if(ff>1) query+=' OR ';
				query+=openbracket + query1 + operator1 + query2 + operator2 + query3 + closebracket;
			}
		}
	}

	//cerco in tutto il documento (fulltext fields)
	if(ff==0)
	{
		where1='';
		qopenbraket='(';
		qclosebraket=')';
		q=stripReservedWords(document.SearchForm.and_field.value.toLowerCase());
		if(relevancerank=='')relevancerank=parseStopWords(q,'');
		q=parseStopWords(q,'');
		q=booleanquery2(q," AND ");
		what1=qopenbraket + q + qclosebraket;
		query1=where1 + qopenbraket + q + qclosebraket;

		if(document.SearchForm.or_field.value != '')
		{
			operator1=' OR ';
			openbracket='(';
			closebracket=')';
			q=stripReservedWords(document.SearchForm.or_field.value.toLowerCase());
			q=parseStopWords(q,'');
			q=booleanquery2(q," OR ");
			what2=qopenbraket + q + qclosebraket;
			query2=qopenbraket + q + qclosebraket;
		}

		if(document.SearchForm.not_field.value != '')
		{
			operator2=' AND NOT ';
			openbracket='(';
			closebracket=')';
			q=stripReservedWords(document.SearchForm.not_field.value.toLowerCase());
			q=parseStopWords(q,'');
			q=booleanquery2(q," AND ");
			what3=qopenbraket + q + qclosebraket;
			query3=qopenbraket + q + qclosebraket;
		}
		query+=openbracket + query1 + operator1 + query2 + operator2 + query3 + closebracket;
		queryShopping=whereShopping + query;
	}


	//date range
	var searchdate=new Date();
	var dd=searchdate.getDate();
	var mm=searchdate.getMonth()+1;
	var yy=searchdate.getFullYear();
	var date1='';
	var date2='';
	if(document.SearchForm.gg_DA.value!='' && document.SearchForm.gg_A.value!='')
	{
		query4='dataarticolo:';
		dd=document.SearchForm.gg_DA.value;
		mm=document.SearchForm.mm_DA.value;
		yy=document.SearchForm.aa_DA.value;
		if(!isYear(yy))
		{
			alert('4 digit year number is required.');
			document.SearchForm.aa_DA.focus()
			return false;
		}
		date1=dd + '/' + mm + '/' + yy;
		if(IsValidDate(date1)!=0)
		{
			alert('Data non valida.');
			document.SearchForm.aa_DA.focus()
			return false;
		}

		dd=document.SearchForm.gg_A.value;
		mm=document.SearchForm.mm_A.value;
		yy=document.SearchForm.aa_A.value;

		if(!isYear(yy))
		{
			alert('4 digit year number is required.');
			document.SearchForm.aa_A.focus()
			return false;
		}
		date2=dd + '/' + mm + '/' + yy;
		if(IsValidDate(date2)!=0)
		{
			alert('Data non valida.');
			document.SearchForm.aa_A.focus()
			return false;
		}

	    /*
	    var b1=Date.parse(date1);
		var b2=Date.parse(date2);
		if(parseInt((b2-b1)/86400000)<0)
		{
			alert('Intervallo di date errato');
			return false;
		}
		*/

		query4+='[' + date1 + '-' + date2 +']'; //AltaVista format for between

		//update query
		query+=operator3 + query4;
	}

	//collectors
	coll=document.SearchForm.collectors;
	if(coll != null)
	{
		//codice per checkboxes (indice unico filtro su h2oespCollector)
		/*
		query4='';
		what1='';
		for(f=0;f<coll.length;f++)
		{
			where1=((coll[f].checked) ? '' : coll[f].value);
			if(where1!='')
			{
				if(what1!='') what1+=' ';
				what1+=where1;
			}
		}
		if(what1!='')
		{
			what1=booleanquery2(what1," AND ");
			query4='h2oespCollector:(';
			query4+=what1;
			query4+=')';
			//update query
			query+=operator3 + ' NOT ' + query4;
		}
		*/
		//codice per radio (indice canale)
		/**/
		document.SearchForm.Channel.value='24ore.com';
		for(f=0;f<coll.length;f++)
		{
			if(coll[f].checked)
			{
				document.SearchForm.Channel.value=((coll[f].value=='All') ? '24ore.com' : coll[f].value);
				break;
			}
		}
	}

	//alert(query);
	//alert(document.SearchForm.Channel.value);
	document.SearchForm.BooleanQuery.value=query;
	document.SearchForm.QueryXML.value=queryShopping;
	document.SearchForm.ResultMaxDocs.value=500;
	//ranking
	relevancerank = '!' + relevancerank;
	relevancerank.replace(/"/g,"");
	document.SearchForm.RankTerms.value=relevancerank;
	//method
	document.SearchForm.method.value='Find';

	//old form compatibility lyer
	document.SearchForm.channels.value=document.SearchForm.Channel.value;
	document.SearchForm.canale.value=document.SearchForm.Channel.value;
	document.SearchForm.rank.value=relevancerank;
	document.SearchForm.data_da.value=date1;
	document.SearchForm.data_a.value=date2;
	document.SearchForm.start.value=0;
	document.SearchForm.start_doc.value=0;

	//remember search type
	document.SearchForm.SearchType.value=1;


	return true;
}
function IsValidDate(d)
{
var DateValue='';
var day;
var month;
var year;
var leap = 0;
var err = 0;
var i;

   err=0;
   DateValue = d;
   if (DateValue.length != 10)
      err = 19;

   /* year is wrong if year = 0000 */
   year = DateValue.substr(6,4);
   if (year == 0)
      err = 20;

   /* Validation of month*/
   month = DateValue.substr(3,2);
   if ((month < 1) || (month > 12))
      err = 21;

   /* Validation of day*/
   day = DateValue.substr(0,2);
   if (day < 1)
     err = 22;

   /* Validation leap-year / february / day */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0))
   {
      leap = 1;
   }

   if ((month == 2) && (leap == 1) && (day > 29))
      err = 23;

   if ((month == 2) && (leap != 1) && (day > 28))
      err = 24;

   /* Validation of other months */
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12")))
      err = 25;

   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11")))
      err = 26;

	return err;
}