﻿//序列化一个table数据
function sertable(tempdata){
    var data = new Array();
    if(tempdata.length == 0) return data;
    var columnnames = attributes(tempdata[0]);
    for(var i = 0; i < tempdata.length; i++){
        if(tempdata[i][columnnames[2]] == "0"){
            var item = new Object();
            item.data = tempdata[i];
            item.child = new Array();
            item.index = data.length;
            data.push(item);
        }
    }
    for(var i = 0; i < data.length; i++){
        for(var j = 0; j < tempdata.length; j++){
            if(tempdata[j][columnnames[2]] == data[i].data[columnnames[0]]){
                var item = new Object();
                item.data = tempdata[j];
                item.parent = data[i];
                item.index = data[i].child.length;
                data[i].child.push(item);
            }
        }
    }
    return data;
}

//通过id查找序列化表中的一个元素
function find(data, id){
    var dom;
    if(data.length == 0) return dom;
    var columnnames = attributes(data[0].data);
    for(var i = 0; i < data.length; i++){
        if(data[i].data[columnnames[0]] == id){
            dom = data[i];
            return dom;
        }
        for(var j = 0; j < data[i].child.length; j++){
            if(data[i].child[j].data[columnnames[0]] == id){
                dom = data[i].child[j];
                return dom;
            }
        }
    }
    return dom;
}

//通过索引设定下拉选框的选中项
function setselect(select, index){
    select.selectedIndex = index;
}

//创建一个option
function createoption(value, html, select){
    var option = document.createElement("option");
    option.value = value;
    option.innerHTML = html;
    if(select) option.selected = true;
    return option;
}

//绑定二级分类下拉列表框
function bind(data, parent, child, id){
    if(data.length == 0) return;
    var columnnames = attributes(data[0].data);
    parent.appendChild(createoption("","请选择"));
    for(var i = 0; i < data.length; i++){
        parent.appendChild(createoption(data[i].data[columnnames[0]],data[i].data[columnnames[1]]));
    }
    function changechild(index){
        if(data.length == 0) return;
        child.innerHTML = "";
        child.appendChild(createoption("","请选择"));
        index -= 1;
        try{
            for(var i = 0; i < data[index].child.length; i++){
                child.appendChild(createoption(data[index].child[i].data[columnnames[0]],data[index].child[i].data[columnnames[1]]));
            }
        }
        catch(e){}
    }
    parent.onchange = function(){
        changechild(this.selectedIndex);
    }
    if(id){
        var dom = find(data, id);
        if(dom){
            if(dom.parent){
                setselect(parent, dom.parent.index+1);
                changechild(dom.parent.index+1);
                setselect(child, dom.index+1);
            }
            else{
                setselect(parent, dom.index+1);
                changechild(dom.index+1);
            }
        }
        else changechild(1);
    }
    else changechild(1);
}

//获取一个object的所有属性，并返回一个Array
function attributes(obj){
    var array = new Array();
    for(var attr in obj){
        array.push(attr);
    }
    return array;
}

//获取表单中元素值
function Request(name){
    var doms = document.getElementsByName(name);
    var value = "";
    for(var i = 0; i < doms.length; i++){
        if(doms[i].checked == true) value += ((value=="")?"":",")+ doms[i].value;
    }
    return value;
}

//全选checkbox
function selectall(name){
    var items = document.getElementsByName(name);
    for(var i = 0; i < items.length; i++){
        items[i].checked = true;
    }
}

//反选checkbox
function selectoppsite(name){
    var items = document.getElementsByName(name);
    for(var i = 0; i < items.length; i++){
        
        items[i].checked = !items[i].checked;
    }
}

//给当前窗口传入一个参数
function openwithpar(parname,parvalue){
    var uri = new Uri(location.href);
    uri.serverparlist.set(parname,parvalue);
    location.href = '?'+uri.serverparlist.toString();
}

function imageResize(img, size){
    var width = img.width;
    var height = img.height;
    var scale = width/height;
    if(width<height){
        width=size;
        height=size/scale;
    }
    else{
        height=size;
        width=size*scale;
    }
    img.width = width;
    img.height = height;
}

function addEvent(target, method, eventname) {
    if(target.addEventListener){
        target.addEventListener(eventname, method, false);
    }
    else{
        target.attachEvent("on" + eventname, method);
    }    
}

function getElementsByTagNameAndAttribute(tagname, attribute) {
    var elements = document.getElementsByTagName(tagname);
    var reelements = new Array();
    for(var i = 0; i < elements.length; i++) {
        if(elements[i].getAttribute(attribute.name) == attribute.value) reelements.push(elements[i]);
    }
    return reelements;
}

function loadSlowDoms() {
    var needLoadDoms = getElementsByTagNameAndAttribute("div", {name:"loadable",value:"true"});
    for(var i = 0; i < needLoadDoms.length; i++) {
        var dom = needLoadDoms[i];
        var target = document.getElementById(dom.getAttribute("targetid"));
        dom.innerHTML = target.innerHTML;
    }
}

addEvent(window, loadSlowDoms, "load");