// toggle elements

function togglemenu(obj){
    var menu = document.getElementById(obj);
    if (menu.style.display == 'none'){
        menu.style.display='block';
    }else{
        menu.style.display='none';
    }
}

// open elements

function openmenu(obj){
    var menu = document.getElementById(obj);
    menu.style.display='block';
}

// close elements

function closemenu(obj){
    var menu = document.getElementById(obj);
    menu.style.display='none';
}

// text counter function

function textCounter(field,cntfield,maxlimit){
    if (field.value.length > maxlimit){
        field.value = field.value.substring(0, maxlimit);
    }else{
    cntfield.value = maxlimit - field.value.length;
    }
}

// insert value into textarea at cursor

function insert(el,ins){
    if (el.setSelectionRange){
        el.value = el.value.substring(0,el.selectionStart) + ins + el.value.substring(el.selectionStart,el.selectionEnd) + el.value.substring(el.selectionEnd,el.value.length);
    }
    else if (document.selection && document.selection.createRange){
        el.focus();
        var range = document.selection.createRange();
        range.text = ins + range.text;
    }
}

// horizontal div scroller

var hs;hs = 1;
function hscroll(){
    d = document.getElementById("hscroller");
    d.scrollLeft=hs;
    diff = (d.scrollWidth - d.offsetWidth);

    if(d.scrollLeft == diff){
        d.scrollLeft = 0;
        hs = 1;
    }
    hs = hs + 1;
    window.setTimeout("hscroll()", 10);
}

// drag div x/y

function dragImgxy(img,evt,how){
    how = how || "relative";
    img.style.position = how;
    var root = document.documentElement || document.body;
    var x = img.xPos || (how == "relative" ? 0 : img.offsetLeft);
    var y = img.yPos || (how == "relative" ? 0 : img.offsetTop);
    var mx = evt.pageX || evt.clientX + root.scrollLeft;
    var my = evt.pageY || evt.clientY + root.scrollTop;
    document.onmousemove = function (evt){
        evt = evt || window.event;
        var newmx = evt.pageX || evt.clientX + root.scrollLeft;
        var newmy = evt.pageY || evt.clientY + root.scrollTop;
        x += newmx - mx;
        y += newmy - my;
        mx = newmx;
        my = newmy;
        img.style.left = x+"px";
        img.style.top = y+"px";
        img.style.zIndex = "1";
        return false;
    }
    document.onmouseup = function(){
        document.onmousemove = document.onmouseup = null;
        img.xPos = x;
        img.yPos = y;
        img.style.zIndex = "";
        return false;
    }
    return false;
}

// drag div y-only

function dragImg(img,evt,how){
    how = how || "relative";
    img.style.position = how;
    var root = document.documentElement || document.body;
    var y = img.yPos || (how == "relative" ? 0 : img.offsetTop);
    var my = evt.pageY || evt.clientY + root.scrollTop;
    document.onmousemove = function (evt){
        evt = evt || window.event;
        var newmy = evt.pageY || evt.clientY + root.scrollTop;
        y += newmy - my;
        my = newmy;
        img.style.top = y+"px";
        img.style.zIndex = "1";
        return false;
    }
    document.onmouseup = function(){
        document.onmousemove = document.onmouseup = null;
        img.yPos = y;
        img.style.zIndex = "";
        return false;
    }
    return false;
}

// ajax create a new xmlhttpRequest object

var xmlhttp = false;
try{
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
    try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (E){
        xmlhttp = false;
    }
}
if (!xmlhttp && typeof XMLHttpRequest != 'undefined'){
    xmlhttp = new XMLHttpRequest();
}

// ajax get

function makerequest(serverPage, objID){
    var obj = document.getElementById(objID);
    xmlhttp.open("GET", serverPage);
    xmlhttp.onreadystatechange = function(){
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
            obj.innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.send(null);
}
