<?php
function select($usuarios){
	$select = '<select name="usu_id" style="display:none;" id="customDropdown">';
	$select .= '<option value="0">Seleccionar</option>';
	foreach($usuarios as $usuario){
		$select .= '<option value="'.$usuario['id'].'">'.$usuario['apodo'].'</option>';
	}
	$select .= '</select>';
	$select .= '<div class="custom dropdown" style="width:130px;">';
	$select .= '<a href="#" class="current">';
	$select .= 'Seleccionar';
	$select .= '</a>';
	$select .= '<a href="#" class="selector"></a>';
	$select .= '<ul>';
	$select .= '<li style="width:130px;">Seleccionar</li>';
	foreach($usuarios as $usuario){
		$select .= '<li style="width:130px;">'.$usuario['apodo'].'</li>';
	}
	$select .= '</ul>';
	$select .= '</div>';
	return $select;
}

function usuario($patente){
	$patente = strtoupper($patente);
	$rs = new xajaxResponse();
	$veh = new Vehiculo();
	$rs->assign('mError','style.display','none');
	$rs->script('$("html, body").animate({scrollTop:0},"slow");');
	if($usuarios = $veh->usuario($patente)){
		if(count($usuarios)==1){
			$rs->assign('usuario','innerHTML','<input type="hidden" name="usu_id" value="'.$usuarios[0]['id'].'">');
			$rs->append('usuario','innerHTML','<input class="eight" type="text" name="usu_apodo" value="'.$usuarios[0]['apodo'].'" disabled>');
		}else{
			$rs->assign('usuario','innerHTML',select($usuarios));
		}
	}else{
		$rs->assign('mError','innerHTML','No existe ningun usuario con dicha patente.');
		$rs->script('$("#mError").slideDown();');
	}
	return $rs;
}

function nuevo_cliente($post){
	if(!is_array($post)){
		$post = JSON::json2array($post);
	}
	$rs = new xajaxResponse();
	$rs->assign('mAcierto','style.display','none');
	$rs->assign('mError','style.display','none');
	$mError = '';
	$rs->script('$("html, body").animate({scrollTop:0},"slow");');
	if(!isset($post['registrado']) || $post['registrado'] < 0 || $post['registrado'] > 1){
		$mError .= '<div>Error en el campo "Registrado", este campo es obligatorio.</div>';
	}elseif($post['registrado'] == 0 && (empty($post['carroceria']) || $post['carroceria'] <= 1)){
		$mError .= '<div>Error en la carroceria, este campo es obligatorio.</div>';
	}elseif($post['registrado'] == 1 && (empty($post['usu_id']) || !ctype_digit($post['usu_id']) || $post['usu_id'] <= 0)){
		$mError .= '<div>Error en el nombre de usuario, este campo es obligatorio.</div>';
	}
	if(empty($post['patente']) || !Validacion::patente($post['patente'])){
		$mError .= '<div>Error en la patente, este campo es obligatorio.</div>';
	}
	if(!isset($post['estaciona']) || $post['estaciona'] < 0 || $post['estaciona'] > 1){
		$mError .= '<div>Error en el campo "¿Se estacionara?", este campo es obligatorio.</div>';
	}
	if(empty($mError)){
		$est = new Estacionamiento();
		$post['patente'] = strtoupper($post['patente']);
		if($post['registrado'] == 0 && $id = $est->nuevoCliente($post['estaciona'],$post['patente'],$post['carroceria'],$post['observacion'])){
			$rs->assign('mAcierto','innerHTML','El cliente ha sido agregado correctamente.');
			$rs->script('$("#mAcierto").slideDown();');
			$rs->redirect(base.'clientes/'.$id,1);
			return $rs;
		}elseif($post['registrado'] == 1){
			if($post['estaciona'] == 1 && $est->verificaClienteEstacionado($post['usu_id'],$post['patente']) && $id = $est->nuevoClienteRegistrado($post['estaciona'],$post['usu_id'],$post['patente'],$post['observacion'])){
				$rs->assign('mAcierto','innerHTML','El cliente ha sido agregado correctamente.');
				$rs->script('$("#mAcierto").slideDown();');
				$rs->redirect(base.'clientes/'.$id,1);
				return $rs;
			}else{
				$mError.='<div>No se pudo agregar al cliente, ya que se encuentra estacionado.</div>';
			}
		}else{
			$mError.='<div>No se pudo agregar al cliente.</div>';
		}
	}
	$rs->assign('mError','innerHTML',$mError);
	$rs->script('$("#mError").slideDown();');
	return $rs;
}

function nuevo_servicio_adicional_cliente($post){
	if(!is_array($post)){
		$post = JSON::json2array($post);
	}
	$rs = new xajaxResponse();
	$rs->assign('mAcierto','style.display','none');
	$rs->assign('mError','style.display','none');
	$mError = '';
	if(!ctype_digit($post['cliente']) || $post['cliente'] <= 0){
		$mError .= '<div>Error en el cliente seleccionado.</div>';
	}
	if(!ctype_digit($post['servicio']) || $post['servicio'] <= 0){
		$mError .= '<div>Error en el servicio adicional, este campo es obligatorio.</div>';
	}
	$est = new Estacionamiento();
	$rs->script('$("html, body").animate({scrollTop:0},"slow");');
	if(empty($mError) && $est->nuevoServicioCliente($post['cliente'],$post['servicio'])){
		$rs->assign('mAcierto','innerHTML','El servicio adicional se ha sido agregado correctamente al cliente.');
		$rs->script('$("#mAcierto").slideDown();');
		$rs->redirect(base.'clientes/'.$post['cliente'],1);
		return $rs;
	}else{
		$mError.='<div>No se pudo agregar el servicio adicicional al cliente.</div>';
	}
	$rs->assign('mError','innerHTML',$mError);
	$rs->script('$("#mError").slideDown();');
	return $rs;
}

function nuevo_servicio_adicional($post){
	if(!is_array($post)){
		$post = JSON::json2array($post);
	}
	$rs = new xajaxResponse();
	$rs->assign('mAcierto','style.display','none');
	$rs->assign('mError','style.display','none');
	$mError = '';
	if(empty($post['nombre']) || strlen($post['nombre']) > 100){
		$mError .= '<div>Error en el nombre del servicio adicional, este campo es obligatorio.</div>';
	}
	if(!ctype_digit($post['valor']) || $post['valor'] <= 0){
		$mError .= '<div>Error en el valor, este campo es obligatorio.</div>';
	}
	if($post['estado'] != 0 && $post['estado'] != 1){
		$mError .= '<div>Debe seleccionar un estado, este campo es obligatorio.</div>';
	}
	$est = new Estacionamiento();
	$rs->script('$("html, body").animate({scrollTop:0},"slow");');
	if(empty($mError) && $est->nuevoServicio($post['nombre'],$post['valor'],$post['estado'])){
		$rs->assign('mAcierto','innerHTML','El servicio adicional ha sido agregado correctamente.');
		$rs->script('$("#mAcierto").slideDown();');
		$rs->redirect(base.'servicios',1);
		return $rs;
	}else{
		$mError.='<div>No se pudo agregar el servicio adicional.</div>';
	}
	$rs->assign('mError','innerHTML',$mError);
	$rs->script('$("#mError").slideDown();');
	return $rs;
}

function nuevo_precio($post){
	if(!is_array($post)){
		$post = JSON::json2array($post);
	}
	$rs = new xajaxResponse();
	$rs->assign('mAcierto','style.display','none');
	$rs->assign('mError','style.display','none');
	$mError = '';
	if(!ctype_digit($post['minimo']) || $post['minimo'] <= 0){
		$mError .= '<div>Error en el valor minimo, este campo es obligatorio.</div>';
	}
	if(!ctype_digit($post['hora']) || $post['hora'] <= 0){
		$mError .= '<div>Error en el valor por hora, este campo es obligatorio.</div>';
	}
	if(($post['valor_tiempo_extra'] > 0 && $post['tiempo_extra'] <= 0) || (!ctype_digit($post['tiempo_extra']) || $post['tiempo_extra'] < 0 || $post['tiempo_extra'] >= 60)){
		$mError .= '<div>Error en el tiempo extra(debe ser menor a 60 minutos).</div>';
	}
	if(($post['tiempo_extra'] > 0 && $post['valor_tiempo_extra'] <= 0) || (!ctype_digit($post['valor_tiempo_extra']) || $post['valor_tiempo_extra'] < 0)){
		$mError .= '<div>Error en el valor por tiempo extra.</div>';
	}
	$est = new Estacionamiento();
	if($est->verificarCarroceriaPrecio(null,$post['car_id'])){
		$mError .= '<div>La carrocer&iacute;a seleccionada ya se encuentra en uso.</div>';
	}
	$rs->script('$("html, body").animate({scrollTop:0},"slow");');
	if(empty($mError) && $est->nuevoPrecio($post['minimo'],$post['hora'],$post['tiempo_extra'],$post['valor_tiempo_extra'],$post['car_id'])){
		$rs->assign('mAcierto','innerHTML','El precio ha sido agregado correctamente.');
		$rs->script('$("#mAcierto").slideDown();');
		$rs->redirect(base.'precios',1);
		return $rs;
	}else{
		$mError.='<div>No se pudo agregar el precio.</div>';
	}
	$rs->assign('mError','innerHTML',$mError);
	$rs->script('$("#mError").slideDown();');
	return $rs;
}

function nuevo_estacionamiento($post){
	if(!is_array($post)){
		$post = JSON::json2array($post);
	}
	$rs = new xajaxResponse();
	$post['nombre']=trim($post['nombre']);
	$post['telefono']=trim($post['telefono']);
	$post['latitud']=trim($post['latitud']);
	$post['longitud']=trim($post['longitud']);
	$post['direccion']=trim($post['direccion']);
	$post['horario']=trim($post['horario']);
	$post['descripcion']=trim($post['descripcion']);
	$rs->assign('mAcierto','style.display','none');
	$rs->assign('mError','style.display','none');
	$mError = '';
	if(!empty($post['nombre']) && strlen($post['nombre'])>100){
		$mError .= '<div>Error en el nombre.</div>';
	}
	if(!empty($post['telefono']) && strlen($post['telefono'])>12){
		$mError .= '<div>Error en el tel&eacute;fono.</div>';
	}
	if((empty($post['latitud']) || !is_numeric($post['longitud']) || $post['longitud'] < -90 || $post['longitud'] > 90) || (empty($post['longitud']) || !is_numeric($post['longitud']) || $post['longitud'] < -180 || $post['longitud'] > 180)){
		$mError .= '<div>Error en el ubicaci&oacute;n.</div>';
	}
	if(empty($post['direccion']) || strlen($post['direccion'])>200){
		$mError .= '<div>Error en la direcci&oacute;n.</div>';
	}
	if(!empty($post['horario']) && strlen($post['horario'])>300){
		$mError .= '<div>Error en el horario.</div>';
	}
	if(!empty($post['descripcion']) && strlen($post['horario'])>1000){
		$mError .= '<div>Error en la descripci&oacute;n.</div>';
	}
	$admin = new UAdmin();
	$rs->script('$("html, body").animate({scrollTop:0},"slow");');
	if(empty($mError) && $id = $admin->nuevoEstacionamiento($post['nombre'],$post['telefono'],$post['latitud'],$post['longitud'],$post['direccion'],$post['horario'],$post['descripcion'])){
		$rs->assign('mAcierto','innerHTML','La informaci&oacute;n del estacionamiento se ingreso correctamente.');
		$rs->script('$("#mAcierto").slideDown();');
		$rs->redirect(base.'a-estacionamientos/'.$id,1);
		return $rs;
	}else{
		$mError.='<div>No se ingreso correctamente la informaci&oacute;n del estacionamiento.</div>';
	}
	$rs->assign('mError','innerHTML',$mError);
	$rs->script('$("#mError").slideDown();');
	return $rs;
}

function nuevo_usuario($post){
	if(!is_array($post)){
		$post = JSON::json2array($post);
	}
	$rs = new xajaxResponse();
	$post['apodo']=trim($post['apodo']);
	$post['contrasena']=trim($post['contrasena']);
	$post['correo']=trim($post['correo']);
	$post['estado']=trim($post['estado']);
	$rs->assign('mAcierto','style.display','none');
	$rs->assign('mError','style.display','none');
	$mError = '';
	if(empty($post['apodo']) || strlen($post['apodo'])>20){
		$mError .= '<div>Error en el apodo.</div>';
	}
	if(empty($post['correo']) || !Validacion::correo($post['correo'])){
		$mError .= '<div>Error en el correo.</div>';
	}
	if(empty($post['contrasena'])){
		$mError .= '<div>Error en la contrase&ntilde;a.</div>';
	}
	if(!ctype_digit($post['estado']) || ($post['estado']!=0 && $post['estado']!=1 )){
		$mError .= '<div>Error en el estado.</div>';
	}
	$admin = new UAdmin();
	$rs->script('$("html, body").animate({scrollTop:0},"slow");');
	if(empty($mError) && $id = $admin->nuevoUsuario($post['apodo'],$post['contrasena'],$post['correo'],$post['estado'])){
		$rs->assign('mAcierto','innerHTML','El usuario se ingreso correctamente.');
		$rs->script('$("#mAcierto").slideDown();');
		$rs->redirect(base.'a-usuarios/'.$id,1);
		return $rs;
	}else{
		$mError.='<div>No se ingreso correctamente la informaci&oacute;n del usuario.</div>';
	}
	$rs->assign('mError','innerHTML',$mError);
	$rs->script('$("#mError").slideDown();');
	return $rs;
}

// $xajax->configure('debug',true);
// $xajax->configure('errorHandler',true);
// $xajax->configure('logFile','xajax_error_log.log');
$xajax->register(XAJAX_FUNCTION,'usuario');
$xajax->register(XAJAX_FUNCTION,'nuevo_cliente');
$xajax->register(XAJAX_FUNCTION,'nuevo_servicio_adicional_cliente');
$xajax->register(XAJAX_FUNCTION,'nuevo_servicio_adicional');
$xajax->register(XAJAX_FUNCTION,'nuevo_precio');
$xajax->register(XAJAX_FUNCTION,'nuevo_estacionamiento');
$xajax->register(XAJAX_FUNCTION,'nuevo_usuario');
?>