// Font Resize Mod for Unsorted.ru
// XomRk 2009
// v.002

//var font_size = 0;

//получаем размер из куки
font_size = parseInt(getCookie('font_size'));

//установить размер
set_style_sheet();

//увеличить размер шрифта
function incrise_font_size()
{
	font_size += 1;
	if (font_size > 3) font_size = 3;	
	set_style_sheet();		
}

//уменьшить размер шрифта
function decrise_font_size()
{
	font_size -= 1;
	if (font_size < 0) font_size = 0;
	set_style_sheet(); 
}

//ф-ция установки размера шрифта
function set_style_sheet()
{	
	
	//записать всё в куки чтобы не мучать БД
	//пускай живёт 90 дней	
	var cookies_date=new Date();
	cookies_date.setDate(cookies_date.getDate()+90);
	setCookie("font_size", font_size, cookies_date.toGMTString(), "/");

	//Переопределить стиль
	switch(font_size) {
		case 1: add_style_sheet ("templates/NoseBleed/FontResizeMod/def_1_lite.css"); break;
		case 2: add_style_sheet ("templates/NoseBleed/FontResizeMod/def_2_lite.css"); break;
		case 3: add_style_sheet ("templates/NoseBleed/FontResizeMod/def_3_lite.css"); break;
		default: add_style_sheet ("templates/NoseBleed/FontResizeMod/def_0_lite.css"); break;
	}

}

//добавить стиль
function add_style_sheet(url)
	{
	    style = document.createElement('link');
	    style.rel = 'stylesheet';
	    style.type = 'text/css';
	    style.href = url;
	    style.id = 'CSStemplate';
	  

	  var old_css = document.getElementById ('CSStemplate');
	  document.getElementsByTagName('head')[0].removeChild(old_css);
	  document.getElementsByTagName('head')[0].appendChild(style);
	  
	  //можно через реплейс, но субъективно кажется что так быстрее
	  //document.getElementsByTagName('head')[0].replaceChild(style,old_css);

	  // Делаем объект совместимыми с W3C DOM2 (для  древних IE)
	  return style_sheet_make_compatible(style);		  
	}

function style_sheet_make_compatible(style)
{
	  //Firefox не даёт доступа к cssRules до загрузки стиля
	  try
	  {
	    style.cssRules;
	  }
	  catch (e)
	  {
	    return style;
	  }
	
	  // Создаём CSSStyleSheet.cssRules
	  if (typeof style.cssRules == 'undefined' && typeof style.rules != 'undefined')
	    style.cssRules = style.rules;
	
	  // Создаём CSSStyleSheet.insertRule и CSSStyleSheet.deleteRule
	  if (typeof style.insertRule == 'undefined' && typeof style.addRule != 'undefined')
	    style.insertRule = StyleSheet_insertRule;
	  if (typeof style.deleteRule == 'undefined' && typeof style.removeRule != 'undefined')
	    style.deleteRule = style.removeRule;
	
	  // Проверяем, существуют ли все нужные свойства
	  if (typeof style.cssRules == 'undefined' || typeof style.insertRule == 'undefined'
	      || typeof style.deleteRule == 'undefined')
	    return null;
	  else
	    return style;			    
}


//работа с кукисами
function setCookie (name, value, expires, path, domain, secure) {
  	document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}

function getCookie(name) {
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
			if (setStr == "NaN") return(0);
		}
	}
	return(setStr);
}