var advsearchrefining = true;
var modifiedquery = "";


function doAdvancedSearch() {
	if (navigator.appVersion.indexOf("MSIE") != -1) {
		var version = parseFloat(navigator.appVersion.split("MSIE")[1]);
		if(version<=6) {
	  		var h = document.getElementById('wrapper').offsetHeight;
	  		document.getElementById('gray').style.height = h;
	  	}
	}
	
	document.getElementById('gray').style.display='block';document.getElementById('extSearch').style.display='block';
	if (advsearchrefining) {
		restoreOldQuery();
	}
	advsearchrefining = false;
	document.getElementById('speedtypings1').focus();
}

function doAdvancedSearchSubmit() {
	updateSearch();
}
function doRefine() {
	if (navigator.appVersion.indexOf("MSIE") != -1) {
		var version = parseFloat(navigator.appVersion.split("MSIE")[1]);
		if(version<=6) {
	  		var h = document.getElementById('wrapper').offsetHeight;
	  		document.getElementById('gray').style.height = h;
	  	}
	}
	
	document.getElementById('gray').style.display='block';document.getElementById('extSearch').style.display='block';
	restoreOldQuery();
	advsearchrefining = false;
}
function doClear() {
	document.location="/";
}
function doAdvClear() {
	modifiedquery="";
}

function applyupdate() {
	modifiedquery = document.getElementById("adv_query").value;
	
	document.getElementById("speedtypings1").value = "";
	document.getElementById("speedtypings2").value = "";
	document.getElementById("adv_words").value = "";
	document.getElementById("adv_phrase").value = "";
	document.getElementById("adv_or").value = "";
	document.getElementById("adv_not").value = "";
	
}

function restoreOldQuery() {
	var lastquery = trim(document.getElementById("lastquery").value);
	if (lastquery.length > 0) {
		for (var i = 1; i <= 15; i++) {
			var adv_part = document.getElementById("adv_part"+i);
			if (window.part_array) adv_part.checked=part_array[i-1];
			//adv_part = document.getElementById("adv_part1");
		}
		document.getElementById("adv_query").value = lastquery;
		
		document.getElementById("speedtypings1").value = "";
		document.getElementById("speedtypings2").value = "";
		document.getElementById("adv_words").value = "";
		document.getElementById("adv_phrase").value = "";
		document.getElementById("adv_or").value = "";
		document.getElementById("adv_not").value = "";
		applyupdate();
	}
}

function updateSearch() {
	
	var adv_substance = trim(document.getElementById("speedtypings1").value);
	var adv_property = trim(document.getElementById("speedtypings2").value);
	
	var adv_words = trim(document.getElementById("adv_words").value);
	var adv_phrase = trim(document.getElementById("adv_phrase").value);
	var adv_or = trim(document.getElementById("adv_or").value);
	var adv_not = trim(document.getElementById("adv_not").value);
	
	var query = "";
	
	if (modifiedquery.length >0)
		query = modifiedquery;

	if (adv_substance.length >0) {
		if (adv_substance.indexOf(' ') >= 0) {
			query +=  '{'+adv_substance+'}';
		}
		else {
			query +=  adv_substance;
		}
			
	}
	if (adv_property.length >0) {
		if (adv_property.indexOf(' ') >= 0) {
			query +=  ' {'+adv_property+'}';
		}
		else {
			query +=  ' '+adv_property;
		}
	}
	if (adv_words.length >0) {
		query += ' '+adv_words;
	}
	if (adv_or.length > 0) {
		ors = adv_or.split(" ");
		if (ors.length==1) {
			query += ' '+ors[0];
		}
		else {
			query += ' {'+ors.join(" OR ")+'}';
		}
	}
	if (adv_phrase.length > 0) {
		query += ' "'+adv_phrase+'"';
	}
		
	if (adv_not.length > 0) {
		nots = adv_not.split(" ");
		query += ' BUT_NOT '+nots.join(" BUT_NOT ");
	}
	
	document.getElementById("adv_query").value =  trim(query);
}

// Removes leading whitespaces
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 double whitespaces
function DTrim( value ) {
	
	var re = /\s{2,}/;
	return value.replace(re, " ");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	
	return DTrim(LTrim(RTrim(value)));
	
}