﻿//document.domain="zjditu.cn";
var G_IS_HOMEPAGE = false;
var G_DOMAIN = null;
var G_PATH = "/";
//window.onerror=function(){return true;}
//
String.prototype.trim = function() {
    return this.replace(/\s+/gm, "");
}
String.prototype.lTrim = function() {
    return this.replace(/^\s+/gm, "");
}
String.prototype.rTrim = function() {
    return this.replace(/\s+$/gm, "");
}
String.prototype.size = function() {
    return this.replace(/[^\u0000-\u00FF]/gmi, "**").length;
}

var CookieUtil = new Object;

CookieUtil.getCookie = function(name) {
    var search = name + "=";
    var offset = document.cookie.indexOf(search);
    if (offset != -1) {
        offset += search.length;
        var end = document.cookie.indexOf(";", offset);
        if (end == -1) {
            end = document.cookie.length;
        }
        try {
            return decodeURIComponent(document.cookie.substring(offset, end));
        } catch (e) {
            try {
                return unescape(document.cookie.substring(offset, end));
            } catch (e1) {
                return document.cookie.substring(offset, end);
            }
        }
    } else {
        return "";
    }
}
CookieUtil.setCookie = function(sName, sValue, iHour, sPath, sDomain, bSecure) {
    var sCookie = sName + "=" + encodeURIComponent(sValue);

    if (iHour) {
        var oExpires = new Date(new Date().getTime() + iHour * 3600000);
        sCookie += "; expires=" + oExpires.toGMTString();
    }

    if (sPath) {
        sCookie += "; path=" + sPath;
    }

    if (sDomain) {
        sCookie += "; domain=" + sDomain;
    }

    if (bSecure) {
        sCookie += "; secure";
    }

    document.cookie = sCookie;
}
CookieUtil.deleteCookie = function(sName, sPath, sDomain) {
    var sCookie = sName + "=; expires=" + (new Date(0)).toGMTString();
    if (sPath) {
        sCookie += "; path=" + sPath;
    }

    if (sDomain) {
        sCookie += "; domain=" + sDomain;
    }

    document.cookie = sCookie;
}

function slice(a, l) {
    if ("undefined" == typeof(a)) {
        return "";
    }
    var as = a.split("");
    var n = 0;
    var s = "",
        u = "";
    for (var i = 0; i < as.length; i++) {
        u = as[i];
        if (n + u.size() <= l) {
            s += u;
        } else {
            break;
        }
        n += u.size();
    }
    return s.substr(0, s.length);
}



//----------------------//
var G_ITEMS_CHAR = "@@";
var G_GROUP_CHAR = "|";

function string2Array(str, splitChar) {
    return str.split(splitChar);
}

function array2String(arr, joinChar) {
    return arr.join(joinChar);
}

function latest2normal(latest) {
    var item = string2Array(latest, G_ITEMS_CHAR);
    return array2String(item.slice(0, 6), G_ITEMS_CHAR);
}

function writeCookieInfo(name, str) {
    CookieUtil.setCookie(name, str, 720, G_PATH, G_DOMAIN);
}

function readCookieInfo(name) {
    return CookieUtil.getCookie(name);
}

function deleteCookieInfo(name) {
    writeCookieInfo(name, "");
}

function rewriteCookieInfo(name, newInfo) {
    var newInfoItems = string2Array(newInfo, G_ITEMS_CHAR);
    var oldInfo = readCookieInfo(name);
    var group = string2Array(oldInfo, G_GROUP_CHAR);
    for (var i = group.length - 1; i >= 0; i--) {
        if (decodeURI(group[i]).indexOf(newInfoItems[0]) != -1) {
            group.splice(i, 1);
        }
    }
    var size = group.length;
    group.unshift(newInfo);
    "" == group[0] ? group.pop() : group[0] = latest2normal(group[0]);
    writeCookieInfo(name, array2String(group.slice(0, 20), G_GROUP_CHAR));
}

function checkInfoFormat(name) {
    var info = readCookieInfo(name);
    var group = string2Array(info, G_GROUP_CHAR);
    var items = [];
    if (group.length > 0) {
        items = string2Array(group[0], G_ITEMS_CHAR);
        if (items.length != 5) {
            writeCookieInfo(name, "");
        }
    }
}

function removeExistInfo(name, itemName) {
    var info = readCookieInfo(name);
    var group = string2Array(info, G_GROUP_CHAR);
    for (var i = group.length - 1; i >= 0; i--) {
        if (decodeURI(group[i]).indexOf(itemName) != -1) {
            group.splice(i, 1);
        }
    }
    writeCookieInfo(name, array2String(group, G_GROUP_CHAR));
}

function formatCookieInfo(info) {
    var items = string2Array(info, G_ITEMS_CHAR);
    return {
        name: decodeURI(items[0]),
        time: items[1],
        type: items[2],
        maptype: items[3],
        maplevel: items[4]
    };
}

function getCookieInfo(name) {
    checkInfoFormat(name);
    var info = readCookieInfo(name);
    var group = string2Array(info, G_GROUP_CHAR);
    var size = group.length;
    var tmp = [];
    for (var i = 0; i < size; i++) {
        tmp.push(formatCookieInfo(group[i]));
    }
    return tmp;
}

function setEmpty(bool, name) {
    if (bool) {
        writeCookieInfo(name, "");
    }
    $(name).innerHTML = '<center>您的浏览历史为空。</center>';
}

function parseLinkScript(script) {
    var userAgent = navigator.userAgent.toLowerCase();
    var env = null;
    var ver = 0;
    var link = ' href="javascript:' + script + ';" ';
    env = userAgent.match(/msie ([\d.]+)/);
    ver = env ? parseInt(env[1], 10) : 0;
    if (ver < 7) {
        link = ' onclick="' + script + ';" href="#" ';
    }
    return link;
}


function buildViewHistory(name, limit) {
    if (!limit) {
        limit = 5
    };
    var items = getCookieInfo(name);
    var item = null;
    var sHtml = "",
        tmp = "";
    if (!items) {
        setEmpty(false, name);
        return false;
    } else {
        for (var i = 0; i < items.length && i < limit; i++) {
            item = items[i];
            if (item.name != "") {
                sHtml += '<p><span style="color:#939393" >' + calcTime(item.time) + '</span> ';
                if (item.type == 0) {
                    sHtml += '<a href="javascript:gotoCity(\'' + item.name + '\',\'' + item.maptype + '\',\'' + item.maplevel + '\');">' + item.name + '</a></p>';
                } else {
                    var path = item.name;
                    var re = RegExp("//", "g");
                    path = path.replace(re, "/");
                    var subpath = string2Array(path, '/');
                    var mapname = subpath[subpath.length - 1];
                    sHtml += '<a href="javascript:gotoMap(\'' + item.name + '\',\'' + item.maptype + '\',\'' + item.maplevel + '\');">' + mapname + '</a></p>';
                }
            }
        }
    }
    if (sHtml == "") sHtml = "<center>您的浏览历史为空。</center>";
    $(name).innerHTML = sHtml;
    //

    function formatDate(str) {
        var d = new Date(parseInt(str));
        return ((d.getMonth() + 1) < 10 ? "0" + (d.getMonth() + 1) : (d.getMonth() + 1)) + "-" + (d.getDate() < 10 ? "0" + d.getDate() : d.getDate());
    }

    function calcTime(t) {
        var str;
        var m = Math.round((new Date().getTime() - t) / (1000 * 60));
        if (m < 60) {
            str = (m ? m : 1) + '分钟前';
        } else if (m < (60 * 24)) {
            str = Math.round(m / 60) + '小时前';
        } else {
            str = Math.round(m / (60 * 24)) + '天前';
        }
        return str;
    }
}

function _GC(name) {
    cleanViewHistory(name);

    function cleanViewHistory(name) {
        setEmpty(true, name);
    }
}