/* forms module javascript code
 * based on	dynlite dhtml dom api
 * @author: Peter Assenov- AIP Solutions Ltd.' 2001-2007
 * @version: 2.0/2009-05-08
 * @requires: dynlite.2.0.js
 */
/* onload initialisation */
dl.load.push('_fldinit()');
/* forms submitting */
function submit(frm,par,action,skipValidation)
{	this.frm=(frm)?((typeof(frm)=='string')? dl.el(frm):frm):document.forms[0];
	this.msg=[this.frm.getAttribute('onerror')];
	
	this.err=0;
	if(!skipValidation)
	{		for(var i=this.frm.elements.length-1;i>=0;i--)
		{
			this.el=this.frm.elements[i];
			if(_fldcheck(this.el))
			{	this.err++;
				//if(this.el.getAttribute('onerror')) this.msg.push(this.el.getAttribute('onerror'));
				if(this.el.getAttribute('errorr')) this.msg.splice(1,0,this.el.getAttribute('errorr'));
				
			}
		}
	}
	if(this.err)
	{	
		if(document.getElementById('error')){
			dl.el('error').innerHTML=this.msg.join("<br />");
			//dl.el('error').innerHTML=this.msg;
			if(dl.is.el('msg')) show('msg');
		} else
			alert(this.msg.join("\n"));
		this.err=0;
		this.msg=[];
	}
	else
	{ 	if(action) this.frm.action=action;
		if(par) (this.frm.action.indexOf('?')!=-1)? this.frm.action+='&'+par:this.frm.action+='?'+par;
		this.frm.submit();
	}
}
function reset(frm)
{	this.frm=(frm)?((typeof(frm)=='string')? dl.el(frm):frm):document.forms[0];
	this.frm.reset();
	for(i=this.frm.editors.length-1;i>=0;i--)
		this.frm.editors[i].updateEditor();
}
/* fields processing */
_fldinit=function()
{	var frmArr=document.getElementsByTagName('FORM');
	for(var i=frmArr.length-1;i>=0;i--)
	{	var arr=frmArr[i].elements;
		for(var i=arr.length-1;i>=0;i--)
			if(arr[i].tagName!='FIELDSET'&&arr[i].className.indexOf('inactive')==-1&&!arr[i].getAttribute('suggest')) _fldevt(arr[i]);
	}
}
_fldevt=function(fld)
{	dl.evt.add(fld,'focus',_fldevoke);
	dl.evt.add(fld,'blur',_fldevoke);
	if (!fld.onkeyup)//MSS2009-06-18: add next condition to avoid overwriting inpu.onkeyup() in shopCart.php
		dl.evt.add(fld,'keyup',_fldevoke);
	if (!fld.onchange)//MSS2009-05-27: add next condition to avoid overwriting select.onchange() in checkStep1.php
		dl.evt.add(fld,'change',_fldevoke);
}
_fldevoke=function(e)
{	if (!e) var e = window.event;//MSS2009-06-18 add this row for IE
	var el=(e.target)?e.target:e.srcElement;//var el=(dl.is.ns)?e.target:event.srcElement;
	var evt=(e.type)?e.type:event.type;//var evt=(dl.is.ns)?e.type:event.type;

	if(evt=='keyup'&&e.keyCode==13&&el.form.getAttribute('keysubmit')=='1'){submit(el.form)}
	if(evt=='focus')	el.className=el.className.replace(/(active|error)?$/,' active');
	else _fldcheck(el);
}
_fldcheck=function(el)
{	var req=el.getAttribute('req');
	var err=0;
	if(parseInt(el.getAttribute('err'))) return 10;//MSS2009-11-03: Added this row to check email values equality. 
	if((!req||req=='no')&&el.value=='') err=0;
	else
	{	switch(el.getAttribute('vld'))
		{	case 'txt' : err=(/.+[\n\r]?/.test(el.value))? 0:1;	break;//any text
			case 'eml' : err=(/^\S+@\w\S+\.\w\w+$/.test(el.value))? 0:2; break;//email (x@xx.xx)
			case 'num' : err=(/^\d+$/.test(el.value))? 0:3; break;//number
			case 'chk' : err=(el.checked)? 0:4;break;//checkbox
			case 'dus' : err=(/^\d\d\/\d\d\/\d\d$/.test(el.value))? 0:5;break;//us date (mm/dd/yy)
			case 'dit' : err=(/^\d\d\/\d\d\/\d\d\d\d$/.test(el.value))? 0:6;break;//it date (dd/mm/yyyy)
			case 'dbg' : err=(/^\d\d\.\d\d\.\d\d\d\d$/.test(el.value))? 0:7;break;//bg date (dd.mm.yyyy)
			case 'sel' : err=(el.options[el.options.selectedIndex].value!='')? 0:8;break;//select box
		default : err=0;
		}
	}
	el.className=el.className.replace(/(active|error)?$/,((err)?' error':' '));
return err;
}
/* end of forms module */


