///////////////////////////
//Custom Tag Java Script //
// Feb. 04 2007          //
// v 1.0                 //
///////////////////////////

function increaseNumber(form,numStr,increaseAmount,digitCount,decimalCount){
    var cal_form = document.forms[form];
    var currentbox = cal_form.elements[numStr]
    var currentValue = currentbox.value.toString().replace(/\,/g,'') * 1 ;
    
    currentValue = (100 * (currentValue + increaseAmount));
    currentValue /= 100;

    currentbox.value=formatNumber(currentValue,digitCount,decimalCount);
}

function decreaseNumber(form,numStr,decreaseAmount,digitCount,decimalCount){
    var cal_form = document.forms[form];
    var currentbox = cal_form.elements[numStr]
    var currentValue = currentbox.value.toString().replace(/\,/g,'') * 1  ;

    if (currentValue > 0){
        currentValue = (100 * (currentValue - decreaseAmount));
        currentValue /= 100;
    }    
    else
        currentValue = 0;

    currentbox.value=formatNumber(currentValue,digitCount,decimalCount);
}

function setPhoneNumber(phoneName){
   var phone = document.getElementById(phoneName);
   var phoneCode = document.getElementById(phoneName+"Code")
   var phoneNumber = document.getElementById(phoneName+"Number")
   phone.value = phoneCode.value + phoneNumber.value;
}

function setCCardNumber(ccardName){
   var ccard = document.getElementById(ccardName);
   var part1 = document.getElementById(ccardName+"Part1")
   var part2 = document.getElementById(ccardName+"Part2")
   var part3 = document.getElementById(ccardName+"Part3")
   var part4 = document.getElementById(ccardName+"Part4")
   ccard.value = part1.value + part2.value + part3.value + part4.value;
}

function AutoTab(input, maxLength, next){
    var tn=input.value;
    var currentLength = tn.length;  
    next = document.getElementById(next);
    if(currentLength== maxLength) {
    //  if(next.value=="") {                //   ******* ( bu if devreye alinirsa kullanici önceki kutulari editlediginde sonraki kutuya atlamaz
            next.focus();
            next.select();
    //  }
    }
}

function CheckValidPhoneNumbersForCTTag(input){  
    var elementValue = input.value;
    var newCharPosition = input.value.length-1;
    var numbers = new Array("0","1","2","3","4","5","6","7","8","9");
    var elementCharValue = input.value.substring(newCharPosition);
    var beforeEnterChar;
    var validChar = false;
    
    if(newCharPosition!='0')
      beforeEnterChar = input.value.substring(0,newCharPosition);
    else
      beforeEnterChar = "";
    
    for (var i=0; i<numbers.length; i++) {
         if(numbers[i]==elementCharValue){
            validChar= true;
            break;
         }       
    }
    
    if(validChar == true)
      input.value=elementValue;
    else
      input.value=beforeEnterChar;
}

function CheckValidPhoneNumbers(formName,elementName){  
    
    var cal_form = document.forms[formName];
    var element = cal_form.elements[elementName];
    
    var elementValue = element.value;
    var newCharPosition = element.value.length-1;
    var numbers = new Array("0","1","2","3","4","5","6","7","8","9");
    var elementCharValue = element.value.substring(newCharPosition);
    var beforeEnterChar;
    var validChar = false;
    
    if(newCharPosition!='0')
      beforeEnterChar = element.value.substring(0,newCharPosition);
    else
      beforeEnterChar = "";
    
    for (var i=0; i<numbers.length; i++) {
         if(numbers[i]==elementCharValue){
            validChar= true;
            break;
         }       
    }
    
    if(validChar == true)
      element.value=elementValue;
    else
      element.value=beforeEnterChar;
       
}


//Numpad functions is starting her

var numpadTarget;
              
function getElementPos(paramElement, paramDir){
    (paramDir=="x") ? pos = paramElement.offsetLeft : pos = paramElement.offsetTop;
    tempElement = paramElement.offsetParent;
    while(tempElement != null){
        pos += (paramDir=="x") ? tempElement.offsetLeft : tempElement.offsetTop;
        tempElement = tempElement.offsetParent;
    }
    return(pos);

} 
  
function setNumPadTarget(target){
    numpadTarget = document.getElementById(target);
    showNumPad(target);
}
  
function showNumPad(numpadTarget){

     if(numpadTarget == 'ccyear' || numpadTarget=='ccmonth'){
           marginX = getElementPos(document.getElementById('ccyear'), 'x');
           marginY = getElementPos(document.getElementById('ccyear'), 'y');                            
           document.getElementById('numpadContainer').style.top = marginY - 3 + 'px';
           document.getElementById('numpadContainer').style.left = marginX + 150 + 'px';
           document.getElementById('numpadContainer').style.display = "block";
     }
     else if (numpadTarget == 'cvv'){
           marginX = getElementPos(document.getElementById('cvv'), 'x');
           marginY = getElementPos(document.getElementById('cvv'), 'y');                            
           document.getElementById('numpadContainer').style.top = marginY - 3 + 'px';
           document.getElementById('numpadContainer').style.left = marginX + 180 + 'px';
           document.getElementById('numpadContainer').style.display = "block";
     }
     else {
           marginX = getElementPos(document.getElementById('creditCardInfo.cardNumberPart4'), 'x');
           marginY = getElementPos(document.getElementById('creditCardInfo.cardNumberPart4'), 'y');                            
           document.getElementById('numpadContainer').style.top = marginY - 3 + 'px';
           document.getElementById('numpadContainer').style.left = marginX + 45 + 'px';
           document.getElementById('numpadContainer').style.display = "block";
     }
     
} 

function numpad(id){
    
    var value = document.getElementById(id).value;
    var numpadAction = document.getElementById("numpadAction").value;
    
    if(numpadTarget.id == 'ccyear' || numpadTarget.id=='ccmonth'){
          switch(value.toString()){
          case 'Sil':
              document.getElementById('ccmonth').value = "";
              document.getElementById('ccyear').value = "";
                  
              setNumPadTarget('ccmonth');                                                                                                  
          break;
          default:
              if(numpadTarget.value.length ==2){
                  
                  newNumPadTarget = 'ccyear';
                  setNumPadTarget(newNumPadTarget);
              }
              if(numpadTarget.value.length > 0){
               if(numpadTarget.value.length < 4){numpadTarget.value += value;}
              }else{
              numpadTarget.value = value;
              }
          break;
          }  
    }
    else if(numpadTarget.id == 'cvv'){
          switch(value.toString()){
          case 'Sil':
              document.getElementById('cvv').value = "";
              setNumPadTarget('cvv');                                                                                                  
          break;
          default:
              if(numpadTarget.value.length ==4){
                  textID = numpadTarget.id.toString().substring(numpadTarget.id.toString().length-1,numpadTarget.id.toString().length);
                  if(parseInt(textID) < 4){
                  textID = parseInt(textID)+1;
                  newNumPadTarget = numpadTarget.id.toString().substring(0,numpadTarget.id.toString().length-1) + textID;
      
                  setNumPadTarget(newNumPadTarget);
                  }
      
              }
              if(numpadTarget.value.length > 0){
               if(numpadTarget.value.length < 4){numpadTarget.value += value;}
              }else{
              numpadTarget.value = value;
              }
          break;
          }
    }
    else{
          switch(value.toString()){
          case 'Sil':
              document.getElementById('creditCardInfo.cardNumberPart1').value = "";
              document.getElementById('creditCardInfo.cardNumberPart2').value = "";
              document.getElementById('creditCardInfo.cardNumberPart3').value = "";
              document.getElementById('creditCardInfo.cardNumberPart4').value = "";       
              setNumPadTarget('creditCardInfo.cardNumberPart1');                                                                                                  
          break;
          default:
              if(numpadTarget.value.length ==4){
                  textID = numpadTarget.id.toString().substring(numpadTarget.id.toString().length-1,numpadTarget.id.toString().length);
                  if(parseInt(textID) < 4){
                  textID = parseInt(textID)+1;
                  newNumPadTarget = numpadTarget.id.toString().substring(0,numpadTarget.id.toString().length-1) + textID;
      
                  setNumPadTarget(newNumPadTarget);
                  }
      
              }
              if(numpadTarget.value.length > 0){
               if(numpadTarget.value.length < 4){numpadTarget.value += value;}
              }else{
              numpadTarget.value = value;
              }
          break;
          }
          setCCardNumber('creditCardInfo.cardNumber');
    }
    
    
    if(numpadAction == 0)
      fixedNumbers();
    else
      mixedNumbers();
    
}
  
function checkLength(target, newTarget){
    if(target.value.length == 4){
        numpadTarget = document.getElementById(newTarget);
    }
}
  
function hideNumPad(){
     document.getElementById('numpadContainer').style.display = "none";
}
  
function fixedNumbers(){
    
     document.getElementById('numpadKey0').value="0";
     document.getElementById('numpadKey1').value="1";
     document.getElementById('numpadKey2').value="2";
     document.getElementById('numpadKey3').value="3";
     document.getElementById('numpadKey4').value="4";
     document.getElementById('numpadKey5').value="5";
     document.getElementById('numpadKey6').value="6";
     document.getElementById('numpadKey7').value="7";
     document.getElementById('numpadKey8').value="8";
     document.getElementById('numpadKey9').value="9";
     
     document.getElementById('numpadAction').value = "0";
     
}

function randomNumberGenerate(maxIn,length){               
      var notExist=true;
      var resultNumber=new Array();
      for(var z=0;z<length;z++)
            resultNumber[z]=-1;                           
          for(var i=0;i<length;i++){
            var ranD = Math.floor(Math.random()*(maxIn));
            var ranI=ranD;
            for(var j=0;j<length&&notExist&&resultNumber[j]!=-1;j++){
                  if(resultNumber[j]==ranI){
                        notExist=false;
                  }                                                     
            }
            if(notExist)
                  resultNumber[i]=ranI;
            else{
                  i--;
                  notExist=true;
            }                       
          }       
            return resultNumber;          
}
  
function mixedNumbers(){
    
    var resultNumber= randomNumberGenerate(10,10);
    
    document.getElementById('numpadKey0').value=resultNumber[0];
    document.getElementById('numpadKey1').value=resultNumber[1];
    document.getElementById('numpadKey2').value=resultNumber[2];
    document.getElementById('numpadKey3').value=resultNumber[3];
    document.getElementById('numpadKey4').value=resultNumber[4];
    document.getElementById('numpadKey5').value=resultNumber[5];
    document.getElementById('numpadKey6').value=resultNumber[6];
    document.getElementById('numpadKey7').value=resultNumber[7];
    document.getElementById('numpadKey8').value=resultNumber[8];
    document.getElementById('numpadKey9').value=resultNumber[9];
    
    document.getElementById('numpadAction').value = "1";
    
}