var index_url = 'index.php';

/***********************************************************************************
 *                            BASE API GET/SET/DEL/ADD
 **********************************************************************************/
function setPaymentDone(requestId, payment_done)
{
  var _page_url = index_url+'?page=reports&action=pay';
  var _parameters = '&data[request_id]='+requestId+'&data[payment_done]='+payment_done;

  var myAjax = new Ajax.Request(_page_url, {method: 'post', parameters: _parameters,	onSuccess: stopPay});
}

function stopPay()
{
	processFilter();
}

function showRequestType(rtype)
{
	if (rtype == 0)
	{
		$('blankLabel').hide();
		$('row_addr1').show();	
		$('row_addr2').show();	
		$('row_user').show();	
		$('requestCompleteForm').style.display = '';
		hideShowBlank();
	}

	if (rtype == 1)
	{
		$('blankLabel').show();
		$('row_addr1').show();	
		$('row_addr2').show();	
		$('row_user').show();	
	}

	if (rtype == 2)
	{
		$('blankLabel').hide();
		$('row_addr1').hide();	
		$('row_addr2').hide();	
		$('row_user').hide();	
	
		$('requestCompleteForm').style.display = '';
		hideShowBlank();
	}
}

function sendLetterToDedMoroz()
{
  var _page_url = index_url+'?page=letter';
  var _parameters = '&bilet='+encodeURIComponent($('letter[bilet]').value)+'&content='+encodeURIComponent($('letter[content]').value);

  var myAjax = new Ajax.Request(_page_url, {method: 'post', parameters: _parameters,	onSuccess: stopsendLetterToDedMoroz});
}

function stopsendLetterToDedMoroz(originalRequest)
{
  $('morozBlock').innerHTML = '<b>Отправлено</b>';
}


function getClientInfo(id)
{
  var _page_url = index_url+'?page='	+pagename+'&action=get';
  var _parameters = '&client_id='+id;

  var myAjax = new Ajax.Request(_page_url, {method: 'post', parameters: _parameters,	onSuccess: stopGetItem});
}

var loginTimer = false;

function findLoginTimer()
{
  if ($('data[customer_login]').value == '') 
  {
    $('logins').hide();
    return;
  }
    
	var _page_url  = index_url+'?page='	+pagename+'&action=find';
  var _parameters = '&data[login]='+encodeURIComponent($('data[customer_login]').value);
  var myAjax = new Ajax.Request(_page_url, {method: 'post', parameters: _parameters, onSuccess: stopFindLogin});
}

function stopFindLogin(originalRequest)
{
	$('logins').style.display = '';
	$('logins').innerHTML = originalRequest.responseText;
}

function findLogin(e)
{
  if (itemState == 'set') return true;

  keynum = 0;
  if(window.event) // IE
  {
   keynum = e.keyCode
  }
  else if(e.which) // Netscape/Firefox/Opera
  {
   keynum = e.which
  }  

  if(keynum == 13)
  {
    if (loginTimer) clearTimeout(loginTimer);
    findLoginTimer();
    return true;
  }

  if (loginTimer) clearTimeout(loginTimer);

  loginTimer = setTimeout('findLoginTimer()', 800);

  return true;
}


function processByDate(fieldName, fieldValue)
{
	if (fieldName == 'data[openDate]' || fieldName == 'data[closeDate]')
	{
		return;
	}

	if (fieldName == 'startDate')
	{
		$('filter[startDate]').value = fieldValue;
	}

	if (fieldName == 'endDate')
	{
		$('filter[endDate]').value = fieldValue;
	}

	processFilter();
}

function setPage(page)
{
	$('filter[page]').value = page;
	processFilter();
}

function showURL(url)
{
  window.open (url, "ipsystemwindow","status=1, toolbar=1, width=1024, height=768");
}

function showClosed(isClosed)
{
  if (isClosed) $('filter[show_closed]').value = 1;
  else $('filter[show_closed]').value = 0;
  redrawGrid();
}

function inheritItem(id)
{
  isInherited = true;
  getItem(id);
}

function checkRequest()
{

  if ($('request_type2') && $('request_type2').checked)
  {
  	return true;
  }


  if ($('data[street_id]').value == 0)
  {
    alert('Выберите улицу');
    return false;
  }

  if ($('data[street_num]').value == '')
  {
    alert('Введите номер дома');
    return false;
  }

  if ($('data[apartment]').value == '')
  {
    alert('Введите номер квартиры');
    return false;
  }

  if ($('data[phone]').value == '' && $('data[mobile]').value == '')
  {
    alert('Введите телефон');
    return false;
  }

  if ($('data[status]').checked && $('request_type1').checked)
  {

    if ($('data[ip]').value == '')
    {
      alert('Введите IP адрес');return false;
    }

    if ($('data[mac]').value == '')
    {
      alert('Введите MAC адрес');return false;
    }

    if ($('data[cable]').value == '')
    {
      alert('Введите ииформацию об использованном кабеле');return false;
    }

    if ($('data[connection_payment]').value == '')
    {
      alert('Введите стоимость подключения');return false;
    }

    if ($('data[first_payment]').value == '')
    {
      alert('Введите сумму аванса');return false;
    }

    if ($('data[connection_type]').value == '')
    {
      alert('Выберите тип подключения');return false;
    }

  }

  if ($('data[status]').checked)
  {
     return confirm('После сохранения завяка будет недоступна для редактирования. Сохранить?');;
  }

  return true;
}


function checkPassword()
{
  if ($('data[login]').value == '')
  {
   alert('Введите логин!');
   return false;
  }

  if ($('data[name]').value == '')
  {
   alert('Введите имя!');
   return false;
  }

   if (getItemState() == 'new' && $('data[password]').value == '')
   {
     alert('Введите пароль');
     return false;
   }
  
  if ($('data[password]').value != $('data[password2]').value)
  {
   alert('Введенный и подтвержденный пароли не совпадают!');
   return false;
  }

  return true;
}

function showReport(filterType, id)
{

	$('filter[type]').value = filterType;

	if (typeof(id) != 'undefined') 
	{
		$('filter[user_id]').value = id;
	}
	
	$(filterType).className = 'highlight';

	if($($('lightMenu').value)) 
	{
        if ($('lightMenu').value == filterType) return true;
		$($('lightMenu').value).className = 'centered';
	}
	
	$('lightMenu').value = filterType;
	processFilter();	
}

function filterByDistrict(element_id, request_type, district_id)
{
  $(element_id).className = 'highlight';
  
  $('filter[request_type]').value = request_type;
  $('filter[district_id]').value = district_id;

  pagename = 'requests';

  if($($('lightMenu').value)) 
  {
     if ($('lightMenu').value == element_id) return true;
     $($('lightMenu').value).className = 'centered';
  }

  processFilter();

  $('lightMenu').value = element_id;
}

function processFilter()
{
  var _page_url = index_url;
  var _parameters = 'page='+pagename+'&action=list';

  if (typeof(filterFields) != 'undefined')
  for (l = 0; l < filterFields.length; l++) 
  {
      if ($(filterFields[l]) && $(filterFields[l]).value != '')
     _parameters = _parameters+'&'+filterFields[l]+'='+encodeURIComponent($(filterFields[l]).value);
  }
	
  if ($('filter[page]')) $('filter[page]').value = 0;

  var myAjax = new Ajax.Request(_page_url, {method: 'post', parameters: _parameters, onSuccess: stopRedrawGrid});

}

function checkFilter(filtername, e)
{
  keynum = 0;
  if(window.event) // IE
  {
   keynum = e.keyCode
  }
  else if(e.which) // Netscape/Firefox/Opera
  {
   keynum = e.which
  }  

  if(keynum != 13)
  {
    return true;
  }

  processFilter();

  return true;
}

function addItem()
{
	var _page_url  = index_url+'?page='	+pagename+'&action=add';
	var _parameters = '';

  if (pagename == 'users')
  {
    if (!checkPassword()) return false
  }

  if (pagename == 'requests')
  {
     if (!checkRequest()) return false;
     getCheckboxValue('data[status]');
     getCheckboxValue('data[netcard]');
  }

	for(l = 0; l < dataFields.length; l++)
		_parameters = _parameters+'&'+dataFields[l]+'='+encodeURIComponent($(dataFields[l]).value);

  if (pagename == 'requests')
  {
   _parameters = _parameters+'&'+$('erectors_form').serialize();
  }
		
  var myAjax = new Ajax.Request(_page_url, {method: 'post', parameters: _parameters,	onSuccess: stopAddItem});
}

function delItem(id)
{
	if (!confirm('Вы уверены?')) return false;
	
	var _page_url  = index_url+'?page='	+pagename+'&action=del';
  var _parameters = '&'+keyField+'='+id;
  var myAjax = new Ajax.Request(_page_url, {method: 'post', parameters: _parameters, onSuccess: stopDelItem});
}

function getItem(id)
{
  if (id == 0)
  {
    setItemBold(0);
    clearItemForm();
		showItemForm();
		
		setItemState('new');
		return;
  }


  if (isInherited)   
    setItemBold(0);
  else
    setItemBold(id);

  var _page_url = index_url+'?page='	+pagename+'&action=get';
  var _parameters = '&'+keyField+'='+id;

  var myAjax = new Ajax.Request(_page_url, {method: 'post', parameters: _parameters,	onSuccess: stopGetItem});
}

function setItem()
{
  	updateRadioValue();
	if(itemState == 'new')
	{
		addItem();
		return;
	}
  
  if (pagename == 'users')
  {
    if (!checkPassword()) return false
  }

  if (pagename == 'requests')
  {
     if (!checkRequest()) return false;
     getCheckboxValue('data[status]');
     getCheckboxValue('data[netcard]');
  }

	var _page_url  = index_url;
	var _parameters = '&page='	+pagename+'&action=set'+'&'+keyField+'='+$(keyField).value;

	for(l = 0; l < dataFields.length; l++)
		_parameters = _parameters+'&'+dataFields[l]+'='+encodeURIComponent($(dataFields[l]).value);

  if (pagename == 'requests')
  {
   _parameters = _parameters+'&'+$('erectors_form').serialize();
  }

  var myAjax = new Ajax.Request(_page_url, {method: 'post',parameters: _parameters,	onSuccess: stopSetItem});
}

function redrawGrid()
{
  processFilter();
}

function getStreetsBox(id, street_id)
{
  var _page_url = index_url;
  var _parameters = 'page=streets&action=listbox&district_id='+id+'&street_id='+street_id;

  var myAjax = new Ajax.Request(_page_url, {method: 'post', parameters: _parameters, onSuccess: stopGetStreetsBox});
}

/***********************************************************************************
 *                            EVENT HANDLERS
 **********************************************************************************/
function stopGetStreetsBox(originalRequest)
{
  $('streetBlock').innerHTML = originalRequest.responseText;
}


function stopAddItem(originalRequest)
{
	redrawGrid();
	hideItemForm();
}

function stopDelItem(originalRequest)
{
	redrawGrid();
	hideItemForm();	
}


function stopSetItem(originalRequest)
{
	redrawGrid();
	hideItemForm();
}

function stopGetItem(originalRequest)
{
	eval("var data = "+originalRequest.responseText+';');

  fillForm(data, pagename);
  if (pagename == 'requests')
  {
    if (data['_type'] == 'client') 
    {
      itemState = 'new';
      setItemState('new');
      $('logins').hide();
    } else
    {
      $('logins').hide();
      setItemState('set');
    }
  }

	showItemForm();

}

function stopRedrawGrid(originalRequest)
{
	$(itemGrid).innerHTML = originalRequest.responseText;
	
	if (getItemId != 0) 
	{
		getItem(getItemId);
		getItemId = 0;
	}
}


/***********************************************************************************
 *                            STYLE FUNCTIONS
 **********************************************************************************/

function setItemBold(id)
{
  if ($(labelBold+itemBold)) 
  {
  	$(labelBold+itemBold).style.fontWeight=400;
	  $(labelBold+id).style.fontWeight=900;
  	itemBold = id;
 	}
}

function getItemState()
{
	if (	$('operationNewLabel').style.display == '') return 'new';
	else return 'edit';
}

function setItemState(state)
{
	itemState = state;
	if (itemState =='new')
	{
		$('operationNewLabel').style.display='';
		$('operationSetLabel').style.display='none';
		$('okBtn').value = 'Создать новую запись';
	} else
	{
		$('operationNewLabel').style.display='none';
		$('operationSetLabel').style.display='';
		$('okBtn').value = 'Сохранить';
	}
}

/***********************************************************************************
 *                            STYLE FUNCTIONS
 **********************************************************************************/

function fillForm(data, pagename)
{
  if (pagename == 'districts')
  {
    $('data[district_id]').value = data['district_id'];
    $('data[district_name]').value = data['district_name'];
    $('data[district_segments]').value = data['district_segments'];
    return;
  }

  if (pagename == 'streets')
  {
    $('data[street_id]').value = data['street_id'];
    $('data[district_id]').value = data['district_id'];
    $('data[street_name]').value = data['street_name'];
    return;
  }

  if (pagename == 'links')
  {
    $('data[url_id]').value = data['url_id'];
    $('data[url_name]').value = data['url_name'];
    $('data[url_link]').value = data['url_link'];
    $('data[style]').value = data['style'];
    return;
  }

  if (pagename == 'users')
  {
    $('data[user_id]').value = data['user_id'];
    $('data[login]').value = data['login'];
    $('data[name]').value = data['name'];
    $('data[phone]').value = data['phone'];
    setRadioValue('level', data['level']);
    return;
  }

  if (pagename == 'requests')
  {
    for(var i = 0; i < allerectors.length; i++)
    {
      if($('erector'+allerectors[i]))
      $('erector'+allerectors[i]).checked = false;
    }

    if (data['_type'] == 'client')
    {
   	    $('data[first_payment]').value = '';
  	    $('data[description]').value = '';
    	$('data[cable]').value = '';
    	$('data[buckles]').value = '';
    	$('data[nails]').value = '';
    	$('data[connectors]').value = '';
    	$('data[netcard]').value = '';
    	$('data[notes]').value = '';
    	$('data[connection_payment]').value = '';

        setRadioValue('request_type', 0);
        setRadioValue('connection_type', 0);
        setCheckboxValue('data[status]', 0);
        setCheckboxValue('data[netcard]', 0);
    } else
    {
    	$('data[request_id]').value = data['request_id'];

		for(var i = 0; i < data['erectors'].length; i++)
		{
		    if($('erector'+data['erectors'][i]))
		    $('erector'+data['erectors'][i]).checked = true;
		}

   	  	$('data[openDate]').value 	= data['openDate'];
   	  	$('data[closeDate]').value 	= data['closeDate'];
		
		FSfncCheckDate($('data[openDate]'), 'RU');
		FSfncCheckDate($('data[closeDate]'), 'RU');

   	  	$('data[first_payment]').value = data['first_payment'];
  	  	$('data[description]').value = data['description'];
	  	$('data[cable]').value = data['cable'];
		$('data[buckles]').value = data['buckles'];
    	$('data[nails]').value = data['nails'];
    	$('data[connectors]').value = data['connectors'];
    	$('data[netcard]').value = data['netcard'];
    	$('data[notes]').value = data['notes'];
    	$('data[connection_payment]').value = data['connection_payment'];
      setRadioValue('request_type', data['request_type']);
      setRadioValue('connection_type', data['connection_type']);
      setCheckboxValue('data[status]', data['status']);
      setCheckboxValue('data[netcard]', data['netcard']);
	  showRequestType(data['request_type']);
    
      if (data['status'] == 0) $('row_erectors').hide();
      else $('row_erectors').show();
    }
    
  	$('data[ip]').value = data['ip'];
  	$('data[mac]').value = data['mac'];

    if (data['_type'] == 'client')
    {
      $('data[customer_login]').value = data['login'];
  	  $('data[customer_name]').value = data['name'];
    } else 
    {
      $('data[customer_login]').value = data['customer_login'];
  	  $('data[customer_name]').value = data['customer_name'];
    }
  	
  	$('data[street_num]').value = data['street_num'];
  	$('data[floor]').value = data['floor'];
  	$('data[porch]').value = data['porch'];
  	$('data[apartment]').value = data['apartment'];
  	$('data[phone]').value = data['phone'];
  	$('data[mobile]').value = data['mobile'];
  	$('data[code]').value = data['code'];
  	$('data[district_id]').value = data['district_id'];
    getStreetsBox(data['district_id'], data['street_id']);

    return;
  }

}

function setCheckboxValue(fieldname, value)
{
  if (value == '0') 
  {
    $(fieldname).checked = false;     
  }

  if (value == '1') 
  {
    $(fieldname).checked = true;
  }
}

function getCheckboxValue(fieldname)
{
  if ($(fieldname).checked) $(fieldname).value = '1'; else $(fieldname).value = '0';
}


function getRadioValue(fieldname, max)
{
  for (var l = 0; l < max; l++) if($(fieldname+l) && $(fieldname+l).checked) return l;   
}

function setRadioValue(fieldname, value)
{
   $(fieldname+value).checked = true;
}

function updateRadioValue()
{
  if(pagename == 'users')
  {
    $('data[level]').value = getRadioValue('level', 4);
  }

  if(pagename == 'requests')
  {
    $('data[request_type]').value = getRadioValue('request_type', 3);
    $('data[connection_type]').value = getRadioValue('connection_type', 3);
  }
}

/***********************************************************************************
 *                            FORM FUNCTIONS
 **********************************************************************************/

function showItemForm()
{
	$(itemForm).style.display = '';
}

function hideItemForm()
{
	$(itemForm).style.display = 'none';
}

function clearItemForm()
{
 
	for(l = 0; l < dataFields.length; l++) 
	{
	  if ($(dataFields[l])) $(dataFields[l]).value = '';
	}

 if (pagename == 'requests')
 {
    for(var i = 0; i < allerectors.length; i++)
    {
      if($('erector'+allerectors[i]))
      $('erector'+allerectors[i]).checked = false;
    }
    setRadioValue('request_type', 0);
    setRadioValue('connection_type', 0);
    setCheckboxValue('data[status]', 0);
    setCheckboxValue('data[netcard]', 0);
    
  	$('data[openDate]').value 	= today;
  	$('data[closeDate]').value 	= 'Нет';
	
	FSfncCheckDate($('data[openDate]'), 'RU');
	FSfncCheckDate($('data[closeDate]'), 'RU');
	$('row_erectors').hide();
 }

}

function hideShowBlank()
{
  if ($('requestCompleteForm').style.display == '')
  {
    $('requestCompleteForm').style.display='none';
    $('blank_row').style.display='none';
    $('blankLabel').innerHTML = 'Заполнить бланк подключения';
  }
  else
  {
    $('requestCompleteForm').style.display='';
    $('blank_row').style.display='';
    $('blankLabel').innerHTML = 'Спрятать бланк подключения';    
  }
}

