var newssearchXmlHttp = null;

function newssearchCreateXmlHttp() {
	try {
		newssearchXmlHttp = new XMLHttpRequest();
	} catch (e) {
		try {
			newssearchXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) { 
			return false;
		}
 	}
	return true;
}

function newssearchChange(field) {
	var getValue = function(field) {
		if( document.getElementById(field).options )
			return document.getElementById(field).options[document.getElementById(field).selectedIndex].value;
		else
			return document.getElementById(field).value;
	}

	if( !newssearchCreateXmlHttp || ! newssearchCreateXmlHttp() ) { // If no request object is available, submit form
		if( field ) return ! field.form.submit();
		else return true;
	}

	if ( field ) { // If a field has been changed, reset its dependencies
		document.getElementById("newssearchCompany").disabled = true;
		document.getElementById("newssearchPortfolio").disabled = true;
		document.getElementById("newssearchDate").disabled = true;
		document.getElementById("newssearchBrand").disabled = true;
		
		var company = getValue("newssearchCompany");
		var portfolio = getValue("newssearchPortfolio");
		var date = getValue("newssearchDate");
		var brand = getValue("newssearchBrand");
		
		newssearchXmlHttp.onreadystatechange = function () { // Set callback hook to request object
			if( newssearchXmlHttp.readyState != 4 ) return true; // Response state is not ready yet
			if( newssearchXmlHttp.status != 200 ) return true; // Response status is invalid
			//alert(newssearchXmlHttp.responseText); 
			var responseXml = newssearchXmlHttp.responseXML;
			if( ! responseXml ) return false; // Response representation is not available
			try {
				responseXml.normalizeDocument();
			} catch( e ){ ; }
			if( ! responseXml.documentElement ) return false; // XML representation is invalid
			try {
				for( var i = 0; i < newssearchFields.length; i++ ) {
					var field = newssearchFields[i];
					var selectionBox = document.getElementById( field[0] );
					var nodeList = responseXml.getElementsByTagName( field[1] );
					if( nodeList && selectionBox) {
						dseClearSelect(selectionBox);
						dseAddOption(selectionBox, field[2], "", false, true);
						for( var j = 0; j < nodeList.length; j++ ) {
							var value = nodeList[j].getAttribute('value');
							var text = (nodeList[j].firstChild? nodeList[j].firstChild.nodeValue: value);
							var disabled = (nodeList[j].getAttribute("group") == "group");
							var selected = (nodeList[j].getAttribute("selected") == "selected");
							dseAddOption(selectionBox, text, value, disabled, selected);
						}
					}
					selectionBox.disabled = false;
     			}
			} catch ( e ) { ; }
			return true;
		}
		newssearchXmlHttp.open("GET", newssearchAjaxURL + "&mode=ajax&portfolio="+escape(portfolio)+"&company="+escape(company)+"&newsdate="+escape(date)+"&brand="+escape(brand)); // Create parameterized XML request address
		newssearchXmlHttp.send(null); // Send XML request
		return false;
 	}
	return false;
}

function newssearchSubmit() {
	var form = document.getElementById("newssearchForm");
	if (form) form.submit();
}
function newssearchReset() {
	var form = document.getElementById("newssearchForm");
	if (form) form.reset();
}

var storysearchXmlHttp = null;

function storysearchCreateXmlHttp() {
	try {
		storysearchXmlHttp = new XMLHttpRequest();
	} catch (e) {
		try {
			storysearchXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) { 
			return false;
		}
 	}
	return true;
}

function storysearchChange(field) {
	var getValue = function(field) {
		if( document.getElementById(field).options )
			return document.getElementById(field).options[document.getElementById(field).selectedIndex].value;
		else
			return document.getElementById(field).value;
	}

	if( !storysearchCreateXmlHttp || ! storysearchCreateXmlHttp() ) { // If no request object is available, submit form
		if( field ) return ! field.form.submit();
		else return true;
	}

	if ( field ) { // If a field has been changed, reset its dependencies
		document.getElementById("storysearchCompany").disabled = true;
		document.getElementById("storysearchPortfolio").disabled = true;
		document.getElementById("storysearchDate").disabled = true;
		document.getElementById("storysearchBrand").disabled = true;
		
		var company = getValue("storysearchCompany");
		var portfolio = getValue("storysearchPortfolio");
		var date = getValue("storysearchDate");
		var brand = getValue("storysearchBrand");
		
		storysearchXmlHttp.onreadystatechange = function () { // Set callback hook to request object
			if( storysearchXmlHttp.readyState != 4 ) return true; // Response state is not ready yet
			if( storysearchXmlHttp.status != 200 ) return true; // Response status is invalid
			//alert(storysearchXmlHttp.responseText); 
			var responseXml = storysearchXmlHttp.responseXML;
			if( ! responseXml ) return false; // Response representation is not available
			try {
				responseXml.normalizeDocument();
			} catch( e ){ ; }
			if( ! responseXml.documentElement ) return false; // XML representation is invalid
			try {
				for( var i = 0; i < storysearchFields.length; i++ ) {
					var field = storysearchFields[i];
					var selectionBox = document.getElementById( field[0] );
					var nodeList = responseXml.getElementsByTagName( field[1] );
					if( nodeList && selectionBox) {
						dseClearSelect(selectionBox);
						dseAddOption(selectionBox, field[2], "", false, true);
						for( var j = 0; j < nodeList.length; j++ ) {
							var value = nodeList[j].getAttribute('value');
							var text = (nodeList[j].firstChild? nodeList[j].firstChild.nodeValue: value);
							var disabled = (nodeList[j].getAttribute("group") == "group");
							var selected = (nodeList[j].getAttribute("selected") == "selected");
							dseAddOption(selectionBox, text, value, disabled, selected);
						}
					}
					selectionBox.disabled = false;
     			}
			} catch ( e ) { ; }
			return true;
		}
		storysearchXmlHttp.open("GET", storysearchAjaxURL + "&mode=ajax&portfolio="+escape(portfolio)+"&company="+escape(company)+"&storydate="+escape(date)+"&brand="+escape(brand)); // Create parameterized XML request address
		storysearchXmlHttp.send(null); // Send XML request
		return false;
 	}
	return false;
}

function storysearchSubmit() {
	var form = document.getElementById("storysearchForm");
	if (form) form.submit();
}
function storysearchReset() {
	var form = document.getElementById("storysearchForm");
	if (form) form.reset();
}


//disabled options
function dseAddOptionW3C(select, text, value, disabled, selected) {
	var option = document.createElement("option");
	option.value = value;
	if (disabled) option.className = "FormOptionDisabled";
	option.text = text;
	option.disabled = disabled;
	if (selected) option.selected = true;
	select.add(option, null);
	if (selected) select.selectedIndex = select.length -1;
	return select.length - 1;
}

function dseAddOptionIE6(select, text, value, disabled, selected) {
	var option = null;
	if (disabled) {
		option = document.createElement("optGroup");
		if (disabled) option.className = "FormOptionDisabled";
		option.label = text;
	} else {
		option = document.createElement("option");
		option.appendChild(document.createTextNode(text));
		if (disabled) option.className = "FormOptionDisabled";
		option.value = value;
		 /* IE6 preSet Hack */
		if (dseIE6First && selected) option.selected = true;
	}
	select.appendChild(option);
	if (selected) select.selectedIndex = select.length -1;
	return select.length - 1;
}

/*  IE implementation (not showing disabled options) */
function dseAddOptionIE(select, text, value, disabled, selected) {
	if (disabled) return -1;
	var option = document.createElement("option");
	option.value = value;
	if (disabled) option.className = "FormOptionDisabled";
	option.text = text;
	if (selected) option.selected = true;
	select.add(option);
	if (selected) select.selectedIndex = select.length -1;
	return select.length - 1;
}

function dseClearSelectW3C(select) {
	select.length = 0;
	dseClearSelectIE6(select);
}

function dseClearSelectIE6(select) {
	while (select.firstChild) select.removeChild(select.firstChild);            
}

function dseInit() {
	dseClearSelect = dseClearSelectW3C;
	dseAddOption = dseAddOptionW3C;
	if (window.opera) {
		/*  alert("Opera") // works with this version for W3c */
	} else if (document.all) {
		if (navigator.appVersion.indexOf("MSIE") > -1 && navigator.appVersion.indexOf("MSIE 5") == -1 && navigator.appVersion.indexOf("MSIE 4") == -1) {
			/* alert("not IE 4/IE 5") // needs workaround with &lt;optGroup&gt;-tags */
			dseAddOption = dseAddOptionIE6;
			dseClearSelect = dseClearSelectIE6;
		} else {
			/* alert("IE 5") // doesn't support disabled options */
			dseAddOption = dseAddOptionIE;
		}
	} else if (navigator.appVersion.indexOf("KHTML") > -1) {
		/*  alert("KHTML") // same as IE */
		dseAddOption = dseAddOptionIE; 
	} else {
		/*  alert("w3c") // GECKO */
	}
}

var dseAddOption;
var dseIE6First = false;

