/*update the price*/

var stackList     = new Array();
var keyList       = new Array();
var trainingOrder = '';
var aTrainingOrder = new Array();

/*start prototype helper*/
// Array Remove - By John Resig (MIT Licensed)
Array.prototype.remove = function(from, to) {
  var rest = this.slice((to || from) + 1 || this.length);
  this.length = from < 0 ? this.length + from : from;
  return this.push.apply(this, rest);
};
 
/*return the first index for a value*/
Array.prototype.firstIndexOf = function (sSearch,bStrict){
	for(var i = 0;i<this.length;i++){
		if(bStrict && bStrict!='undefined' ){
			if(this[i]===sSearch) return i;
		} else {
			if(this[i]==sSearch) return i;
		}
	}	
	return -1;
}
 
/*return the last valid not empty value*/
Array.prototype.getLastValue = function (index) {
 	if(!this[index]) {
		if(index>-1) return this.getLastValue(index-1);
		return -1;
	} else {
		return this[index];
	} 
}
/*end prototype*/

function setData(index,key,listdata){
	keyList[index] = key;
	stackList[key] = listdata.split(';');
}


function setOrder(sOrder) {

	var aSetOrder = new Array();
	var index = 0;
	var key = 0;
	
	aOrder = sOrder.split(','); //here we got a list of ids/keys (! not the index)
	
	for(var i = 0;i<aOrder.length;i++){
		
		key = aOrder[i];
		index = keyList.firstIndexOf(key);

		if(index >= 0) {
			aSetOrder[aSetOrder.length] = index;
		}		
	
	}
	aTrainingOrder = aSetOrder;
}


function calcPrice(){
	orderList = trainingOrder.split(',');
	
	var priceSum   = 0;
	var orderIndex = 0;
	var orderKey   = 0;
	var stackData  = new Array();
	var aIDOrder = new Array();
	
	for(var i=0;i<aTrainingOrder.length;i++){
		orderIndex = aTrainingOrder[i];
		orderKey   = keyList[orderIndex];
		stackData  = stackList[orderKey];
		priceSum += stackData.getLastValue(i)*1;
		aIDOrder[aIDOrder.length] = orderKey;
	}
	
	document.getElementById('tx_dscwbt[trainingOrder]').value = aIDOrder.join(',');
	return priceSum;
}
 
function showPrice(sPrice){
	document.getElementById('tx_dscwbt[fullprice]').innerHTML = sPrice + '&euro;';
}
 
function training_onclick(obj,index){
	var remove = obj.checked == false;
  if(remove) {
	remIndex = aTrainingOrder.firstIndexOf(index);
	if(remIndex > -1) aTrainingOrder.remove(remIndex,remIndex);
  } else {
  	aTrainingOrder[aTrainingOrder.length] = index;
  }
  trainingOrder = aTrainingOrder.join(',');
  var price = calcPrice();
  showPrice(price);
}