/**
 * @author boellmann
 */
var stockAjaxConnector = {
	isReady: true,
	renderHelper: {
		addRow: function(ele,counter){
			var rowEl = document.createElement("tr");
			rowEl.className = cssClassArr[counter];
			ele.appendChild(rowEl);
			return rowEl;
		},
		cleanList: function(ele){
			var pNode = ele.parentNode;
			var newNode = ele.cloneNode(false);
			pNode.replaceChild(newNode,ele);
			return newNode;
		},
		addCells: function(rowEle,data){
			var c1 = document.createElement("td");
			c1.appendChild(document.createTextNode(data[1]));
			var c2 = document.createElement("td");
			var link = document.createElement("a");
			link.href = detailBaseAddress+data[0];
			link.appendChild(document.createTextNode(data[2]));	
			c2.appendChild(link);				
			var c3 = document.createElement("td");
			c3.appendChild(document.createTextNode(data[3]));		
			rowEle.appendChild(c1);
			rowEle.appendChild(c2);
			rowEle.appendChild(c3);
		},
		addOption: function(ele,optionArr,selected){
			var opt = document.createElement("option");
			opt.value = optionArr[0];
			if(optionArr[0]==selected){
				opt.selected = 'selected';
			}
			opt.appendChild(document.createTextNode(unescape(optionArr[1])));	
			ele.appendChild(opt);
		}
	},
	ajaxCallBack: {
		getfilteredlist: function(result){
			var tbNode = stockAjaxConnector.renderHelper.cleanList(document.getElementById('list_body'));
			var counter = 0;
			var rowEle = null;
			var cellEle = null;
			for (var i=1;i<=result[0];i++){
				rowEle = stockAjaxConnector.renderHelper.addRow(tbNode,counter);
				stockAjaxConnector.renderHelper.addCells(rowEle,result[i]);
				if(counter==0){
					counter=1
				}else{
					counter=0;
				}
			}
			stockAjaxConnector.isReady = true;
		},
		getfilteredselectbox: function(result){

			var arr = new Array('product_kind','product_heat','product_surface','product_dim');
			var ele = null;
			for (var i=0;i<4;i++){
				ele = stockAjaxConnector.renderHelper.cleanList(document.getElementById(arr[i]));
				for(var j=0;j<result[i]['count'];j++){
					stockAjaxConnector.renderHelper.addOption(ele,result[i][j],result[i]['selected']);
				}
				ele.onchange = stockAjaxConnector.ajaxCall.filterSelectBox;
			}
			document.getElementById('product_shaping').value = unescape(result[4]);
			stockAjaxConnector.isReady = true;
		}
	},
	ajaxCall:{
		filterList: function(e){
			if (!e){e = window.event;}
			if(stockAjaxConnector.isReady){
				var remoteObj = new stockajaxconnector(stockAjaxConnector.ajaxCallBack);
				var pnum = document.getElementById('product_nr').value;
				var pname = document.getElementById('product_name').value;
				var pamname = document.getElementById('product_name_am').value;
				remoteObj.getfilteredlist(pnum,pname,pamname,cLangId);
				stockAjaxConnector.isReady = false;
			}
		},
		filterSelectBox: function(e){
			if (!e){e = window.event;}
			if(stockAjaxConnector.isReady){
				var remoteObj = new stockajaxconnector(stockAjaxConnector.ajaxCallBack);
				var pp = document.getElementById('ppid').value;
				var pform = document.getElementById('product_kind').value;
				var pheat = document.getElementById('product_heat').value;
				var psur = document.getElementById('product_surface').value;
				var pdim = document.getElementById('product_dim').value;
				
				remoteObj.getfilteredselectbox(pp,pform,pheat,psur,pdim,cLangId);
				stockAjaxConnector.isReady = false;
			}
		}
	},
	eventHandler: {
		switchQuantityField: function(){
			ele = document.getElementById('product_length');
			if(document.getElementById('product_length_select').value==1){
				ele.disabled = true;
				ele.readOnly = true;
			}else{
				ele.disabled = false;
				ele.readOnly = false;
			}
		}
	}
	,
	assignAjaxHandler: function(){
		if (cView=='list'){
			var arr = new Array('product_nr','product_name','product_name_am');
			var ele = null;
			for (i in arr){
				document.getElementById(arr[i]).onkeyup = stockAjaxConnector.ajaxCall.filterList;
			}
			document.getElementById('js_hide').style.display = "none";
		}
		if(cView=='detail'){
			var arr = new Array('product_kind','product_heat','product_surface','product_dim');
			var ele = null;
			for (i in arr){
				document.getElementById(arr[i]).onchange = stockAjaxConnector.ajaxCall.filterSelectBox;
			}
			document.getElementById('product_prove').style.display = "none";
			document.getElementById('product_length_select').onchange = stockAjaxConnector.eventHandler.switchQuantityField;
			stockAjaxConnector.eventHandler.switchQuantityField();
		}
		
	}	
}
window.onload=stockAjaxConnector.assignAjaxHandler;

