/**
 * 2009 - Schwarz & Weiss - Dacian Stanciu
 * Formule de calcul pret
 * 
 * 03.10.2009 - fixat calculPret in caz de tva 0
 * 19.06.2009 - rescris functii calcul pret + taxa verde + tva...
 * 
 */

/**
 * Adauga TVA la suma introdusa
 * @param {float} suma
 * @param {integer} tvaIN
 * @return {float} suma+TVA
 * @example addTVA(10) => 11.9
 */
function addTVA(suma,tvaIN){
	var tva = (!tvaIN ? 1.19 : ((tvaIN/100)+1)),
		val = parseFloat(suma) * parseFloat(tva);
		val = Math.round(val*100)/100;	//rotunjeste a 3-a zecimala
	return val; //.toFixed(2); //returneaza string
}

/**
 * Extrage TVA din pret
 * @param {Object} suma
 * @param {Object} TVA
 * @return {float} suma-TVA
 * @example extractTVA(11.9) => 10
 */
function extractTVA(suma,tvaIN){
	var tva = (!tvaIN ? 1.19 : ((tvaIN/100)+1)),
		val = parseFloat(suma) / parseFloat(tva);
		
		val = Math.round(val*100)/100;	//rotunjeste a 3-a zecimala
	return val;
}

/**
 * In addModProd - folosit la calculul pretului cu TVA
 */
function calcPret(){
	var div=$("#totalPriceDiv"),
		sum=parseFloat($("#price").val()),
		pcs=parseInt($("#minpcs").val()),
		tva=parseInt($("#vat").val());
	
	var suma=(tva>0?addTVA(sum*pcs,tva):sum*pcs);
		suma=((parseInt(suma)==0 || !suma) ? "---" : suma.toFixed(2));
		
	div.html(suma);
}

/**
 * Calcul tva taxaVerde
 */
function calcTaxaVerde(){
	var div=$("#taxaVerdeDiv"),
		sum=parseInt($("#taxaverde").val()),
		suma=addTVA(sum);
		suma=((parseInt(suma)==0 || !suma) ? "---" : suma.toFixed(2));
	
	div.html(suma);
}


/*-------------------------------------------------[ COS PRODUSE ]*/
/**
 * Defineste actiunea butonului pentru adaugarea produsului in cos
 * <div class='btnAdd' title="10" >produs 10</div>
 * $(".btnAdd").addToCos();
 * 
 * Daca e definita functia afiseazaCos, o cheama in cadrul event-ului click
 * trimite rezultatul intors de la ajax si obiectul curent (butonul apasat)
 */
$.fn.addToCos = function(){
	$(this).each(function(){
		var obj=$(this);
		var id=obj.attr("id");
			
		obj.click(function(){
			$.ajax({
				type: "POST",
				cache: false,
				dataType: "html",
				url: "../../adminAJAX.php",
				data: ({"suw":"cos","id":id,"ret":"edit"}),
				success: function(msg){
					if( typeof userAddToCosHandler == "function")
						userAddToCosHandler(msg,obj);
				}
			});
		});
	});
};



/**
 * Vizualizare cos din partea publica
 * 
 * 
 * @param {boolean} edit - true/false edit mode
 */
function previewCos(edit,call){
	var obj=$(this);
	var mode=(edit?"&edit=true":'');
	
	$.ajax({
		type: "POST",
		cache: false,
		dataType: "html",
		url: "../../adminAJAX.php",
		data: "suw=cos"+mode,
		success: function(msg){
				call(msg);
		}
	});
};


/**
 * Update pos produse table - se genereaza cu 
 * cosProduse::statusCosHTML();
 * @param {Object} data
 */
function updateCosProduseJS(data){
	$("#statusCosNum").html(data.nrprod);
	$("#statusCosTotal").html(data.total);
};

/**
 * FX pentru row hover randuri cos produse
 */
var cosEditMode=false;
function cosProduseFX(){
	var obj=$(".cosProduse tr").slice(1,-1);
	obj.each(function(){
		var obj=$(this);
		obj.mouseover(function(){
			if(cosEditMode==false){
				obj.addClass("cosProduseOver");
				$(this).find("input").addClass("cosInputOverFX");
			}
		})
		.mouseout(function(){
			obj.each(function(){
				cosProduseFXUnlight(this);
			});
		});
	});//end each
};

function cosProduseFXUnlight(obj){
	$(obj).removeClass("cosProduseOver");
	$(obj).find("input").removeClass("cosInputOverFX");
};

/**
 * Initializeaza editare si update cos nr bucati pt tabelul
 * de modificare cos produse.
 */
function cosInitEdit(){
	//Buc Input handler
	$(".cosInput").each(function(){
		var obj=$(this);
		var cache=obj.val();
		
		$(this).focus(function(){
			cosEditMode=true;
		
		//save current value, add css class
			cache=$(this).val();
			obj.addClass("cosInputFocus");
			
		//disable mouse over fx
			$(".cosProduse tr").slice(1,-1).each(function(){ cosProduseFXUnlight(this) });
		//numbers only	
			obj.keydown(function(e){
				var key = e.charCode || e.keyCode || 0;
				var special=[9,8,46,37,39,13];	//tab,del,backspace, 37,39 left,right
				var allow = parseInt(jQuery.inArray(key,special));
			//enter	
				if(key==13){
					obj.blur();
				}					
				return ((key >= 48 && key <= 57) || (key >= 96 && key <= 105) || (allow>=0));
			});
			
		}).blur(function(){
			cosEditMode=false;
			var buc=$(this).val();
			$(this).removeClass("cosInputFocus");
			
		//valoare stearsa sau nula
			if((buc==0)||(buc='')){
				obj.val(cache);
				return;
			}
			
		//initializeaza schimbare cos
			if( $(this).val() != cache){
				cache=buc=$(this).val();
				
			//citeste date pt trimitere
				var container=$(this).parent().parent().parent().parent();
				var img=$(this).parent().parent().find("img");
				var src=img.attr("src");
				
			//schimba imaginea	
				var prodID=img.attr("alt");
				var oldBtn=src.replace( /.*\//, "" );
				var newBtn=src.replace(oldBtn,"ajax_load_transp_wt.gif");	
				img.attr("src",newBtn);
				
			//trimite modificare	
				$.ajax({
					type: "POST",
					cache: false,
					dataType: "html",
					url: "../../adminAJAX.php",
					data: ({"suw":"cos","id":prodID,"buc":buc,"ret":"edit"}),
					success: function(msg){
					  //reciteste tabela cos
						container.html(msg);
					}
				});
				return;
			}//end schimba	
		});
	});
	
 //Delete product handler
  $(".cosInputDeleteBTN").each(function(){
  	var obj=$(this);
	var tr=obj.parent().parent();
	var container=$(this).parent().parent().parent().parent();
	
	obj.toggle(
		function(){tr.addClass("cosInputDelete");},
		function(){tr.removeClass("cosInputDelete");}
	).mouseleave(function(){
		var delID=$(this).attr("alt");
		if($(this).parent().parent().hasClass("cosInputDelete")){
			//schimba imaginea
				var src=obj.attr("src");
				var oldBtn=src.replace( /.*\//, "" );
				var newBtn=src.replace(oldBtn,"ajax_load_transp_wt.gif");	
				obj.attr("src",newBtn);
			
			$.ajax({
				type: "POST",
				cache: false,
				dataType: "html",
				url:  "../../adminAJAX.php",
				data: ({"suw":"cos","del":delID,"ret":"edit"}),
				success: function(msg){
				//update container	
					container.html(unescape(msg));
					
				//cheama functia user daca e definita
					if( typeof userDelFromCosHandler == "function")
							userDelFromCosHandler(delID);
				}
			});
		}//end if
	});//end mouseleave
	
  });
};

