﻿/*
 * Some room for DOM extensions...
 */

document.getElementsByClassName = function(className, tagName, parentNode) {
    var result = new Array();
    
    if (parentNode == null) parentNode = document;
    if (tagName == null) tagName = '*';
    
    var elements = parentNode.getElementsByTagName(tagName);
    var elementsLength = elements.length;
    var pattern = new RegExp('(^|\\s)' + className + '(\\s|$)');
    
    for (var index = 0; index < elementsLength; index++) {
        if (pattern.test(elements[index].className)) {
            result.push(elements[index]);
        }
    }
    
    return result;
}

document.getCookie = function(name) {
    var start = document.cookie.indexOf(name + "=");
	var len = start + name.length + 1;
	
	if ((!start) && (name != document.cookie.substring(0, name.length))) {
		return null;
	}
	
	if (start == -1) return null;
	var end = document.cookie.indexOf(';', len);
	if (end == -1) end = document.cookie.length;
	
	return unescape(document.cookie.substring(len, end));
}

document.setCookie = function(name, value, expires, path, domain, secure) {
    var today = new Date();
	today.setTime(today.getTime());
	if (expires) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	
	var expires_date = new Date(today.getTime() + (expires));
	
	document.cookie = name + '=' + escape(value) +
		((expires) ? ';expires=' + expires_date.toGMTString() : '') + 
		((path) ? ';path=' + path : '') +
		((domain) ? ';domain=' + domain : '') +
		((secure) ? ';secure' : '');
}

document.deleteCookie = function(name, path, domain) {
    if (document.getCookie(name)) {
        document.cookie = name + '=' + ((path) ? ';path=' + path : '') + ((domain) ? ';domain=' + domain : '') + ';expires=Thu, 01-Jan-1970 00:00:01 GMT';
	}
}
/** 
* Get seletected text from page
*/
document.getSelectedText = function() {
    if (window.getSelection) {
		return window.getSelection().toString();
	} else if (document.getSelection) {
		return document.getSelection().toString();
	} else if (document.selection) {
		return document.selection.createRange().text;
	} else {
	    return "";
	}
}