Element.addMethods("SELECT", {
    getSelectedOption: function(element) {
        if (!(element = $(element))) return;
        var index = element.selectedIndex;
        return index >= 0 ? element.options[index].value : undefined;
    }
});

Element.addMethods("SELECT", {
    setSelectedOption: function(element, value) {
	   	element = $(element);
        for(var i=0; i <= element.options.length; i++)
        {
        	if(element.options[i].value == value)
        	{
        		element.options[i].selected = true;
        		element.selectedIndex = i;
        		break;
        	}
        }
        return element;
	}
});


function streckeChanged(idSelectRange, idSelectIp, idCmIp){
	if(typeof idCmIp == 'undefined')
	{
		idCmIp = 0;
	}
	idCmStrecke = $(idSelectRange).getSelectedOption();	
	new Ajax.Request('ajax/getFreeIPsFromRange.php', {
		method:'get',
		parameters: {'id_cm_strecke': idCmStrecke, 'id_cm_ip_current': idCmIp},
		onSuccess: function(transport){	
			var json = transport.responseText.evalJSON();
			//Auswahl leeren
			$(idSelectIp).innerHTML='';
			
			//Keine IP Adresse ermglichen
			var opt= document.createElement('option');
			opt.innerHTML="Keine IP Adresse";
			opt.value="0";
			$(idSelectIp).appendChild(opt);
			
			if(json.length !=0)
			{			
				for(var i = 0; i < json.length; i++)
				{
					var opt= document.createElement('option');
					opt.innerHTML=json[i].ip_address;
					opt.value=json[i].id_cm_ip;
					if(opt.value == idCmIp)
					{
						opt.selected = true;
					}
					$(idSelectIp).appendChild(opt);
				}
			}
		},
		onError: function(transport){alert(transport.responseText);}
	});
}

function loadRanges(idSelectRange, idSelectIp, iPType, idCmIp)
{
	new Ajax.Request('ajax/getRange.php', {
		method:'get',
		parameters: {'ip_type': iPType},
		onSuccess: function(transport)
		{	
			var json = transport.responseText.evalJSON();
			if(json.length > 0)
			{
				for(var i=0; i < json.length; i++)
				{
					var opt = document.createElement('option');
					opt.innerHTML=json[i].bezeichnung;
					opt.value=json[i].id_cm_strecke;
					$(idSelectRange).appendChild(opt);
				}
			}
		},
		onComplete: function(transport){setRangeIdForIdCmIp(idCmIp, idSelectRange, idSelectIp)},
		onError: function(transport){alert(transport.reponseText);}
	});
}

function setRangeIdForIdCmIp(idCmIp, idSelectRange, idSelectIp)
{
	new Ajax.Request('ajax/getRangeFromIP.php', {
		method:'get',
		parameters: {'id_cm_ip': idCmIp},
		onSuccess: function(transport){	
		var json = transport.responseText.evalJSON();
			if(json.length > 0)
			{
				$(idSelectRange).setSelectedOption(json[0].id_cm_strecke);
			}
			streckeChanged(idSelectRange, idSelectIp, idCmIp);
		},
		onError: function(transport){alert(transport.responseText);}
	});
}

function ShowHide(id) {
    obj = $(id);
    if (obj.style.display == 'none'){
    obj.style.display = 'block';
    }
    else {
    obj.style.display = 'none';
    }
}
