var drso = {

    version: '1.1',

    url: location.href.toLowerCase(),

    setCookie: function (n, v, d, e) {
        var de = new Date();
        de.setTime(de.getTime() + e * 24 * 60 * 60 * 1000);
        document.cookie = n + '=' + escape(v) + ((e === null) ? '' : ('; expires=' + de.toGMTString())) + '; path=/' + ((d === null) ? '' : (';domain=' + d));
    },

    getDomain: function () {
        var sld = document.domain,
        dp = sld.split("."),
        l = dp.length;

        if (l < 2) {
            sld = null;
        } else if (!isNaN(dp[l - 1]) && !isNaN(dp[l - 2])) {
            sld = null;
        } else {
            sld = "." + dp[l - 2] + "." + dp[l - 1];
        }

        return sld;
    },

    getCookie: function (c_name) {
        if (document.cookie.length > 0) {
            var c_start = document.cookie.indexOf(c_name + '='),
            c_end;

            if (c_start !== -1) {
                c_start = c_start + c_name.length + 1;
                c_end = document.cookie.indexOf(';', c_start);
                if (c_end === -1) {
                    c_end = document.cookie.length;
                }
                return unescape(document.cookie.substring(c_start, c_end));
            }
        }

        return "";
    },

    deleteCookie: function (name) {
        this.setCookie(name, '', this.getDomain(), -1);
    },

    getURLparam: function (name) {
        var regexS = '[\\?&]' + name + '=([^&#]*)',
        regex = new RegExp(regexS),
        tmpURL = window.location.href,
        results = regex.exec(tmpURL);

        if (results === null) {
            return '';
        } else {
            return results[1];
        }
    },

    getSearchQuery: function (name) {
        var regexS = '[\\?&]' + name + '=([^&#]*)',
        regex = new RegExp(regexS),
        tmpURL = this.getRefUrl(),
        results = regex.exec(tmpURL);

        if (results === null) {
            return '';
        } else {
            return results[1];
        }
    },

    // pass in optional exp arg as an expiration (in days)
    getRefUrl: function (exp) {
        if (!drso.getCookie('op_refUrl')) {
            exp = (typeof(exp) === 'undefined') ? null : exp;
            var refUrl = (document.referrer) ? document.referrer.toLowerCase() : 'none';
            this.setCookie('op_refUrl', refUrl, this.getDomain(), exp);
        }
        return this.getCookie('op_refUrl');
    },

    getQsPval: function (pname, strShort) {
        var pval = '',
        nvnames = { n: (typeof(strShort) === 'undefined') ? 'n' : 'p_name', v: (typeof(strShort) === 'undefined') ? 'v' : 'p_val' },
        nvpattern = new RegExp(nvnames.n + '=' + pname + '&' + nvnames.v + '=([^&]*)', 'i'),
        param = location.search.match(nvpattern);

        if (param) {
            pval = decodeURIComponent(param[1]);
        }

        return pval;
    }
};
var optrial = {};