﻿

function getposition(me)
{
    var currentRange=document.selection.createRange();   
    var workRange=currentRange.duplicate();
    me.select();
    var allRange=document.selection.createRange();
    var len=0;   

    while(workRange.compareEndPoints("StartToStart",allRange)>0)   
    {   
        workRange.moveStart("character",-1);   
        len++;   
    }   
    currentRange.select();   
    return len; 
}

function setCaretPosition(me, caretPos) 
{
     if(me != null) {
        if(me.createTextRange) {
            var range = me.createTextRange();
            range.move('character', caretPos);
            range.select();
        }
        else {
            if(me.selectionStart) {
                me.focus();
                me.setSelectionRange(caretPos, caretPos);
            }
            else
                me.focus();
        }
    }
}

function returnNumber(e)
{
    var evt = e || window.event;
    var keyPressed = evt.which || evt.keyCode;
    
    if ((keyPressed==13) || (keyPressed==8)||(keyPressed==9)||(keyPressed==46) || ((keyPressed>=37) && (keyPressed<=40))) return true;
    
    if ((keyPressed<48)||(keyPressed>57)) return false;
        
    return true;
}

function returnInt(e)
{
    var evt = e || window.event;
    var keyPressed = evt.which || evt.keyCode;
    if ((keyPressed==13) || (keyPressed==8)||(keyPressed==9)|| ((keyPressed>=37) && (keyPressed<=40))) return true;
    
    if ((keyPressed<48)||(keyPressed>57)) return false;
        
    return true;
}

function returnDouble(e)
{
    var evt = e || window.event;
    var keyPressed = evt.which || evt.keyCode;
    
    if ((keyPressed==13) || (keyPressed==8)||(keyPressed==9)||(keyPressed==46) || ((keyPressed>=37) && (keyPressed<=40))) return true;
    
    if ((keyPressed<48)||(keyPressed>57)) return false;
        
    return true;
}

function inputNumber(me, e)
{
    var evt = e || window.event;
    var keyPressed = evt.which || evt.keyCode;
    if ((keyPressed==13) || (keyPressed==9) || ((keyPressed>=37) && (keyPressed<=40))) return;
    
    var oldValue = me.value;
    var s = me.value;
    while (s.indexOf(',') >= 0)
        s = s.replace(',', '');
        
    var tmp = '';
    var i = s.length - 1;
    
    if (s.indexOf('.') >=0 )
    {
        while (s.charAt(i) != '.')
        {
            tmp = s.charAt(i) + tmp;
            --i;
        }
        --i;
        tmp = '.' + tmp;    
    }
    
    var k = 0;
    while (i >= 0)
    {
        tmp = s.charAt(i) + tmp;
        ++k;
        if ((k % 3 == 0) && (i > 0))
            tmp = ',' + tmp;
        --i;
    }
    
    if (oldValue != tmp)
    {
        i = getposition(me);
        me.value = tmp;
        if (oldValue.length < tmp.length) setCaretPosition(me,i+1);
        else if (oldValue.length > tmp.length) setCaretPosition(me,i-1);
        else setCaretPosition(me,i);
    }
}

function returnUsername(e)
{
    var evt = e || window.event;
    var keyPressed = evt.which || evt.keyCode;
    
    if ((keyPressed==13) || (keyPressed==8)||(keyPressed==9)||(keyPressed==46) || ((keyPressed>=37) && (keyPressed<=40))) return true;
    
    return '~`!@#$%^&*(){}[]|\\/;:,.<>?\'\"-+='.indexOf(String.fromCharCode(keyPressed))< 0;
}

function returnEmail(e)
{
    var evt = e || window.event;
    var keyPressed = evt.which || evt.keyCode;
    
    if ((keyPressed==13) || (keyPressed==8)||(keyPressed==9)||(keyPressed==46) || ((keyPressed>=37) && (keyPressed<=40))) return true;
    return '~`!#$%^&*(){}[]|\\/;:,<>?\'\"-+='.indexOf(String.fromCharCode(keyPressed))< 0;
}

function returnWebsite(e)
{
    var evt = e || window.event;
    var keyPressed = evt.which || evt.keyCode;
    
    if ((keyPressed==13) || (keyPressed==8)||(keyPressed==9)||(keyPressed==46) || ((keyPressed>=37) && (keyPressed<=40))) return true;
    
    return '~`!#$^&*(){}[]|\\;,<>?\'\"-+='.indexOf(String.fromCharCode(keyPressed))< 0;
}


function returnName(e)
{
    var evt = e || window.event;
    var keyPressed = evt.which || evt.keyCode;
    
    if ((keyPressed==13) || (keyPressed==8)||(keyPressed==9)||(keyPressed==46) || ((keyPressed>=37) && (keyPressed<=40))) return true;
    
    return '~`!@#$%^&*(){}[]|\\/;:,.<>?\'\"-+0123456789_='.indexOf(String.fromCharCode(keyPressed))< 0;
}

function inputAutoUpperFirstChar(me, e, delSpace)
{
    var evt = e || window.event;
    var keyPressed = evt.which || evt.keyCode;
    
    if ((keyPressed==13) || (keyPressed==9) || ((keyPressed>=37) && (keyPressed<=40))) return;
  
    var oldValue = me.value;
    var s = ' ' + me.value;
    
    if (delSpace)
    {
        while (s.indexOf('  ') >= 0)
        s = s.replace('  ', ' ');
    }
        
    var tmp = "";
    var i;
    for (i=1; i<=s.length; ++i)
    {
        var xx = s.substring(i,i+1); 
        if (s.charAt(i-1)==' ')
            tmp = tmp + xx.toUpperCase();
        else tmp =tmp + xx.toLowerCase();
        
    }
    
    
    if (oldValue != tmp) 
    {
        i = getposition(me);
        me.value = tmp;
        if (oldValue.length < tmp.length) setCaretPosition(me,i+1);
        else if (oldValue.length > tmp.length) setCaretPosition(me,i-1);
        else setCaretPosition(me,i);
    }
}

function returnDate(e)
{
    var evt = e || window.event;
    var keyPressed = evt.which || evt.keyCode;
    
    if ((keyPressed==13) || (keyPressed==8)||(keyPressed==9)||(keyPressed==46) || ((keyPressed>=37) && (keyPressed<=40))) return true;
    
    return '0123456789/'.indexOf(String.fromCharCode(keyPressed))>=0;
}
