/*=====================================    begin: standart */

function setCookie(name,value,days, hours, minutes){	// write cookie
	//alert('value='+value)
	if (days || hours || minutes) {
		var date = new Date();
		days = days ? days : 0
		hours = hours ? hours :0
		minutes = minutes ? minutes : 0
		date.setTime(date.getTime()+ 60*1000*(minutes+60*(hours+ 24*days)))
		var expires = "; expires="+date.toGMTString()
	}
	else expires = ""
	document.cookie = name+"="+escape(value)+expires+"; path=/"
}


//return	<	kukio, perduoto per 'name' reiksme arba null jeigu tokio kukio nera
function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}


function deleteCookie(name) {							// delete cookie
	setCookie(name,"",-1)
}


//=====================================    end: standart


function saveProperties(Obj,							// Сохранение свойств экземпляра объекта Obj.
		Properties,										// Имена свойств в массиве Properties,
		pref,											// уникальность имен cookie обеспечивается префиксом.
		days, hours, minutes){							// Срок годности cookie
	var val, i, name
	pref = pref ? pref : ''
	for (i=0;i < Properties.length; i++) {
		name = Obj+'.'+	Properties[i]
		eval('val='+name)
		if (val!=null)
			setCookie(pref+Obj+Properties[i], val, days, hours, minutes)
		//alert('name='+name+' | val='+val)
	}
}

function restoreProperties(Obj, Properties, pref){		// Восстановление свойств экземпляра объекта Obj.
														// Имена свойств в массиве Properties,
														// уникальность имен cookie обеспечивается префиксом.
	var i, val, ev
	pref = pref ? pref : ''
	for (i=0;i < Properties.length; i++){
		val = getCookie(pref+Obj+Properties[i])
		ev = Obj + '.'+Properties[i]+'="'+val+'"'
		//alert('name='+Properties[i]+' val='+val + ' ev=|'+ev+'|')
		if (val!=null) eval(ev)
	}
}

