﻿function SetSelectionRange(input, start, end) {
    if (input.setSelectionRange) {
	    input.setSelectionRange(start, end);
    } else if (input.createTextRange) {
    	var range = input.createTextRange();
	    range.collapse(true);
	    range.moveStart("character", start);
	    range.moveEnd("character", end - start);
	    range.select();	    
    }    
}
    
function GetSelectionStart(input) {
    if (input.selectionStart)
	    return input.selectionStart;
	    
    var range = document.selection.createRange();
    var isCollapsed = range.compareEndPoints("StartToEnd", range) == 0;
    if (!isCollapsed)
	    range.collapse(true);
    var b = range.getBookmark();
    return b.charCodeAt(2) - 2;
}

function GetSelectionEnd(input) {
    if (input.selectionEnd)
	    return input.selectionEnd;
    var range = document.selection.createRange();
    var isCollapsed = range.compareEndPoints("StartToEnd", range) == 0;
    if (!isCollapsed)
	    range.collapse(false);
    var b = range.getBookmark();
    return b.charCodeAt(2) - 2;
}



function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}