function ProductSelecter() {
    this.product = {};

    this.product["PROD12"] = {
        attributes:['PerforationOvalHolesTangent','SurfaceFoilcovered','InstallationWallLinings','Size450x2400x9'],
        id:"45",
        title:"Adit",
        url:"/Default.aspx?ID=115"
    };
        
    this.product["PROD209"] = {
        attributes:['PerforationOvalHolesTangent','SurfacePainted','InstallationWallLinings','Size600x600x12','SpecialSoundDiffusion'],
        id:"48",
        title:"Amfipanel",
        url:"/Default.aspx?ID=2841"
    };
        
    this.product["PROD17"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfacePainted','InstallationDemountableSuspended','Size600x600x12','Size625x625x12'],
        id:"12",
        title:"Belgravia",
        url:"/Default.aspx?ID=86"
    };
        
    this.product["PROD9"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationRegula','SurfaceFoilcovered','InstallationWallLinings','Size600x1200x12','Size600x1800x12','Size600x2400x12','SpecialImpactResistance'],
        id:"42",
        title:"Contrapanel",
        url:"/Default.aspx?ID=112"
    };
        
    this.product["PROD28"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationRegula','SurfaceFoilcovered','InstallationNondemountable','Size600x1200x12','Size600x1800x12','Size600x2400x12','SpecialImpactResistance'],
        id:"32",
        title:"Contrapanel",
        url:"/Default.aspx?ID=105"
    };
        
    this.product["PROD16"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfacePainted','InstallationDemountableSuspended','Size600x600x12','Size625x625x12'],
        id:"11",
        title:"Contur",
        url:"/Default.aspx?ID=87"
    };
        
    this.product["PROD23"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfacePainted','InstallationDemountableSelfsupporting','Size300x1200x9','SpecialAccessToInstallations'],
        id:"20",
        title:"Corridor 400",
        url:"/Default.aspx?ID=99"
    };
        
    this.product["PROD25"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationRegula','SurfaceFoilcovered','InstallationDemountableSelfsupporting','Size300xLx12','SpecialExtraFireSafety','SpecialAccessToInstallations'],
        id:"22",
        title:"Corridor F30",
        url:"/Default.aspx?ID=101"
    };
        
    this.product["PROD24"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationRegula','SurfacePainted','InstallationDemountableSelfsupporting','Size600x1200x12','Size600x1500x12','Size600x1800x12','SpecialAccessToInstallations'],
        id:"21",
        title:"Corridor Swing",
        url:"/Default.aspx?ID=100"
    };
        
    this.product["PROD14"] = {
        attributes:['PerforationRegula','SurfaceUntreated','InstallationCurvedPanels','SizeCustomfit'],
        id:"60",
        title:"Curvex",
        url:"/Default.aspx?ID=119"
    };
        
    this.product["PROD10"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationRegula','SurfacePainted','InstallationWallLinings','Size600x600x12'],
        id:"43",
        title:"Danopanel",
        url:"/Default.aspx?ID=113"
    };
        
    this.product["PROD29"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationRegula','SurfacePainted','Size600x600x12'],
        id:"33",
        title:"Danopanel",
        url:"/Default.aspx?ID=106"
    };
        
    this.product["PROD21"] = {
        attributes:['PerforationRegula','SurfaceFoilcovered','InstallationDemountableSuspended','Size600x600x6','Size600x1200x6','Size600x1200x9','Size625x625x9','Size600x600x9','SpecialExtraHygiene'],
        id:"16",
        title:"Danotile",
        url:"/Default.aspx?ID=88"
    };
        
    this.product["PROD7"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfaceUntreated','InstallationWallLinings','Size900x2700x12','Size1200x2400x12'],
        id:"40",
        title:"Designpanel",
        url:"/Default.aspx?ID=110"
    };
        
    this.product["PROD26"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfaceUntreated','InstallationNondemountable','Size900x2700x12','Size1200x2400x12'],
        id:"30",
        title:"Designpanel",
        url:"/Default.aspx?ID=103"
    };
        
    this.product["PROD11"] = {
        attributes:['SurfacePainted','InstallationWallLinings','Size600x600x12','SpecialSoundDiffusion'],
        id:"44",
        title:"Kinopanel",
        url:"/Default.aspx?ID=114"
    };
        
    this.product["PROD18"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationRegula','SurfacePainted','InstallationDemountableSuspended','Size600x600x12'],
        id:"13",
        title:"Linear",
        url:"/Default.aspx?ID=95"
    };
        
    this.product["PROD19"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfacePainted','InstallationDemountableSuspended','Size600x1200x12','Size625x1250x12','Size600x600x12','Size625x625x12'],
        id:"14",
        title:"Markant",
        url:"/Default.aspx?ID=96"
    };
        
    this.product["PROD22"] = {
        attributes:['PerforationRegula','SurfaceFoilcovered','InstallationDemountableSuspended','Size600x600x9'],
        id:"17",
        title:"Medley",
        url:"/Default.aspx?ID=98"
    };
        
    this.product["PROD13"] = {
        attributes:['PerforationRegula','SurfaceUntreated','InstallationMitredPanels','SizeCustomfit'],
        id:"50",
        title:"Mitex",
        url:"/Default.aspx?ID=118"
    };
        
    this.product["PROD220"] = {
        attributes:['SurfacePainted','InstallationDemountableSuspended','Size600x600x12'],
        id:"18",
        title:"NEW: Unity 6 System",
        url:"/Default.aspx?ID=2944"
    };
        
    this.product["PROD20"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfacePainted','InstallationDemountableSuspended','Size600x1200x9','Size600x1200x12','Size625x1250x12','Size600x600x9','Size600x600x12','Size625x625x12'],
        id:"15",
        title:"Plaza",
        url:"/Default.aspx?ID=97"
    };
        
    this.product["PROD33"] = {
        attributes:['PerforationContinuousRythmicHoleDesign','SurfaceUntreated','InstallationNondemountable','Size900x2700x12','Size1200x2400x12'],
        id:"46",
        title:"Solopanel",
        url:"/Default.aspx?ID=164"
    };
        
    this.product["PROD30"] = {
        attributes:['PerforationContinuousRythmicHoleDesign','SurfaceUntreated','InstallationNondemountable','Size900x2700x12','Size1200x2400x12'],
        id:"34",
        title:"Solopanel",
        url:"/Default.aspx?ID=107"
    };
        
    this.product["PROD34"] = {
        attributes:['PerforationContinuousRandomHoleDesign','SurfaceUntreated','InstallationNondemountable','Size1200x1875x12','Size1200x2500x12'],
        id:"47",
        title:"Stratopanel",
        url:"/Default.aspx?ID=165"
    };
        
    this.product["PROD31"] = {
        attributes:['PerforationContinuousRandomHoleDesign','SurfaceUntreated','InstallationNondemountable','Size1200x1875x12','Size1200x2500x12'],
        id:"35",
        title:"Stratopanel",
        url:"/Default.aspx?ID=108"
    };
        
    this.product["PROD8"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','SurfaceUntreated','InstallationWallLinings','Size300x1200x9','Size600x1200x12','Size625x1250x12','Size300x1200x12','Size400x600x9','Size600x600x12','Size600x2400x12','Size625x625x12'],
        id:"41",
        title:"Tectopanel",
        url:"/Default.aspx?ID=111"
    };
        
    this.product["PROD27"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfaceUntreated','InstallationNondemountable','Size300x1200x9','Size600x1200x12','Size625x1250x12','Size300x1200x12','Size400x600x9','Size600x600x12','Size600x2400x12','Size625x625x12'],
        id:"31",
        title:"Tectopanel",
        url:"/Default.aspx?ID=104"
    };
        
    this.product["PROD15"] = {
        attributes:['PerforationOvalHolesTangent','PerforationRegula','SurfacePainted','InstallationDemountableSuspended','Size400x1200x12'],
        id:"10",
        title:"Vista",
        url:"/Default.aspx?ID=94"
    };
        
    this.curtains = {};
    
    this.curtains["Perforation"] = {
        options:{
            PerforationOvalHolesTangent:"Oval holes - Tangent",
            PerforationRoundHolesGlobe:"Round holes - Globe",
            PerforationLargeSquareHolesQuadril:"Large square holes - Quadril",
            PerforationSmallSquareHolesMicro:"Small square holes - Micro",
            PerforationRegula:"Regula",
            PerforationContinuousRythmicHoleDesign:"Continuous Rythmic Hole Design",
            PerforationContinuousRandomHoleDesign:"Continuous Random Hole Design"
        },
        element:document.createElement("select")
    };
        
    this.curtains["Surface"] = {
        options:{
            SurfaceFoilcovered:"Foil-covered",
            SurfacePainted:"Painted",
            SurfaceUntreated:"Untreated"
        },
        element:document.createElement("select")
    };
        
    this.curtains["Installation"] = {
        options:{
            InstallationWallLinings:"Wall linings",
            InstallationDemountableSuspended:"Demountable Suspended",
            InstallationNondemountable:"Nondemountable",
            InstallationDemountableSelfsupporting:"Demountable Selfsupporting",
            InstallationCurvedPanels:"Curved panels",
            InstallationMitredPanels:"Mitred panels "
        },
        element:document.createElement("select")
    };
        
    this.curtains["Size"] = {
        options:{
            Size450x2400x9:"450x2400x9",
            Size600x600x12:"600x600x12",
            Size625x625x12:"625x625x12",
            Size600x1200x12:"600x1200x12",
            Size600x1800x12:"600x1800x12",
            Size600x2400x12:"600x2400x12",
            Size300x1200x9:"300x1200x9",
            Size300xLx12:"300x lx12",
            Size600x1500x12:"600x1500x12",
            SizeCustomfit:"Customfit",
            Size600x600x6:"600x600x6",
            Size600x1200x6:"600x1200x6",
            Size600x1200x9:"600x1200x9",
            Size625x625x9:"625x625x9",
            Size600x600x9:"600x600x9",
            Size900x2700x12:"900x2700x12",
            Size1200x2400x12:"1200x2400x12",
            Size625x1250x12:"625x1250x12",
            Size1200x1875x12:"1200x1875x12",
            Size1200x2500x12:"1200x2500x12",
            Size300x1200x12:"300x1200x12",
            Size400x600x9:"400x600x9",
            Size400x1200x12:"400x1200x12"
        },
        element:document.createElement("select")
    };
        
    this.curtains["Special"] = {
        options:{
            SpecialSoundDiffusion:"Sound diffusion",
            SpecialImpactResistance:"Impact resistance",
            SpecialAccessToInstallations:"Access to installations",
            SpecialExtraFireSafety:"Extra fire safety",
            SpecialExtraHygiene:"Extra hygiene"
        },
        element:document.createElement("select")
    };
        
    this.content = document.getElementById('productselecter');
    this.content.innerHTML = "";


    this.header = document.createElement("div");
    this.header.innerHTML = "Product selecter";
	this.header.className = 'productSelector_Header';
    this.content.appendChild(this.header);

    this.body = document.createElement("div");
	this.body.className = 'productSelector_Body';
    this.content.appendChild(this.body);

    for ( var c in this.curtains ) {

        var row = document.createElement("div");
        var label = document.createElement("label");
            label.innerHTML = c;
            label.setAttribute("FOR","id" + c);
			label.className = 'productSelector_Label';
        row.appendChild(label)
        row.appendChild(this.curtains[c]["element"]);
        this.curtains[c]["element"].style.width = "200px";
        this.body.appendChild(row);


        corbiz.addEventHandler(this.curtains[c]["element"],"change",this.update.bind(this,this.curtains[c],this.curtains[c]["element"]));
        this.curtains[c]["element"].options[this.curtains[c]["element"].options.length] = new Option('Select',0);

        for ( var o in this.curtains[c]["options"] ) {
            this.curtains[c]["element"].options[this.curtains[c]["element"].options.length] = new Option(this.curtains[c]["options"][o],o);
        }//for

    }//for

    this.result = document.createElement("div");
	this.result.className = 'productSelector_Result';
    this.content.appendChild(this.result);

    this.reset = document.createElement("button");
    this.reset.appendChild(document.createTextNode("Reset"));
    var row = document.createElement('div');
    row.appendChild(this.reset);
    row.style.marginTop = '15px';
    this.body.appendChild(row);
    corbiz.addEventHandler(this.reset,"mouseup", function () {
        var ps = new ProductSelecter();
    });

}//ProductSelecter


ProductSelecter.prototype.update = function(curtain, element) {

    //lock selection:
    var option = new Option(curtain["options"][element.options[element.selectedIndex].value],element.options[element.selectedIndex].value);
    curtain["element"].options.length = 0;
    curtain["element"].options[0] = option;

    //get all selected attributes
    var selected = [];
    for ( var c in this.curtains ) {
        if ( this.curtains[c].element.options[this.curtains[c].element.selectedIndex].value != "0" ) {
            selected[selected.length] = this.curtains[c].element[this.curtains[c].element.selectedIndex].value;
        }//if
    }//for

    var products = [];
    //get all products matching selected attributes
    for ( var p in this.product ) {
        var addthis = true;
        for ( var c = 0; c < selected.length; c++ ) {
            if ( !this.product[p].attributes.contains(selected[c]) ) addthis = false;
        }//for

        if ( addthis ) {    
            products[products.length] = this.product[p];
        }//if

    }//for

    var attributes = [];
    for ( var c = 0; c < products.length; c++ ) {
        for ( var a = 0; a < products[c].attributes.length; a++ ) {
            if ( !attributes.contains(products[c].attributes[a]) ) attributes[attributes.length] = products[c].attributes[a];
        }//for
    }//for
    
    //remove attributes not contained in product list
    for ( var c in this.curtains ) {
        if ( this.curtains[c].element.options.length > 1 ) {
            this.curtains[c]["element"].options.length = 0;
            this.curtains[c]["element"].options[this.curtains[c]["element"].options.length] = new Option('Select',0);
            for ( var o in this.curtains[c]["options"] ) {
                if ( attributes.contains(o) ) { 
                    this.curtains[c]["element"].options[this.curtains[c]["element"].options.length] = new Option(this.curtains[c]["options"][o],o);
                }//if
            }//for
        }//if
    }//for

    html = '';
    for ( var c = 0; c < products.length; c++ ) {
        html += '<div class="productSelector_Product">'
        html += '<img src="http://cloud.corbiz.dk/danoline/image.php?id=' + products[c]["id"] + '">';
		html += '<br />';
        html += '<a href="' + products[c]["url"] + '">' + products[c]["title"] + '</a>';
        html += '</div>';
    }//for

    this.result.innerHTML = html;

}

