	function gts_setSize (size , restrore){
		for (var i = 0 ; i < gts_Config.length ; i+=3 ) {
			if (gts_Config[i].indexOf('#') > -1 ) { // this is id selector
				var selectorParts = gts_Config[i].split('#') ;
				var elemId = selectorParts[1]
				if (elemId.indexOf(' ') > -1 ){ // allpy on tag in id
					selectorParts = selectorParts[1].split (' ') ;
					var tags = document.getElementById(selectorParts[0]).getElementsByTagName(selectorParts[1])
					for (var j = 0 ; j < tags.length ; j ++ ){
						gts_applySize(tags[j] , size ,gts_Config[i+1] ,gts_Config[i+2] ); 
					}
				}else{ // apply on id
					gts_applySize(document.getElementById(elemId) , size ,gts_Config[i+1] ,gts_Config[i+2] ); 
				}
			}else if (gts_Config[i].indexOf('.') > -1 ) { // this is class selector
				selectorParts = gts_Config[i].split ('.') ;
				var tags = document.getElementsByTagName(selectorParts[0]);
				for (var j = 0 ; j < tags.length ; j ++ ){
					if (tags[j].className == selectorParts[1] ) {
						gts_applySize(tags[j] , size ,gts_Config[i+1] ,gts_Config[i+2] ); 
					}
				}
			}else{ // this is tag selector
				var tags = document.getElementsByTagName(gts_Config[i])
				for (var j = 0 ; j < tags.length ; j ++ ){
					gts_applySize(tags[j] , size ,gts_Config[i+1] ,gts_Config[i+2] ); 
				}
			}
		}
		if (!restrore) {
			gts_setCookie(size);
		}
	}  
	
	function gts_applySize (elem , size , minSize, maxSize){
		if (!elem) return ;
		var cursize = '';
		if (elem.currentStyle)
			cursize = elem.currentStyle['fontSize'];
		else if (window.getComputedStyle)
			cursize  = document.defaultView.getComputedStyle(elem,null).getPropertyValue('font-size');
		cursize = parseInt (cursize) ;
		if (cursize) {
			var newsize = parseInt(eval(cursize + size)); 
			if (newsize && newsize >= minSize && newsize <= maxSize){
			}else{
				if (newsize < minSize ) newsize = minSize ;
				if (newsize > maxSize ) newsize = maxSize ;
			}
			if (newsize){
				elem.style.fontSize = parseInt(newsize) + 'px'; 
				var doSave = 1 ;
				for (var i = 0 ; i < gts_State.length ; i+=2) {
					if (gts_State[i] == elem) {
						doSave = 0 ;
						break;
					}
				}
				if (doSave) {
					gts_State[gts_State.length] = elem;
					gts_State[gts_State.length] = cursize ; 
				}
			}
		}
	}
	
	function gts_Reset(){
		for (var i = 0 ; i < gts_State.length ; i+=2) {
			gts_State[i].style.fontSize = gts_State[i+1] + 'px';
		}
		gts_setCookie(false);
	}	
	
	function gts_setCookie(size){
	        // try to get cookie
		var savedSize = getCookie('gtsSetup') ;
		if (!savedSize || savedSize == null) savedSize = 0 ;
		var cookieSize ;
		if (size) {
			cookieSize = parseInt(size) + parseInt(savedSize) ;
		}else{
			cookieSize = 0 ;
		}
		setCookie ('gtsSetup',cookieSize ,7 , cookiePath) ;
	}
	function gts_resetCookie(){
		var savedSize = getCookie('gtsSetup') ;
		if (savedSize && parseInt(savedSize)) {
			gts_setSize (parseInt(savedSize) , true) ;
		}		
	}
