////////////////// OFFICE MIKS INC ALL RIGHTS RESERVED //////////////////
function StoreForm_Class() {}
StoreForm_Class.prototype.storeInCookie = function (formObj)
{
	var i,j,elm;
	var x;
	var CookieName;
	var CookieValue = '';
	
	if (typeof formObj == 'string'){
		formObj = document.getElementById(formObj);
	}
	if(!formObj){ return false; }
	
	if(typeof formObj.name == 'string'){
		CookieName = 'IM_' + formObj.name;
	}else{
		CookieName = 'IM_' + formObj.id;
	}
	
	for(i=0;i<formObj.elements.length;i++){
		elm = formObj.elements[i];
		if(elm.type == 'text'){ CookieValue = CookieValue + elm.name + '=' + escape(elm.value) + ';'; }
		if(elm.type == 'textarea'){ CookieValue = CookieValue + elm.name + '=' + escape(elm.value) + ';'; }
		if(elm.type == 'select-one'){
			CookieValue = CookieValue + elm.name + '=' + elm.selectedIndex + ';';
			CookieValue = CookieValue + elm.name + '@SelectValue' + '=' + elm.options[elm.selectedIndex].value + ';';
		}
		if(elm.type == 'checkbox'){ CookieValue = CookieValue + elm.name + '=' + elm.checked + ';'; }
		if(elm.type == 'select-multiple'){
			for(j=0;j<elm.options.length;j++){
				if(elm.options[j].selected){
					CookieValue = CookieValue + elm.name + '=' + j + ';';
				}
			}
		}
		if(elm.type == 'radio'){
			if(elm.checked){
				CookieValue = CookieValue + elm.name + '=' + escape(elm.value) + ';';
			}
		}
	}
	document.cookie = CookieName + '=' + escape(CookieValue) + ';';
	return true;
}
StoreForm_Class.prototype.restoreFromCookie = function (formObj)
{
	var splited = document.cookie.split(';');
	var ElementValues = new Array();
	var ElementNames = new Array();
	var i,j,tar,tmp;
	var CookieName;
	var CookieValue = '';
	
	if (typeof formObj == 'string')
		formObj = document.getElementById(formObj);
	if(!formObj){ return false; }
	
	if(typeof formObj.name == 'string'){
		CookieName = 'IM_' + formObj.name;
	}else{
		CookieName = 'IM_' + formObj.id;
	}
	
	for(i=0;i<splited.length;i++){
		splited[i] = splited[i].replace(/\s/,'');
		tmp = splited[i].split('=');
		if(tmp[0] == CookieName){
			CookieValue = unescape(tmp[1]);
			break;
		}
	}
	splited = CookieValue.split(';');
	for(i=0;i<splited.length;i++){
		splited[i] = splited[i].replace(/\s/,'');
		tmp = splited[i].split('=');
		if(tmp[0].length > 0){
			j = ElementNames.length;
			ElementNames[j] = tmp[0];
			ElementValues[j] = tmp[1];
		}
	}
	for(i=0;i<ElementNames.length;i++){
		if(tar = formObj.elements[ElementNames[i]]){
			this.setElementValue(tar,ElementValues[i]);
		}
	}
	return true;
}
StoreForm_Class.prototype.setElementValue = function(tar,value)
{
	if(tar.type == 'text'){ tar.value = unescape(value); }
	if(tar.type == 'textarea'){ tar.value = unescape(value); }
	if(tar.type == 'select-one'){
		if(tar.options.length > value)
		{
			tar.selectedIndex = value;
		}
	}
	if(tar.type == 'checkbox'){ tar.checked = (value == "true"); }
	if(tar.type == 'select-multiple'){ tar.options[value].selected = true; }
	if(tar.length && tar[0] && tar[0].type == 'radio'){
		for(j=0;j<tar.length;j++){
			if(tar[j].value == unescape( value )){
				tar[j].checked = true;
			}else{
				tar[j].checked = false;
			}
		}
	}
}

StoreForm_Class.prototype.getStoredSelectValueFromCookie = function (formObj,ElementName)
{
	if (typeof ElementName != 'string')
		ElementName = ElementName.name;
	ElementName = ElementName + '@SelectValue';
	return this.getStoredValueFromCookie(formObj,ElementName);
}
StoreForm_Class.prototype.getStoredValueFromCookie = function (formObj,ElementName)
{
	var splited = document.cookie.split(';');
	var i,j,tar,tmp;
	var CookieName;
	var CookieValue = '';
	
	if (typeof formObj == 'string')
		formObj = document.getElementById(formObj);
	if(!formObj){ return false; }
	
	CookieName = 'IM_' + formObj.name;
	for(i=0;i<splited.length;i++){
		splited[i] = splited[i].replace(/\s/,'');
		tmp = splited[i].split('=');
		if(tmp[0] == CookieName){
			CookieValue = unescape(tmp[1]);
			break;
		}
	}
	splited = CookieValue.split(';');
	for(i=0;i<splited.length;i++){
		splited[i] = splited[i].replace(/\s/,'');
		tmp = splited[i].split('=');
		if(ElementName == tmp[0])
			{
			return tmp[1];
		}
	}
	return false;
}

StoreForm = new StoreForm_Class();
