function askConfirmation(url, question)
{
	if(confirm(question))
	{
		goTo(url, 0);
	}
}

function doDelete(url, customQuestion)
{
	customQuestion = (customQuestion) ? customQuestion:"Are you sure you want to delete this record?";
	askConfirmation(url, customQuestion);
}

function deleteImage(url)
{
	var customQuestion = "Are you sure of deleting this image?";
	askConfirmation(url, customQuestion);
}

function promptQuestion(url, fieldName, question, answer)
{
	var a = (answer) ? answer:"";
	var question = (question) ? question:"Enter the data please";
	var data = prompt(question, a);

	if (data)
	{
		window.location.href = url+"&"+fieldName+"="+data;
	}
}


function popupImage(img) {
	titre="Image";
	w=open("",'image','width=400,height=400,toolbar=no,scrollbars=no,resizable=yes');
	w.document.write("<HTML><HEAD><TITLE>"+titre+"</TITLE></HEAD>");
	w.document.write("<SCRIPT language=javascript>function checksize()  { if (document.images[0].complete) {  window.resizeTo(document.images[0].width+12,document.images[0].height+30); window.focus();} else { setTimeout('check()',250) } }</"+"SCRIPT>");
	w.document.write("<BODY onload='checksize()' leftMargin=0 topMargin=0 marginwidth=0 marginheight=0><IMG src=\""+img+"\" border=0>");
	w.document.write("");
	w.document.write("</BODY></HTML>");
	w.document.close();
}

function popup(url, w, h, winName, location, toolbar, scrollBar, resizable)
{
	location = (location) ? ",location=yes":",location=no";
	toolbar = (toolbar) ? ",toolbar=yes":",toolbar=no";
	scrollBar = (scrollBar) ? ",scrollbars=yes":",scrollbars=no";
	resizable = (resizable) ? ",resizable=yes":",resizable=no";

	
	w=open(url,winName,'width='+w+',height=' + h + location + toolbar + scrollBar + resizable);
	
	if (w==null || typeof(w)=="undefined")
	{
		alert("A popup blocker has prevent this website\nfrom showing you relevant information.\nPlease allow popups for this site.");
	}
	else
	{
		w.focus();
	}
}

function hideInfoBox()
{
	var container = getContainerReference1();
	container.innerHTML = "";
	container.style.display = "none";
}

function getContainerReference1()
{
	var objInfoBox = document.getElementById("infoBox");

	if (objInfoBox) 
	{
		return objInfoBox;
	}
	else
	{
		var objDiv = document.createElement("div");
			objDiv.className = "infoBox";
			objDiv.id = "infoBox";

		document.body.appendChild(objDiv)
		return objDiv;
	}
}

function formatDB2Date(date)
{
	if (date.length == 10)
	{
		return date.substr(8,2)+"/"+date.substr(5,2)+"/"+date.substr(2,2);
	}

	return "n/a";
}

function drawIcon(file_name)
{
	extensions = new Array("jpg", "indd", "html,htm,php,js",
		"doc", "pdf", "psd", "pub", "tif,tiff", "xls", "rar");
	icons = new Array("jpg.gif", "indd.gif", "html.gif",
		"doc.gif", "pdf.gif", "psd.gif", "pub.gif", "tif.gif",
		"xls.gif", "rar.gif");

	counter = 0;
	while(file_name.indexOf(".") != -1)
	{
		file_name = file_name.substr(file_name.indexOf(".")+1);
		counter++;
		if (counter == 50)
		{
			alert("stack");
			return "";
		}
	}

	for(i=0; i<extensions.length; i++)
	{
		extension_arr = extensions[i].split(",");

		for (j=0; j<extension_arr.length; j++)
		{
			if (file_name == extension_arr[j])
			{
				return "<img src='../images/icons/"+icons[i]+"' onerror='this.style.display=\"none\"' />";
			}
		}
	} 
}

function bookMarkPage(websiteName)
{
	var added = window.external.AddFavorite(window.location.href,
		"" + document.title);
}

function formBuilderCheck(formObj)
{
	for(i=0; i<formObj.elements.length; i++)
	{
		if(formObj.elements[i].err && formObj.elements[i].style.display != "none")
		{
			if(formObj.elements[i].type.toLowerCase() == "select" ||
				formObj.elements[i].type.toLowerCase() == "select-one")
			{
				if(formObj.elements[i].selectedIndex == 0)
				{
					alert(formObj.elements[i].err);
					formObj.elements[i].focus();
					return false;
				}
			}
			else if(formObj.elements[i].type.toLowerCase() == "radio" ||
				formObj.elements[i].type.toLowerCase() == "checkbox")
			{
				var isChecked = false;
				var elements = new Array();
				for(j=0; j<formObj.elements.length; j++)
				{
					if (formObj.elements[j].name == formObj.elements[i].name)
					{
						elements[elements.length] = formObj.elements[j];
					}
				}

				for(j=0; j<elements.length; j++)
				{
					if(elements[j].checked)
					{
						isChecked = true;
					}
				}

				if(!isChecked)
				{
					alert(formObj.elements[i].err);
					formObj.elements[i].focus();
					return false;
				}
			}
			else
			{
				var test = doTrim(formObj.elements[i].value);
				if(test == "")
				{
					alert(formObj.elements[i].err);
					if(formObj.elements[i].type.toLowerCase() != "hidden")
					{
						formObj.elements[i].focus();
					}
					return false;
				}
			}
		}
	}
	return true;
}
function doTrim(s)
{
	while(s.indexOf(" ") != -1)
	{
		s = s.replace(" ", "");
	}
	return s;
}

function ITShowHideElement(eleID)
{
	try
	{
		var eleIDObj = document.getElementById(eleID);
		var display = (eleIDObj.style.display == "none") ? "":"none";
		eleIDObj.style.display = display;
	}
	catch(e)
	{
		//alert(e.description)
	}
}

function basename(path) 
{ 
	return path.replace( /.*\//, "" ); 
}

function checkPw(form) {
pw1 = form.password.value;
pw2 = form.password2.value;

if (pw1 != pw2) {
alert ("\nYou did not enter the same new password twice. Please re-enter your password.")
return false;
}
else return true;
}

 function isEmailAddr(email)
{
  var result = false
  var theStr = new String(email)
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function validateEnquiry(formObj)
{
	try
	{
		var error="";
		var divname="span";
		var tmpCurrentGroup = "";
		var tmpGroups = new Array();

		for(var i=0; i<formObj.elements.length; i++) //>
		{
			if(formObj.elements[i].name)
			{
				if(formObj.elements[i].isCompulsory == "true") //check compulsory elements
				{
					divname = formObj.elements[i].errorID; 
					hideIcons(divname); //hidding icons

					if(formObj.elements[i].type == "text" ||
						formObj.elements[i].type == "textarea")
					{
						if(formObj.elements[i].value == "")
						{
							error =	showIcons(formObj.elements[i], divname, error);
						}											
					}
					if(formObj.elements[i].type == "radio" ||
						formObj.elements[i].type == "checkbox") 
					{
						if(tmpCurrentGroup != formObj.elements[i].name)
						{
							var key = tmpGroups.length;
							tmpGroups[key] = new Array();
							tmpCurrentGroup = formObj.elements[i].name;
						}
						
						var counter = tmpGroups[key].length;
						tmpGroups[key][counter] = formObj.elements[i];
					}					
					if(formObj.elements[i].type == "select-one")
					{
						if(formObj.elements[i].selectedIndex == 0)
						{
							error =	showIcons(formObj.elements[i], divname, error);
						}
					}					
					if(formObj.elements[i].type == "select-multiple")
					{
						if(formObj.elements[i].selectedIndex == -1)
						{
							error =	showIcons(formObj.elements[i], divname, error);						
						}
					}					
				}
			}
		}
		
		if(tmpGroups.length) //radio or checkbox elements to be tested
		{
			for(var i=0; i<tmpGroups.length; i++) //iterating through groups
			{					
				var selectionFound = false;
				for(var j=0; j<tmpGroups[i].length; j++) //iterating through elements
				{
					if(tmpGroups[i][j].checked) //if checked
					{
						selectionFound = true;
						break;
					}
				}
				
				if(!selectionFound) //if no selection was found
				{
					divname = tmpGroups[i][0].errorID; //using the first element from the group - 0
					error =	showIcons(tmpGroups[i][0], divname, error);				
				}
			}
		}

		if(error=="")
		{
			return true;
		}
		else
		{
			error="Fields marked with an arrow are compulsory.\n"+error+"\nPlease fill them in.";
			alert(error);
			return false;
		}
		return false;
	}
	catch(e)
	{
		alert(e.description)
		return false;
	}
}

function showIcons(fieldObj,divname,error)
{
	document.getElementById(divname).style.display = "block";

	if(fieldObj)
	{
		error+= "\n"+fieldObj.label;	
		fieldObj.focus()
	}
	
	return error;
}
function hideIcons(divname)
{
	document.getElementById(divname).style.display = "none";
}

function ismail(mail)
{
	return(new RegExp(/^\w+(((_|-)\w+)|(\.)|('\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail));
}

function goTo(url, addToHistory)
{
	if(addToHistory)
	{
		window.location.href=url;
	}
	else
	{
		window.location.replace(url);
	}
}

function acTickUntick(chkObj, classNameFlag)
{
	if(chkObj)
	{
		var formObj = chkObj.form;
		var parent = (formObj) ? formObj:document;
		var arrElements = getElementsByClassName(parent, "input", classNameFlag);

		if(typeof arrElements == "object")
		{
			for(var i=0; i<arrElements.length; i++)
			{
				if(arrElements[i])
				{
					arrElements[i].checked = chkObj.checked;
				}
			}
		}
	}
}

function reloadAndClose()
{
	if(window.opener)
	{
		window.opener.location.reload();
	}

	window.close();
}

function swapCSSClass(obj, cssClass)
{
	if(obj)
	{
		obj.className = cssClass;
	}
}

function confirmDeleteForm(question)
{
	question = (question) ? question:"Are you sure you want to proceed?";
	return confirm(question);
}

try
	{
	//firefox table move row
	//from http://studiozero.proboards44.com/index.cgi?board=opensrc&action=print&thread=1141170034
	if(typeof document.getElementsByTagName("TABLE")[0].moveRow == "undefined"){
	Node.prototype.moveRow = function(){
	if(this && this.nodeName.match(/^(table|t(body|head|foot))$/i)){
	try {
	one = (!arguments[0] && arguments[0] != 0?-1:arguments[0]);
	two = (!arguments[1] && arguments[1] != 0?-1:arguments[1]);

	// Makes sure the row exists and then makes sure the insertable row isn't greater then the length
	if(!this.rows[one] || two > this.rows.length){
	var err = new Error();
	throw err;
	}

	// This is just so that it gets put in the right place.
	if(two > one)
	two = two+1;
	else if(one > two)
	one = one+1;

	newRow = this.insertRow(two);
	newRow.innerHTML = this.rows[one].innerHTML;
	this.deleteRow(one);
	} catch(e) {
	}
	}
	}
	}
}
catch(e)
{}

function getElementsByClassName(oElm, strTagName, oClassNames){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var arrRegExpClassNames = new Array();
	if(typeof oClassNames == "object"){
		for(var i=0; i<oClassNames.length; i++){
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
		}
	}
	else{
		arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
	}
	var oElement;
	var bMatchesAll;
	for(var j=0; j<arrElements.length; j++){
		oElement = arrElements[j];
		bMatchesAll = true;
		for(var k=0; k<arrRegExpClassNames.length; k++){
			if(!arrRegExpClassNames[k].test(oElement.className)){
				bMatchesAll = false;
				break;
			}
		}
		if(bMatchesAll){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

function acValidateForm(formObj, customMsg)
{
	try
	{
		var errorStr = "";

		if(formObj)
		{
			var tmpCurrentGroup = "";
			var tmpGroups = new Array();

			for(var i=0; i<formObj.elements.length; i++)
			{
				if(formObj.elements[i].getAttribute("isCompulsory") == "yes")
				{
					if(formObj.elements[i].type == "text" ||
						formObj.elements[i].type == "password" ||
						formObj.elements[i].type == "textarea")
					{
						if(formObj.elements[i].value == "")
						{
							errorStr += "\n- " + formObj.elements[i].getAttribute("controlLabel");
						}
					}
					else if(formObj.elements[i].type == "radio" ||
						formObj.elements[i].type == "checkbox")
					{
						if(tmpCurrentGroup != formObj.elements[i].name)
						{
							var key = tmpGroups.length;
							tmpGroups[key] = new Array();
							tmpCurrentGroup = formObj.elements[i].name;
						}

						var counter = tmpGroups[key].length;
						tmpGroups[key][counter] = formObj.elements[i];
					}
					else if(formObj.elements[i].type == "select-one")
					{
						if(formObj.elements[i].selectedIndex == 0)
						{
							errorStr += "\n- " + formObj.elements[i].getAttribute("controlLabel");
						}
					}
					else if(formObj.elements[i].type == "select-multiple")
					{
						if(formObj.elements[i].selectedIndex == -1)
						{
							errorStr += "\n- " + formObj.elements[i].getAttribute("controlLabel");
						}
					}
				}

			}

			if(tmpGroups.length) //radio or checkbox elements to be tested
			{
				for(var i=0; i<tmpGroups.length; i++) //iterating through groups
				{
					var selectionFound = false;
					for(var j=0; j<tmpGroups[i].length; j++) //iterating through elements
					{
						if(tmpGroups[i][j].checked) //if checked
						{
							selectionFound = true;
							break;
						}
					}

					if(!selectionFound) //if no selection was found
					{
						errorStr += "\n- " + tmpGroups[i][0].getAttribute("controlLabel");
					}
				}
			}

			if(errorStr != "")
			{
				var s = (customMsg) ? customMsg:"The following items are compulsory, please fill them in";
				alert(s + "\n" + errorStr);
				return false;
			}
		}

		return true;
	}
	catch(e)
	{
		alert(e.description);
		return false;
	}
}
function removespace(cad)
{
	while (cad.indexOf(' ')==0)
	{
		cad=cad.substr(1,cad.length-1);
	}
	return cad
}
function acValidateForm_custom(formObj)
{	
	formObj['firstname'].value=removespace(formObj['firstname'].value);
	formObj['lastname'].value=removespace(formObj['lastname'].value);
	formObj['email'].value=removespace(formObj['email'].value);
	formObj['address'].value=removespace(formObj['address'].value);
	formObj['suburb'].value=removespace(formObj['suburb'].value);
	formObj['postcode'].value=removespace(formObj['postcode'].value);
	formObj['mobile'].value=removespace(formObj['mobile'].value);
	formObj['code'].value=removespace(formObj['code'].value);
		
	
	try
	{

		if(formObj)
		{
			
			if(formObj['firstname'] && formObj['firstname'].value == "")
			{
				alert("Please note that all fields are compulsory\n\nPlease enter your first name");
				try
				{
					formObj['firstname'].focus();
				}
				catch(e) {}				
				return false;
			}
			if(formObj['lastname'] && formObj['lastname'].value == "")
			{
				alert("Please note that all fields are compulsory\n\nPlease enter your last name");
				try
				{
					formObj['lastname'].focus();
				}
				catch(e) {}				
				return false;
			}
			
			if(formObj['email'] && formObj['email'].value == "")
			{
				alert("Please note that all fields are compulsory\n\nPlease enter your email address");
				try
				{
					formObj['email'].focus();
				}
				catch(e) {}				
				return false;
			}
			if(!checkEmail())
			{
				alert("Please make sure you have entered a valid email address");
				try
				{
					formObj['email'].select();
				}
				catch(e) {}				
				return false;
			}
			if(formObj['address'] && formObj['address'].value == "")
			{
				alert("Please note that all fields are compulsory\n\nPlease enter your address");
				try
				{
					formObj['address'].focus();
				}
				catch(e) {}				
				return false;
			}
			if(formObj['suburb'] && formObj['suburb'].value == "")
			{
				alert("Please note that all fields are compulsory\n\nPlease enter your suburb");
				try
				{
					formObj['suburb'].focus();
				}
				catch(e) {}				
				return false;
			}
			
			if(formObj['postcode'] && formObj['postcode'].value == "")
			{
				alert("Please note that all fields are compulsory\n\nPlease enter your post code");
				try
				{
					formObj['postcode'].focus();
				}
				catch(e) {}				
				return false;
			}
			else
			{
				if(IsNumber(formObj['postcode'].value) ==false)
				{
					alert("Please make sure you have entered Postcode numbers only")
					return false;
				}
				
				if(formObj['postcode'].value.length != 4)
				{
					alert("Please make sure the post code you entered has 4 digits");
					try
					{
						formObj['postcode'].focus();
					}
					catch(e) {}				
					return false;
				}
				
			}
		
			
			if(formObj['mobile'] && formObj['mobile'].value == "")
			{
				alert("Please note that all fields are compulsory\n\nPlease enter your mobile number");
				try
				{
					formObj['mobile'].focus();
				}
				catch(e) {}				
				return false;
			}
			
			if(formObj['mobile'].value.length <8 || formObj['mobile'].value.length >10)
			{
				alert("Your telephone number must have between 8 and 10 digits")
				return false;
			
			}
			
			 gender_=getRadioButtonSelectedValue(formObj['gender']);
			  
			if(gender_==null || typeof(gender_)=='undefined')
			{				
					 	alert("Select a gender");
					
						return false;																
			}
			
			if(formObj['code'] && formObj['code'].value == "")
			{
				alert("Please note that all fields are compulsory\n\nPlease enter the words into textfield ");
				try
				{
					formObj['code'].focus();
				}
				catch(e) {}				
				return false;
			}
			if(!formObj['iAgree'].checked)
			{
				alert("Tick on terms and conditions");
				formObj['iAgree'].focus();
				return false;
			}
			
			
			
		}
		return true;
		
	}
	catch(e)
	{
		alert(e.description);
		return false;
	}
}
function getRadioButtonSelectedValue(ctrl)
{
		for(i=0;i<ctrl.length;i++)
			if(ctrl[i].checked) return ctrl[i].value;
} 	
function checkEmail()
	{
		var x = document.form.email.value;
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

		if (filter.test(x))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
function IsNumber(sText)
	{
		   var ValidChars = "0123456789";
		   var IsNumber=true;
		   var Char;
		   for (i = 0; i < sText.length && IsNumber == true; i++)
			  {
			  Char = sText.charAt(i);
			  if (ValidChars.indexOf(Char) == -1)
				 {
				 IsNumber = false;
				 }
			  }
		   return IsNumber;
	}	
function changeGetFormat(formObj, url)
{
	if(formObj)
	{
		var qString = "";

		for(var i=0; i<formObj.elements.length; i++)
		{
			if(formObj.elements[i].name)
			{
				qString += "/" + formObj.elements[i].name + "/" + formObj.elements[i].value;
			}
		}

		qString = qString.substr(1);
		var page = url.substring(0, url.lastIndexOf("."));

		try
		{
			goTo(page + qString, 1)
		}
		catch(e)
		{
			alert(e.description);
		}

		return false;
	}

	return false;
}

function acCheckForDelete(formObj)
{
	if(formObj)
	{
		var numDelChecked = 0;

		for(var i=0; i<formObj.elements.length; i++)
		{
			if(formObj.elements[i].type == "checkbox" &&
				formObj.elements[i].getAttribute("chkAction") == "delete" &&
				formObj.elements[i].checked)
			{
				numDelChecked++;
			}
		}

		if(numDelChecked > 0)
		{
			var text = (numDelChecked == 1) ? "Are you sure you want to delete this item?":
				"Are you sure you want to delete these "+numDelChecked+" items?";
			return confirm(text);
		}

		return true;
	}

	return false;
}

function acApplyEffect(className, effectOpen, effectClose, parentObjID, targetTag)
{
	parentObjID = (parentObjID) ? parentObjID:"treeTable";
	targetTag = (targetTag) ? targetTag:"tr";
	
	var parentObj = document.getElementById(parentObjID);

	if(typeof className == "object")
	{
		for(var j=0; j<className.length; j++)
		{
		
			var elements = getElementsByClassName(parentObj, targetTag, className[j]);
			
			for(i=0; i<elements.length; i++)
			{
				try
				{
					if(effectOpen && effectClose)
					{
						if(elements[i].style.display == "none")
						{
							eval("Effect."+effectOpen+"(elements[i].id);");
						}
						else
						{
							eval("Effect."+effectClose+"(elements[i].id);");
						}
					}
					else
					{
						var effectToUse = (effectOpen) ? effectOpen:effectClose;
						eval("Effect."+effectToUse+"(elements[i].id);");
					}
				}
				catch(e) {
					alert(e.description)
				}
			}
		}	
	}
	else
	{
		var elements = getElementsByClassName(parentObj, targetTag, className);
		
		for(i=0; i<elements.length; i++)
		{
			try
			{
				if(effectOpen && effectClose)
				{
					if(elements[i].style.display == "none")
					{
						eval("Effect."+effectOpen+"(elements[i].id);");
					}
					else
					{
						eval("Effect."+effectClose+"(elements[i].id);");
					}
				}
				else
				{
					var effectToUse = (effectOpen) ? effectOpen:effectClose;
					eval("Effect."+effectToUse+"(elements[i].id);");
				}
			}
			catch(e) {
					alert(e.description)				
			}
		}	
	}
}

function acApplyEffectTree(className, effect, parentObjID, targetTag)
{
	parentObjID = (parentObjID) ? parentObjID:"treeTable";
	targetTag = (targetTag) ? targetTag:"tr";
	
	var parentObj = document.getElementById(parentObjID);

	if(typeof className == "object")
	{
		for(var j=0; j<className.length; j++)
		{
		
			var elements = getElementsByClassName(parentObj, targetTag, className[j]);
			
			for(i=0; i<elements.length; i++)
			{
				eval("Effect."+effect+"(elements[i].id);");
				
			}
		}	
	}
	else
	{
		var elements = getElementsByClassName(parentObj, targetTag, className);
		
		for(i=0; i<elements.length; i++)
		{
			eval("Effect."+effect+"(elements[i].id);");
		}	
	}
}

var acCopyInfo_prevInfo = null;
function acCopyInfo(chkObj, copyFrom, copyTo)
{
	var formObj = chkObj.form;

	if(formObj)
	{
		var copyFromFields = copyFrom.split(",");
		var copyToFields = copyTo.split(",");
		if(chkObj.checked)
		{
			acCopyInfo_prevInfo = new Array(); //init as array
		}

		for(var i=0; i<copyFromFields.length; i++)
		{
			//if copy from string represents more than one object, then break the string and check the elements
			var copyFromArr = copyFromFields[i].split("&");
			var copyFromVal = "";
			var errNoCopyField = false;
			for(var j=0; j<copyFromArr.length; j++)
			{
				if(!formObj[copyFromArr[j]])
				{
					errNoCopyField = true;
				}
				else
				{
					if(formObj[copyFromArr[j]].type == "text" ||
						formObj[copyFromArr[j]].type == "password" ||
						formObj[copyFromArr[j]].type == "textarea")
					{
						copyFromVal += " " +  formObj[copyFromArr[j]].value;
					}
					else if(formObj[copyFromArr[j]].type == "radio" ||
						formObj[copyFromArr[j]].type == "checkbox")
					{
						/* not supported yet */
					}
					else if(formObj[copyFromArr[j]].type == "select-one")
					{
						try
						{
							copyFromVal += " " +  formObj[copyFromArr[j]].options[formObj[copyFromArr[j]].selectedIndex].value;
						}
						catch(e)
						{
							alert(e.description);
						}
//						alert("copyFromVal = " + copyFromVal);
					}
					else if(formObj[copyFromArr[j]].type == "select-multiple")
					{
						/* not supported yet */
					}					
				}
			}
			copyFromVal = (copyFromVal.length > 0) ? copyFromVal.substr(1):"";
			
			//checking both elements exist
			if(!errNoCopyField&& formObj[copyToFields[i]])
			{				
				if(chkObj.checked)
				{
					try //prevent error in case that acCopyInfo_prevInfo is not accessible
					{
						acCopyInfo_prevInfo[copyToFields[i]] = formObj[copyToFields[i]].value; //storing values to an array
					}
					catch(e)
					{
						alert(e.description)
					}
					
				/* pasting values into target elements */
					if(formObj[copyToFields[i]].type == "text" ||
						formObj[copyToFields[i]].type == "password" ||
						formObj[copyToFields[i]].type == "textarea")
					{
						formObj[copyToFields[i]].value = copyFromVal;
					}
					else if(formObj[copyToFields[i]].type == "radio" ||
						formObj[copyToFields[i]].type == "checkbox")
					{
						/* not supported yet */
					}
					else if(formObj[copyToFields[i]].type == "select-one")
					{
						for(var k=0; k<formObj[copyToFields[i]].options.length; k++)
						{
							if(formObj[copyToFields[i]].options[k].value == copyFromVal)
							{
								formObj[copyToFields[i]].selectedIndex = k;
								break;
							}
						}
					}
					else if(formObj[copyToFields[i]].type == "select-multiple")
					{
						/* not supported yet */
					}
				}
				else
				{
					//attempting to restore values
					if(acCopyInfo_prevInfo != null && acCopyInfo_prevInfo[copyToFields[i]] != undefined)
					{
						if(formObj[copyToFields[i]].type == "text" ||
							formObj[copyToFields[i]].type == "password" ||
							formObj[copyToFields[i]].type == "textarea")
						{
							formObj[copyToFields[i]].value = acCopyInfo_prevInfo[copyToFields[i]];
						}
						else if(formObj[copyToFields[i]].type == "radio" ||
							formObj[copyToFields[i]].type == "checkbox")
						{
							/* not supported yet */
						}
						else if(formObj[copyToFields[i]].type == "select-one")
						{
							for(var k=0; k<formObj[copyToFields[i]].options.length; k++)
							{
								if(formObj[copyToFields[i]].options[k].value == 
									acCopyInfo_prevInfo[copyToFields[i]])
								{
									formObj[copyToFields[i]].selectedIndex = k;
									break;
								}
							}
						}
						else if(formObj[copyToFields[i]].type == "select-multiple")
						{
							/* not supported yet */
						}						
					}
				}
			}
		}
	}
}
