/**
 * @author   Sven
 * --------------------
 * @by       Johan
 * @at       2009.01.19
 * @what     Cleaning/Atalanta implementation.
 * --------------------
 * @by			Thomas
 * @at			2009.01.29
 * @what		startAlert implementation
 * --------------------
 * @by			Johan
 * @at			2009.03.10
 * @what		cleaning
 * -------------------- 
*/


//Onfocus: Reset the style and the checked of a line back to init
function resetLine(lineNum, fieldName) 
{
	document.getElementById(fieldName+lineNum).style.color = '#000000';
	if(fieldName == 'ref') 
	{
		document.getElementById('checked'+lineNum).value = 0;
		document.getElementById('dispspan'+lineNum).innerHTML = '<input id="minQty'+lineNum+'" type="hidden" value="" />';
	}
}



//Onfocus: Clear the input fields of the example text, if present, and set the exmpl field to 1
function clearExample(refExample, qteExample) 
{
 if(document.getElementById('ref1').value == refExample && document.getElementById('qte1').value == qteExample) 
 {
  document.getElementById('ref1').value = '';
  document.getElementById('qte1').value = '';
  document.getElementById('exmpl').value = 1;
 }
}



//Onfocus: Ajust the Style of the Reference for further use, do an initial check, if not conform regexp's checked = 0 else = 1
function styleRef(lineNum) 
{
 var aref = document.getElementById('ref'+lineNum).value;
 //remove all spaces, '.' ,'-', '_'
 var reg = /((\s{1,})|(\.)|(-)|(_))/;
 var i = 1;
 while(i == 1) 
 {
  var match = reg.test(aref);
  if(match) aref = aref.replace(reg, '');
  else i=0;
 }
 //Check for starting with Prefix (BG1, BV9, ...) followed by 4 or 5 chars or only 4 or 5 chars, add a 0 for starters when only 4
 var prefix = '';
 reg1 = /(^([BNbn]{1}[A-Za-z]{1}[\d-A-Za-z]{1})((\d{4})|(\d{5}))$)/;
 match1 = reg1.exec(aref);
 reg2 = /(^((\d{4})|(\d{5}))$)/;
 match2 = reg2.exec(aref);
 if(match1) 
 {
  reg = /(^([A-Za-z]{2}[\d-A-Za-z]{1}))/;
  match = reg.exec(aref);
  prefix = match[0];
  prefix = prefix+' ';
  aref = aref.substr(3);
  aref = aref.toString();
  if(aref.length == 4) aref = '0'+aref; 
 } 
 else if(match2) 
 {
  if(aref.length == 4) aref = '0'+aref; 
 }
 if(match1 || match2) 
 {
  document.getElementById('ref'+lineNum).value = prefix+aref.substr(0,3)+aref.substr(3,2);
  document.getElementById('ref'+lineNum).style.color = '#000000';
  document.getElementById('checked'+lineNum).value = 1;
 } 
 else 
 {
  document.getElementById('ref'+lineNum).value = aref;
  document.getElementById('ref'+lineNum).style.color = '#FF0000';
  document.getElementById('checked'+lineNum).value = 0;
  document.getElementById('dispspan'+lineNum).innerHTML = '<input type="hidden" id="minQty'+lineNum+'" value="" />';
 }
}



//Check if the reference is a Tete-option
function checkTet(lineNum) 
{
 //Is the reference conform the regexp
 if(document.getElementById('checked'+lineNum).value && (document.getElementById('checked'+lineNum).value == 1) && (document.getElementById('tete'+lineNum).value == 0)) 
 {
//  loadAjaxDiv('checkTet', 'div'+lineNum, lineNum, document.getElementById('ref'+lineNum).value);
  loadFile('POST', '/includes/checkTet.php', 'lineNum='+lineNum+'&lineVal='+document.getElementById('ref'+lineNum).value, 'json', postCheckTet);
 }
}



function postCheckTet(data)
{
	if(isSet(data.catalog))
	{
		document.getElementById('div'+data.lineNum).innerHTML=data.refBox;
		if(data.product == 1)
		{
			document.getElementById('tete'+data.lineNum).value=1;
		}
		checkDispVars(data.lineNum);
	}
	else
	{
		startAlert(16);
		document.getElementById('ref'+data.lineNum).value='';
	  document.getElementById('qte'+data.lineNum).value='';
	}
}



//Handles the return option of the select
function handleTet(lineNum) 
{
 if(document.getElementById('checked'+lineNum).value != 1)
 {
	 document.getElementById('checked'+lineNum).value = 1;
 }
 if(document.getElementById('tete'+lineNum).value == 1 && document.getElementById('ref'+lineNum).options[document.getElementById('ref'+lineNum).selectedIndex].value == 'clear') 
 {
  var inputHTML = '<input type="hidden" name="tete'+lineNum+'" id="tete'+lineNum+'" value="0" autocomplete="off" /><input type="text" name="ref'+lineNum+'" id="ref'+lineNum+'" value="" tabindex="'+((lineNum*2)-1)+'" class="input-large" onfocus="resetLine('+lineNum+',\'ref\');" onblur="styleRef('+lineNum+');checkTet('+lineNum+');checkDispVars('+lineNum+');" />';
  document.getElementById('div'+lineNum).innerHTML = inputHTML;
  document.getElementById('dispspan'+lineNum).innerHTML = '';
 } 
 else if(document.getElementById('tete'+lineNum).value == 1 && document.getElementById('ref'+lineNum).options[document.getElementById('ref'+lineNum).selectedIndex].value == 'select') 
 {
  document.getElementById('checked'+lineNum).value = '0';
  document.getElementById('dispspan'+lineNum).innerHTML = '<img alt="" src="/images/general/layout/pictostockrouge.gif" /><input type="hidden" value="0" name="disp'+lineNum+'" id="disp'+lineNum+'" />';
 } 
 else if(document.getElementById('tete'+lineNum).value == 1) 
 {
  aref = document.getElementById('ref'+lineNum).options[document.getElementById('ref'+lineNum).selectedIndex].value;
//  loadAjaxDiv('checkDisp', 'dispspan'+lineNum, aref, lineNum);
  loadFile('POST', '/includes/checkDisp.php', 'quickRef='+aref+'&quickLine='+lineNum, 'text', 'dispspan'+lineNum);
 }
}



function checkDispVars(lineNum) 
{
	if(document.getElementById('checked'+lineNum).value && (document.getElementById('checked'+lineNum).value == 1)) 
	{
		var aref, unique_article;
		if(document.getElementById('tete'+lineNum).value == 0) 
		{
			aref = document.getElementById('ref'+lineNum).value;
			unique_article = '';
		} 
		else 
		{
			aref = document.getElementById('ref'+lineNum).options[document.getElementById('ref'+lineNum).selectedIndex].value;
			if(aref!="select")
			{
				unique_article = document.getElementById(aref).value;
			}
		}
			
		if(aref!="select")
		{
//remove all spaces, '.' ,'-', '_'
			var reg = /((\s{1,})|(\.)|(-)|(_))/;
			var i = 1;
			while(i == 1)
			{
				var match = reg.test(aref);
				if(match) aref = aref.replace(reg, '');
				else i = 0;
			}
		}
		if(aref!="select")
		{
			loadFile('POST', '/includes/checkDisp.php', 'quickRef='+aref+'&quickLine='+lineNum, 'text', 'dispspan'+lineNum);
		}
	}
}



//Checks if the ammount good for the min.ammount 
function checkAmount(lineNum, div,minAmount,totAmount) 
{
 if(document.getElementById('checked'+lineNum).value == 1) 
 {
  var times = Math.floor(totAmount/minAmount);
  var newAmount = times * minAmount;
  if(totAmount != newAmount) {
   startAlert(7, { "minAmount": minAmount, "newAmount":  newAmount });
   document.getElementById(div).value = newAmount;
  }
 }
}


/*
//Validates all the fields and when OK ==> input in caddy else rewrite.
function validateCommande(totalCount,lang,currentRow,numCli,cmdType) 
{
 var origine = 'O01';
 var quickdelivery = 1;
 if(currentRow == 0) 
 {
  currentRow = 2;
  if(document.getElementById('exmpl').value == 1) currentRow = 1;
 } 
 else 
 {
  quickdelivery = 0;
  totalCount = currentRow;
 }
 var badRef = new Array();
 var goodRef = new Array();
 var badTetRef = new Array();
 var atype = '';
 var checked ='';
 var qte = '';
 var disp = '';
 var minQty = '';
 var minOrderOk = '';
 var message = '';
 for(var i=currentRow;i<=totalCount;i++) 
 {
  checked = document.getElementById('checked'+i).value;
  qte = document.getElementById('qte'+i).value;
  if(checked == '1') disp = document.getElementById('disp'+i).value;
  else disp = '';
  minQty = document.getElementById('minQty'+i).value;
  if(qte%minQty != 0) minOrderOk = '1';
  else minOrderOk = '0';
  if(document.getElementById('tete'+i).value == 1) 
  {
   atype = '1';
   aref = document.getElementById('ref'+i).options[document.getElementById('ref'+i).selectedIndex].value;
   if(aref == 'select') 
   {
    checked = 0;
    disp = 0;
   }
  } 
  else 
  {
   atype = '0';
   aref = document.getElementById('ref'+i).value; 
  }
  if(checked == 1 && (qte != '' || qte != 0 ) && disp != '0' && minOrderOk == '0') 
  {
   var goodRefRow = new Array();
   goodRefRow[0] = aref;
   goodRefRow[1] = qte;
   goodRef[goodRef.length] = goodRefRow;
   document.getElementById('checked'+i).value = '0';
   tabindex = (i * 2) - 1;
   document.getElementById('div'+i).innerHTML = '<div id="div'+i+'"><input type="hidden" name="tete'+i+'" id="tete'+i+'" value="0" autocomplete="off" /><input type="text" name="ref'+i+'" id="ref'+i+'" value="" tabindex="'+tabindex+'" class="input-large" onfocus="resetLine('+i+', \'ref\');" onblur="styleRef('+i+');checkTet('+i+');checkDispVars('+i+');" /></div>';
   document.getElementById('qte'+i).value = '';
   document.getElementById('dispspan'+i).innerHTML = '<input type="hidden" id="minQty'+i+'" value="" /><input type="hidden" id="disp'+i+'" value="" />';
  } 
  else 
  {
   if(aref != '' || qte != '') 
   {
    if(atype == '0') 
    {
     var badRefRow = new Array();
     badRefRow[0] = aref;
     badRefRow[1] = qte;
     badRefRow[2] = disp;
     badRefRow[3] = minQty;
     badRefRow[4] = checked;
     badRef[badRef.length] = badRefRow;
    } 
    else 
    {
     var selectedOptions = document.getElementById('ref'+i).options;
     var reflist = new Array();
     var textlist = new Array();
     for(var j=1;j<selectedOptions['length']-1;j++) 
     {
      reflist[j]  = selectedOptions[j]['value'];
      textlist[j] = selectedOptions[j]['text'];
     }
     var tetRefRow = new Array();
     tetRefRow[0] = reflist;
     tetRefRow[1] = textlist;
     tetRefRow[2] = qte;
     tetRefRow[3] = disp;
     tetRefRow[4] = minQty;
     tetRefRow[5] = checked;
     tetRefRow[6] = aref;
     badTetRef[badTetRef.length] = tetRefRow;
    }
    if(checked == 0 && aref != '' && atype != '1') 
    {
     if(lang == '110' || lang == '120') message = message+aref+': Ce r&#233;f&#233;rence est incorrecte.<br />';
     else message = message+aref+': Deze referentie klopt niet.<br />';
    } 
    else if(checked == 0 && aref == '' && (qte != '' || qte != '0')) 
    {
     if(lang == '110' || lang == '120') message = message+' N\'oubliez pas de remplir la r&#233;f&#233;rence exacte.<br />';
     else message = message+' U vergat uw referentie in te vullen...<br />';
    } 
    else if (qte == '' || qte == '0') 
    {
     if(lang == '110' || lang == '120') message = message+aref+': Veuillez nous transmettre la quantit&#233; d&#233;sir&#233;e...<br />';
     else message = message+aref+': Gelieve eveneens de hoeveelheid door te geven...<br />';
    } 
    else if(minOrderOk == '1' && minQty != '') 
    {
     if(lang == '110' || lang == '120')  message = message+aref+': La quantit&#233; choisie est malheureusement incorrecte. Cet article est seulement disponible par '+minQty+'<br />';
     else  message = message+aref+': De door u gekozen hoeveelheid is niet juist. Dit product is enkel verkrijgbaar per '+minQty+'.<br />';
    }
    else if(disp == '0' && atype == '1') 
    {
     if(lang == '110' || lang == '120') message = message+aref+': Merci de pr&#233;siser le coloris ou la taille de l\'article ci-dessous.<br />';
     else message = message+aref+': Gelieve de juiste kleur of afmeting van het door u gekozen product te kiezen.<br />';
    }
    else if (disp == '0' || minQty == '') 
    {
     if (lang == '110' || lang == '120') message = message+aref+': Cet article est compl&#232;tement &#233;puis&#233; et ne sera plus renouvel&#233;. Veuillez nous en excuser.<br />';
     else message = message+aref+': Product is uitgeput en komt niet meer binnen. Gelieve ons te verontschuldigen.<br />';
    }
   }
   document.getElementById('checked'+i).value = '0';
   tabindex = (i * 2) - 1;
   document.getElementById('div'+i).innerHTML = '<div id="div'+i+'"><input type="hidden" name="tete'+i+'" id="tete'+i+'" value="0" autocomplete="off" /><input type="text" name="ref'+i+'" id="ref'+i+'" value="" tabindex="'+tabindex+'" class="input-large" onfocus="resetLine('+i+',\'ref\');" onblur="styleRef('+i+');checkTet('+i+');checkDispVars('+i+');"/></div>';
   document.getElementById('qte'+i).value = '';
   document.getElementById('dispspan'+i).innerHTML = '<input type="hidden" id="minQty'+i+'" value="" /><input type="hidden" id="disp'+i+'" value="" />';
  }
 }
 if(quickdelivery == 1) 
 {
  var var1 = '';
  for(arow in goodRef) 
  {
   var1 += goodRef[arow][0]+'||'+goodRef[arow][1]+'//';
  }
  if(var1 != '') 
  {
//   loadAjaxDiv('changeSaldo','saldo',var1);
   loadFile('POST', 'includes/changeSaldo.php', 'quick='+var1, 'text', 'saldo');
  }
 } 
 else 
 {
  if(goodRef.length == 1)
		{
//			loadAjaxDiv('ordertypelines','lines_'+currentRow,numCli,cmdType,currentRow,'insertLine','',goodRef[0][0],goodRef[0][1],'','');
		 loadFile('POST', '/includes/ordertypelines.php', 'numCli='+numCli+'&cmdType='+cmdType+'&currentRow='+currentRow+'&action=insertLine&refArt='+goodRef[0][0]+'&qteArt='+goodRef[0][1], 'text', 'lines_'+currentRow);
		}
 }
 var newrows = '1';
 for(arow in badRef) 
 {
  if(quickdelivery == 1) document.getElementById('exmpl').value = '1';
  document.getElementById('ref'+newrows).value = badRef[arow][0];
  document.getElementById('qte'+newrows).value = badRef[arow][1];
  document.getElementById('disp'+newrows).value = badRef[arow][2];
  document.getElementById('minQty'+newrows).value = badRef[arow][3];
  document.getElementById('checked'+newrows).value = badRef[arow][4];
  newrows ++;
 }
 for(arow in badTetRef) 
 {
  if(quickdelivery == 1) document.getElementById('exmpl').value = '1';
  var inputHTML = '<input type="hidden" name="tete'+newrows+'" id="tete'+newrows+'" value="1" /><select name="ref'+newrows+'" id="ref'+newrows+'" class="input-large" onChange="handleTet('+newrows+');">';
  inputHTML = inputHTML+'<option value="select">';
  if(lang == '110' || lang == '120') inputHTML = inputHTML+'Choisissez votre couleur.';
  else inputHTML = inputHTML+'Kies uw kleur';
  inputHTML = inputHTML+'</option>';
  for(var i=1;i<badTetRef[arow][0].length;i++) 
  {
   if(badTetRef[arow][0][i] == badTetRef[arow][6]) 
   {
    inputHTML = inputHTML+'<option value="'+badTetRef[arow][0][i]+'" selected="selected">'+badTetRef[arow][1][i]+'</option>';
   } 
   else 
   {
    inputHTML = inputHTML+'<option value="'+badTetRef[arow][0][i]+'">'+badTetRef[arow][1][i]+'</option>';
   }
  }
  inputHTML = inputHTML+'<option value="clear">';
  if(lang == '110' || lang == '120') inputHTML = inputHTML+'Remplissez un autre num&eacute;ro de r&eacute;f&eacute;rence.';
  else inputHTML = inputHTML+'Vul hier een ander referentienummer in.';
  inputHTML = inputHTML+'</option></select>';
  document.getElementById('div'+newrows).innerHTML = inputHTML;
  document.getElementById('qte'+newrows).value = badTetRef[arow][2];
  document.getElementById('disp'+newrows).value = badTetRef[arow][3];
  document.getElementById('minQty'+newrows).value = badTetRef[arow][4];
  document.getElementById('checked'+newrows).value = badTetRef[arow][5];
  newrows ++;
 }
 if(badRef == '' && badTetRef == '' && goodRef != '') 
 {
  if(quickdelivery == 1) 
  {
   redirectMeTo('orderForm.php',1000);
  }
  return true;
 } 
 else 
 {
  if(quickdelivery == 1) 
  {
   document.getElementById('message').innerHTML = message;
  } 
  else 
  {
   document.getElementById('message_'+currentRow).innerHTML = message;
  }
  return false;
 }
}
*/