﻿
function ResolveUrl(url) {
    if (url.indexOf("~/") == 0) {
        url = "/" + url.substring(2);
    }
    return baseUrl + url;
}

function is_numeric(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
}

function isDate(o) {

    return !!(o && typeof o == 'object' && 'getDate' in o && 'getFullYear' in o && 'setMilliseconds' in o);
};
function isValidDate(date, Id, checkpastdate) {
    if (/Invalid|NaN/.test(new Date(date.toString('mm/dd/yyyy')))) {

        jAlert('Invalid Date Format', 'Invalid Date');
        return false;

    }
    if (Id != '' && Id != undefined) {
        $('#' + Id).val(date.toString('mm/dd/yyyy'));
    }
    if (checkpastdate) {
        return date.toString('MM/dd/yyyy') >= new Date().toString('MM/dd/yyyy');
    }
    return true;
};
function leadingZero(val) {
    var str = val.toString();
    if (str.length == 1) {
        str = '0' + str;
    }
    return str;
}

function validIsDate(obj, checkpastdate, isIgnore) {
    var currVal = $(obj).val();
    if (currVal == '' && isIgnore != true) {
        $(obj).val('');
        jAlert('Enter Date ', 'Enter Date');
        return false;
    }
    if (currVal == '' && isIgnore == true) {
        return true;
    }
    if (checkpastdate) {
        if (currVal.toString('MM/dd/yyyy') >= new Date().toString('MM/dd/yyyy')) {
            jAlert('Entered date must be greater than today', 'Date Error');
            $(obj).val('');
        }
        return false;
    }

    var rxDatePattern = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/; //Declare Regex
    var dtArray = currVal.match(rxDatePattern); // is format OK?

    if (dtArray == null) {
        $(obj).val('');
        jAlert('Invalid Date Format', 'Invalid Date');
        return false;
    }

    //Checks for mm/dd/yyyy format.
    dtMonth = dtArray[1];
    dtDay = dtArray[3];
    dtYear = dtArray[5];

    if (dtMonth < 1 || dtMonth > 12) {
        $(obj).val('');
        jAlert('Invalid Date Format', 'Invalid Date');
        return false;
    }
    else if (dtDay < 1 || dtDay > 31) {
        $(obj).val('');
        jAlert('Invalid Date Format', 'Invalid Date');
        return false;
    }
    else if ((dtMonth == 4 || dtMonth == 6 || dtMonth == 9 || dtMonth == 11) && dtDay == 31) {
        $(obj).val('');
        jAlert('Invalid Date Format', 'Invalid Date');
        return false;
    }
    else if (dtMonth == 2) {
        var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0));
        if (dtDay > 29 || (dtDay == 29 && !isleap)) {
            $(obj).val('');
            jAlert('Invalid Date Format', 'Invalid Date');
            return false;
        }
    }
    return true;
}

function UWParserForJson(s) {
    return s.replace(/\n/g, '').replace(/\r/g, '');
}

function getQuerystring(key, default_) {
    if (default_ == null) default_ = "";
    key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
    var qs = regex.exec(window.location.href);
    if (qs == null)
        return default_;
    else
        return qs[1];
}

function GetSupportSiteUrl(name) {
    switch (name) {
        //Home                     
        case "Home": return '/KB/c6/home.aspx';
        case "Dashboard": return '/KB/c6/home.aspx';
        case "Reports": return '/KB/c15/reports.aspx';
            //Customer
        case "Customer": return '';
        case "Invoice": return '/KB/c17/invoices.aspx';
        case "SalesReceipt": return '/KB/c19/sales-receipt.aspx';
        case "ReceivePayments": return '/KB/c18/receive-payments.aspx';
        case "CustomersList": return '/KB/c21/customers-list.aspx';
        case "CustomerCenter": return '/KB/c16/customer-center.aspx';
        case "CreditMemo": return '/KB/c20/credit-memo.aspx';
        case "CreditRefund": return '/KB/c20/credit-memo.aspx';

            //Addressbook
        case "AddressBook": return '/KB/c8/address-book.aspx';
        case "AllContacts": return '/KB/c22/all-contacts.aspx';
        case "Leads": return '/KB/c23/leads.aspx';
        case "TeamMembers": return '/KB/c24/team-members.aspx';
        case "ContactGroups": return '/KB/c25/contact-groups.aspx';
        case "Email": return '/KB/c26/emails.aspx';
            //Activities
        case "Calendar": return '/KB/c27/calendar.aspx';
        case "Appointments": return '';
        case "Parties": return '';
        case "Calls": return '';
        case "Tasks": return '';
        case "Notes": return '';
            //Inventory
        case "Inventory": return '/KB/c10/inventory.aspx';
        case "Products": return '/KB/c31/products.aspx';
        case "PurchaseOrder": return '';
        case "LoanBorrow": return '';
        case "Exchange": return '';
        case "Replacement": return '';
        case "BackOrders": return '';

            //Accounts
        case "Accounts": return '/KB/c11/accounts.aspx';
        case "ChartofAccounts": return '/KB/c37/chart-of-accounts.aspx';
        case "OtherIncome": return '/KB/c38/other-income.aspx';
        case "Expenses": return '/KB/c39/expenses.aspx';
        case "Banking": return '/KB/c40/banking.aspx';
        case "Payees": return '/KB/c41/payees.aspx';
        case "TripLogs": return '/KB/c42/trip-logs.aspx';

            //Marketing
        case "Marketing": return '/KB/c12/marketing.aspx';
        case "EmailMarketing": return '/KB/c44/email-marketing.aspx';
        case "EmailTemplates": return '/KB/c45/email-templates.aspx';
        case "WebsiteLeads": return '/KB/c46/website-leads.aspx';

            //Social Media
        case "SocialMedia": return '/KB/c13/social-media.aspx';
        case "Blogs": return '/KB/c47/blogs.aspx';
        case "Twitter": return '/KB/c48/twitter.aspx';
        case "MyWebsite": return '/KB/c49/my-website.aspx';
        case "MyProfile": return '';
        case "WebsiteActivity": return '';
        case "ResourceLibrary": return '';

            //My unit
        case "MyUnit": return '/KB/c14/my-unit.aspx';
        case "TrainingCenter": return '/KB/c50/training-center.aspx';
        case "UnitInfo": return '/KB/c51/unit-info.aspx';
        case "UnitMembers": return '/KB/c52/unit-members.aspx';
        case "WeeklyAccomplishments": return '';
        case "UnitProduction": return '';


            //Others
        case "Preferences": return '/KB/c43/preferences.aspx';

        default: return '';
    }
}

function OpenSupportSite(domain, name) {
    var w = 803;
    var h = 565;
    var left = (screen.width / 2) - (w / 2);
    var top = (screen.height / 2) - (h / 2);
    var url = GetSupportSiteUrl(name);
    var targetWin = window.open(domain + url, "HelpArticles", 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
}

function GetSelectedBySaleType(saleType, optionval) {
    if ((saleType == 1 && optionval == 'SALE') || (saleType == 2 && optionval == 'GIFT') || (saleType == 3 && optionval == 'RETURNTOINVENTORY') ||
                (saleType == 4 && optionval == 'RETURNTOMK') || (saleType == 5 && optionval == 'DEMO')) {
        return 'selected="true"';
    }
    return "";
}
//use this to disable default submit on enter key

function StopSubmit() {
    var keyStop = {
        8: ":not(input:text, textarea, input:file, input:password)", // stop backspace = back
        13: "input:text, input:password", // stop enter = submit 

        end: null
    };
    $(document).bind("keydown", function(event) {
        var selector = keyStop[event.which];

        if (selector !== undefined && $(event.target).is(selector)) {
            event.preventDefault(); //stop event
        }
        return true;
    });
}

function GetMonthName(i) {
    var month = new Array(12);
    month[0] = "January";
    month[1] = "February";
    month[2] = "March";
    month[3] = "April";
    month[4] = "May";
    month[5] = "June";
    month[6] = "July";
    month[7] = "August";
    month[8] = "September";
    month[9] = "October";
    month[10] = "November";
    month[11] = "December";
    return month[i];
}

function GetDayOrdinal(n) {
    n = parseInt(n);
    var s = 'th';
    if (n === 1 || n == 21 || n == 31) s = 'st';
    if (n === 2 || n == 22) s = 'nd';
    if (n === 3 || n == 23) s = 'rd';
    return s;
}

function GetDayName(date) {
    var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
    return days[date.getDay()];
}

function GetWeekOfMonth(date) {
    var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday',
                'Thursday', 'Friday', 'Saturday'],
    prefixes = ['first', 'second', 'third', 'fourth', 'last'];
    return prefixes[Math.ceil(date.getDate() / 7) - 1] + ' ' + days[date.getDay()];
}

function OpenVideoHelpSite(name) {
    var percent = 80;

    var url = GetVideoHelpUrl(name);
    var w = 630, h = 440; // default sizes
    if (window.screen) {
        w = window.screen.availWidth * percent / 100;
        h = window.screen.availHeight * percent / 100;
    }
    var left = Math.floor((screen.width - w) / 2);
    var top = Math.floor((screen.height - h) / 2);
    var targetWin = window.open(url, "VideoHelp", 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
}

function GetVideoHelpUrl(name) {
    switch (name) {
        case "CustomerCenter": return 'http://www.youtube.com/playlist?list=PLA371B51D46284C16';
        case "Activities": return 'http://www.youtube.com/playlist?list=PL59E229928878BF55';
        case "Inventory": return 'http://www.youtube.com/playlist?list=PLE324A682C520BBB3';
        case "Accounts": return 'http://www.youtube.com/playlist?list=PLA85423AFFF6457D5';
        case "Marketing": return 'http://www.youtube.com/playlist?list=PLE67E74BB7D7969B9';
        case "SocialMedia": return 'http://www.youtube.com/playlist?list=PL66493A73E1467719';
        case "ResourceLibrary": return 'http://www.youtube.com/playlist?list=PL57B0E182025C7A75';
        case "MyUnit": return 'http://www.youtube.com/playlist?list=PL0EA4CF4254EE1E1C';
        case "Settings": return 'http://www.youtube.com/playlist?list=PLB6F57A6EC6E0FF2B';
        case "Promo": return 'http://www.youtube.com/playlist?list=PL902168A44AC71436';
        default: return '';
    }
}
