if(typeof(inksF_default_value) == 'undefined'){
	var inksF_default_value = 4;
	var inksB_default_value = 4;
}
/*
* change device 
*/
function changeInkOptions(deviceID,deviceList,inksFControl,inksBControl,ignoreChosenValue,inksFExtra,inksBExtra,inksFAllow,inksBAllow){
	inksFControl = $(inksFControl);
	inksBControl = $(inksBControl);
	inksF = inksFControl.val();
	inksB = inksBControl.val();

	if(ignoreChosenValue && null != inksF_default_value){
		inksF = inksF_default_value;
	}
	if(ignoreChosenValue && null != inksB_default_value){
		inksB = inksB_default_value;
	}
	if(null == deviceList || null == deviceID || deviceID < 0 || 
		null == inksFControl || null == inksBControl ||
		inksFControl.length == 0 || inksBControl.length == 0){
		return;
	}
	inksFExtra = inksFExtra || [{'label':'None','value':0}];
	inksBExtra = inksBExtra || [{'label':'None','value':0}];
	var length = deviceList.length;
	var device = null;
	for(var i = 0; i < length; i++){
		if(deviceList[i].deviceID == deviceID){
			device = deviceList[i];
			break;
		}
	}
	if(null == device){
		return;
	}
	var maxInks = parseInt(device.maxInks);
		
	if(isNaN(maxInks)){
		return;
	}
	if(inksF > maxInks || inksF == null || inksF === ''){
		inksF = maxInks;
	}
	if(inksB > maxInks || inksB == null || inksB === ''){
		inksB = maxInks;
	}

	inksFOnChange = inksFControl.attr('onchange');
	inksBOnChange = inksBControl.attr('onchange');
	
	inksFControl.attr('onchange', '');
	inksBControl.attr('onchange', '');

	var inksFOptionList = "";
	var inksBOptionList = "";
	
	for(var i = 0; i < device.supportedInks.length; i++){
		value = device.supportedInks[i];
	
		var option = get_option_node(value, value, inksF);
		//if set inksFAllow restriction only show allowd inksF option
		if(inksFAllow)
		{
			if($.inArray(value+'',inksFAllow) != -1)
			{
				inksFOptionList += option + "\n";
			}
			
		}else{
			inksFOptionList += option+ "\n";
		}
		option = get_option_node(value, value, inksB);
		//if set inksBAllow restriction only show allowd inksF option
		if(inksBAllow)
		{
			if($.inArray(value+'',inksBAllow) != -1)
			{
				inksBOptionList +=  option + "\n";
			}
			
		}else{
			inksBOptionList += option+ "\n";
		}
		
	}
	
	if(inksFExtra && inksFExtra.length > 0){
		for(var i=0; i<inksFExtra.length; i++){
			var option = inksFExtra[i];
			if(inksFAllow )
			{
			    if($.inArray(i+'',inksFAllow) != -1)
			    {
			    	inksFOptionList +=  get_option_node(option.label,option.value,inksF) + "\n";
			    }
			    	
				
			}else{
				inksFOptionList += get_option_node(option.label,option.value,inksF) + "\n";
			}
			
		}
	}
	if(inksBExtra && inksBExtra.length > 0){
		for(var i=0; i<inksBExtra.length; i++){
			var option = inksBExtra[i];
			if(inksBAllow)
			{
				if( $.inArray(option+'',inksBAllow) != -1)
				{
					inksBOptionList += get_option_node(option.label,option.value,inksB) + "\n";
				}
				
			}else{
				inksBOptionList += get_option_node(option.label,option.value,inksB) + "\n";
			}
		}
	}
	inksFControl.empty().append(inksFOptionList);
	inksBControl.empty().append(inksBOptionList);
	
	inksFControl.attr('onchange', inksFOnChange);
	inksBControl.attr('onchange', inksBOnChange);
}
function get_option_node(name,value,defaultValue){
	if(defaultValue == value){
		return "<option value='" + value+ "' " + "selected='selected'"  + ">" + name + "</option>";
	}else{
		return "<option value='" + value+ "'>" + name + "</option>";
	}
}

function fill_ink_option(selControl,data)
{

	inks = selControl.val();
	inksOptionList = '';
	var maxInks = data.length;
	for(var i = 0; i < maxInks; i++){
		var option = get_option_node(data[i], data[i],inks);
		inksOptionList += option + "\n";
	}
	//strip the last '\n'
	if(inksOptionList != '')
	{
		inksOptionList = inksOptionList.substr(0,inksOptionList.length - 2);
	}
	selControlOnChange = selControl.attr('onchange');
	selControl.attr('onchange', '');
	try{
		selControl.empty().html(inksOptionList);
	}catch(e){
		selControl.attr('value',inks);
	}
	selControl.attr('onchange', selControlOnChange);
}

