// **********************
//
// JS Cookies tool
//
// **********************

function _getCookieVal (offset) {
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1) {
		endstr = document.cookie.length;
	}
	return unescape(document.cookie.substring(offset, endstr));
}

function js_GetCookie (name)  {
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen)  {
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg) {
			return _getCookieVal (j);
		}
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) {
			break;
		}
	}
	return null;
}

/**
  * arguments format: js_SetCookie(name, value[, expires, path, domain, secure]);
  */
function js_SetCookie (name, value)  {
	var argv = js_SetCookie.arguments;
	var argc = js_SetCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape (value) +
		((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
		((path == null) ? "" : ("; path=" + path)) +
		((domain == null) ? "" : ("; domain=" + domain)) +
		((secure == true) ? "; secure" : "");
}

function js_DeleteCookie (name) {
	var exp = new Date();
	exp.setTime (exp.getTime() - 1000000000);
	var cval = js_GetCookie (name);
	document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}

/**
  * Encode 
 **/
function _encodeDecode(value1, value2) {
	var result = "";
	for(var i = 0; i < (value1.length < value2.length ? value1.length : value2.length); i++) {
		result += String.fromCharCode(value2.charCodeAt(i)^value1.charCodeAt(i));
	}	
	return result;
}

/** 
  * Load login/password 
 **/
function js_RestoreLoginPassword (loginFieldId, passFieldId) {
	if (js_GetCookie("OnsiteViewLogin") != null && js_GetCookie("OnsiteViewPassword") != null) {
		var login = unescape(js_GetCookie("OnsiteViewLogin"));
		var password = unescape(js_GetCookie("OnsiteViewPassword"));
		login = _encodeDecode(login, "asjkdf;lkadsjflkjha#$498jhgklhgsad");
		password = _encodeDecode(password, "89323654kjahdflkj@lhlkjh23q23323kd");
		document.getElementById(loginFieldId).value = login;
		document.getElementById(passFieldId).value = password;
	}
}

/** 
  * Save login/password 
 **/
function js_SaveLoginPassword (loginFieldId, passFieldId) {
	var exp = new Date();
	exp.setTime(exp.getTime() + 1209600000); // 2 weeks to expire
	var login = document.getElementById(loginFieldId).value;
	var password = document.getElementById(passFieldId).value;
	login = escape(_encodeDecode(login, "asjkdf;lkadsjflkjha#$498jhgklhgsad"));
	password = escape(_encodeDecode(password, "89323654kjahdflkj@lhlkjh23q23323kd"));
	js_SetCookie("OnsiteViewLogin", login, exp, "/");
	js_SetCookie("OnsiteViewPassword", password, exp, "/");
}

/** 
  * Clear login/password 
 **/
function js_ClearLoginPassword () {
	js_DeleteCookie("OnsiteViewLogin");
	js_DeleteCookie("OnsiteViewPassword");
}


