var gSafeOnload = new Array(); 


function SafeAddOnload(f)
{
	if(window.onload)
	{
		if(window.onload != SafeOnload)
		{
			gSafeOnload[0]=window.onload;
			window.onload = SafeOnload;
		}		
		gSafeOnload[gSafeOnload.length] = f;
	} else window.onload = f;
}

function SafeOnload() 
{	
	for(var i=0;i<gSafeOnload.length;i++) gSafeOnload[i](); 
}

function cformremselected(dest)
{
	for(var i=0;i<dest.options.length;i++)
	{
		var o = dest.options[i];
		if(o.selected)
		{
			dest.options[i]=null;
		}
	}
}


function cformaddselected(from,dest,maxcount)
{
	var options = new Object();
	
	if(maxcount>0)
	{
		if(dest.options.length>=maxcount) return;
	}
	
	
	for(var i=0;i<dest.options.length;i++)
	{
		options[dest.options[i].value] = dest.options[i].text;
	}
	for(var i=0;i<from.options.length;i++)
	{
		var o = from.options[i];
		if(o.selected)
		{
			if(options[o.value] == null || options[o.value] == "undefined" || options[o.value]!=o.text)
			{
				dest.options[dest.options.length] = new Option( o.text, o.value, false, false);
			}
		}
	}
	
	sortSelect(to);
	
	from.selectedIndex = -1;
	dest.selectedIndex = -1;
}


function cformcheckAll(formid,val,pattern) 
{
	for(var elementIdx=0; elementIdx < formid.elements.length; elementIdx++) 
	{
		if(formid.elements[elementIdx].type == 'checkbox') 
		{ 
			
			if(pattern!="")
			{
				var pat = new RegExp(pattern);
				
				if(pat.test(formid.elements[elementIdx].name)==true)
				{
					formid.elements[elementIdx].checked = val;
				}
				
			} else
			{
				formid.elements[elementIdx].checked = val;
			}
		}
	}
}
function cformvalidate(formid,itemid,valtype,vmin,vmax)
{
 var v=1;  
 var itemval = itemid.value;  
 


 if(valtype.charAt(0)=="@")
 {
 
 	if(itemval=="") return(true);
 	valtype = valtype.substring(1,valtype.length);
 	
 }
 switch(valtype)
 {
 case "CUSTOMJS":
 	v=0;
 	var exe = vmin+"(document.forms[\""+formid+"\"]);";
 	if(eval(exe)) v=1;

 	break;
 case "SET": 
 	if(itemval=="") v=0;  
 	break;  
 case "NEEDBOTH": 
 	v=0;  
 	if(itemval) 
 	{ 
 		var val2 = document.forms[formid].elements[vmin].value;  
 		if(val2) v=1;  
 	} 
 	break;  
 case "EMAIL":
 	var regex = /^[a-zA-Z0-9\._\-']+@([a-zA-Z0-9\.\-]+\.)+[a-zA-Z0-9\.\-]{2,4}$/;  
 	v = regex.test(itemval);  
 	break;  
 case "TEL":
 case "PHONE":
 	var regex = /^\+?[\(\) 0-9-]+$/;  
 	v = regex.test(itemval);  
 	break;  
case "NEEDEITHER":
v=0;  
if(!parseInt(itemval))
{
 var item2val = document.forms[formid].elements[vmin].value;  
 if(parseInt(item2val)) v=1;  
} else v=1;
 	
 	break;  
 
	 case "INT":
		 v=0;  
		 if(!isNaN(itemval)&&(itemval!=''))
		 {
		 	vmin = parseInt(vmin);  
		 	vmax = parseInt(vmax);  
		 	if(itemval>=vmin && itemval<=vmax) v=1;  
		 }
		 break;  
	 case "NOTEQ":
	 case "NOTEQUAL":
	 	if(itemval==vmin) v=0;  
	 	break;  
	 case "SELECT":
	 	if(parseInt(itemval)==0) v=0;  
	 	break;  
	 case "CLEANTEXT":
	 case "ALPHA": 
	 case "ALPHANUMERIC":
	 case "PLAINTEXT":
	 case "TEXT":
	 	v=0;  
	 	if(itemval)
	 	{ 
 			var strl = itemval.length;  
 			vmin = parseInt(vmin);  
 			vmax = parseInt(vmax);  
 			if((strl>=vmin) && (strl<=vmax)) v=1;  
 		}
 		break;  
 	case "VAREQ":
 		v = 0;  
 		var val2 = document.forms[formid].elements[vmin].value;  
 		if(val2 == itemval) v = 1;  break;  
 	}
 	return(v); 
 }
 
 function cfGetElement(formid,telement)
 {
 	var thisItem = document.forms[formid].elements[telement];
 	return(thisItem);
 }
 
  function tabclick(thisitem,thisid,formid,class2,class1)
{
	var thisDiv = document.getElementById("cform_"+formid+"_tabarea_"+thisid);
	
//	alert(thisid+" - "+gTabPos[formid]);
	
	if(thisitem == null)
	{
		thisitem = document.getElementById("cform_"+formid+"_tab_"+thisid);
	}

	
	var tabPos = gTabPos[formid];
	if(typeof(tabPos)=='undefined') tabPos=0;
	
	if(tabPos==thisid) return;
	
	
	var lastTab = document.getElementById("cform_"+formid+"_tab_"+tabPos);
	var lastDiv = document.getElementById("cform_"+formid+"_tabarea_"+tabPos);

	

	thisitem.className=class2;
	
	lastTab.className=class1;
	
	lastDiv.style.display="none";
	thisDiv.style.display="";
	gTabPos[formid]=thisid;
}

