﻿//try {
//    document.domain = 'ccjoy.com';
//} catch (e) { }

var CCJOY = {};

CCJOY.DEBUG_MODE = false;
CCJOY.ENV = CCJOY.Env = {
    domain: 'ccjoy.com',
    staticRoot: 'http://statics.ccjoy.com',
    swfRoot: 'http://statics.ccjoy.com',
    wwwRoot: 'http://www.ccjoy.com'
};

function isUndefined(object) {
    return typeof object == "undefined";
}
function isString(object) {
    return typeof object == "string";
}
function isElement(object) {
    return object && object.nodeType == 1;
}
function isFunction(object) {
    return typeof object == "function";
}
function isObject(object) {
    return typeof object == "object";
}
function isArray(object) {
    return object !== null && typeof object == "object" && 'splice' in object && 'join' in object;
}
function isNumber(object) {
    return typeof object == 'number';
}
function isJSON(str) {
    if (!isString(str) || str === '') { return false; }
    str = str.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
    return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
}


/**
*  字符串的操作和判断方法
*/
CCJOY.STRING = CCJOY.String = {
    nl2br: function(str) {
        return str.replace(/([^>])\n/g, '$1<br />');
    },
    trim: function(str) {
        return str.replace(/^\s+|\s+$/g, "");
    },
    ltrim: function(str) {
        return str.replace(/^\s+/, "");
    },
    rtrim: function(str) {
        return str.replace(/\s+$/, "");
    },
    strip: function(str) {
        return str.replace(/^\s+/, '').replace(/\s+$/, '');
    },
    stripTags: function(str) {
        return str.replace(/<\/?[^>]+>/gi, '');
    },
    escapeHTML: function(str) {
        return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
    },
    unescapeHTML: function(str) {
        return str.replace(/&amp;/g, '&').replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&nbsp;/g, ' ').replace(/&quot;/g, '"');
    },
    include: function(str, key) {
        return str.indexOf(key) > -1;
    },
    startsWith: function(str, key) {
        return str.indexOf(key) === 0;
    },
    endsWith: function(str, key) {
        var d = str.length - key.length;
        return d >= 0 && str.lastIndexOf(key) === d;
    },
    isBlank: function(str) {
        return CCJOY.STRING.strip(str) == '';
    },
    isEmail: function(str) {
        return /^[A-Z_a-z0-9-\.]+@([A-Z_a-z0-9-]+\.)+[a-z0-9A-Z]{2,4}$/.test(str);
    },
    isPhone: function(str) {
        return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/.test(str);
    },
    isMobile: function(str) {
        return /^((\(\d{2,3}\))|(\d{3}\-))?((13\d{9})|(15[389]\d{8}))$/.test(str);
    },
    isUrl: function(str) {
        return /^(http:|ftp:)\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"])*$/.test(str);
    },
    isIp: function(str) {
        return /^(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5]).(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5]).(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5]).(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5])$/.test(str);
    },
    isNum: function(str) {
        return /^\d+$/.test(str);
    },
    isZip: function(str) {
        return /^[1-9]\d{5}$/.test(str);
    },
    isEN: function(str) {
        return /^[A-Za-z]+$/.test(str);
    },
    isDate: function(str) {
        return /^[1-9]\d{3}-[0-9]\d{1}-[0-9]\d{1}$/.test(str);
    },
    format: function(format) {
        args = arguments;
        return format.replace(/\{(\d)+\}/g, function(pattern) {
            return args[parseInt(pattern.substr(1, pattern.length - 2)) + 1]
        });
    }
};

CCJOY.Debug = CCJOY.DEBUG = {
    win: null,
    log: null,
    On: function() {
        CCJOY.DEBUG_MODE = true;
        if (typeof console == 'undefined' || typeof console.log == 'undefined') {
            CCJOY.log = function() { };
        } else {
            CCJOY.log = CCJOY.DEBUG.log = function(s) {
                console.log(s);
            }
        }
    },
    Off: function() {
        CCJOY.DEBUG_MODE = false;
        window.onerror = null;
        CCJOY.log = CCJOY.DEBUG.log = function() { };
    },
    init: function() {
        CCJOY.DEBUG[(CCJOY.DEBUG_MODE ? "On" : "Off")]();
    }
};
CCJOY.DEBUG.init();
/**
*  数组操作的方法
*/

CCJOY.ARRAY = CCJOY.Array = {
    toQueryString: function(a, key) {
        var rt = [], t;
        for (var k in a) {
            t = a[k];
            if (isFunction(t)) continue;
            if (isObject(t)) {
                rt.push(CCJOY.ARRAY.toQueryString(t, k));
            } else {
                if (/^\d+$/.test(k)) {
                    rt.push(encodeURIComponent(key || k) + '=' + encodeURIComponent(t));
                } else {
                    rt.push(encodeURIComponent(k) + '=' + encodeURIComponent(t));
                }
            }
        }
        return rt.join('&');
    },
    each: function(a, func) {
        if (a[0]) {
            for (var i = 0, j = a.length; i < j; i++) {
                if (!isFunction(a[i])) func(i, a[i]);
            }
        } else {
            for (var key in a) {
                if (!isFunction(a[key])) func(key, a[key]);
            }
        }
    },
    include: function(a, value) {
        var r = false;
        for (var key in a) {
            if (a[key] == value) {
                r = true;
                break;
            }
        }
        return r;
    }
};
/**
*  后面将用于实参的转换,因为用Array.call(null,XX)转换会有莫名的bug
*  克隆数组
*/
if (isUndefined($A)) {
    var $A = function(o) {
        var rt = [];
        for (var i = 0, j = o.length; i < j; i++) {
            rt.push(o[i]);
        }
        return rt;
    }
}
/////////////////////////////////////////////////////////


CCJOY.Browser = CCJOY.BROWSER = {
    IE: !!(window.attachEvent && !window.opera),
    IE6: navigator.userAgent.indexOf('MSIE 6.0') > -1,
    IE7: navigator.userAgent.indexOf('MSIE 7.0') > -1,
    Opera: !!window.opera,
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
    Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1,
    copy: function(text) {
        if (isElement(text)) {
            text = text.value;
        }
        if (window.clipboardData && clipboardData.setData) {
            if (clipboardData.setData('Text', text)) return true;
        }
        else {
            alert('您的浏览器不支持脚本复制,请尝试手动复制');
            return false;
        }
        alert('您的浏览器设置已经禁止脚本访问剪切板\n请重试,或者尝试手动复制');
        return false;
    },
    addHomePage: function(url) {
        if (CCJOY.BROWSER.IE) {
            document.body.style.behavior = 'url(#default#homepage)';
            document.body.setHomePage(url);
        } else {
            CCJOY.BROWSER.copy(url);
            alert('网址已经拷贝到剪切板,请您打开浏览器的选项,<br/>把地址粘到主页选项中即可~')
        }
    },
    addBookMark: function(url, title) {
        var ctrl = (navigator.userAgent.toLowerCase()).indexOf('mac') != -1 ? 'Command/Cmd' : 'CTRL';
        try {
            window.external.addFavorite(url, title || 'CCJOY嬉戏族—年轻态度，时尚生活，首席虚实互动娱乐平台');
        } catch (e) {
            try {
                window.sidebar.addPanel(url, title || 'CCJOY嬉戏族—年轻态度，时尚生活，首席虚实互动娱乐平台');
            } catch (e) {
                alert('您可以尝试通过快捷键' + ctrl + ' + D 添加书签~');
            }
        }
    }
};
CCJOY.COOKIE = CCJOY.Cookie = {
    get: function(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for (var i = 0; i < ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') c = c.substring(1, c.length);
            if (c.indexOf(nameEQ) == 0) return decodeURIComponent(c.substring(nameEQ.length, c.length));
        }
        return null;
    },
    set: function(name, value, days, path, domain, secure) {
        var expires;
        if (isNumber(days)) {
            var date = new Date();
            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
            expires = date.toGMTString();
        } else if (isString(days)) {
            expires = days;
        } else {
            expires = false;
        }
        document.cookie = name + '=' + encodeURIComponent(value) +
				(expires ? '; expires=' + expires : '') +
				(path ? '; path=' + path : '') +
				(domain ? '; domain=' + domain : '') +
				(secure ? '; secure' : '');
    },
    del: function(name, path, domain, secure) {
        CCJOY.COOKIE.set(name, '', -1, path, domain, secure);
    }
};

/**
*  常用的html代码模板,用于快速组建代码
*/
CCJOY.TEMPLATE = CCJOY.Template = {
    mediaPlayer: function(o) {
        return '<object classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" width="' + (o.width || '352') + '" height="' + (o.height || '70') + '" >\n' +
		'<param name="autostart" value="' + (o.autostart || '1') + '" >\n' +
		'<param name="showstatusbar" value="' + (o.showstatusbar || '1') + '">\n' +
		'<param name="filename" value="' + o.filename + '">\n' +
		'<embed type="application/x-oleobject" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" ' +
		'flename="mp"' +
		'autostart="' + (o.autostart || '1') + '" showstatusbar="' + (o.showstatusbar || '1') + '" ' +
		'src="' + o.filename + '" width="' + (o.width || '352') + '" height="' + (o.height || '70') + '"></embed>';
    },
    flashPlayer: function(o) {
        return '<embed src="' + CCJOY.ENV.staticRoot + '/swf/player.swf?url=' + o.filename + '&Rwid=' + (o.width || '450') + '&Autoplay=' + (o.autostart || '1') + '" wmode="' + (o.wmode || 'transparent') + '" loop="false" menu="false" quality="high" scale="noscale" salign="lt" bgcolor="#ffffff" width="' + (o.width || '450') + '" height="' + (o.height || '30') + '" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
    },
    flash: function(o) {
        return '&nbsp;<embed src="' + o.filename + '" type="application/x-shockwave-flash" ' +
		'width="' + (o.width || '320') + '" height="' + (o.height || '240') + '" allowFullScreen="true" wmode="' + (o.wmode || 'transparent') + '" allowScriptAccess="always"></embed>';
    }
};

CCJOY.Event = CCJOY.EVENT = {
    isCapsLockOn: function(e) {
        var c = e.keyCode || e.which;
        var s = e.shiftKey;
        //		alert(c);
        if (((c >= 65 && c <= 90) && !s) || ((c >= 97 && c <= 122) && s)) {
            return true;
        }
        return false;
    },
    element: function(event) {
        var n = event.target || event.srcElement;
        return CCJOY.EVENT.resolveTextNode(n);
    },
    relatedTarget: function(event) {
        var t = event.relatedTarget;
        if (!t) {
            if (event.type == 'mouseout' || event.type == 'mouseleave') {
                t = event.toElement;
            } else if (event.type == 'mouseover') {
                t = event.fromElement;
            }
        }
        return CCJOY.EVENT.resolveTextNode(t);
    },
    resolveTextNode: function(n) {
        try {
            if (n && 3 == n.nodeType) {
                return n.parentNode;
            }
        } catch (e) { }

        return n;
    },
    pointerX: function(event) {
        return event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft));
    },
    pointerY: function(event) {
        return event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop));
    },
    pageHeight: function() {
        if (window.innerHeight && window.scrollMaxY) {
            return window.innerHeight + window.scrollMaxY;
        } else {
            return document.body.scrollHeight;
        }
    },
    pageWidth: function() {
        if (window.innerWidth && window.scrollMaxX) {
            return window.innerWidth + window.scrollMaxX;
        } else {
            return document.body.scrollWidth;
        }
    },
    winWidth: function() {
        return window.innerWidth || document.body.clientWidth;
    },
    winHeight: function() {
        return window.innerHeight || document.body.clientHeight;
    },
    scrollTop: function() {
        if (document.documentElement) {
            return document.documentElement.scrollTop;
        }
        return document.body.scrollTop;
    },
    scrollLeft: function() {
        if (document.documentElement) {
            return document.documentElement.scrollLeft;
        }
        return document.body.scrollLeft;
    }
};
///页面元素扩展
CCJOY.ELEMENT = {
    startLoading: function(element, msg) {
        $(element).html('<center><img src=\"' + CCJOY.ENV.staticRoot + 'img/indicator.gif\" />' + (msg || '加载中...') + '</center>');
        return element;
    }
};

CCJOY.Do = CCJOY.DO = {};
CCJOY.DO._alert = {
    alert: function(p) {
        $.facebox(p.content);
        var position = $(p.pos).position();
        $('#facebox').css({
            top: position.top + p.toppx,
            left: position.top + p.leftpx
        })
    }
};
CCJOY.DO._confirm = null;

$(function() {
    $.ajax({
        type: "GET",
        cache: false,
        dataType: "jsonp",
        url: "http://passport.ccjoy.com/check.ashx?httptype=login&jsoncallback=?",
        success: function(data) {
        if (data.login == "true") {
            $("#loginmsg").html(data.nickname + "(<a href=\"http://member.ccjoy.com/\" target=\"_top\">个人中心</a>|<a  target=\"_top\" href=\"http://passport.ccjoy.com/logout.aspx?reurl=" + encodeURIComponent(location.href) + "\">退出</a>)")
            }
        }
    });
})




