function pop_win(url)
{
	window.open(url,'','toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no,menubar=no, width=650,height=736');
}

function warn(url,type)
{
	
	if (type == '')
		type = 'cat';
		
  var conf = "";
  
	switch(type)
	{
		case 'subcat':
			var conf = confirm("Sunteti sigur ca vrei sa stergeti aceasta subcategorie?\n Atentie odata cu aceasta se vor sterge \n si toate subcategoriile acesteia \n si toate produsele care tin de aceste subcategorii.");
		break;		
	}
	
	
	if(conf == true)
		window.location=url;
	else
		return false;
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");

}

function goto(url)
{
	window.location=url;
}


function toggleDiv(id,typ)
{	    
    var divName = id;
    	
	if (typ !='')
	{
	   if (typ=='hide')
	       document.getElementById(divName).style.display = 'none';
        else
        {
            if(typ == 'show')
                document.getElementById(divName).style.display = '';
        }
	}
	else
	{

        if (document.getElementById(divName).style.display == 'none')
           document.getElementById(divName).style.display = '';
        else
        	document.getElementById(divName).style.display = 'none';
	}
}



function check_change_pass()
{
	/* verifica formul de schimbare parola din admin */
	var err = "";
	if (document.getElementById('old_pass').value == "")
		err +=" Completati campul `Parola veche`.\n";
		
	if (document.getElementById('new_pass').value == "")
		err +=" Completati campul `Parola noua`.\n";
	
	if (document.getElementById('retype_new_pass').value == "")
		err +=" Completati campul `Rescriere parola noua`.\n";
	
	if (err != "")
	{
		alert(err);
		return false;
	}
	
	return true;
}

function check_login()
{
	/** functie care verifica, ca sa nu fie lasate goale campul de username si de pass din formul de login **/
	
	var err = "";
	if (document.getElementById('user').value.length<3)
		err +='Userul trebuie sa contina minim 3 caractere. \n';
	
	if (document.getElementById('password').value.length<3)
		err +='Parola trebuie sa contina minim 3 caractere. \n';
		
	if (err != "")
	{
		alert(err);
		return false;
	}
	
	return true;
	
}


function check_rec_pass()
{
	/** functie care verifica campul email la recuperarea parolei si la newsletter inscriere**/

	var err ="";
		var email = document.getElementById('email').value;
		if (email.length<3)
			err +="Emailul trebuie sa contina minim 3 caractere.\n";
			
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
		if (filter.test(email) == false)
			err += "Emailul este invalid.\n";
			
	if (err!="")
	{
		alert(err);
		return false;
	}
	
	return true;
	
}

function check_search_form()
{
	/** functie care verifica campul search la cautare produse nu este nul**/

	var err =0;
		var word = document.getElementById('cuv').value;
		if  ( (word.length == 0) || (word == ""))
			err ++;
						
	if (err!=0)
	{
		alert('Scrieti un cuvant pentru a putea incepe cautarea!!!');
		return false;
	}	
	return true;	
}

function check_adv_search()
{
	/** functie care verifica formul de advance search
	 * conditia de validare este ca sa se aleaga un producator
	 **/
	
	var err= "";
	if (document.getElementById('jumpMenu').selectedIndex == 0)
		err +='Alegeti un producator!';
		
	if (err!="")
	{
		alert(err);
		return false;		
	}
	
	return true;
}

function check_lg()
{
	var err = '';
	
	if (document.getElementById('user').value.length<5)
		err +="Userul trebuie sa aiba minim 5 caractere.\n";
		
	if (document.getElementById('pass').value.length<5)
		err +="Parola trebuie sa aiba minim 5 caractere.\n";
	
	if(err != "")	
	{ 
		alert(err);
		return false; 
	}
	
	 return true; 
}


/**
 * checkContactForm - fct care verifica formularul de request user pentru a putea descarca fisiere
 **/
function checkContactForm()
{
	var err ='';
	
	if (document.getElementById('nume_firma').value == "")
		err+='Completati numele firmei.\n';
		
	if (document.getElementById('adresa').value == "")
		err+='Completati adresa.\n';
			
	if (document.getElementById('pers_contact').value == "")
		err+='Completati numele persoanei de contact.\n';
		
	if (document.getElementById('email').value == "")
		err+='Completati emailul.\n';
		
	if (document.getElementById('tel').value == "")
		err+='Completati telefonul.\n';
		
		
	if (err!="")
	{
		alert(err);
		return false;
	}
	
	return true;
}

/**
 * verifica daca un element este checked sau nu 
 */
function IsChecked(id)
{
    if (id.checked == true)
        return true;
    return false;
}


function ShowHideFields()
{
    //campuri vizibile (visible fields)
    var vf      = new Array(); 
    //campuri care se blocheaza cand se apasa unele combinatii
    var blocked = new Array();
    //optiune pe care trebuie sa ramana blocat dropdownul cu data
    var  blockedOpts = '';
    var caz = '';

    var tip = ''; // tipul de unitate logistica bifat 
    
    // all fields
    var af = new Array();
    af = ['gtin_ul','gtin_ac','nr_art_cont','nr_lot','tip_data','data','marimea_var','val_marime_var','cantitate','nr_serial','gctin'];
    
    //all radio button array
    arb = [ 'articol_cu_continut_fix_da',
            'articol_cu_continut_fix_nu',
            'monopachet_da',
            'monopachet_nu',
            'articol_comercial_da',
            'articol_comercial_nu',
            'prod_farmaceutic_da',
            'prod_farmaceutic_nu',
            'monolot_da',
            'monolot_nu'];
    
    var tip_ul_os                    = document.getElementById('tip_ul_os');
    var tip_ul_on                    = document.getElementById('tip_ul_on');
    var tip_ul_pm                    = document.getElementById('tip_ul_pm');
    var tip_ul_ns                    = document.getElementById('tip_ul_ns');
    var tip_ul_nn                    = document.getElementById('tip_ul_nn');
    
    if(IsChecked(tip_ul_os))
        tip = 'omogena_standard';
    if(IsChecked(tip_ul_on))
        tip = 'omogena_nestandard';
    if(IsChecked(tip_ul_ns))
        tip = 'neomogena_standard';
    if(IsChecked(tip_ul_nn))
        tip = 'neomogena_nestandard';
    if(IsChecked(tip_ul_pm))
        tip = 'pachet_multiplu';
 
    var acDa                      = document.getElementById('articol_comercial_da');
    var acNu                      = document.getElementById('articol_comercial_nu');
    var monolotDa                  = document.getElementById('monolot_da');
    var monolotNu                 = document.getElementById('monolot_nu');
    var pfDa                       = document.getElementById('prod_farmaceutic_da');                     
    var pfNu                      = document.getElementById('prod_farmaceutic_nu'); 
    var accfDa                     = document.getElementById('articol_cu_continut_fix_da'); 
    var accfNu                    = document.getElementById('articol_cu_continut_fix_nu');
    var mpDa                       = document.getElementById('monopachet_da');  
    var mpNu                      = document.getElementById('monopachet_nu');  
 
    //campul sssc apare la toate formularele
    vf[0] = 'sscc';
    var i = 1;//index 
  
    switch(tip)
    {
        case 'omogena_standard':
            //model 1
            if ( (IsChecked(acDa)) && (IsChecked(accfDa)) && (IsChecked(mpNu)))
            {
                caz = 1;
                vf[i] = 'gtin_ul'; i++;
                if (IsChecked(monolotDa))
                {    
                     vf[i] = 'nr_lot';
                     i++;
                }
                vf[i] = 'tip_data';i++;
                vf[i] = 'data'; i++;
            }
            
            //model2
            if ( (IsChecked(acNu)) && (IsChecked(accfDa)) && (IsChecked(mpNu)))
            {
                caz=2;
                  vf[i] = 'gtin_ac'; i++;
                  vf[i] = 'nr_art_cont'; i++;
                  if (IsChecked(monolotDa))
                  {    
                     vf[i] = 'nr_lot';
                     i++;
                  }
                  vf[i] = 'tip_data';i++;
                  vf[i] = 'data'; i++;
            }
            

            //model3
            if ( (IsChecked(acNu)) && (IsChecked(accfNu)) && (IsChecked(mpNu)))
            {
                  caz = 3;
                  vf[i] = 'gtin_ac'; i++;
                  vf[i] = 'nr_art_cont'; i++;
                  
                  if (IsChecked(monolotDa))
                    vf[i] = 'nr_lot'; i++;
                    
                  vf[i] = 'marimea_var'; i++;
                  vf[i] = 'val_marime_var'; i++;
                  vf[i] = 'cantitate'; i++;                  
                  vf[i] = 'tip_data';i++;
                  vf[i] = 'data'; i++;
            }
            
            //model4
            if ( (IsChecked(acDa)) && (IsChecked(accfNu)) && (IsChecked(mpNu)))
            {
                  caz=4;
                  vf[i] = 'gtin_ul'; i++;
                  if (IsChecked(monolotDa))
                  {    
                     vf[i] = 'nr_lot';
                     i++;
                  }
                  vf[i] = 'marimea_var'; i++;
                  vf[i] = 'val_marime_var'; i++;
                  vf[i] = 'cantitate'; i++;                  
                  vf[i] = 'tip_data';i++;
                  vf[i] = 'data'; i++;
            }
            
            //model5
            if ( (IsChecked(acDa)) && (IsChecked(accfDa)) && (IsChecked(mpDa)))
            {
                  caz=5;
                  vf[i] = 'gtin_ul'; i++;
                  vf[i] = 'nr_lot'; i++;                  
                  vf[i] = 'nr_serial'; i++;                  
                  vf[i] = 'tip_data';i++;
                  vf[i] = 'data'; i++;
            }
        break;
    
        case 'omogena_nestandard':
            //model 6
            if ( (IsChecked(acNu)) && (IsChecked(accfDa)) && (IsChecked(mpNu)))
            {
                 caz=6;
                  vf[i] = 'gtin_ac'; i++;
                  vf[i] = 'nr_art_cont'; i++;
                  if (IsChecked(monolotDa))
                  {    
                     vf[i] = 'nr_lot';
                     i++;
                  }
                  vf[i] = 'tip_data';i++;
                  vf[i] = 'data'; i++;
            }
            //model 7
            if ( (IsChecked(acNu)) && (IsChecked(accfNu)) && (IsChecked(mpNu)))
            {
                caz=7;
                  vf[i] = 'gtin_ac'; i++;
                  vf[i] = 'nr_art_cont'; i++;
                  if (IsChecked(monolotDa))
                  {    
                     vf[i] = 'nr_lot';
                     i++;
                  }
                  vf[i] = 'marimea_var'; i++;
                  vf[i] = 'val_marime_var'; i++;
                  vf[i] = 'cantitate'; i++;                  
                  vf[i] = 'tip_data';i++;
                  vf[i] = 'data'; i++;
            }
        break;
        
        case 'pachet_multiplu':
                caz=11;
                vf[i]='gctin';i++;
                
       blocked = arb;
    break;
        
        case 'neomogena_standard':
            //model 8
            if ( (IsChecked(acDa)) && (IsChecked(accfNu)) )
            {
                  caz=8
                  vf[i] = 'gtin_ul'; i++;
                  if (IsChecked(monolotDa))
                  {    
                     vf[i] = 'nr_lot';
                     i++;
                  }
				  
				  vf[i] = 'marimea_var'; i++;
                  vf[i] = 'val_marime_var'; i++;
                  vf[i] = 'cantitate'; i++;                  
                  vf[i] = 'tip_data';i++;
                  vf[i] = 'data'; i++;
              
				blocked = ['monopachet_da','monopachet_nu'];
                
				
                blockedOpts =1;// 'amb';
            }
			
			if ( (IsChecked(acDa)) && (IsChecked(accfDa)) )
			{
				  caz='8_bis';
                  vf[i] = 'gtin_ul'; i++;
                  if (IsChecked(monolotDa))
                  {    
                     vf[i] = 'nr_lot';
                     i++;
                  }
				  
				  vf[i] = 'tip_data';i++;
                  vf[i] = 'data'; i++;
                      
             
				blocked = ['monopachet_da','monopachet_nu'];
                
				
			}
            //model 9
            if ( (IsChecked(acNu)))
            {
                  
                  caz=9;
                  vf[i] = 'nr_lot'; i++;
                  vf[i] = 'tip_data';i++;
                  vf[i] = 'data'; i++;
                  
                  blocked =[ 'articol_cu_continut_fix_da',
                            'articol_cu_continut_fix_nu',
                            'monopachet_da',
                            'monopachet_nu'];
                               
                  blockedOpts =2;// 'amb';
            }
        
        break;
        
        case 'neomogena_nestandard':
        caz=10;
                blocked = [ 'articol_cu_continut_fix_da',
            'articol_cu_continut_fix_nu',
            'monopachet_da',
            'monopachet_nu',
            'articol_comercial_da',
            'articol_comercial_nu',           
            'monolot_da',
            'monolot_nu'];
        break;   
    }
    
    //setare o variabila externa cu numele campurilor active pentru a ma putea folosi de ele in alte functii
    var t='';
    for(j=0;j<vf.length;j++)
        t+=vf[j]+',';
        
	//alert(t);
    document.getElementById('visibleFields').value=t;  
        
    // aparitie/disparitie campuri aferente
    for (k=0;k<af.length;k++)
    {
        semafor =0;
        // id-ul <TR>-ului care contine campul ce trebe pitit sau aratat
        var idTr = 'tr_'+af[k];
        //alert(idTr);
        for(j=0;j<vf.length;j++)
        {
            if (af[k] == vf[j])
                semafor = 1;            
        }  
        //daca am capul in array-ul cu campurile care trebuiesc aratate verific daca este vizibil sau nu si daca nu este il fac vizibil
        //daca nu am campul in array cu camp care tre aratate dar el este afishat atunci il pitesc
        if (semafor == 1)
        {        
            if (document.getElementById(idTr).style.display == 'none')
            {
                document.getElementById(idTr).style.display = '';
                // am pus = ''  in loc de block sau table-row pt ca sa mearga si pe FF si pe IE
                //http://jszen.blogspot.com/2004/07/table-rowsrevealed.html
            }
        }        
        else
        {
			
            if (document.getElementById(idTr).style.display != 'none')
            {
                document.getElementById(idTr).style.display = 'none';
                document.getElementById(af[k]).value = null;
                
            }
        }   
    }
    
    //blocare/deblocare butoane radio
    for (l=0;l<arb.length;l++)
    {
        flag=0;
        for (m=0;m<blocked.length;m++)
        {
            if (arb[l] == blocked[m])
                flag =1;   
        }
        
        if (flag == 1)
        {
             if (document.getElementById(arb[l]).disabled == false)
                document.getElementById(arb[l]).disabled = true;
        }    
        else
        {
            if (document.getElementById(arb[l]).disabled == true)
                document.getElementById(arb[l]).disabled = false;
        }
    
    }
    
    if (blockedOpts!='')
    {
		if (blockedOpts == 1)
		{
			document.getElementById('data_amb').disabled = true;
			document.getElementById('data_exp').disabled = true;
			document.getElementById('val_min').disabled = true;
		}
		if (blockedOpts == 2)
		{
			document.getElementById('data_prod').disabled = true;
			document.getElementById('data_exp').disabled = true;
			document.getElementById('val_min').disabled = true;
		}
       // document.getElementById('tip_data').disabled = true;
        document.getElementById('tip_data').selectedIndex = blockedOpts;
		
		document.getElementById('data').disabled = false;
		document.getElementById('data').className = 'label128';
    }
    else
    {
         if(document.getElementById('tip_data').disabled == true)
               document.getElementById('tip_data').disabled = false;
    }
    
  /*  if (caz != '')
        alert('Model '+caz);
    else
        alert('Caz NECUNOSCUT');
  */ 
    /*                   
    var gtin_ul                   = document.getElementById('gtin_ul');                     
    var gtin_ac                   = document.getElementById('gtin_ac');                     
    var nr_art_cont               = document.getElementById('nr_art_cont');                     
    var nr_lot                    = document.getElementById('nr_lot');                     
    var tip_data                  = document.getElementById('tip_data');                     
    var data                      = document.getElementById('data');                     
    var marimea_var               = document.getElementById('marimea_var');       
    var val_marime_var            = document.getElementById('val_marime_var');                     
    var cant                      = document.getElementById('cantitate');
    var nr_serial                 = document.getElementById('nr_serial');                                   
    var gctin                     = document.getElementById('gctin');
      */


}
    
/**
 *Checksum - fct care testeaza daca un camp anume ca sssc,GLN,GTIN cu un nr variabil de chars are 
 * digitul de checksum corect;
 * Algoritm : 
 * - se extrage ultima cifra din cod care reprezinta digitu de control 
 * - de la prima la penultima se inmulteste cu cheia : 3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3 , fiecare digit din cod
 *   cu cifra 3 sau 1 a pozitiei aferente lui, ex : primu digit se imn cu 3, al doilea cu 1, al treilea cu 3 sampd
 * - se face totalul acestor sume partiale
 * - se rotunjeste la 10 (cel putin asa am inteles eu )
 * in engleza suna sa : Substract from sum the nearest equal or higher multiple of ten.
 * - cifra care rezulta din scadere tre sa fie digitu de control ca sa fie corect codul
 **/    
   


function CS(st)
{	
    //digitul de control care tre sa fie = sum % 10 
	var str = String(st);
    var strLen	=0;
	strLen = str.length;
	var diff =0;
	diffo = strLen-1;
	var checkDigit = str.charAt(diffo);
	var sum = 0;
    
    var cod='' ;
	
	var ind;
    for(ind=0;ind<diffo;ind++)
    {
        if (str.charAt(ind)!='')
            cod +=str.charAt(ind);
    }   
	
	
    var codLen = cod.length;
	
    var key = new Array();
    
    key = [3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3];
    var kLen = key.length;
   
    //diferenta intre cate cifre are codul si cate are cheia
    // daca codul meu are mai putine mai pun 0 in fatza de atatea ori cat sa ajunga la dimeniunea cheii
    var diff = 0;
    var tempStr = '';
    if (codLen<kLen)
    {
        diff = kLen - codLen;
        for (j=0;j<diff;j++)
            tempStr +='0';       
    }
     
     if (diff != 0)
        cod = tempStr+cod;       

    for(l=0;l<kLen;l++)
        sum += ( (cod.charAt(l)*1.0) * key[l]);          
   
    var s = sum.toString(); 
    var ultimaCifra = s.charAt(s.length-1)*1.0;
	
    if (ultimaCifra !== 0)
        checkDigitDedus = 10-ultimaCifra;
    else
        checkDigitDedus = 0;


   if ( checkDigit == checkDigitDedus )   
		return true;
   else
		return false;
	
}

 
/**
 *CALC Checksum - fct care testeaza daca un camp anume ca sssc,GLN,GTIN cu un nr variabil de chars are 
 * diferenta fata de fc de mai sus este ca aceasta imi calculeaza checksumu pe cand cealata verifica daca este ok 
 * digitul de checksum corect;
 * Algoritm : 
 * - se extrage ultima cifra din cod care reprezinta digitu de control 
 * - de la prima la penultima se inmulteste cu cheia : 3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3 , fiecare digit din cod
 *   cu cifra 3 sau 1 a pozitiei aferente lui, ex : primu digit se imn cu 3, al doilea cu 1, al treilea cu 3 sampd
 * - se face totalul acestor sume partiale
 * - se rotunjeste la 10 (cel putin asa am inteles eu )
 * in engleza suna sa : Substract from sum the nearest equal or higher multiple of ten.
 * - cifra care rezulta din scadere tre sa fie digitu de control ca sa fie corect codul
 **/    
        
function calcCS(str)
{
	
	str = String(str);
   var sum = 0;    
    var cod='' ;
    for(i=0;i<str.length;i++)
    {
        if (str.charAt(i)!='')
            cod +=str.charAt(i);
    }   

    var codLen = cod.length;
    var key = new Array();
    
    key = [3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3];
    var kLen = key.length;
    
    //diferenta intre cate cifre are codul si cate are cheia
    // daca codul meu are mai putine mai pun 0 in fatza de atatea ori cat sa ajunga la dimeniunea cheii
    var diff = 0;
    var tempStr = '';
    if (codLen<kLen)
    {
        diff = kLen - codLen;
        for (j=0;j<diff;j++)
            tempStr +='0';       
    }
     
     if (diff != 0)
        cod = tempStr+cod;       

    for(l=0;l<kLen;l++)
        sum += ( (cod.charAt(l)*1.0) * key[l]);          
   
    var s = sum.toString(); 
    var ultimaCifra = s.charAt(s.length-1)*1.0;
    if (ultimaCifra !== 0)
        checkDigitDedus = 10-ultimaCifra;
    else
        checkDigitDedus = 0;
   
    return checkDigitDedus;
}



function CheckInfoUl()
{
    var err = '';
    var vfs =  document.getElementById('visibleFields');
    //daca nu se apasa nimik rulez eu fct asta spre a face vizibile campurile catre trebuiesc
    if (vfs.value == '')
        ShowHideFields();
        
    //verific campurile active ... sa vad daca am vreunu la care tre sa fac verificari 
//    alert(vfs.value);   
    var vfsArr = vfs.value.split(',');
    for (i=0;i<vfsArr.length-1;i++)
    {
          
        if (vfsArr[i] === 'gtin_ul')
        {
			
            var disp = document.getElementById('gtin_ul').style.display;
            if ( disp !== 'none'  )
            {
			
				if(document.getElementById('gtin_ul').value != '')
                {
			
                    if(!validate('n',14,'gtin_ul'))
                        err+='GTIN unitate logistica contine caractere nepermise \n sau nu are numarul de caractere necesar';
                        
                    if (document.getElementById('articol_cu_continut_fix_nu').checked == true)
                    {
                        if (document.getElementById('gtin_ul').value.charAt(0)!=9)
                            err+='GTIN unitate logistica este gresit - nu incepe cu 9.\n';    
                    }
                    
                    if (!CS(document.getElementById('gtin_ul').value))
                      err+='GTIN unitate logistica este gresit - eroare CheckSum.\n';    
                }
            }       
        }

        if (vfsArr[i] == 'sscc')
        {
           var disp = document.getElementById('ssccBody').style.display;                    
           if ( disp !== 'none'  )
			{
					sscc=document.getElementById('ssccPrimaCifra').value+document.getElementById('ssccCountryPrefix').value+document.getElementById('ssccPrefix').value+document.getElementById('ssccBody').value+document.getElementById('ssccChecksum').value;
                    if (!CS(sscc))
						err+='SSCC este gresit - eroare CheckSum.\n';
            }                   
        }        
        
        if (vfsArr[i] === 'gtin_ac')
        {
			
            var disp = document.getElementById('gtin_ac').style.display;
            if ( disp !== 'none'  )
            {
                if(document.getElementById('gtin_ac').value != '')
                {
                    if(!validate('n',14,'gtin_ac'))
                        err+='GTIN articol continut are caractere nepermise \n sau nu are numarul de caractere necesar. \n';
                    
                     if (!CS(document.getElementById('gtin_ac').value))
                        err+='GTIN articol continut este gresit - eroare CheckSum.\n';    
                }
            }       
        } 
        
        if (vfsArr[i] === 'data')
        {
            var disp = document.getElementById('data').style.display;
            if ( disp !== 'none'  )
            {
                var dval = document.getElementById('data').value;
                if (dval != '')
                {   
                   	var filter=/^[0-9]{6}$/i
	               	if (filter.test(document.getElementById('data').value) == false)
        			 err += "Data este invalida. Lungime minima obligatorie 6 cifre.\n";
                    else
                    {
                         var an = dval.charAt(0)+dval.charAt(1);
                         if (an > 30)
                            err+="Data este invalid.\n";
                         var luna = dval.charAt(2)+dval.charAt(3);
                         if (luna > 12)
                            err+="Data este invalida.\n";
                            
                         var zi = dval.charAt(4)+dval.charAt(5);
                         if (zi > 31)
                            err+="Data este invalida.\n";
                    }	
                }
                
            }
        
        } 
        
        if (vfsArr[i] === 'val_marime_var')
        {
        // alert(document.getElementById('val_marime_var').value);
            var disp = document.getElementById('val_marime_var').style.display;
            if ( disp !== 'none'  )
            {
                if(document.getElementById('val_marime_var').value != '')
                {
                    if(document.getElementById('val_marime_var').value.length < 6)
                    {
                        var diff = 6 - document.getElementById('val_marime_var').value.length;
                        var ts = '';
                        for(i=0;i<diff;i++)
                        {
                            ts+='0';
                        }
                        
                        document.getElementById('val_marime_var').value =ts+document.getElementById('val_marime_var').value;
                        
                     }   
                   // if(!validate('n',6,'val_marime_var'))
                     //   err+='Marimea Variabila are caractere nepermise \n sau nu are numarul de caractere necesar. \n';
                    
                    // if (!CS('gtin_ac'))
                       // err+='GTIN articol continut este gresit - eroare CheckSum.\n';    
                }
            }       
        }        
    }
    

    
    if(err!='')
    {
        alert(err);
        return false;       
    }
    
    return true;
}
    
/** Verifica formularul de check info transport **/
function CheckInfoTrans()
{
    var err = '';
    
    if (document.getElementById('gln').value!='')
    {
         if(!validate('n',13,'gln'))
           err+='GLN are caractere nepermise \n sau nu are numarul de caractere necesar. \n';
        //if (!CS(document.getElementById('gln')))
          //  err+='GLN este gresit -- Checksum.\n';
    }
    
    if (document.getElementById('nr_identificare_exp').value!='')
    {
         if(!validate('n',17,'nr_identificare_exp'))
           err+='NR identificare expeditie are caractere nepermise \n sau nu are numarul de caractere necesar. \n';
        //if (!CS(document.getElementById('gln')))
          //  err+='GLN este gresit -- Checksum.\n';
    }
    
    if(err!='')
    {
        alert(err);
        return false;       
    }
    
    return true;
}

/**
 * Block and Unset - blocheaza si deseteaza un camp in fuctie de ce se petrece in altul, adica daca in campul master am ceva, campul slave este disabled si sters,
 *                    daca in master nu am nimic atunci slave se deblocheaza 
 **/
function BlockAndUnsetField(masterID,slaveID,blockedClass,unblockedClass)
{
    
    if (blockedClass == '')
        blockedClass = 'label128_disabled';
        
    if (unblockedClass == '')
        unblockedClass = 'label128';
        
        
    var master = document.getElementById(masterID);  
    var slave = document.getElementById(slaveID);
    
    if (master.value != '')
    {
        slave.disabled = true;
        slave.className=blockedClass;
        slave.value='';          
    }
    else
    {
        slave.disabled = false;
          slave.className=unblockedClass;
    }    
}

/**
 * enable/disable a field with id "inId" When an dropdown selectedIndex = 0
 **/
function EnDiField(ddId,inId)
{
    var dd  = document.getElementById(ddId);
    var inp = document.getElementById(inId);
    
	if (dd.disabled == false)
	{
		if (dd.selectedIndex == 0)        
		{
			inp.disabled = true;
			inp.className = 'label128_disabled';       
			inp.value = '';
		}
		else
		{
			inp.disabled = false; 
			inp.className = 'label128';       
		}
	}
}

/**
 * fct care valideaza un camp de tip numeric/alfanumeric/alfa si un numar de caractere
 **/
function validate(tip,numar,fieldId)
{

    var err = '';    

    switch(tip)
    {
        case 'a':        
            var f=new RegExp('^([a-zA-Z]{'+numar+'})$','i');
        break;
        
        case 'an':        
            var f=new RegExp('^([a-zA-Z0-9]{'+numar+'})$','i');
        break;
        
        case 'n':        
            var f= new RegExp('^([0-9]{'+numar+'})$','i');
            //var f = /^([0-9]{18})$/i;
        break;              
    }
 
 
    var fVal = document.getElementById(fieldId).value;

    if (fVal !='')
    {
        if (f.test(fVal) == false)
			return false;
        else
            return true;
     }
    else
        return true; 
}   



function setSsccBodyLength(prefix)
{
	if (prefix != '')
	{
		document.getElementById('ssccBody').disabled = false;
	}
	else
	{
		document.getElementById('ssccBody').disabled = true;	
	}
	
	document.getElementById('ssccBody').value = '';
	
	prefixLength = prefix.length;
	var ssccbl = 13-(prefixLength*1);
	
	setLength('ssccBody',ssccbl);

}


function setLength(id, length)
{
   document.getElementById(id).setAttribute('maxlength', length);
}


function calcChecksum()
{
	var err = '';
	
	if (document.getElementById('ssccPrefix').selectedIndex == 0)
		err +='Alegeti Prefixul de companie. \n';

	if (document.getElementById('ssccBody').value.length == 0)
		err +='Alegeti corpul SSCC.\n';
		
	if (err != "")
	{
		alert(err);
		return false;
	}
	else
	{
		sscc = document.getElementById('ssccPrimaCifra').value+document.getElementById('ssccCountryPrefix').value+document.getElementById('ssccPrefix').value+document.getElementById('ssccBody').value;
		checksum = calcCS(sscc);
		document.getElementById('ssccChecksum').value=checksum;		
	}
}

