﻿// these function help managing an elements class membership
//
// 
// get_common_classes(element_a,element_b)
// get_classes(element)
// is_in_class(element,classname)
// add_to_class(element,classname) 
// remove_from_class(element, classname)






function get_common_classes(element_a, element_b)
// expects two nodes of the type element a and b
// returns an array of classes that a an b have in common,
// or 0 if there aren't any
{
    var cc = new Array();
    var i = 0;
    var j = 0;
    var a_classes = getclasses(element_a);
    var b_classes = getclasses(element_b);
    
    
    for(i=0;i < a_classes.length; i++)
    {
        for(j=0;j < b_classes.length; j++)
        {
            if(a_classes[i] == b_classes[j])
            {
                cc.push(a_classes[i]);
            }
        }
    }
    
    return cc.length > 0 ? cc : 0
}

function get_classes(element)
//returns an array of classnames that element is a member of
// 0 if there aren't any
{

    if(element.className)
    {
    }else{
        return 0;
    }
    if(element.className == "" || element.className == null)
    {
        return 0;
    }
    
    if(element.className.indexOf(" ") == -1)
    {
        classes = new Array();
        classes.push(element.className);
        return classes;
    }
    
    classes = element.className.split(" ");
    
    return classes;
}



function add_to_class(element, classname)
// adds elemet to the specified class
{
    element.className += " " + classname;
    return element;
}

function remove_from_class(element, classname)
// removes the element form the specified class
{
    var classes = element.className.split(" ");
    for (i=0;i < classes.length; i++)
    {
        if(classes[i] == classname)
        {
            classes.splice(i,1);
        }
    }
    element.className = classes.join(" ");
    return element;
}

function is_in_class(element,classname)
// return true if the element is a member of class classname
{

    var classes = get_classes(element);
    var i = 0;
    
    for(i=0;i < classes.length; i++)
    {
        if (classes[i] == classname)
        {
            return true;
        }
    }
    return false;
}