function gid(id) {
	return document.getElementById(id);
}

var fObj = new Array();
var gList = new Array();

function searchBox() {
	var parent = null;
	var childrenList = null;
	var checked = false;
	var boxId = null;

};

searchBox.prototype.create = function (boxId,checked,parent) {
	this.boxId = boxId;
	this.checked = checked;
	if (parent != null) {
		try {
			this.parent = fObj[parent];
			if (this.parent.childrenList == null) this.parent.childrenList = new Array();
			this.parent.childrenList.push(this);
		} catch(e) {
			//alert(e);
		}
	} else {
		this.parent = null;
	}
};

searchBox.prototype.click = function() {
	var box = gid(this.boxId);
	if(this.checked) {

		this.checked = false;
		for(var child in this.childrenList) {
			if (this.childrenList[child].checked) this.childrenList[child].click();
		}
		box.checked = false;
		box.parentNode.className="labelOff";
		if(this.parent != null && this.parent.checked && !isCountrySelected()) this.parent.click();
	} else {
		this.checked = true;
		if(this.parent != null && !this.parent.checked) this.parent.click();
		box.checked = true;
		box.parentNode.className="labelHilight";
		if(this.boxId == "publicContent" && !isCountrySelected() &&  fObj[defaultCountryId] != null) fObj[defaultCountryId].click();
	}
};


searchBox.prototype.outside = function() {
	try {
	var outbox = gid("o"+this.boxId);
	var box = gid(this.boxId);

		for(var child in this.childrenList) {
			if (this.childrenList[child].checked) {
				this.childrenList[child].click();
				try {
					this.childrenList[child].outside();
				} catch(e) {}
			}
		}
		box.checked = false;
		box.parentNode.className="labelOff";
		outbox.parentNode.parentNode.removeChild(outbox.parentNode);
		removeEmptyHeaders();
	} catch(e) { alert(e) }
};

function isCountrySelected() {
	try {
		var childChecked = false;
		for(var country in gList['icsGroup']) {
			if (fObj[gList['icsGroup'][country]].checked) {
				childChecked = true;
				break;
			}
		}
		return childChecked;
	} catch(e) {}
	return false;
}

function isPubSelected() {
	try {
		var childChecked = false;
		for(var pub in gList['tpGroup']) {
			if (fObj[gList['tpGroup'][pub]].checked) {
				childChecked = true;
				break;
			}
		}
		return childChecked;
	} catch(e) {}
	return false;
}

function defaultPub(id) {
  if (fObj[id].checked && !isPubSelected()) {
    fObj[gList['tpGroup'][0]].click();
  }

}

function setSearchBoxes() {
	for(var i in fList) {
		var listObj = fList[i];
		fObj[listObj.boxId] = new searchBox();
		fObj[listObj.boxId].create(listObj.boxId,false,listObj.parent);
		if(listObj.checked) {
			fObj[listObj.boxId].click();
		} else {
			gid(listObj.boxId).checked = false;
		}
		if(listObj.group != null ) {
			if(typeof(gList[listObj.group]) == "undefined") gList[listObj.group] = new Array();
			gList[listObj.group].push(listObj.boxId);
		}
		//gid("qp").selectedIndex=-1;
	}
};

function checkBox(id) {
	fObj[id].click();
}

function checkRadio(id) {
	var list = fObj[id].parent.childrenList;
	for (i in list) {
		var child = list[i];
		if (child.id != id && child.checked)
			child.click();
	}
	fObj[id].click();

}

function uncheckBoxOutside(id) {
	fObj[id.substring(1)].outside();
}

function productSelection(bool) {
	gid('qp').disabled = bool;
	//gid('qp').selectedIndex=-1;
}

function toggleWebsiteDrawer() {
	try {
	var drawer = gid("websiteDrawer");
	var outside = gid("websiteDrawerOutside");
	if(drawer.style.display != "none") { //hide the drawer
		drawer.style.display = "none";

		var contentString = "";
		contentString = drawer.innerHTML;

		contentString = contentString.replace(/id="/g, 'id="o');
		contentString = contentString.replace(/id=/g, 'id=o');
		contentString = contentString.replace(/id=o"/g, 'id="');
		contentString = contentString.replace(/name="\w*"/g, '');
		contentString = contentString.replace(/name=\w*/g, '');

		contentString = contentString.replace(/checkBox/g, 'uncheckBoxOutside');
		outside.innerHTML = contentString;

		for(var i in fObj) {
			var obj = fObj[i];
			if(obj.checked) {
				try {
				gid("o"+obj.boxId).checked=true;
				} catch(e) {  }
			} else {
				try {
				var child = gid("o"+obj.boxId).parentNode;
				child.parentNode.removeChild(child);} catch(e) {}
			}
		}
		outside.style.display = "block";
		removeEmptyHeaders();
	} else { //show the drawer
		drawer.style.display = "block";
		outside.style.display = "none";
		outside.innerHTML = "";
	}
	} catch(e) { alert("bar"+e) }
}

function toggleTechpubsDrawer() {
	try {
	var drawer = gid("techpubsDrawer");
	var outside = gid("techpubsDrawerOutside");
	if(drawer.style.display != "none") { //hide the drawer
		drawer.style.display = "none";

		var contentString = "";
		contentString = drawer.innerHTML;

		contentString = contentString.replace(/id="/g, 'id="o');
		contentString = contentString.replace(/id=/g, 'id=o');
		contentString = contentString.replace(/id=o"/g, 'id="');
		contentString = contentString.replace(/name="\w*"/g, '');
		contentString = contentString.replace(/name=\w*/g, '');

		contentString = contentString.replace(/checkBox/g, 'uncheckBoxOutside');
		outside.innerHTML = contentString;

		for(var i in fObj) {
			var obj = fObj[i];
			if(obj.checked) {
				try {
				gid("o"+obj.boxId).checked=true;
				} catch(e) {  }
			} else { //Fall through is either an unchecked input or the select box
				var selBox = gid(obj.boxId);
				if (obj.boxId == "qp" && selBox.selectedIndex != -1) {
					for(i=0; i<selBox.options.length; i++) {
						if (selBox.options[i].selected)
							gid("o"+obj.boxId).options[i].selected = true;
					}
				} else {
					try {
						var child = gid("o"+obj.boxId).parentNode;
						child.parentNode.removeChild(child);
					} catch(e) {}
				}
			}
		}
		outside.style.display = "block";
		removeEmptyHeaders();
	} else { //show the drawer
		drawer.style.display = "block";
		outside.style.display = "none";
		outside.innerHTML = "";
	}
	} catch(e) {  }
}

function removeEmptyHeaders() {
	try {
		for (var g in gList) {
			var remove = true;
			for ( var item in gList[g]) {
				if (fObj[gList[g][item]].checked) {
					remove = false;
					break;
				}
			}
			if (remove) {
				var header = gid("o"+g);
				try {
					header.parentNode.removeChild(gid('owebsiteSep'));
				} catch(e) {}
				header.parentNode.removeChild(header);

			}
		}
	} catch(e) { }
}

function setQuery(val){
	document.getElementById("filterKeywords").value = val;
}

function setRPP(val){
	document.getElementById("filterRPP").value = val;
}

