﻿var pid = '';


//AJAX Worker Function: replaces innerHTML of target element with new "slice" from tools.aspx
function getSlice(slicename, param, param2, target) {

    var xmlhttp = new XMLHttpRequest();
    document.getElementById(target).innerHTML = "<div style=\"text-align: center; width: 100%;\"><img src=\"/images/wait.gif\"><br/>Please Wait...</div>";

    var url = '';

    if (pid != '')
        url = "/tools/tools.aspx?portalid=" + pid + "&name=" + slicename + "&param=" + escape(param) + "&param2=" + escape(param2);
    else
        url = "/tools/tools.aspx?name=" + slicename + "&param=" + escape(param) + "&param2=" + escape(param2);
    
    xmlhttp.onreadystatechange = function() {

        if (xmlhttp.readyState == 4) {
            document.getElementById(target).innerHTML = xmlhttp.responseText;
        }
    }

    xmlhttp.open("GET", url, true);
    xmlhttp.send();
}

//Sends an email containing the content of a web form using an AJAX call
function sendForm(prefix, divname, formname, orderrows, portalid)
{
    var msgbody = '';
    var elements = document.getElementsByTagName('input');

    pid = portalid;

    for (i = 0; i < elements.length; i++) {
        var elementid = elements[i].id;
        
        if (elementid.indexOf(prefix) == 0) {

            if( elements[i].type == 'text' )
                msgbody += elements[i].id.replace(prefix, '') + ": " + elements[i].value + '\r\n';
                
            if( elements[i].type == 'checkbox' && elements[i].checked )
                msgbody += elements[i].id.replace(prefix, '') + ": yes\r\n";
            
            if( elements[i].type == 'radio' && elements[i].checked )
                msgbody += elements[i].name.replace(prefix, '') + ": " + elements[i].value + '\r\n';
        }
    }

    elements = document.getElementsByTagName('select');

    for (i = 0; i < elements.length; i++) {
        var elementid = elements[i].id;
        if (elementid.indexOf(prefix) == 0)
            msgbody += elements[i].id.replace(prefix, '') + ": " + elements[i].value + '\r\n';
    }

    elements = document.getElementsByTagName('textarea');

    for (i = 0; i < elements.length; i++) {
        var elementid = elements[i].id;
        if (elementid.indexOf(prefix) == 0) {
            var val = elements[i].value;

            if (orderrows) {
                while (val.indexOf('\r\n') > -1)
                    val = val.replace('\r\n', ', ');
            }
            
            msgbody += elements[i].id.replace(prefix, '') + ": " + val + '\r\n';
        }
    }

    //while (msgbody.indexOf("_") > -1) {
        //msgbody = msgbody.replace("_", " ");
    //}

    if( orderrows )
        getSlice("sendmail-orderedrows", formname, msgbody, divname);
    else
        getSlice("sendmail", formname, msgbody, divname);

}

//Function to handle dropdown menus for the site
function showMenu(menuname, menucontent) {

    if (document.getElementById('menudiv') != null) {
        while (menucontent.indexOf('*') > -1)
            menucontent = menucontent.replace('*', '"');

        while (menucontent.indexOf('`') > -1)
            menucontent = menucontent.replace('`', '\'');

        if (menucontent != '') {
            var leftoffset = findPos(document.getElementById(menuname))[0];
            document.getElementById('menudiv').style.display = 'block';
            document.getElementById('menudiv').style.left = leftoffset + 'px';
            document.getElementById('menudiv').innerHTML = menucontent;
        }
        else {
            document.getElementById('menudiv').style.display = 'none';
            document.getElementById('menudiv').innerHTML = '';
        }
    }
}


//Returns the x,y position of the specified element (used in dropdown menus)
function findPos(obj) {
    var curleft = curtop = 0;

    if (obj.offsetParent) {

        do {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;

        } while (obj = obj.offsetParent);

        return [curleft, curtop];
    }

}
