require.config({
"baseUrl" : "http://www.yueloo.com/app/Bundle/3gBundle/UserCenter/avatar/"
});
require([ "js/Config" ], function(Config)
{
"use strict"
function avatarInit()
{
var AvatarManager = document.querySelector("#AvatarManager");
Config.avatar.defaultAvatar = AvatarManager.src;
if (!document.querySelector(".avatarWrap")) {
var div = document.createElement("div");
div.setAttribute("class", "avatarWrap");
div.innerHTML = document.querySelector('#AvatarLibListTemplate').innerHTML;
AvatarManager.parentNode.appendChild(div);
}
var logout = document.querySelector(".userinfo .tui");
logout.style.display = "none";
}
function insertImage(data)
{
for ( var i in data) {
if (typeof (data[i]) == "object") {
var img = document.createElement("img");
img.src = data[i].src;
img.setAttribute("data-id", data[i].id);
if (!document.querySelector("img[data-id=\"" + data[i].id + "\"]")) {
document.querySelector(".avatarWrap .ImgLibContainer").appendChild(img);
}
}
}
var images = document.querySelectorAll(".AvatarLibList .ImgLibContainer img ");
for ( var i in images) {
if (typeof (images[i]) == "object") {
images[i].addEventListener("click", changeAvatar, true);
}
}
}
function getImageList()
{
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", Config.avatar.url, true);
xmlhttp.send();
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
insertImage(JSON.parse(xmlhttp.responseText).datalist);
}
}
}
function loadMore(event)
{
event.stopPropagation();
event.preventDefault();
var xmlhttp = new XMLHttpRequest();
var url = Config.avatar.url + "?page=" + Config.avatar.CurrentPage;
xmlhttp.open("GET", url, true);
xmlhttp.send();
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var datalist = JSON.parse(xmlhttp.responseText).datalist;
if (datalist.length > 0) {
insertImage(datalist);
Config.avatar.CurrentPage++;
} else {
var ImgMore = document.querySelector(".ImgMore");
ImgMore.innerHTML = "亲,木有了!";
ImgMore.removeEventListener("click", loadMore, false);
}
}
}
}
function saveUserAvatar()
{
var AvatarManagerObj = document.querySelector("#AvatarManager");
var data = {
"ImageUrl" : AvatarManagerObj.src,
"id" : AvatarManagerObj.getAttribute("data-id"),
"timestamp" : (new Date).getTime().toString().substring(0, 10),
"referrer" : location.href,
"uid" : '',
"OldImageUrl":AvatarManagerObj.getAttribute("data-url")
};
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", Config.avatar.SaveAvatarUrl);
xmlhttp.setRequestHeader("Content-type", "application/json");
xmlhttp.send(JSON.stringify(data));
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.state == 200) {
console.log(xmlhttp.responseText);
}
}
}
function changeAvatar()
{
var AvatarManager = document.querySelector("#AvatarManager");
AvatarManager.setAttribute("src", this.src);
AvatarManager.setAttribute("data-id", this.getAttribute("data-id"));
}
function addClassName(obj, className)
{
var ObjClassName = obj.getAttribute("class");
if (ObjClassName) {
var ClassNameArr = ObjClassName.split(" ");
var flag = 0;
for ( var i in ClassNameArr) {
if (ClassNameArr[i] == className) {
flag = 1;
}
}
if (flag == 0) {
obj.setAttribute("class", ObjClassName + " " + className);
}
} else {
obj.setAttribute("class", className);
}
}
function removeClassName(obj, className)
{
var ObjClassName = obj.getAttribute("class");
;
if (ObjClassName) {
var ClassNameArr = ObjClassName.split(" ");
var tmp = [];
for ( var i in ClassNameArr) {
if (ClassNameArr[i] == className) {
continue;
} else {
tmp.push(ClassNameArr[i]);
}
}
obj.setAttribute("class", tmp.join(" "));
}
}
function start(event)
{
event.stopPropagation();
event.preventDefault();
avatarInit();
getImageList();
Config.avatar.CurrentPage++;
document.querySelector(".closeAvatarManager").addEventListener("click", function(event)
{
event.stopPropagation();
event.preventDefault();
if (document.querySelector("#AvatarManager").parentNode && document.querySelector(".avatarWrap")) {
document.querySelector("#AvatarManager").parentNode.removeChild(document.querySelector(".avatarWrap")).focus();
}
document.querySelector("#AvatarManager").src = Config.avatar.defaultAvatar;
var logout = document.querySelector(".userinfo .tui");
logout.style.display = "inline";
Config.avatar.CurrentPage = 0;
});
document.querySelector(".okAvatarManager").addEventListener("click", function(event)
{
event.stopPropagation();
event.preventDefault();
if (document.querySelector("#AvatarManager").parentNode && document.querySelector(".avatarWrap")) {
document.querySelector("#AvatarManager").parentNode.removeChild(document.querySelector(".avatarWrap")).focus();
saveUserAvatar();
}
var logout = document.querySelector(".userinfo .tui");
logout.style.display = "inline";
Config.avatar.CurrentPage = 0;
});
document.querySelector('.ImgMore').addEventListener("click", loadMore, false);
window.onscroll = function(obj)
{
if (window.pageYOffset > 120) {
addClassName(document.querySelector("#AvatarManager"), "AvatarFixed");
removeClassName(document.querySelector(".avatarWrap .mask"), "maskHidden");
addClassName(document.querySelector(".avatarWrap .mask"), "maskShow");
} else {
removeClassName(document.querySelector("#AvatarManager"), "AvatarFixed");
removeClassName(document.querySelector(".avatarWrap .mask"), "maskShow");
addClassName(document.querySelector(".avatarWrap .mask"), "maskHidden");
}
}
}
document.querySelector("#AvatarManager").addEventListener("click", start, false);
})