function setCookie(name, value) {document.cookie=name+"="+escape(value)+"; path=/";}

function getCookie(szName)
{
	szName = szName.replace(/\./g, "_");

	var i = 0;
	var nStartPosition = 0;
	var nEndPosition = 0;
	var szCookieString = document.cookie;

	while(i <= szCookieString.length) {
		nStartPosition = i;
		nEndPosition = nStartPosition + szName.length;

		if(szCookieString.substring(nStartPosition,nEndPosition) == szName) {
			nStartPosition = nEndPosition + 1;
			nEndPosition = document.cookie.indexOf(";",nStartPosition);
			if(nEndPosition < nStartPosition) nEndPosition = document.cookie.length;
			return unescape(document.cookie.substring(nStartPosition,nEndPosition));
			break;
		}
		i++;
	}
	return "";
}


/* set onload */
window.onload = function () {
	getVForms ();
//	window.onload();
};

/* get forms requires validation */
function getVForms () {
	for (cnt=0; cnt < document.forms.length; cnt++) {
		if (/\bvalidate\b/.test(document.forms[cnt].getAttribute('rel'))) {
		    getRInputs(document.forms[cnt]);
		}
		getLabels(document.forms[cnt]);
	}
}

function getLabels (frm) {
	for (i=0; i < frm.elements.length; i++) {
	    if (frm.elements[i].getAttribute('id') != getFor(frm.elements[i].parentNode) && frm.elements[i].parentNode.tagName == 'LABEL')
		checkFor(frm.elements[i])
	}
}

/* get inputs requires validation */
function getRInputs (vForm) {
	vForm.onsubmit = function() {submitForm(this); return false}
	vForm.setAttribute('onkeypress', 'checkKeys(event, this)');
	if (typeof(vForm.onkeypress) != 'function') vForm.onkeypress = function() {checkKeys(event, this)}
	for (i=0; i<vForm.length; i++) {
		if (/\brequired\b/.test(vForm.elements[i].getAttribute('rel'))) vForm.elements[i].onkeypress = function() {checkInput(this)}
		if (/\bsave\b/.test(vForm.elements[i].getAttribute('rel'))) vForm.elements[i].value = getCookie('save_'+vForm.elements[i].name);
	}
}

/* check input fill */
function checkInput(t) {
	if (t.value && t.parentNode.className == 'unfilled') t.parentNode.className = '';
}

/* check form inputs */
function checkForm (t) {
	lastUnfilled = null;
	for (cnt=t.length -1; cnt>=0; cnt--) {
		if (
			/\brequired\b/.test(t.elements[cnt].getAttribute('rel')) && (
				t.elements[cnt].value == 0
				|| ((/\bemail\b/.test(t.elements[cnt].getAttribute('rel')))
				&& (checkMail(t.elements[cnt].value) == false))
			)
		) {
			if (t.elements[cnt].parentNode.tagName == 'LABEL') {
			    t.elements[cnt].parentNode.className = 'unfilled';
			    lastUnfilled = t.elements[cnt];
			}
		}
		if (/\bsave\b/.test(t.elements[cnt].getAttribute('rel'))) setCookie('save_'+t.elements[cnt].name, t.elements[cnt].value)

	}
	if (lastUnfilled) {
		lastUnfilled.focus();
		return false
	} else { return true
	}
}

/* validate mail */
function checkMail (email) {
	if (/^\w+[-_\.]*\w+@\w+-?\w+\.[a-z]{2,4}$/.test(email)) return true
	else return false
	return false
}

/* ctrl+enter send */
function checkKeys (e, t) { if (((e.keyCode == 13) || (e.keyCode == 10)) && (e.ctrlKey == true)) submitForm(t) }

/* submit action */
function submitForm(t) { if (checkForm(t)) t.submit(); }

/* get for */
function getFor (t) { return (t.getAttribute('for') || t.getAttribute('htmlFor')) ? t.getAttribute('for') || t.getAttribute('htmlFor') : false  }

/* check for */
function checkFor (t) {
	if (!t.id) {
		iId = 'id' + Math.round(Math.random()*1000);
		t.id = iId;
		setFor(t.parentNode, iId);
	} else setFor(t.parentNode, t.id);
}

/* set for */
function setFor (t, val) {
	t.setAttribute('for', val);
	t.htmlFor = val;
}
