//modell must be defined global
function setModells(manuid,modid,index){
    //get manufacturer object
    
    var manu=document.getElementById('manufacturer'+index);
    if(manuid==''){
        if(manu){
            manuid=manu.value;
        }
    }
    if(manuid!=''){
        if(isNaN(modid)){
            modid=0;
        }
        //delete select
        var modells=document.getElementById('modells'+index);
        clear_pull(modells);
   		var NeuerEintrag = new Option(unescape('Bitte auswählen'));
   		modells.options[0] = NeuerEintrag;
      	modells.options[0].value = "";
      	var sIndex=0;
        //fill select
           for(i in modell[index][manuid]){            
      		var NeuerEintrag = new Option(unescape(modell[index][manuid][i]['name']));
       		modells.options[modells.length] = NeuerEintrag;
          	modells.options[modells.length-1].value = i;
          	if(i==modid){
          	    sIndex=modells.length-1;
          	}
        }
        modells.selectedIndex=sIndex;
        
        //sort... :(
        
        arrTexts = new Array();
		arrValues = new Array();
		arrOldTexts = new Array();

		for(i=0; i<modells.length; i++){
			arrTexts[i]    = modells.options[i].text;
			arrValues[i]   = modells.options[i].value;
			arrOldTexts[i] = modells.options[i].text;
		}
		
		arrTexts.sort(); // Wird generell in agents.js nicht benoetigt.
		
		for(i=0; i<modells.length; i++){
			modells.options[i].text = arrTexts[i];
			for(j=0; j<modells.length; j++){
				if (arrTexts[i] == arrOldTexts[j]){
					if(j == sIndex){
        				modells.selectedIndex=i;
					}
					modells.options[i].value = arrValues[j];
					j = modells.length;
				}
			}
		} 

        return true;
    }
    return false;
}

function clear_pull(target){
    // Clear Pulldown
    if(target){
        while (target.length > 0){
            target.options[target.length-1]=null;
        }
    }
}

// For Ink,Toner,Camera,Phone,:
function clearMypull(id1,id2){
			document.getElementById(id1).selectedIndex = 0;
			document.getElementById(id2).selectedIndex = 0;
  }		

//for accus and batteries:
// todo: cleanup
function update_pulldown(sendernames,targetnames){
    var valuelist = CAP;
    for(i in sendernames){
        var senderobj=document.getElementById(sendernames[i]);
        valuelist = valuelist[escape(senderobj.options[senderobj.selectedIndex].text)];        
    }
           
    alter_pulldown(targetnames[0],valuelist);
    i=1;
    while(i < targetnames.length+1){
        // Search Target
        var targetobj=document.getElementById(targetnames[i]);
        // Clear Target
        clear_pull(targetobj);        
        i++;
    }
}

function alter_pulldown(targetname,valuelist){
    // Search Target
    var targetobj=document.getElementById(targetname);
    // Clear Target
    clear_pull(targetobj);

    var NeuerEintrag = new Option(unescape('Bitte auswählen'));
   	targetobj.options[0] = NeuerEintrag;
    targetobj.options[0].value = "";

    var sIndex=0;
    //fill select
    for(i in valuelist){
        var NeuerEintrag = new Option(unescape(i));
        targetobj.options[targetobj.length]         = NeuerEintrag;
        targetobj.options[targetobj.length-1].value = i;
    }
}

function AcceptFloat(){
    key = window.event.keyCode;
    if(key == 44){
        key=46;
        window.event.keyCode=46;
    }
    if (!(((key > 47) && (key < 58)) || (key == 46) || (key == 13))){
        window.event.keyCode=0;
    }
}

function updateNewPull(name,id){
    // Search Target
    var targetobj=document.getElementById(name);
    var selected=targetobj.value;
    // Clear Target
    clear_pull(targetobj);

//	alert(name+'    '+selected);

    var NeuerEintrag = new Option(unescape('Alle'));
   	targetobj.options[0] = NeuerEintrag;
    targetobj.options[0].value = "";

    var sIndex=0;
    //fill select
    for(i=0;i<valuearray[id].length;i++){
		if(validentry(id,i)){
	        var NeuerEintrag = new Option(unescape(valuearray[id][i]));
    	    targetobj.options[targetobj.length]         = NeuerEintrag;
        	targetobj.options[targetobj.length-1].value = i;
        	if((selected != '') && (i == selected)){
        		targetobj.options[targetobj.length-1].selected=true;
        	}
        }
    }
}

function validentry(id,i){
	for(var j=0;j<artkindarray[id][i].length;j++)
		for(var k=0;k<validartids.length;k++)
			if(validartids[k]==artkindarray[id][i][j]) return true;
	return false;
}

function joinartids(){
	var myvalidartids=new Array;
	validartids      =oldvalidartids;
	for(var pull=0;pull<pullarray.length;pull++){
		myvalidartids=new Array;
		var targetobj=document.getElementById(pullarray[pull]);
		selected=targetobj.value;
//		alert(targetobj.	name+'#'+targetobj.value);
		if(selected != ''){
			artarray=artkindarray[pull][selected];
		}else{
			artarray=oldvalidartids;
		}
		for(var i=0;i<validartids.length;i++)
			for(var j=0;j<artarray.length;j++)
				if(validartids[i]==artarray[j])
					myvalidartids[myvalidartids.length]=artarray[j];		
		validartids=myvalidartids;
	}
}

var edit		  =false;
var oldvalidartids=new Array;
var pullarray	  =new Array;
var artarray     =new Array;

function setValues(id,element){
	if(!edit){
		edit=true;
		joinartids();
		for(var i=0;i<pullarray.length;i++){
//			if(i != id){
				updateNewPull(pullarray[i],i);
//			}
		}

	if(counterobj=document.getElementById('ArtCounter')){
		counterobj.value=validartids.length;
	}
	edit=false;
	}
}

