function initAjax (id,url) 
{
  requestAjaxGet(id, url);
}

var memberId;
function showHideAjax(id, url)
{
  element = document.getElementById(id);
  if (element.style.display == 'none') {
    _showAjax(id, url);
  } else {
    _hideAjax(id);
  }
}

function _showAjax(id, url)
{
  _hideAjax(id);
  element = document.getElementById(id);
  element.style.display = '';
  if (url != null) {
    element.innerHTML = "<div align='center'><img src='/img/loading.gif' style='margin: 10px;'></div>";
    memberId = id;
    requestAjaxGet(id, url);
  }
}

function _hideAjax(id)
{
  if(memberId){
    element2 = document.getElementById(memberId);
    element2.style.display = 'none';
  }
  else {
    element = document.getElementById(id);
    element.style.display = 'none';
  }
}

function fill(id, data)
{
  var element = document.getElementById(id);
  element.innerHTML = data;
}

function submitAjax(id, form)
{
  var params = 'inAjaxBlock=' + id;

  for (i = 0; i < form.elements.length; i++) {
    if (!form.elements[i].name) {
      continue;
    }
    params = params + '&' + form.elements[i].name + '=' + form.elements[i].value;
  }

  if (form.method == 'POST') {
    requestAjaxPost(id, form.action, params);
  } else {
    requestAjaxGet(id, form.action + '?' + params);
  }
  return false;
}

function submitAjax2(id, form, nr_forms)
{
  var params = 'inAjaxBlock=' + id;
  var form   = document.forms[nr_forms];

  for (i = 0; i < form.elements.length; i++) {
    if (!form.elements[i].name) {
      continue;
    }
    params = params + '&' + form.elements[i].name + '=' + form.elements[i].value;
  }

  if (form.method == 'POST') {
    requestAjaxPost(id, form.action, params);
  } else {
    requestAjaxGet(id, form.action + '?' + params);
  }
  return false;
}

function clickAjax(id, element)
{
  requestAjaxGet(id, element.href + '&inAjaxBlock=' + id);
  return false;
}

function requestAjaxPost(id, url, params)
{
  requestAjaxGeneric(id, url, 'POST', params);
}

function requestAjaxGet(id, url)
{
  requestAjaxGeneric(id, url, 'GET', null);
}

function requestAjaxGeneric(id, url, method, params)
{ 
  var http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
      http_request.overrideMimeType('text/xml');
    }
  } else if (window.ActiveXObject) { // IE
    try {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }

  if (!http_request) {
    fill(id, 'Browser doesn\'t support Ajax');
    return false;
  }
  http_request.onreadystatechange = function() {
    if (http_request.readyState == 4) {
      if (http_request.status == 200) {
        //alert(http_request.responseText);
        fill(id, http_request.responseText);
      } else {
        fill(id, 'There was a problem with the request.(Code: ' + http_request.status + ')');
      }
    }
  }
  //http_request.open(method, url+'&ajaxBlock=ok', true);
  //alert(method);
  http_request.open(method, url, true);
  http_request.send(params);
}

var hide = 0;
var clear;
function initAjaxCombo(object, url, block, index)
{
	var key;

  if (object) {
	  if (object.type == 'select-one') {
    	key = object.options[object.selectedIndex].value;
    }
    if (object.type == 'radio') {
      key = object.value;
    }
  }
  
  if (index) {
    var splited_index = index.split('|');
  }
  
	if (key || !object) {
	  if (index != null) {
	    if (object) {
	      url2 = url + '/' + key + '/' + splited_index[0] + '/' + splited_index[1];
	    } else {
	      url2 = url + '/' + splited_index[2] + '/' + splited_index[0] + '/' + splited_index[1];
	    }
	    requestAjaxGet(block, url2);
	  } else {
	    url2 = url;
	    if (key) {
	      url2 += '/' + key;
	    }
      requestAjaxGet(block, url2);
    }
    
    if (block == 'login_history') {
      if (hide == 0) {
        _showAjax(block);
        hide = 1;
      } else {
        _hideAjax(block);
	      hide = 0;
	    }
	  }
	} else {
	  hide = 1;
    _hideAjax(block);
	}
}

var cat_bus = 0;
function initAjaxCombo2(form, url, blocks, objects)
{
  var blocks = blocks.split('|');
  
  if (objects != null) {
    var objects = objects.split('|');
    
    if (objects.length == 5) {
	    var b_type  = eval('form.' + objects[objects.length - 1] + '.options[form.' + objects[objects.length - 1] + '.selectedIndex].value');
	    objects.pop();
	    var b_bf_id = eval('form.' + objects[objects.length - 1] + '.options[form.' + objects[objects.length - 1] + '.selectedIndex].value');
	    objects.pop();
	  }
    
	  var keys    = new Array(3);
	  //var blocks_length = blocks.length;
	  //var blocks_start  = 0;
	  var objects_length = objects.length;
	  var objects_start  = 0;
	  
	  if (blocks[0] == 'businesses' && blocks[blocks.length - 2] == 'products') {
	    keys[objects.length - 2] = 0;
	    keys[objects.length - 1] = 0;
	    objects_length = 1;
	    cat_bus = 1;
	  }
	  if (blocks[0] == 'categories' && blocks[blocks.length - 2] == 'products') {
	    keys[objects.length - 1] = 0;
	    objects_length = objects.length - 1;
	    cat_bus = 1;
	  }
	  if (blocks[0] == 'categories' && blocks[blocks.length - 2] == 'businesses') {
	    if (cat_bus == 1) {
	      keys[keys.length - 1] = eval('form.' + objects[objects.length - 1] + '.options[form.' + objects[objects.length - 1] + '.selectedIndex].value');
	      if (keys[keys.length - 1] == 0) {
	        objects_length -= 2;;
	        for (var i = objects_length; i >= objects_start; i++) {
 	          keys[i] = eval('form.' + objects[i] + '.options[form.' + objects[i] + '.selectedIndex].value');
 	          if (keys[i] != 0) {
 	            url2 = url + '/' + objects[i] + '/' + keys[i] + '/' + blocks[blocks.length - 1] + '/' + 1;
 	            if (b_bf_id) {
 	              url2 += '/b_bf_id/' + b_bf_id;
 	            }
 	            if (b_type) {
 	              url2 += '/b_type/' + b_type;
 	            }
 	            requestAjaxGet(blocks[blocks.length - 1], url2);
 	            //return true;
 	            break;
 	          }
 	        }
	      } else {
	        url2 = url + '/' + objects[objects.length - 1] + '/' + keys[keys.length - 1] + '/' + blocks[blocks.length - 1] + '/' + 1;
 	        if (b_bf_id) {
 	          url2 += '/b_bf_id/' + b_bf_id;
 	        }
 	        if (b_type) {
 	          url2 += '/b_type/' + b_type;
 	        }
 	        requestAjaxGet(blocks[blocks.length - 1], url2);
 	        //return true;
 	      }
	      return true;
	    } else {
	      keys[0]                  = 0;
	      keys[objects.length - 2] = 0;
	      objects_start = objects.length - 1; 
	    }
	  }
	  
	  for (var i = objects_start; i < objects_length; i++) {
  	  keys[i] = eval('form.' + objects[i] + '.options[form.' + objects[i] + '.selectedIndex].value');
 	  }
    
    if (keys[0] != 0) {
      while (keys[0].indexOf(',') > 0) {
        keys[0] = keys[0].replace(',', '_');
      }
    }
	  if (keys.length > 0) {
	    for (var i = 0; i < blocks.length; i++) {
 	      url2 = url + '/' + objects[0] + '/' + keys[0] + '/' + objects[1] + '/' + keys[1] + '/' + objects[2] + '/' + keys[2] + '/' + blocks[i] + '/' + 1;
 	      if (b_bf_id) {
 	        url2 += '/b_bf_id/' + b_bf_id;
 	      }
 	      if (b_type) {
 	        url2 += '/b_type/' + b_type;
 	      }
 	      requestAjaxGet(blocks[i], url2);
 	    }
 	  }
 	} else {
   	for (var i = 0; i < blocks.length; i++) {
   	  url2 = url + '/' + blocks[i] + '/' + 1;
   	  if (b_bf_id) {
 	      url2 += '/b_bf_id/' + b_bf_id;
 	    }
   	  if (b_type) {
 	      url2 += '/b_type/' + b_type;
 	    }
 	    requestAjaxGet(blocks[i], url2);
 	  }
    cat_bus = 0;	    
 	}
}

function initAjaxCombo3(form, url, block, objects)
{
	var url = url;

  if (objects) {
	  var objects = objects.split('|');
	  var keys    = new Array(objects.length);
	  
	  for (var i = 0; i < objects.length; i++) {
   	  if (eval('form.' + objects[i])) {
     	  if (eval('form.' + objects[i] + '.type') == 'select-one') {
     	    keys[i] = eval('form.' + objects[i] + '.options[form.' + objects[i] + '.selectedIndex].value');
     	  }
     	  if (eval('form.' + objects[i] + '.type') == 'text' || eval('form.' + objects[i] + '.type') == 'textarea') {
     	    keys[i] = eval('form.' + objects[i] + '.value')
     	  }
    	  while (keys[i].indexOf(',') > 0) {
          keys[i] = keys[i].replace(',', '_');
        }
        if (keys[i]) {
    	    url += '/' + objects[i] + '/' + keys[i];
    	  }
  	  }
  	}
	} else {
	  var keys = [1];
	}

	if (keys.length > 0) {
	  requestAjaxGet(block, url);
	}
}
