﻿var CookieUtil = 
{
    get: function (name)
    {
        var cookieName  = encodeURIComponent(name) + "=",
            cookieStart = document.cookie.indexOf(cookieName),
            cookieValue = null;
            
        if( cookieStart > -1)
        {
            var cookieEnd = document.cookie.indexOf(";", cookieStart);
            if( cookieEnd == -1)
            {
                cookieEnd = document.cookie.length;
            }
            cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
            return cookieValue;
        }
    },
    
    set: function(name, value, expires, path, domain, secure)
    {
        var cookieText = encodeURIComponent(name) + "=" + encodeURIComponent(value);
        if(expires instanceof Date) cookieText += "; expires="+expires.toGMTString();
        if(path) cookieText += "; path="+path;
        if(domain) cookieText += "; domain="+domain;
        if(secure) cookieText += "; secure";
        
        document.cookie = cookieText;
    },
    
    unset: function(name, path, domain, secure)
    {
        this.set(name, "", new Date(0), path, domain, secure);
    }
};
        
        // Removes leading whitespaces
function LTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

// Removes ending whitespaces
function RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	
	return LTrim(RTrim(value));

}

function changeImage(theElement, theNewImage) {
    document.getElementById(theElement).src = theNewImage;
}

function getChildByID(parent, elementType, id) {
	if (parent != null || typeof parent == "undefined") {
		var children = parent.getElementsByTagName(elementType);
		for (var i = 0; i < children.length; i++) {
			if (children[i].getAttribute('id') == id) {
				return children[i];
			}
			var child = getChildByID(children[i], elementType, id);
			if (child != null) return child;
		}
	}
	return null;
}

function getChildByClassName(parent, elementType, className) {
	if (parent != null || typeof parent == "undefined") {
		var children = parent.getElementsByTagName(elementType);
		for (var i = 0; i < children.length; i++) {
			if (children[i].getAttribute('class').indexOf(className)>=0) {
				return children[i];
			}
			var child = getChildByID(children[i], elementType, className);
			if (child != null) return child;
		}
	}
	return null;
}

function ReplaceClass(obj, oldClass, newClass) {
    
    var classNames = "";
    var classNames = obj.getAttribute("class");
    if( classNames == null || typeof classNames == "undefined")
        classNames = obj.getAttribute("className");
    
    if( classNames == null || typeof classNames == "undefined" || classNames.length == 0)
    {
        obj.setAttribute("class", newClass);
        obj.setAttribute("className", newClass);
    }
    else {
        classNames = classNames.replace(oldClass, newClass);
        
        obj.setAttribute("class", classNames);
        obj.setAttribute("className", classNames);
    }
}

function AppendClass(obj, newClass) {
    
    var classNames = "";
    var classNames = obj.getAttribute("class");
    if( classNames == null || typeof classNames == "undefined")
        classNames = obj.getAttribute("className");
    
    if( classNames == null || typeof classNames == "undefined" || classNames.length == 0)
    {
        obj.setAttribute("class", newClass);
        obj.setAttribute("className", newClass);
    }
    else {
        classNames = classNames +" "+ newClass;
        
        obj.setAttribute("class", classNames);
        obj.setAttribute("className", classNames);
    }
}

function getChildrenByClassName(node, elementType, classname) {
    //debugger;
    if(!node) node = document.getElementsByTagName("body")[0];
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = document.getElementsByTagName(elementType);
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))
        a.push(els[i]);
    return a;
}
