//rahul
function showForm(id)
{
  var elem_id = gEBI('ajax_form_' + id);
  elem_id.style.display = '';
}

function callAjaxEvent(name,id,form)
{
  document.getElementById(id).value=name;
  document.getElementById(form).onsubmit();
}

//pritesh
function submitAjaxForm(normal_url, ajax_url, form_method, form_name, div, callback_func, callback_args, precall_func, precall_args)
{
   if (precall_func != undefined && precall_func != '')
   {
	   var eval_str = precall_func + '(';
       eval_str += ')';
       eval(eval_str);
   }
	   
	gEBI(form_name).action = ajax_url;
	$(form_name).request({
	  method: form_method,
	  parameters: { ajax:true,div_id:div,ajax_url:ajax_url,normal_url:normal_url },
	  onSuccess: function(transport) {
	   var response = transport.responseText;	
	   responseScript(response);
	   if (callback_func != undefined && callback_func != '')
       {
		   var eval_str = callback_func + "(response";
           eval_str += ')';
           eval(eval_str);
       }
	   else {
		   $(div).innerHTML = response;
	   }
	   gEBI(form_name).action = normal_url;
	   return false;   
	  },	  
	  onComplete: function(){ 
	  //alert('Form data saved!') 
	  }
	})	
	gEBI(form_name).action = normal_url;
	return false;
}

function responseScript(response) {
  var script = response.extractScripts();
          //alert(script);
          var myReturnedValues = script.map(function(script) {
              return eval(script);
              }); 
}

function getAjaxUrl(module_name, component_name, tpl, get_params)
{
	var url = website_url+'ajax.php?params='+module_name+'/'+component_name+'/'+tpl+'/';
  
  var sess_id = getget('PHPSESSID');
  
  var get_str = '';
  if(get_params != '')
    get_str = '?&'+get_params;
  
  if(sess_id != '')
  {
    sess_str = 'PHPSESSID='+sess_id;
    if(get_str == '')
      get_str = '?' + sess_str;
    else
      get_str = get_str + '&' + sess_str;
  }
	
  url = url + get_str;
	return url;
}

function getComponent(module_name, component_name, tpl, get_params, post_params, callback_func, elem_id, pre_callback_func, callback_params)
{
  var url = getAjaxUrl(module_name, component_name, tpl, get_params);
  
  getComponentByUrl(url, post_params, callback_func, elem_id, pre_callback_func, callback_params);
}

function getComponentByUrl(url, post_params, callback_func, elem_id, pre_callback_func, callback_params)
{

	if (pre_callback_func != undefined && pre_callback_func!='')
    {
      var eval_str = pre_callback_func + "(";
      eval_str += ')';
      
      eval(eval_str);
    }
  new Ajax.Request(url,{
      method: 'post',
      parameters: post_params,
      onSuccess: function(transport) {
            var response = transport.responseText;
            //alert(response);
            if (callback_func != undefined && callback_func!='')
            {
              var eval_str = callback_func + "(response";
              if (elem_id != undefined && elem_id !='')
              {
                eval_str += ", elem_id";
              }
              if(callback_params != undefined && callback_params!='') {
            	  var param_str=new Array();
            	  for(i=0;i<callback_params.length;i++) {
            		  param_str.push('callback_params['+i+']');
            	  }
            	  eval_str += ', '+param_str;
              }
              
              eval_str += ')';
              eval(eval_str);
            }
      },
      onFailure: function(){ alert('Something went wrong...') }
    });
}

function updateComponent(elem_id, module_name, component_name, tpl, get_params, post_params)
{
  var elem = gEBI(elem_id);
  if (elem != undefined)
  {
    getComponent(module_name, component_name, tpl, get_params, post_params, "updateElement", elem_id);
  }
  else
    return;
}

function updateElement(response, elem_id)
{
  var elem = gEBI(elem_id);
  
  if (elem != undefined)
  { 
    elem.innerHTML = response;
  }
  else
    return;
}
