﻿/* Vars used in other scripts */
var autoAsyncInProgress = false;
var myDate = new Date();
var todaysDate = myDate.getMonth() + '/' + myDate.getDate() + '/' + myDate.getFullYear();
var hldVPos = 0;
var hldBadCharFnd = "";

/* General Functions */
function addslashes(str) {
    str = str.replace(/\\/g, '\\\\');
    str = str.replace(/\'/g, '\\\'');
    str = str.replace(/\"/g, '\\"');
    str = str.replace(/\0/g, '\\0');
    return str;
}

function escapeCharsForDisp(str) {
    return str.replace("'", "\'").replace('"', '\"');
}

function checkemail(emlStr) {
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
    if (filter.test(emlStr))
        testresults = true
    else {
        testresults = false
    }
    return (testresults)
}

var errStr = "";
var badChar = new Array("$","&","+",";","/",":",";","=","?","@",'"',"<",">","#","%","{","}","|","\\","^","~","[","]","`","-");
function findBadURLChars(str) {
    errStr = "";
    for (x = 0; x < badChar.length; x++) {
        if (str.indexOf(badChar[x]) >= 0) {
            errStr = badChar[x];
            break;
        }
    }
    return errStr;
}

function strToNbr(nbrTxt) {
    if (isNumeric(nbrTxt)) {
        /* Use Unary to convert from string to int */
        return (+nbrTxt);
    } else {
        return 0;
    }
}

function isNumeric(txt) {
    if (txt == parseFloat(txt)) {
        return true;
    } else {
        return false
    }
}

var phnNbrArr = new Array();
function splitPhone(phnNbr, indxNbr) {
    phnNbrArr = phnNbr.split("-");
    return phnNbrArr[indxNbr];
}

iPadFound = null;
function isiPad() 
{
    if (iPadFound == null) {
        if (navigator.userAgent.indexOf('iPad') != -1) {
            iPadFound = true;
        } else {
            iPadFound = false;
        }
    }
    return iPadFound;    
}

isLessThanIE8 = null;
function lessThanIE8()
{
    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE");
    var msieNbr = 0;

    if (isLessThanIE8 == null) {
        if (msie > 0) {
            msieNbr = parseInt(ua.substring(msie + 5, ua.indexOf(".", msie)));
            if (msieNbr < 8) {
                isLessThanIE8 = true;
            } else {
                isLessThanIE8 = false;
            }
        } else {
            isLessThanIE8 = false;
        }
    }
    return isLessThanIE8;
}

isIE = null;
function meIE() {
    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE");

    if (isIE == null) {
        if (msie > 0) {
            isIE = true;
        } else {
            isIE = false;
        }
    }
    return isIE;
}

var eerrl = '';
var urlparts = null;
var rdyErl = '';
function redirect(page) 
{
    /* Get base URL */
    eerrl = document.location.href;
    urlparts = eerrl.split("/", 3);
    location.href = urlparts[0] + '/' + urlparts[1] + '/' + urlparts[2] + '/' + page;
}

function baseURL() {
    eerrl = document.location.href;
    urlparts = eerrl.split("/", 3);
    rdyErl = urlparts[0] + '/' + urlparts[1] + '/' + urlparts[2] + '/';
    return rdyErl;
}

/* This function only works for objects with properties.  No embedded objects */
function removeObjFromArray(ObjArray, DeleteObj) {
    var tmpObjArr = new Array();

    for (x = 0; x < ObjArray.length; x++) {
        if (objectsAreSame(ObjArray[x], DeleteObj) == false) {
            tmpObjArr[tmpObjArr.length] = ObjArray[x];
        }
    }

    return tmpObjArr;
}

function objectsAreSame(x, y) {
   var objectsAreSame = true;
   for(var propertyName in x) {
      if(x[propertyName] !== y[propertyName]) {
         objectsAreSame = false;
         break;
      }
   }
   return objectsAreSame;
}

function clone(obj) {
    if (obj == null || typeof (obj) != 'object')
        return obj;

    var temp = new obj.constructor();
    for (var key in obj)
        temp[key] = clone(obj[key]);

    return temp;
}

var option;
var selctd = false;
ddlJQbld = '';
function ddlSelByText(jQId, selTxt) {
    ddlJQbld = jQId + ' option';
    $(ddlJQbld).each(function () {
        if ($(this).text() == selTxt) {
            option = this;
            selctd = true;
            return false;
        }
    });
    return selctd;
}

function ddlSelValByText(jQid, selTxt) 
{
    $(jQid).find("option:contains('"+selTxt+"')").each(function () {
        if ($(this).text() == selTxt) {
            $(this).attr("selected", "selected");
        }
    });
}

function getDDLText(id) 
{
    return $('#' + id + ' option:selected').text();
}

function getDDLTextByVal(jQid, selVal) {
    ddlJQbld = jQid + ' option';
    var hldText = "";
    $(ddlJQbld).each(function () {
        var hldDDLValue = $(this).val();
        if ($(this).val() == selVal) {
            hldText = $(this).text();
            return false;
        }
    });
    return hldText;
}

function positionDDLMenu(trgtJQID, menuJQID) {
    var ofsetTop = $(trgtJQID).offset().top + $(trgtJQID).outerHeight();
    var ofsetLft = $(trgtJQID).offset().left;
    $(menuJQID).css("top", ofsetTop - 33);
    $(menuJQID).css("left", ofsetLft);
}

/* Please Wait Button Display Logic */
function showBusy(trgtJQID) {
    $("#busyBtnCntr").removeClass("hideBsyButton");
    $("#busyBtnCntr").addClass("showBsyButton");

    var trgtHght = $(trgtJQID).outerHeight(true) + 2;
    var trgtWdth = $(trgtJQID).outerWidth(true) + 1;
    var ofsetTop = $(trgtJQID).offset().top - 1;
    var ofsetLft = $(trgtJQID).offset().left - 1;

    $("#btnPlsWt").css("height", trgtHght);
    $("#btnPlsWt").css("width", trgtWdth);
    $("#busyBtnCntr").css("top", ofsetTop);
    $("#busyBtnCntr").css("left", ofsetLft);
}

function hideBusy() {
    $("#busyBtnCntr").removeClass("showBsyButton");
    $("#busyBtnCntr").addClass("hideBsyButton");
}

/* For DataTables */
function callback() {
    $("#searchResults > tr").click(function () {
        $(this).find("td").toggleClass("background");
    });
}

function getCurrTabIndx(tabJQID) {
    var $tabs = $(tabJQID).tabs();
    return $tabs.tabs('option', 'selected')
}

/* Resize Parent Container */
var oneDvColObj;
var leftDvColObj;
var rightDvColObj;
var colHght;
var minMainHght = 390;
function resizeMainCntr() {
    oneDvColObj = document.getElementById('dvOneCol');
    leftDvColObj = document.getElementById('dvLeftCol');
    rightDvColObj = document.getElementById('dvRightCol');

    if (leftDvColObj && rightDvColObj) {
        colHght = leftDvColObj.offsetHeight + 10;

        if (rightDvColObj.offsetHeight+10 > colHght) {
            colHght = rightDvColObj.offsetHeight+10;
        }
    } else {
        if (oneDvColObj) {
            colHght = oneDvColObj.offsetHeight+10;
        }
    }

    if (colHght > $('#dvMainCntr').height()) {
        colHght = colHght + 20;
    } else {
        if (colHght < minMainHght) {
            colHght = minMainHght;
        }
    }

    $('#dvMainCntr').css('height', colHght + 'px');
}

/* Resize Org Rows to get around inline-block not in IE 7 */
function resizeOrgRows() {
    $("#dvOrgViewDisp").find(".dvOrgDtlValue").each(function () {
        var hldPrtHeight = $(this).parent().outerHeight(true);
        var hldElmHeight = $(this).outerHeight(true);
        if (hldElmHeight > hldPrtHeight) {
            $(this).parent().css("height", $(this).outerHeight(true)+4);
        }
    });
}


/* Max Length for TextAreas (jQuery is needed) */

function limitChars(textid, limit, infodiv) {
    var text = $('#' + textid).val();
    var textlength = text.length;
    if (textlength > limit) {
        $('#' + infodiv).html('You cannot write more then ' + limit + ' characters!');
        $('#' + textid).val(text.substr(0, limit));
        return false;
    }else {
        $('#' + infodiv).html('You have ' + (limit - textlength) + ' characters left.');
        return true;
    }
}

function showHideWthTxt(lnkId, showHideId) {
    if ($(lnkId).text() == 'expand') {
        $(lnkId).text('collapse');
        $(showHideId).show();
    } else {
        $(lnkId).text('expand');
        $(showHideId).hide();
    }
    resizeMainCntr();
}

function windowVPos() { return window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop; }

function browserDiam(opt) {
    var myWidth = 0, myHeight = 0;
    if (typeof (window.innerWidth) == 'number') {
        //Non-IE
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
    } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
        //IE 6+ in 'standards compliant mode'
        myWidth = document.documentElement.clientWidth;
        myHeight = document.documentElement.clientHeight;
    } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
        //IE 4 compatible
        myWidth = document.body.clientWidth;
        myHeight = document.body.clientHeight;
    }
    if (opt == 'height') {
        return myHeight;
    } else {
        return myWidth;
    }
}

function cnvrtStrToBool(strgVal) {
    if (strgVal.toLowerCase() == 'true') {
        return true;
    } else {
        return false;
    }
}

function enterPressed(e) {
    var keynum;
    var ent = false;
    if (window.event) /* IE */
    {
        keynum = e.keyCode;
    } else {
        if (e.which) /* Netscape/Firefox/Opera */
        {
            keynum = e.which;
        }
    }

    if (keynum == 13) {
        ent = true;
    }
    return ent;
}

