var firstSelectRun = 0;

function initPriceJs(){
    if(firstSelectRun != 0)return;
    firstSelectRun++;  
    
    // Show select boxes
    if(document.getElementById("product"))insertOptions();
}


// Inserts option tags into price field
function insertOptions(){
    var variantsContainer = document.getElementById('variants');    
    var firstSelect = document.createElement('select');
    var secondSelect = document.createElement('select');
    secondSelect.setAttribute("name","product_id");

    // Clear pricetags
    var s = variantsContainer.getElementsByTagName("P");
    for(var k=s.length;k>0;k--)s[0].parentNode.removeChild(s[0]);
    var s = variantsContainer.getElementsByTagName("H3");
    for(var k=s.length;k>0;k--)s[0].parentNode.removeChild(s[0]);
    
    // Create new price tag
    var priceDiv=document.createElement("DIV");
    priceDiv.setAttribute("id","price");
    var priceLink=document.createElement('P');       
    priceDiv.appendChild(priceLink);
    document.getElementById("buy").appendChild(priceDiv);

    // Create delivery tag
    var deliveryDiv=document.createElement("DIV");
    deliveryDiv.setAttribute("id","delivery");
    document.getElementById("variants").appendChild(deliveryDiv);

    firstSelect.setAttribute('id', 'variantSelect1');

    firstSelect.onchange = function(){        
        if(this.selectedIndex == 0)return;                
        document.getElementById('variantSelect2').length = 0;
        insertOption(document.getElementById('variantSelect2'), secondSelectName, '-1', '-1','-1','-1');
        /* Loops through the variantsizes */        
        for(var j = 1; j < variants[this.selectedIndex-1].length; j++){
            var sizeLabel = variants[this.selectedIndex-1][j][0];
            var sizePrice = variants[this.selectedIndex-1][j][1];
            var sizeId = variants[this.selectedIndex-1][j][2];
            var galleryId = variants[this.selectedIndex-1][j][3];
            var deliveryId = variants[this.selectedIndex-1][j][4];
            var stockStatus = variants[this.selectedIndex-1][j][5];
            insertOption(document.getElementById('variantSelect2'), sizeLabel, sizePrice, sizeId, galleryId,deliveryId, stockStatus);
        }
        document.getElementById("price").innerHTML = "<p>" + pricetext + " " + document.getElementById('variantSelect2').options[1].getAttribute("rel") +" " + currency + "</p>";
        if(document.getElementById('variantSelect2').options[1].getAttribute("stock") != 0){
            document.getElementById("delivery").innerHTML = "<p>" + stocktext + " " + document.getElementById('variantSelect2').options[1].getAttribute("stock") +"</p>";
        }else{
            document.getElementById("delivery").innerHTML = "<p>" + deliverytext + " " + document.getElementById('variantSelect2').options[1].getAttribute("delivery") + "</p>";
        }        
        if(secondSelectName == ':')document.getElementById('variantSelect2').selectedIndex = 1;
        showGallery(document.getElementById('variantSelect2').options[1].id);        
    }

    secondSelect.setAttribute('id', 'variantSelect2');
    secondSelect.onchange = function(){
        if(this.selectedIndex == 0)return;
        document.getElementById("price").innerHTML = "<p>" + pricetext + " " + this.options[this.selectedIndex].getAttribute("rel") +" " + currency + "</p>";
        if(this.options[this.selectedIndex].getAttribute("stock") != 0){
            document.getElementById("delivery").innerHTML = "<p>" + stocktext + " " + this.options[this.selectedIndex].getAttribute("stock") +"</p>";
        }else{
            document.getElementById("delivery").innerHTML = "<p>" + deliverytext + " " + this.options[this.selectedIndex].getAttribute("delivery") + "</p>";
        }
        showGallery(this.options[this.selectedIndex].id);     
    }

    document.getElementById('quantity').appendChild(firstSelect);
    document.getElementById('quantity').appendChild(secondSelect);

    var firstVariantsBox = document.getElementById('variantSelect1');
    var secondVariantsBox = document.getElementById('variantSelect2');

    /* Loops through the variants */    
    insertOption(firstVariantsBox, firstSelectName, '-1', '-1','-1','-1');
    for(var i = 0; i < variants.length; i++){
        insertOption(firstVariantsBox, variants[i][0], i);
        if(i < 1){
            insertOption(secondVariantsBox, secondSelectName, '-1','-1','-1','-1');
            for(var j = 1; j < variants[0].length; j++){                
                var sizeLabel = variants[0][j][0];
                var sizePrice = variants[0][j][1];
                var sizeId = variants[0][j][2];
                var galleryId = variants[0][j][3];
                var deliveryId = variants[0][j][4];
                var stockStatus = variants[0][j][5];
                insertOption(secondVariantsBox, sizeLabel, sizePrice, sizeId, galleryId, deliveryId, stockStatus);
            }
        }
    }
    if(firstSelectName == ':')firstVariantsBox.style.visibility='hidden';
    if(secondSelectName == ':'){
        secondVariantsBox.style.display='none';
        secondVariantsBox.selectedIndex = 1;
    }    
    document.getElementById("price").innerHTML = "<p>" + pricetext + " " + secondVariantsBox.options[1].getAttribute("rel") +" " + currency + "</p>";
    if(secondVariantsBox.options[1].getAttribute("stock") != 0){
        document.getElementById("delivery").innerHTML = "<p>" + stocktext + " " + secondVariantsBox.options[1].getAttribute("stock") +"</p>";    
    }else{
        document.getElementById("delivery").innerHTML = "<p>" + deliverytext + " " + secondVariantsBox.options[1].getAttribute("delivery") +"</p>";
    }
    
        
}

// Insert option tag
function insertOption(container, label, price, product, gallery, delivery, stock){
    var newOption = document.createElement('option');            
    newOption.innerHTML = label;
    newOption.value = product;
    newOption.id = gallery;
    newOption.setAttribute("rel",price);
    newOption.setAttribute("delivery",delivery);
    newOption.setAttribute("stock",stock);    
    container.appendChild(newOption);
}
