﻿window._DisableAutoTab=false;
function AutoTab(obj,e) {
if(!e && window.event) e=window.event;
if(!e) return;
if(e.keyCode==13) {
    if(!window._activeShowObj) {
            var myForm=getParentForm(obj);
            if(myForm) {
            for(var i=0;i<myForm.elements.length;i++) {
            if(myForm.elements[i]==obj) { 
                FocusNextElement(myForm,i);
                break; 
                }
            }
        }
    }
CancelEvent(e); 
return false;  
}
}

function FocusNextElement(myForm,index) {
if(!myForm) return;

 for(var j=index+1;j<myForm.elements.length;j++)
    if(myForm.elements[j] && 
        myForm.elements[j].type.toLowerCase()!="hidden" && 
        //myForm.elements[j].type!="HIDDEN" &&
        !myForm.elements[j].getAttribute("disabled") && 
        !myForm.elements[j].getAttribute("readonly") &&
        isVisible(myForm.elements[j]) ) { //isContentEditable firefox karşılığı yok
        myForm.elements[j].focus();
        try{
        if(myForm.elements[j].type=="button" || myForm.elements[j].type=="BUTTON" ||
            myForm.elements[j].type=="submit" || myForm.elements[j].type=="SUBMIT")
            myForm.elements[j].click();
            }
            catch (e){ }
        break; 
    }
}

var AutoKeyControl=false;
var DisableAutoMouseControl=false;
function AutoKeyDownControl(e) {
if(!AutoKeyControl) return; 
if(!e && window.event) e=window.event;
if(!e) return;
var obj=(e.srcElement)?e.srcElement:e.target;
if(obj && !e.shiftKey && e.keyCode==13)  {
    if(obj.getAttribute("onkeydown")) return;
    if(obj.type=="button" || obj.type=="BUTTON") return;
    if(obj.type=="submit" || obj.type=="SUBMIT") return;
    if(obj.href) return;
    if(!e.ctrlKey && obj.tagName=="TEXTAREA") return;
    AutoTab(obj,e);
}
else if(e.altKey && e.keyCode==112 && _fo("_HelpUrl") && _fo("_HelpUrl").value) // F12
{
    var w=window.open(_fo("_HelpUrl").value);
    w.focus();
    CancelEvent(e);
}
else if(e.keyCode==123) // F12
{
    FocusNextElement(getParentForm(obj),-1);
    CancelEvent(e);
    
}
else if(e.keyCode==27)
{
    MouseResetMnd();
    CancelEvent(e);
    
} 
else if((e.keyCode==49 || e.keyCode==50 || e.keyCode==51 ) && e.altKey) {
    var mnd=_fo('MouseMoveDiv');
    //1 - 49
    //2 - 50 
    //3 - 51
    if(mnd && mnd.tmpPos) {
            AutoMouseSelCheckBox(mnd.tmpLeft,mnd.tmpTop,mnd.tmpWidth,mnd.tmpHeight,e.keyCode-49);
    }
}

}

/*Mouse & Key*/


function AutoMouseSelCheckBox(x,y,width,height,chk) {
    var inputs=document.getElementsByTagName("INPUT");
    var lll="";
    for(var i=0;i<inputs.length;i++)
        if(inputs[i].getAttribute("type")=="checkbox" || inputs[i].getAttribute("type")=="CHECKBOX") {
            var left=getLeft(inputs[i])+4;
            var top=getTop(inputs[i])+4;
            var iwidth=inputs[i].clientWidth-6;
            var iheight=inputs[i].clientHeight-6;
            if(left+iwidth<x+width && left>x && //+iwidth
                top+iheight<y+height && top>y  && //+iheight
                isVisible(inputs[i])) {
                    
                    if(chk==0)
                        inputs[i].checked=!inputs[i].checked;
                     else if(chk==1)
                        inputs[i].checked=true;
                     else
                        inputs[i].checked=false;
                        
                    try{
                        if(inputs[i].onclick) 
                            inputs[i].onclick();
                    } catch (e) {}
                        
                }
            }
}


var _mouseStartX=false;
var _mouseStartY=false;


function MouseResetMnd() {
    var mnd=_fo('MouseMoveDiv');
    if(!mnd) return;
        _mouseStartX=false;
        _mouseStartY=false;
        mnd.style.top = -10000;
        mnd.style.left = -1000;
        mnd.style.width = 10;
        mnd.style.height = 10;
        mnd.tmpPos=false;
}



function AutoMouseMoveControl(e) {
    if(!AutoKeyControl) return true; 
    if(DisableAutoMouseControl) return true; 
    if(!e && window.event) e=window.event;
    if(!e) return true;
    
   var ms=getMouseXY(e);
   mouseX=ms.x;
   mouseY=ms.y;
    
    if(_mouseStartX!=false && ms.button==0) {
        MouseResetMnd();
    }
    
    if(_mouseStartX==false)
        return true;
 
    var mnd=_getMnd();
    if(!mnd) return true;
    
    

    var width=mouseX-_mouseStartX;
    var height=mouseY-_mouseStartY;
    var left=(width<0)?_mouseStartX+width:_mouseStartX;
    var top=(height<0)?_mouseStartY+height:_mouseStartY;
    if(width<0) width=-width;
    if(height<0) height=-height;

    mnd.style.top=top;
    mnd.style.left=left;
    mnd.style.width=width;
    mnd.style.height=height;

    mnd.tmpPos=true;
    mnd.tmpLeft=left;
    mnd.tmpTop=top;
    mnd.tmpWidth=width;
    mnd.tmpHeight=height;
    return true;
}

function _getMnd() {

    var mnd=_fo('MouseMoveDiv');
    if(!mnd) {
        mnd= document.createElement("div");
        mnd.id = "MouseMoveDiv";
        mnd.style.position = "absolute";
        mnd.style.zIndex = "100";
        mnd.style.top = -10000;
        mnd.style.left = -1000;
        mnd.style.width = 10;
        mnd.style.height = 10;
        mnd.style.border = "2px solid #0000cc";
        mnd.style.backgroundColor = "#3366ff";
        mnd.style.filter = "alpha(opacity=30)";
        mnd.style.opacity = 0.3;
        document.body.appendChild(mnd);
    }
    return mnd;
}


function AutoMouseFireFoxSelectDisableControl(e) {
    AutoMouseSelectControl(e);
}
function AutoMouseSelectControl(e) {
if(!AutoKeyControl) return true; 
if(DisableAutoMouseControl) return true; 
if(!e && window.event) e=window.event;
if(!e) return true;
var ms=getMouseXY(e);

if(_mouseStartX==false && ms.button==1 && e.altKey) {
    var mnd=_getMnd();
    if(!mnd) return  true;
    _mouseStartX=ms.x;
    _mouseStartY=ms.y;
    mnd.tmpPos=false;
    CancelEvent(e);
    return false;
}
}

function AutoMouseSelectDisableControl(e) {
    if(!AutoKeyControl) return true; 
    if(DisableAutoMouseControl) return true; 
    if(_mouseStartX==false) return true;
    CancelEvent(e); 
    return false;
}



addEvent(null,"mousemove",AutoMouseMoveControl);

if(window.attachEvent)
    addEvent(document,"selectstart",AutoMouseSelectDisableControl);//?ie kontrolu gerekli.
else
    addEvent(null,"mousedown",AutoMouseFireFoxSelectDisableControl);//?ie kontrolu gerekli.

addEvent(null,"mousedown",AutoMouseSelectControl);

addEvent(null,"keydown",AutoKeyDownControl);