function validateForm(formName,className, validateArrayName, returnFunction,FckinstanceName,FckErrormessage,container)
{ 
	
	if(typeof(validateArrayName)=='undefined' || validateArrayName=="")
		var validateArrayName = "Default";

	
if(typeof jQuery.fn.fckEditorValidate == 'function') {

/*jQuery.fn.fckEditorValidate({instanceName: 'content'});
alert('validating');*/
if(!FckinstanceName)
	FckinstanceName="content";
	if(!FckErrormessage)
		FckErrormessage="Please provide a description.";

jQuery.fn.fckEditorValidate({instanceName: FckinstanceName,
preventFormSubmit: 'false',
showValidationError: 'false',
FormName:formName,
validationErrorMessage: FckErrormessage});

}

	if(typeof(returnFunction)=='undefined' || returnFunction=="")
		var returnFunction = 0;
	if(typeof(container)=='undefined' || container=="")
		var container = 0;
	//alert($("form[@name="+formName+"]").serialize()+"&isValidate=1&validateArrayName="+validateArrayName);

	//alert($("form[@name="+formName+"]").serialize()+" and form name="+formName);
	$.post(className,$("form[@name="+formName+"]").serialize()+"&isValidate=1&validateArrayName="+validateArrayName,function(data){
	_initializeFormEnd(formName, data, returnFunction,container);
	});

}

function show_loading()
{
	var loadingStatusDiv = document.getElementById('loading_status');
	if(loadingStatusDiv)
	{
		loadingStatusDiv.style.display='';
			$('.button').hide();
			$('.button_2').hide();
			$('input').attr('disabled', true);
			window.scrollTo('50%','35%');
	}
}
function hide_loading()
{
		var loadingStatusDiv = document.getElementById('loading_status');
		if(loadingStatusDiv)
		{
			document.getElementById('loading_status').style.display='none';
				$('input').attr('disabled', false);
				//$('#body_div :select').attr('disabled', true);
				$('.button_2').show();
				$('.button').show();
		}
}
function _initializeFormEnd(formName, serverResponse, returnFunction, container)
{
	var i=0; field_name="";
	var objFrm = eval("document."+formName);
	if(!objFrm)
	{
		alert("Validation Error: Form name '"+formName+"' does not exist, Please check again");
		return false;
	}
	var arrRespnose = serverResponse.split("~");
	//alert(arrRespnose);
	if(arrRespnose.length<=0)
	{
		alert("Validation Error: An unknown error occured in your validation class, Please check again");
		return false;
	}
	show_loading(); //Show loading div
	var lable,  class_name_val;
	var errorMsg = '';
    for(var arrRes=0;arrRes<arrRespnose.length;arrRes++)
	{
		var resMessgae = arrRespnose[arrRes].replace(/^\s+|\s+$/g, '');
		var arrMessage = resMessgae.split("|");
		var fieldName  = arrMessage[0].replace(/^\s+|\s+$/g, '');
		//alert("'"+errorMsg.replace(/^\s+|\s+$/g, '')+"'");
		if(!errorMsg)  
			errorMsg   = arrMessage[1].replace(/^\s+|\s+$/g, '');
		
		//alert(document.getElementById('txt_'+fieldName));
		if(fieldName!="error")
		{	var trimmedfieldname=fieldName.replace(/^\s+|\s+$/g, '');
			if(trimmedfieldname=='')
				continue;
			if(document.getElementById('txt_'+trimmedfieldname))
			{
				lable = eval("document.getElementById('txt_'+trimmedfieldname)");
			}
			else
			{
				alert("Validation Error: Id of '"+fieldName+"' with txt_ prefix not found");
				return false;
			}
			if(arrMessage[1])
			{
				lable.className="msgcontainer1";// change elements class
				if(i==0)
				{
					field_name=fieldName;
				}
				i++;
			}
			else
				lable.className="";// change elements class
		}
	} 
		hide_loading();//hide loading div
		
		if(TrimSearch(errorMsg.replace(/^\s+|\s+$/g, '')))
		{	
			if(container)
			{
				show_validation_error_custom(errorMsg,container);//show error messgae
			}
			else
			{
				show_validation_error(errorMsg);//show error messgae
			}
			//show_validation_error(errorMsg);//show error messgae
			if(field_name!='')
			eval("document."+formName+"."+field_name+".focus()"); 
		}
		else
		{
			hide_validation_error(container);//hide error messgae
			if(returnFunction)
				eval(returnFunction);
			else 
				objFrm.submit();
			return false;
		}	
}

function show_validation_error(msg)
{
	var  error_container, conf_container, inner_err_container;
	if(document.getElementById('err_container'))
		error_container = eval("document.getElementById('err_container')");
	if(document.getElementById('inner_err_container'))
		inner_err_container = eval("document.getElementById('inner_err_container')")
	if(document.getElementById('conf_container'))
	{
		conf_container = eval("document.getElementById('conf_container')");
		conf_container.style.display='none';
	}
	//inner_err_container.innerHTML = 'Please choose at least one field for <span class="error_red_txt">search</span>.';
	inner_err_container.innerHTML = msg;
	error_container.style.display='';
	//window.scrollTo(0,0);
}
function show_validation_error_custom(msg,container)
{
	// DISPLAY THE CUSTOM ERROR CONTAINER, 2,3,4.....etc
	var  error_container, conf_container, inner_err_container;
	if(document.getElementById('err_container'+container))
		error_container = eval("document.getElementById('err_container'+container)");
	if(document.getElementById('inner_err_container'+container))
		inner_err_container = eval("document.getElementById('inner_err_container'+container)")
	if(document.getElementById('conf_container'+container))
	{
		conf_container = eval("document.getElementById('conf_container'+container)");
		conf_container.style.display='none';
	}
	//inner_err_container.innerHTML = 'Please choose at least one field for <span class="error_red_txt">search</span>.';
	inner_err_container.innerHTML = msg;
	error_container.style.display='';
}
function hide_validation_error(container)
{
	var  error_container;
	var cont='';
	if(typeof("container")!='undefined' && container!='')
	{
		cont=container
	}
	error_container = eval("document.getElementById('err_container"+cont+"')");
	if(error_container);
	error_container.style.display='none';
}

function validateFormByEnter(key, callFunc) 
{
	//var obj=window.event? event : e;
	//var key=obj.charCode? obj.charCode : obj.keyCode;

  if (key ==13)
  {
	if(callFunc!="")
	{
		eval(callFunc);	 
	}
	return false;
	
  }
  else
    return false;
}

//to set validation on press of enter and submit the form
function set_form_actions(form_name,validate_str){
	$('form[@name="'+form_name+'"]:input[@type="text"],input[@type="password"]').each( function() {
		$(this).keydown(function(event){
			validateFormByEnter(event.keyCode,validate_str);
		});
	});		
}
//function to validate search form
//Ravi Pandey
//9/16/2008
// initialize form and assign events
function validateSearchForm(frm_name)
{
	var elems=eval("document."+frm_name+".elements");
	var res = false;
	var val="";
    for(var i=0;i<elems.length;i++)
	{
		 if(elems[i].getAttribute('required') && elems[i].getAttribute('required')=="Search")
		{
			if(elems[i].type=='select-one')
			{
				var val=elems[i].options[elems[i].selectedIndex].value;
				if(val!="") 
				{
					if(document.getElementById('view_all'))
						document.getElementById('view_all').style.display='';
					res=true;
					break;
				}//end if
			}//end if
			
			else if(elems[i].type=='select-multiple')
			{
				var indx = 0;
				if(elems[i].selectedIndex<0)
					indx = 0;
				else
					indx = elems[i].selectedIndex;

				if(val!=0) 
				{
					if(document.getElementById('view_all'))
						document.getElementById('view_all').style.display='';
					res=true;
					break;
				}//end if
			}//else if
			
			else if(elems[i].type=='radio')
			{
				if(elems[i].name!="search_key")			
				{
					var radioObj=eval("document."+frm_name+"."+elems[i].name)
					var val=getCheckedValue(radioObj);
					if(val!="") 
					{
						if(document.getElementById('view_all'))
						document.getElementById('view_all').style.display='';
						res=true;
						break;
					}
				}//end if
				
			}// else if
			else if(elems[i].type=='checkbox')
			{
				var checkboxVal = '';
				
				var ele = elems[i].name;

				frm = frm_name;
			 
			   frm_ele = eval("document."+frm+"."+ele+".checked")
			   if(frm_ele)
				{
					checkboxVal = elems[i].value;
				}//end if
				if(checkboxVal!="") 
				{
					if(document.getElementById('view_all'))
						document.getElementById('view_all').style.display='';
					res=true;
					break;
				}
			}//else if
			else
			{
				var val=TrimSearch(elems[i].value);
				if(val!="") 
				{
					if(document.getElementById('view_all'))
						document.getElementById('view_all').style.display='';
					res=true;
					break;
				}
			}//else
		}//END IF
        
    }//LOOp
	

	if(!res)
	{
		var msgError='Please choose at least one field for <span class="error_red_txt">search</span>.';
		show_error_msg(msgError);
		return false;
	}//end if
	else
	{
		hide_error_msg();
		if(document.getElementById('cAction'))
			document.getElementById('cAction').value="Search";
		if(document.getElementById('isSearch'))
			document.getElementById('isSearch').value="1";
		return true;
	}
}//function
//to focus on first field of form
$.fn.focus_first = function() {
  var elem = $('input:visible', this).get(0);
  var select = $('select:visible', this).get(0);
  if (select && elem) {
    if (select.offsetTop < elem.offsetTop) {
      elem = select;
    }
  }
  var textarea = $('textarea:visible', this).get(0);
  if (textarea && elem) {
    if (textarea.offsetTop < elem.offsetTop) {
      elem = textarea;
    }
  }
  
  if (elem) {
    elem.focus();
  }
  return this;
}

//-------**********trim function **************--------------------
function LTrimSearch(str)
{
	for (var i=0; str.charAt(i)==" "; i++);
	return str.substring(i,str.length);
 }
function RTrimSearch(str)
 {
	for (var i=str.length-1; str.charAt(i)==" "; i--);
	return str.substring(0,i+1);
 }
 function TrimSearch(str)
 {
	return LTrimSearch(RTrimSearch(str));
 }
function notypingOnAtt(obj)
   { 
    alert("You are not allowed to type please choose by clicking Browse");
    obj.blur();
    return;
   }
