var css_enableDebug = true;
/**
 *	Tarkistaa onko elementissä tiettyä classia
 *	Paluuarvona true/false
 */
function css_hasClass(element, className) {
	debugPrint("css_hasClass: "+element+" "+className,"article_edit_new");
	var classFound = false;
	var currentClasses = css_getClasses(element);
	if(currentClasses.length) {
		for(var i=0; i < currentClasses.length; i++) {
			if(currentClasses[i] == className) {
				classFound = true;
				break;
			}
		}
	}
	return classFound;
}

/**
 *	Hakee elementin classit arrayhin
 *	Paluuarvona aina array, vaikka ei olisi yhtään classia.
 */
function css_getClasses(element) {
	var classes = [];
	if(element.className) {
		var currentClassName = common_trim(element.className);
		if(currentClassName) {
			classes = currentClassName.split(' ');
		}
	}

	var debug = '';
	if(classes.length) for(var i=0; i < classes.length; i++) debug += classes[i]+' ';
	debug = common_trim(debug);
	debugPrint("css_getClasses: "+element+" "+debug,"article_edit_new");

	return classes;
}

/**
 *	Asettaa elementin classit arraysta
 *	Ylikirjoittaa mahdolliset vanhat classit
 */
function css_setClasses(element, classes) {
	var newClassName = '';
	if(classes.length) {
		for(var i=0; i < classes.length; i++) newClassName += classes[i]+' ';
	}
	newClassName = common_trim(newClassName);
	if(newClassName.length) {
		debugPrint("css_setClasses: "+element+" "+newClassName,"article_edit_new");
		element.className = newClassName;
	} else {
		element.removeAttribute('className');
		element.removeAttribute('class');
	}
}

/**
 *	Lisää elementtiin 'element' classin 'className'
 *	Jos elementissä on jo kyseinen class, ei tee mitään.
 */
function css_addClass(element, className) {
	debugPrint("css_addClass: "+element+" "+className,"article_edit_new");
	if(! css_hasClass(element, className)) {
		var currentClasses = css_getClasses(element);
		currentClasses.push(className);
		css_setClasses(element, currentClasses);
	} else {
		debugPrint("css_addClass: class "+className+" is already there","article_edit_new");
	}
}

/**
 *	Poistaa elementistä 'element' classin 'className'
 *	Jos elementissä ei ollut kyseistä classiä, ei tee mitään.
 *	Jos elementtiin ei jää yhtään classiä poiston jälkeen, poistaa koko class-attribuutin.
 */
function css_removeClass(element, className) {
	if(css_hasClass(element, className)) {
		var currentClasses = css_getClasses(element);
		var newClasses = [];
		for(var j=0; j < currentClasses.length; j++) {
			if(currentClasses[j] != className) newClasses.push(currentClasses[j]);
		}
		css_setClasses(element, newClasses);
	}
}

/**
 *	Hakee elementin koon sen attribuuttien perusteella.
 *	Tutkitaan elementin attribuutit width ja height ensin, ja sitten stylessä mahdollisesti olevat width ja height.
 *	Jos elementin stylessä on määritelty width ja height, nämä ovat etusijalla.
 *	HUOM jos elementissä ei ole määritelty kokoa, tämä funktio palauttaa width: 0, height:0
 *	jos haluat tietää elementin todellisen ruudulla näkyvän pikselikoon, käytä funktiota common_getSize()
 */
function css_getSize(element) {
	var size = {'width':0, 'height':0};

	size.width = element.getAttribute('width');
	size.height = element.getAttribute('height');
	if(element.style && element.style.width && element.style.width.match(/\d+px/gi)) size.width = element.style.width.match(/^\d+/gi)[0];
	if(element.style && element.style.height && element.style.height.match(/\d+px/gi)) size.height = element.style.height.match(/^\d+/gi)[0];

	return size;
}

