
	var arFormError = new Array();

	/*Array.prototype.find=function(s){
	  for(i=0;i<this .length;i++){
		if(s==this[i]) return true;
	  }
	  return false;
	}*/


	var ar_dyn_el = Array();
	function ShowDynEl(id, index){

		if(ar_dyn_el[id] == undefined)
			return;

		for(i=0; i< ar_dyn_el[id].length; i++){
			ar = ar_dyn_el[id][i];
			if(ar['attached_id'] == index)
				gById(ar['tr_id']).style.display	= '';
			else
				gById(ar['tr_id']).style.display	= 'none';
		}
	}

	function DynamicCheckbox(tthis){
		if(tthis.checked)
			ShowDynEl(tthis.id, 1);
		else
			ShowDynEl(tthis.id, 0);

	}

	function DynamicDD(tthis){
		ShowDynEl(tthis.id, tthis.options[tthis.selectedIndex].value);

	}


	function SpellCorrect(obj, str, js_callback){

		obj.value						= str;
		
		if(js_callback == undefined)
			obj.className					= 'valide_ok';
		else
			js_callback();
		
		obj = gById('x' + obj.id);
		if(obj != null)
			obj.innerHTML	= '&nbsp;';
	
	}


	function ClickCheckbox(tthis, bDynamic){

		//can click the entire checkbox and label

		if(tthis.checked == true)
			tthis.checked = false;
		else
			tthis.checked = true;
		
		if(bDynamic)
			DynamicCheckbox(tthis);
	
	}

	function HideFormErrToolTip(d){

		if(arFormError[d.id] != null){
			
			arFormError[d.id].style.visibility = 'hidden';

		}

	}

	function DrawFormErrToolTip(str,d, bBeforeObj){

		//bBeforeObj, is it before (left) or after (right) the obj element

		if(arFormError[d.id] == null){
		//create tooltip
			
			var dt = document.createElement("DIV");
			dt.style.position				=	"absolute";
			dt.style.height					=	'19px';

			var st = document.createElement("SPAN");
			st.style.height					=	'17px';
			st.style.backgroundColor		=	'#BFFF87';
			st.style.verticalAlign			=	'middle';
			st.style.padding				=	'1px;';
			st.style.border					=	'solid 1px gray';
			
			//create img arrow
			var img = document.createElement("img");
			img.style.verticalAlign			=	'middle';

			if(bBeforeObj){				
				dt.appendChild(st);
				img.src = "/images/form/_right.gif";
				dt.appendChild(img);
			}
			else{
				img.src = "/images/form/_left.gif";
				dt.appendChild(img);
				dt.appendChild(st);
			}

			document.body.appendChild(dt);
			arFormError[d.id] = dt;

		}else
			dt = arFormError[d.id];


		if(bBeforeObj)
			dt.childNodes[0].innerHTML			=	str;
		else
			dt.childNodes[1].innerHTML			=	str;
		
//position

		dt.style.top			=	(getOffsetTop(d,	true)) +  'px'; // (getOffsetTop(d,	true) + d.offsetHeight) +  'px';
		
		if(bBeforeObj)
			dt.style.left		=	(getOffsetLeft(d,	true) - dt.offsetWidth - 5) +  'px';
		else
			dt.style.left		=	(getOffsetLeft(d,	true) + d.offsetWidth + 5) +  'px';

//make it visible i was hidden
		dt.style.visibility	=	"visible";

	}



///form extensions


//size

		function inchToCm(fm_name, name, min_cm){

			var f = eval('document.forms["' + fm_name + '"].' + name + '_feet');
			var i = eval('document.forms["' + fm_name + '"].' + name + '_inch');
			var c = eval('document.forms["' + fm_name + '"].' + name + '_cm');

			if(f.selectedIndex == 0 || i.selectedIndex == 0){
				c.selectedIndex = 0;
				eval('document.forms["' + fm_name + '"].h_' + name).value = -1; //default
				return;
			}

			cm  = f.options[f.selectedIndex].value * 12;
			cm += parseInt(i.options[i.selectedIndex].value,0,10);
			cm  = Math.round(cm * 2.54);

			index = (cm - min_cm) +1;

			if(c.length > index)
				c.selectedIndex = index;
			else{
				c.selectedIndex = 0;
			}

			eval('document.forms["' + fm_name + '"].h_' + name).value = cm;
		
		}

		function cmToInch(fm_name, name, min_feet){

			var f = eval('document.forms["' + fm_name + '"].' + name + '_feet');
			var i = eval('document.forms["' + fm_name + '"].' + name + '_inch');
			var c = eval('document.forms["' + fm_name + '"].' + name + '_cm');

			if(c.selectedIndex == 0){
				f.selectedIndex = 0;
				i.selectedIndex = 0;
				eval('document.forms["' + fm_name + '"].h_' + name).value = -1; //default
				return;
			}

			inch	= Math.round(c.options[c.selectedIndex].value/2.54);
			feet	= Math.floor(inch/12);
			inch   %= 12;

			f.selectedIndex = (feet-min_feet) +1;
			i.selectedIndex = (inch) +1;

			eval('document.forms["' + fm_name + '"].h_' + name).value = parseInt(c.options[c.selectedIndex].value,0,10);

		}	