﻿var Poto = {
    getElements: function(ids) {
        var elements = {};
        for (var i = 0; i < ids.length; i++) {
            var element = document.getElementById(ids[i]);
            if (element == null || element.id != ids[i]) {
                element = document.getElementsByName(ids[i]);
                if (!element || !element.length)
                    element = null;
                else {
                    element.getValue = function() {
                        var res = "";
                        for (var j = 0, l = this.length - 1; j <= l; j++) {
                            if (this[j].checked)
                                res += this[j].value + ", ";
                        }
                        if (res != "")
                            res = res.substr(0, res.length - 2);
                        return res;
                    }
                    element.setValue = function(str_val) {
                        str_val = str_val + "";
                        var els = [];
                        var vals = str_val.split(", ");
                        for (var j = 0; j < this.length; j++) {
                            var flag = false;
                            for (var n = 0; n < vals.length; n++) {
                                if (this[j].value == vals[n]) {
                                    els.push(this[j]);
                                    flag = true;
                                    break;
                                }
                            }
                            if (!flag) {
                                this.item(j).checked = false;
                            }
                        }
                        for (var j = 0; j < els.length; j++) {
                            els[j].checked = true;
                        }
                    }
                }
            }
            elements[ids[i]] = element;
        }
        return elements;
    },
    createElement: function(tagName, p, a) {
        var el;
        if (!!a && !!a.name) {
            try {
                el = document.createElement("<" + tagName + " name='" + a.name + "'>");
                delete a.name;
            } catch (e) {
                el = document.createElement(tagName);
            }
        } else {
            el = document.createElement(tagName);
        }
        if (tagName.toLowerCase() == "input" && a && a.type) {
            el.type = a.type;
            delete a.type;
        }
        p.appendChild(el);
        if (a) {
            for (var i in a) {
                eval("el." + i + " = a[i];");
            }
        }
        return el;
    },
    getWindowSize: function() {
        if (window.innerWidth || window.innerHeight) {
            return [window.innerWidth, window.innerHeight];
        } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
            return [document.documentElement.clientWidth, document.documentElement.clientHeight];
        } else {
            return [document.body.offsetWidth, document.body.offsetHeight];
        }
    },
    getDocumentSize: function() {
        if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
            return [document.documentElement.scrollWidth, document.documentElement.scrollHeight];
        } else {
            return [document.body.scrollWidth, document.body.scrollHeight];
        }
    }
};
Poto.Ajax = Poto.ajax = Poto.AJAX = Ajax;
Poto.Json = Poto.json = Poto.JSON = JSON;
Poto.OnReady = Poto.onReady = Poto.onready = OnReady;

Poto.request = Ajax.request;
Poto.decode = JSON.decode;
Poto.encode = JSON.encode;

Poto.post = function(url, params, onsuccess) {
    Poto.request({
        url: url,
        params: params,
        method: "POST",
        success: function(result) {
            var res = Poto.decode(result);
            if (onsuccess) {
                onsuccess(res);
            }
        }
    });
}

Poto.validateMobile = function(mobile) {
    if (!mobile)
        return false;
    else
        return /^1\d{10}$/.test(mobile);
}

Poto.validateEmail = function(email) {
    if (!email)
        return false;
    else
        return /^[-_a-z0-9.]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/.test(email);
}

Poto.validateZip = function(zip) {
    if (!zip)
        return false;
    else
        return /^\d{6}$/.test(code);
}

Poto.getQueryString = function(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var r = window.location.search.substr(1).match(reg);
    if (r != null)
        return unescape(r[2]);
    return null;
}

Poto.getCookie = function(sName) {
    var value = "";
    var aCookie = document.cookie.split("; ");
    for (var i = 0; i < aCookie.length; i++) {
        var tCookie = aCookie[i].split("=");
        if (sName == tCookie[0]) value = unescape(tCookie[1]);
    }
    if (value == 'undefined') value = "";
    return value;
}

Poto.insertText = function(el, text) {
    el.focus();
    if (document.selection) {
        var sel = document.selection.createRange();
        document.selection.empty();
        sel.text = text;
    } else {
        var prefix = el.value.substring(0, el.selectionStart);
        var suffix = el.value.substring(el.selectionEnd);
        el.value = prefix + text + suffix;
    }
}

Poto.addEventListener = function(obj, event, handler) {
    if (obj.addEventListener) {
        obj.addEventListener(event, handler, false);
    } else if (obj.attachEvent) {
        obj.attachEvent('on' + event, handler);
    }
}

function changecode(id) {
    var rd = Math.random();
    document.getElementById(id).src = "/001/?t=" + Math.round(rd * 10);
}

var locationUrl = window.location.href;
var locationReferrer = document.referrer ? document.referrer : "";
if (!/login|register/.test(locationUrl)) {
    document.cookie = "referer=" + escape(locationUrl) + "; path=/;";
}

//Poto.post("/pv/", {
//    url: locationUrl,
//    refer: locationReferrer
//});
