var RelatedElements = new function(){
	this.filters = new Array();
	this.httpRequest = new HttpRequest();
	this.httpRequest.setCallee(this);
	this.httpRequest.setTimeout(10000);
	this.httpRequest.setRetryStatus(HttpRequest.RETRY_TIMEOUT);
	this.httpRequest.setCaching(false);
	this.preload = null;
	
	Interface.addListener(this);
	
	this.init = function(){
		if(this.preload != null){
			this.filterBy(this.preload.title, this.preload.valueId, this.preload.series);
		}
	}

	this.addFilter = function(value) {
		this.filters.push(value);
	}

	this.filterBy = function(value, valueId, series){
		var obj = null;

		for(var i = 0; i < this.filters.length; i++) {
			if(this.filters[i] == value) {
				this.httpRequest.get('relatedElements.php', 'value=' + valueId + '&series='+series);

				obj = document.getElementById('ConnectorType');

				if(obj) {
					while(obj.firstChild) {
						obj.removeChild(obj.firstChild);
					}

					obj.appendChild(document.createTextNode(value));
					obj = null;
				}

				obj = document.getElementById('ProductSpecs');

				if(obj) {
					while(obj.firstChild) {
						obj.removeChild(obj.firstChild);
					}

					obj = null;
				}
			}
		}
	}

	this.onHttpRequestResponse = function(resp, status, statusText){
		var obj = document.getElementById('RelatedTypes');

		if(obj) {
			obj.innerHTML = resp;
			obj = null;
		}
	}

	this.onHttpRequestError = function(resp, status, statusText){
		alert('Failed AJAX Request: ' + statusText);
	}
}

var RelatedElementsSpecs = new function(){
	this.loadingString = '<div class="loading"><img src="images/loading.gif" width="16" height="16" align="absmiddle" /> Loading...</div>';
	this.httpRequest = new HttpRequest();
	this.httpRequest.setCallee(this);
	this.httpRequest.setTimeout(5000);
	this.httpRequest.setRetryStatus(HttpRequest.RETRY_TIMEOUT);
	this.httpRequest.setCaching(false);
	this.preload = null;
	
	Interface.addListener(this);
	
	this.init = function(){
		if(this.preload != null){
			this.filterBy(this.preload.pid, this.preload.series);
		}
	}

	this.filterBy = function(pid, series){
		var obj = document.getElementById('ProductSpecs');

		this.httpRequest.get('relatedElementsSpecs.php', 'pid=' + pid + '&series='+series);

		if(obj) {
			obj.innerHTML = this.loadingString;
			obj = null;
		}
	}

	this.onHttpRequestResponse = function(resp, status, statusText){
		var obj = document.getElementById('ProductSpecs');

		if(obj) {
			obj.innerHTML = resp;
			obj = null;
		}
	}

	this.onHttpRequestError = function(resp, status, statusText){
		var obj = document.getElementById('ProductSpecs');

		if(obj) {
			obj.innerHTML = '';
			obj = null;
		}

		alert('Failed AJAX Request: ' + statusText);
	}
}

