function IndexOfID(arr, id)
{
    for (var itr=0; itr < arr.length; itr++)
    {
        if (arr[itr].getAttribute("ID") == id)
            return itr;
    }
    return -1;
}

var dataHolder = Class.create();
dataHolder.prototype = {
    initialize: function() {       
        data = null;
        this.loadData();
    },
    
    loadData: function(lodaType , arguments, func){
        new Ajax.Request('loadCompareData.asp', {
            method:'get',
            parameters: {type: lodaType, args: arguments},
            onSuccess: function(transport){
                if(func == null){
                    data = transport.responseXML;
                }
                else{
                    func(transport.responseText);                    
                }
            },
            onFailure: function(){
                alert('Your browser cannot handle this page');
                //TODO:
                //loaction.href to a page that work with stupied javascript
                //with no ajax
            }
        }); 
    },
    
    loadDataToObj: function(lodaType , arguments, obj){
        new Ajax.Request('loadCompareData.asp', {
            method:'get',
            parameters: {type: lodaType, args: arguments},
            onSuccess: function(transport){
                obj.innerHTML = transport.responseText;
            },
            onFailure: function(){
                alert('Your browser cannot handle this page');
            }
        }); 
    },
    
    getManufactorsOutput: function () {        
        if(data == null){
            return;
        }
                               
        var manArr = data.getElementsByTagName('Manufactor');
                
        var retArr = new Array();
        for(i=0; i < manArr.length; i++)
        {   
            retArr[i] = new Array();
            retArr[i][0] = manArr[i].getAttribute("ID");
            retArr[i][1] = manArr[i].getAttribute("Name");
        }
	    return retArr;
    },
    
    getModelsOutput: function (manId) {       
        if(data == null)
        {
            return;
        }
        var str = "";
        var manArr = data.getElementsByTagName('Manufactor');
        var manIndex = IndexOfID(manArr, manId);       
        if(manIndex == -1)
        {
            return new Array();
        }
        
        var modelsArr = manArr[manIndex].getElementsByTagName('Model');        
	    var retArr = new Array();
	    for(i=0; i < modelsArr.length; i++)
	    {
	        retArr[i] = new Array();
	        retArr[i][0] = modelsArr[i].getAttribute("ID");
	        retArr[i][1] = modelsArr[i].getAttribute("Name");	        
	    }	    
	    return retArr;
    },
    
    getVersionsOutput: function (manId, modelId) {
        if(data == null)
        {
            return;
        }
        
        var manArr = data.getElementsByTagName('Manufactor');
        var manIndex = IndexOfID(manArr, manId);
        if(manIndex == -1)
        {
            return new Array();
        }
        
        var modelArr = manArr[manIndex].getElementsByTagName('Model');
        var modelIndex = IndexOfID(modelArr, modelId);
        if(modelIndex == -1)
        {
            return new Array();
        }
        
        var verArr = modelArr[modelIndex].getElementsByTagName('Version');
        var retArr = new Array();
	    for(i=0; i < verArr.length; i++)
	    {
	        retArr[i] = new Array();
	        retArr[i][0] = verArr[i].getAttribute("ID");
	        retArr[i][1] = verArr[i].getAttribute("Name");
	        retArr[i][2] = verArr[i].getAttribute("Price");	        
	    }
	    return retArr;
    }
};