
function check_components(){

	var new_price = 0;
	var add_price = 0;
	var tmp_amount = 0;
	var min = 1000000;
	if (components){
		for (var c in components){
			tmp_amount = document.getElementById('amount_comp[' + c + ']').value;	
			tmp_min_avail = components[c][2];
			if (document.getElementById('alt_comp[' + c + ']').value > -1 && alternatives[c]){
				for (var x in alternatives[c])
                                	if (x == document.getElementById('alt_comp[' + c + ']').value){
                                		tmp_avail = alternatives[c][x][0];
                                		break;
                                	}
			}else{
				tmp_avail = components[c][0];
			}
			cur_min = Math.floor(tmp_avail/tmp_amount);
			if (cur_min < min)
				min = cur_min;
//alert("avail "+tmp_avail+" amount "+tmp_amount+" cur_min "+cur_min +" min "+min);

			if ((mq1 > 0 && tmp_avail > mq1+tmp_min_avail)) // || unlimited_products)
                		tmp_avail = mq1 + tmp_min_avail - 1;
        		tmp_avail = Math.min(mq1, tmp_avail);
        		var select_avail1 = tmp_min_avail;
			availObj = document.getElementById('amount_comp[' + c + ']');
			if (availObj && availObj.tagName.toUpperCase() == 'SELECT') {
				if (!isNaN(tmp_min_avail) && !isNaN(tmp_avail)) {
					if ((tmp_avail-tmp_min_avail+1) != availObj.options.length) {
                                        	if (availObj.options.length > tmp_avail-tmp_min_avail+1) {
                                                	var cnt = availObj.options.length;
                                                	for (var x = (tmp_avail-tmp_min_avail+1 < 0 ? 0 : tmp_avail-tmp_min_avail+1); x < cnt; x++)
                                                        	availObj.options[availObj.options.length-1] = null;

                                        	} else {
                                                	var cnt = availObj.options.length;
                                                	for (var x = cnt+tmp_min_avail; x <= tmp_avail; x++)
                                                        	availObj.options[cnt++] = new Option(x, x);
                                        	}
                                	}

				}
				select_avail1 = availObj.options[availObj.selectedIndex].value;
			}

			if (price_model == 2){
				if (document.getElementById('alt_comp[' + c + ']').value > -1 && alternatives[c]){
					for (var y in alternatives[c])	
						if (y == document.getElementById('alt_comp[' + c + ']').value){
							new_price += alternatives[c][y][1]*tmp_amount;
							break;	
						}		
				}
				else{
					new_price += components[c][1]*tmp_amount;
				}
			}
		}
		avail = Math.min(mq1, min);
		if ((mq1 > 0 && avail > mq1+min_avail) || unlimited_products)
                	avail = mq1 + min_avail - 1;
        	avail = Math.min(mq1, avail);
        	var select_avail = min_avail;
		if (document.getElementById('product_avail')){
		availObj = document.getElementById('product_avail');
		if (availObj && availObj.tagName.toUpperCase() == 'SELECT') {
			if ((avail-min_avail+1) != availObj.options.length) {
                        	if (availObj.options.length > avail-min_avail+1) {
                                	var cnt = availObj.options.length;
                                        for (var x = (avail-min_avail+1 < 0 ? 0 : avail-min_avail+1); x < cnt; x++)
                                        	availObj.options[availObj.options.length-1] = null;
                                        } else {
                                                var cnt = availObj.options.length;
                                                for (var x = cnt+min_avail; x <= avail-min_avail+1; x++)
                                                        availObj.options[cnt++] = new Option(x, x);
                                        }
                                }
			select_avail = availObj.options[availObj.selectedIndex].value;
		}
		}

		if (price_model == 2){
			if (package_discount_amount > 0){
                        	if (package_discount_type == "absolute")
                        		new_price = new_price - package_discount_amount;
                        	else
                        		new_price = new_price*(1-package_discount_amount/100);
                        	if (new_price < 0)
                        		new_price = 0;
			}
			add_price = func_get_modi_price();
			new_price = parseFloat(new_price) + parseFloat(add_price[0]);
			if (document.getElementById('product_price'))    
               			document.getElementById('product_price').innerHTML = price_format(new_price);
			if (alter_currency_rate > 0 && document.getElementById('product_alt_price')) {
                		new_price = new_price*alter_currency_rate;
				new_price =  Math.max(new_price, 0);
                		document.getElementById('product_alt_price').innerHTML = price_format(new_price);
        		}
               }
	}
}

function check_var_components(variantid){

        var new_price = 0;
        var add_price = 0;
        var tmp_amount = 0;
        var min = 1000000;
        if (var_components[variantid] && var_components[variantid].length > 0){
                for (var c in var_components[variantid]){
                        tmp_amount = document.getElementById('amount_comp[' + c + ']').value;
                        tmp_min_avail = var_components[variantid][c][2];
                        if (document.getElementById('alt_comp[' + c + ']') && document.getElementById('alt_comp[' + c + ']').value > -1 && var_alternatives[c] && var_alternatives[c].length > 0){
                                for (var x in var_alternatives[c])
                                        if (x == document.getElementById('alt_comp[' + c + ']').value){
                                                tmp_avail = var_alternatives[c][x][0];
                                                break;
                                        }
                        }else{
                                tmp_avail = var_components[variantid][c][0];
                        }
                        cur_min = Math.floor(tmp_avail/tmp_amount);
                        if (cur_min < min)
                                min = cur_min;
//alert("VAR avail "+tmp_avail+" amount "+tmp_amount+" cur_min "+cur_min +" min "+min);

                        if ((mq1 > 0 && tmp_avail > mq1+tmp_min_avail) || unlimited_products)
                                tmp_avail = mq1 + tmp_min_avail - 1;
                        tmp_avail = Math.min(mq1, tmp_avail);
                        var select_avail1 = tmp_min_avail;
                        availObj = document.getElementById('amount_comp[' + c + ']');
                        if (availObj && availObj.tagName.toUpperCase() == 'SELECT') {
                                if (!isNaN(tmp_min_avail) && !isNaN(tmp_avail)) {
                                        if ((tmp_avail-tmp_min_avail+1) != availObj.options.length) {
                                                if (availObj.options.length > tmp_avail-tmp_min_avail+1) {
                                                        var cnt = availObj.options.length;
                                                        for (var x = (tmp_avail-tmp_min_avail+1 < 0 ? 0 : tmp_avail-tmp_min_avail+1); x < cnt; x++)
                                                                availObj.options[availObj.options.length-1] = null;

                                                } else {
                                                        var cnt = availObj.options.length;
                                                        for (var x = cnt+tmp_min_avail; x <= tmp_avail; x++)
                                                                availObj.options[cnt++] = new Option(x, x);
                                                }
                                        }

                                }
                                select_avail1 = availObj.options[availObj.selectedIndex].value;
                        }
			if (price_model == 2){
                                if (document.getElementById('alt_comp[' + c + ']') && document.getElementById('alt_comp[' + c + ']').value > -1 && var_alternatives[c] && var_alternatives[c].length > 0){
                                        for (var y in var_alternatives[c])
                                                if (y == document.getElementById('alt_comp[' + c + ']').value){
//alert("Amount "+tmp_amount+" price "+var_alternatives[c][y][1]);
                                                        new_price += var_alternatives[c][y][1]*tmp_amount;
                                                        break;
                                                }
                                }
                                else{
                                        new_price += var_components[variantid][c][1]*tmp_amount;
//alert("!!!Amount "+tmp_amount+" price "+var_components[variantid][c][1] + " new_price "+new_price);
                                }
                        }
                }
//alert("NEW min in main avail box " + min);
                avail = Math.min(mq1, min);
                if ((mq1 > 0 && avail > mq1+min_avail) || unlimited_products)
                        avail = mq1 + min_avail - 1;
                avail = Math.min(mq1, avail);
                var select_avail = min_avail;
		if (document.getElementById('product_avail')){
                availObj = document.getElementById('product_avail');
                if (availObj && availObj.tagName.toUpperCase() == 'SELECT') {
                        if ((avail-min_avail+1) != availObj.options.length) {
                                if (availObj.options.length > avail-min_avail+1) {
                                        var cnt = availObj.options.length;
                                        for (var x = (avail-min_avail+1 < 0 ? 0 : avail-min_avail+1); x < cnt; x++)
                                                availObj.options[availObj.options.length-1] = null;
                                        } else {
                                                var cnt = availObj.options.length;
                                                for (var x = cnt+min_avail; x <= avail-min_avail+1; x++)
                                                        availObj.options[cnt++] = new Option(x, x);
                                        }
                                }
                        select_avail = availObj.options[availObj.selectedIndex].value;
                }
		}
		if (price_model == 2){
                        if (package_discount_amount > 0){
                                if (package_discount_type == "absolute")
                                        new_price = new_price - package_discount_amount;
                                else
                                        new_price = new_price*(1-package_discount_amount/100);
                                if (new_price < 0)
                                        new_price = 0;
                        }
                        add_price = func_get_modi_price();
//alert("VAR new_price " +new_price+"add_price "+add_price[0]);
                        new_price = parseFloat(new_price) + parseFloat(add_price[0]);
//alert("VAR NEW price " +new_price);
                        if (document.getElementById('product_price'))
                                document.getElementById('product_price').innerHTML = price_format(new_price);
                        if (alter_currency_rate > 0 && document.getElementById('product_alt_price')) {
                                new_price = new_price*alter_currency_rate;
//alert("new_price "+new_price+" alter_currency_rate "+ alter_currency_rate);
                                new_price =  Math.max(new_price, 0);
                                document.getElementById('product_alt_price').innerHTML = price_format(new_price);
                        }
               }
        }
        //alert("Price " + new_price);
}



function func_get_component_price(){
	var new_price = 0;
	var altPrice = 0;
	if (components){
                for (var c in components){
			tmp_amount = document.getElementById('amount_comp[' + c + ']').value;
			if (price_model == 2){
                                if (document.getElementById('alt_comp[' + c + ']').value > -1 && alternatives[c]){
                                        for (var y in alternatives[c])
                                                if (y == document.getElementById('alt_comp[' + c + ']').value){
//alert("Price "+alternatives[c][y][1]);
                                                        new_price += alternatives[c][y][1]*tmp_amount;
                                                        break;
                                                }
                                }
                                else{
                                        new_price += components[c][1]*tmp_amount;
//alert("Price "+components[c][1] + " new_price "+new_price);
                                }
                        }

		}
		if (price_model == 2){
                        if (package_discount_amount > 0){
                                if (package_discount_type == "absolute")
                                        new_price = new_price - package_discount_amount;
                                else
                                        new_price = new_price*(1-package_discount_amount/100);
                                if (new_price < 0)
                                        new_price = 0;
                        }
                        if (alter_currency_rate > 0 && document.getElementById('product_alt_price')) {
				altPirce = new_price*alter_currency_rate;
                                altPrice = Math.max(altPrice, 0);
                        }
               }

	}
	return [new_price, altPrice];
}

function func_get_modi_price(){

	 var return_price = 0;
    if (typeof modifiers !== "undefined"){
	 for (var x2 in modifiers) {
                var value = getPOValue(x2);
                if (!value || !modifiers[x2][value])
                        continue;

                /* Get selected option */
                var elm = modifiers[x2][value];
                return_price += parseFloat(elm[1] == '$' ? elm[0] : (_price*elm[0]/100));
	}
    }
	return_price = price_format(return_price); 
//alert("modifier price "+return_price);

	return [return_price];
}

function func_get_component_var_price(variantid){
        var new_price = 0;
        var altPrice = 0;
        if (var_components[variantid] && var_components[variantid].length > 0){    
                for (var c in var_components[variantid]){
                        tmp_amount = document.getElementById('amount_comp[' + c + ']').value;
                        if (price_model == 2){
                                if (document.getElementById('alt_comp[' + c + ']').value > -1 && var_alternatives[c]){
                                        for (var y in var_alternatives[c])
                                                if (y == document.getElementById('alt_comp[' + c + ']').value){
//alert("Price "+var_alternatives[c][y][1]);    
                                                        new_price += var_alternatives[c][y][1]*tmp_amount;
                                                        break;
                                                }
                                }
                                else{
                                        new_price += var_components[variantid][c][1]*tmp_amount; 
//alert("Price "+var_components[variantid][c][1] + " new_price "+new_price);
                                }
                        }     
                                
                }
                if (price_model == 2){
                        if (package_discount_amount > 0){
                                if (package_discount_type == "absolute")
                                        new_price = new_price - package_discount_amount;
                                else
                                        new_price = price_format(new_price*(1-package_discount_amount/100));
                                if (new_price < 0)
                                        new_price = 0;       
                        }
                        if (alter_currency_rate > 0 && document.getElementById('product_alt_price')) {
                                altPirce = price_format(new_price*alter_currency_rate);
                                altPrice = Math.max(altPrice, 0);
                        }
               }
                                                        
        }
        return [new_price, altPrice];
}
