/** 3M Global Javascripts **/

function clean(field)
{
	if (field.defaultValue == field.value){
		field.value = "";
	}
}

function showBlockCreditCard(){
	
	block = document.getElementById("blockCreditCard");
	block.className="";
}

function hiddenBlockCreditCard(){
	
	block = document.getElementById("blockCreditCard");
	block.className="disableCreditCard";
}


function validateChk(chk) {
	button = document.getElementById("ConfirmOrder");
	titleBtn = document.getElementById("TitleButton");
	if ( chk.checked == true ) {
		button.disabled=false;
		button.className="confirm_button";
		titleBtn.className="";
	}
	else {
		button.disabled=true;
		button.className="disabled_button";
		titleBtn.className="disabled";
	}
}

function validateForm() {
	
	//no validation for invoice payment
	var blockCard = document.getElementById("blockCreditCard");
	if(blockCard.className == "disableCreditCard")
	{
		return true;
	}
	else
	{
		var errorMsg = document.getElementById('error_message');
		var cardNumber = document.getElementById("creditcard_nr").value;
		var cardPin = document.getElementById("creditcard_pin").value;
		var type = "Visa";
		var typeMaster = document.getElementById("master");
		var validNumber = false;
		var validType = false;
		var validPin = false;
	
		var url = document.location.href;
		var language = url.match("/de/");
	
		if ( cardNumber == "" || cardPin == "" ) {
			if(language == "/de/"){
				errorMsg.innerHTML="Bitte geben Sie alle Kreditkarten werden Informationen.";
			}
			else
				errorMsg.innerHTML="S'il vous plaît, insérez les informations de carte de crédit.";
			return false;
		}
		else {
			 if(typeMaster.checked == true){
			 	type = "Master";
		 	 }
		 	 validNumber = isValidCardNumber(cardNumber);
		 	 validType = isCardTypeCorrect(cardNumber, type);
		 	 validPin = isValidPind(cardPin);
	
			 if ( validNumber && validType && validPin) {
				return true;
			 }
			 else{
				if(language == "/de/"){
					errorMsg.innerHTML="Die Kreditkarte ist nicht gültig. Überprüfen Sie bitte Ihre Einträge.";
				}
				else
					errorMsg.innerHTML="La carte de crédit n'est pas valide, s'il vous plaît vérifier vos entrées.";
				return false;
			}
		}
	}
}

function isValidCardNumber(strNum){
   var nCheck = 0;
   var nDigit = 0;
   var bEven = false;

   strNum = strNum.replace(/^\s+|\s+$/g, '');

   for (n = strNum.length - 1; n >= 0; n--)
   {
      var cDigit = strNum.charAt (n);
      if (isDigit (cDigit))
      {
         var nDigit = parseInt(cDigit, 10);
         if (bEven)
         {
            if ((nDigit *= 2) > 9)
               nDigit -= 9;
         }
         nCheck += nDigit;
         bEven = ! bEven;
      }
      else if (cDigit != ' ' && cDigit != '.' && cDigit != '-')
      {
         return false;
      }
   }
   return (nCheck % 10) == 0;
}
function isDigit (c)
{
   var strAllowed = "1234567890";
   return (strAllowed.indexOf (c) != -1);
}
function isCardTypeCorrect(strNum, type)
{
   var nLen = 0;
   for (n = 0; n < strNum.length; n++)
   {
      if (isDigit (strNum.substring (n,n+1)))
         ++nLen;
   }

   if (type == 'Visa')
      return ((strNum.substring(0,1) == '4') && (nLen == 13 || nLen == 16));
   else if (type == 'Master')
      return ((strNum.substring(0,2) == '51' || strNum.substring(0,2) == '52'
              || strNum.substring(0,2) == '53' || strNum.substring(0,2) == '54'
              || strNum.substring(0,2) == '55') && (nLen == 16));
   else
      return false;
}
function isValidPind(strPin)
{
   var isNumber = IsNumeric(strPin);
   if( isNumber && (strPin.length == 3) ){
   		return true;
   	}
   	else
      	return false;
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++){
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1){
         IsNumber = false;
       }
    }
   return IsNumber;
}

