Systém komentářů pomocí jQuery a Ajax.

 2012-10-27 00:00:00
 Dmitry Burobin

Dnes vytvoříme systém komentářů s automatickou kontrolou vstupních dat pomocí technologie Ajax a přidáváním nového komentáře s použitím jQuery bez znovunačtení stránky.

Série článků:
1) Systém komentářů pomocí jQuery a Ajax.
2) Lajkování neboli karma u komentářů.
3) Strankování.

Vytvoření tabulky a připojení k databázi.

Vytvoříme si tabulku comments, do které budeme ukládat: identifikátor komentáře ( id ), identifikátor rodičovského komentáře ( parent_id ), jméno ( name ), text komentáře ( text ) a datum přidání komentáře ( date ).

CREATE TABLE `comments` (
`id` INT ( 5 ) NOT NULL AUTO_INCREMENT,
`parent_id` INT ( 5 ) NOT NULL,
`name` VARCHAR ( 255 ) NOT NULL,
`komentar` TEXT,
`date` DATETIME,
PRIMARY KEY(`id`)
)ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci

Taktéž si vytvořte soubor db.php, pro připojení k databázi.
<?php
$DBSERVER 'localhost'//server, který bude použít pro navázáníspojení s DB 
$DBUSER 'root'//Váš mysql login, nejspíš je stejný jako u mě pro localhost, tudiž root 
$DBPASS '****'//heslo, které jste zadaval při instalaci MySQL 

$DB 'test'//databáze, s kterou budeme pracovat 

//navazení spojení pomoci mysql_connect  
$link mysql_connect($DBSERVER$DBUSER$DBPASS)  or die("Could not connect: " mysql_error()); 
//vybírame databázi 
mysql_select_db($DB$link) or die ('Can\'t use test : ' mysql_error()); 
//řekněme MySQL, že všechná data jsou ve formatu UTF-8 
mysql_query("SET NAMES UTF8");
?>

index.php

Hlavní stránka bude obsahovat formulář pro přidávání komentářů s polem pro jméno, zprávu a skryté pole, do kterého budeme ukálát identifikátor rodičovského komentáře, pokud někdo bude odpovídat na nějaký komenář. Soubor index.php vypadá takto:

<?php
/*Soubor pro vybírání komentářů z databáze*/
require_once 'comment.php';
?>
<!DOCTYPE html>
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">

<
head>
    <
title>Systém komentářů.</title>
    <
meta charset="utf-8" >
    
    <
link rel="stylesheet" href="style.css"> <!-- soubor se styly -->
    <
script src="jquery-1.7.1.min.js"></script> <!-- připojení jquery -->
    <script src="comment.js"></script> <!-- funkce potřebné pro přidávání komentářů -->
    
</head>
<body>
<ul id="commentWrapper">
<?php
/*Zde v proměnné $comments jsou komentáře*/
echo $comments;
?>
<!-- formulář pro přidávání komentářů -->
</
ul>    
    <
div id="commentBox">
        <
input class="validate" type="text" name="name" >
        <
input id="parent" type="hidden" name="parent_id" value="">
        <
div class="commentText">
            <
textarea name="text"></textarea>
        </
div>
        <
button>Přidat</button><img class="loader" src="loader.gif">
    </
div>
</
body>
</
html>

Styly a knihovna jQuery

Pro správné fungování potřebujeme připojit knihovnu jQuery. Tu buď stáhnete z oficiálního webu nebo z archivu s tímto článkem. Pak, aby komentáře líp vypadali přidáme styly, nic složitého v nich není, proto je nebudu popisovat:

body
{
    
margin:0;
    
padding:0;
}
ulli
{
    list-
style-type:none;
}
.
loader
{
    
display:none;
}
#commentBox
{
    
width:400px;
    
padding:10px;
}
#commentBox input
{
    
width:250px;
    
height:25px;
    
padding0 5px;
    
margin:5px;
    
bordersolid 1px #ccc;
    
background:#f1f1f1 url(bg_input.png) no-repeat;
    
font400 12pt/14pt Ume Gothic O5;
}
#commentBox textarea
{
    
width:250px;
    
height:100px;
    
margin5px;
    
padding5px;
    
bordersolid 1px #ccc;
    
background:#f1f1f1 url(bg_koment.png) no-repeat;
    
font400 12pt/14pt Ume Gothic O5;
}
#commentBox button
{
    
height:30px;
    
width:85px;
    
margin-left183px;
    
margin-top:0px;
    
font:700 12pt/14pt Ume Gothic O5;
}
#commentWrap
{
    
width:350px;
    
padding:10px;
    
padding-bottom:3px;
    
margin:10px;
    
border1px solid #ccc;
    
border-radius:10px;
    
background:#f7f7f7;
}
#commentWrap .komentar
{
    
padding:5px;
    
padding-left:0px;
    
border-top:1px solid #ccc;
    
margin-bottom:10px;
    
font:400 12pt/14pt Times New Roman;
}
#commentWrap .replay
{
    
margin-left:270px;
    
font:700 10pt/12pt Ume Gothic O5;
}
#commentWrap a
{
    
text-decoration:none;
}
#commentWrap .commentName
{
    
font:700 10pt/12pt Ume Gothic O5;
}
#commentWrap .commentDate
{
    
font:400 11pt/13pt Times New Roman;
}
.
repName
{
    
font:400 12pt/14pt Times New Roman;
    
font-style:italic;
}
.
repText
{
    
font:700 10pt/12pt Ume Gothic O5;
}
.
repDate
{
    
font:400 9pt/11pt Times New Roman;
    
font-style:italic;
}

comment.php

Tento soubor je určen pro vybírání dat z databáze a vkládání těchto dat do šablony.

<?php
// Vložíme soubor s připojením k databázi. ( musí se nacházet ve stejné složce ) 
require_once 'db.php';

// Vybereme komentáře z databáze
$query mysql_query("
         SELECT `id`,`parent_id`,`name`,`komentar`, 
         DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add
         FROM `comments` ORDER BY `id` ASC 
         "
);
         
// Pokud při vykonání příkazu nastané chyba vypišeme ji
if(!$query) { echo mysql_error() . " - " mysql_errno(); }
else {

// Jinak pomocí cyklusu projdeme všechny záznamy v tabulce
        
while($result mysql_fetch_assoc($query))
        {
            
// a uložíme je do pole $data  
            
$data[$result['id']] = $result;
        }

// Funkce pro vkládání dat ( komentářů ) do šablony
function commentsToTemplate($comment)
{
// $comment - pole komentáře - id, parent_id, name, text, date 
    
// Zapneme bufferování výstupu, aby šablona nebyla zobrazená v místě volání funkce
    
ob_start();  
      
// Připojíme šablonu comment_template.php, do které vložíme data z pole $comment
    
require_once 'comment_template.php';                     
  
// Získáváme obsah bufferu jako řetězec   
    
$comments_string =  ob_get_contents(); 

// Vymažeme všechno z bufferu
    
ob_end_clean();

// Vrácíme komentář jako řetězec   
    
return $comments_string;    
}

// Funkce pro zpracování pole $data, které
// bude rozděleno do jednotlivých komentářů a odesláno funkci 
// commentsToTemplate
function commentsString($data)
{
    foreach(
$data as $w
    {
        
$string .= commentsToTemplate($w);
    }
 
return 
$string
}  

// proměnná $comments obsahuje naše komentáře, které zobrazujeme na hlavní stránce
$comments commentsString($data);

// vynulujeme proměnnou $data 
$data null;
}
?>

comment_template.php

Toto je vlastně šablona jednotlivého komentáře.

<?php
// Do této šablony se načítají data z pole $data, která jsou odesláná funkci commentsToTemplate
echo '<li id="comment'.$comment['id'].'">
    <div id="commentWrap">'
;
        
// Pokud existuje parent_id, pak zobrazíme, že se jedna o odpověď
        
if($comment['parent_id']!=0)
        {
// Vybereme z DB jméno a datum rodičovského komentáře
            
$q mysql_query("SELECT `name`, DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add FROM `comments_my` WHERE `id`='".$comment['parent_id']."'");
            
$r mysql_fetch_assoc($q);
            echo 
'<span class="repText">Odpověď na komentář</span> <span class="repName">
            '
.$r['name'].'
            </span> <span class="repText">from</span> <span class="repDate">
            '
.$r['date_add'].'
            </span><br>'
;
        }
        
// Zobrazíme jméno a datum přidání
echo    '<span class="commentName">'.$comment['name'].'</span> - <span class="commentDate">'.$comment['date_add'].'</span>
        <div class="komentar">
<!--Zobrazíme text komentáře-->
            '
.$comment['komentar'].'
        </div>
<!--Pokud zmačkneme na tento odkaz, pak se do skrýteho pole s názvem parent_id přidá
identifikátor tohoto komentáře. 
Použil jsem zde JS událost onClick, tzn. pokud je tlačítko zmačknuté, pak najdi prvek s 
id parent ( což je skrýte pole parent_id ) a do hodnoty přidej id komentáře, na který chcete odpovědět-->
        <a class="replay" href="javascript:;"
        onClick="document.getElementById(\'parent\').value='
.$comment['id'].';">Odpovědět</a>
    </div>
</li>'
;
?>

comment.js

Tento soubor je určen pro odesílaní dat na server a přidávání do databáze

$(document).ready(function(){
    
// Objekt commentBox bude obsahovat data pro odesílání na server
    
var commentBox = {};
    
// Po kliknutí na tlačítko přidat      
     
$('#commentBox button').live('click',function(){
         
// Do objektu commentBox bude přidána hodnota skrýteho pole input s názvem parent_id,
// které obsahuje id rodičovského komentáře a pokud je prázdné tak bude 0, což znamená, že
// se jedná o nový komentář bez reakci na něj ( toto se bude ověřovat až odešleme data na server ).   
        
commentBox.parent_id = $('#commentBox').find("input[name='parent_id']").val();
        
// Taktéž přidáme do objektu commentBox hodnotu pole name a zprávu
        
commentBox.name = $('#commentBox').find("input[name='name']").val();        
        
commentBox.text = $('#commentBox').find("textarea").val();
// Abyste to lépe pochopili syntaxe toho, jak přidáváme hodnoty do objektu je:
// Objekt.název_proměnné = hledáme input nebo textarea.hodnota pole

// Funkce pro odesílání dat na server        
        
sendData();
     });
    

function 
sendData()
{
// Najdeme tlačítko schováme jej a zobrazíme loader ( ten si můžete stáhnout z archivu )
    
$('#commentBox').find('button').hide().next().show();

// Odešleme    data metodou post na server
    
$.post(
// Soubor, ve kterém se provádí ověřování dat a přidávání komentářů     
        
"addkoment.php",
// Objekt s proměnnými (parent_id, name a text)
        
commentBox,
        function(
data){
// Pokud jsou nějaka data, to znamená, že nastala chyba
            
if(data)
            {
// Převedeme tento řetězec JSON do objektu JS
                
data = $.parseJSON(data);
                
// Vytvoříme proměnnou errors, která bude obsahovat název chyby
                
var errors '';

// Použijeme cyklus pro zobrazení všech chyb najednou.
// Použil jsem tuto konstrukci, protože nejprvé jsem zobrazoval všechny chyby, ale
// nakonec jsem to změnil a teď se bude zobrazovat jenom jedna konkretní chyba     
// Kdybyste chtěli zobrazit všechny chyby tak použijte konstrukci
// errors += val+'\n'; - každá chyba se zobrazí na samostatném řádku.
// i - obsahuje název chybného pole a val - popis chyby
            
                
$.each(data, function(ival)
                {
                    
errors += i;
                });

// Uložil jsem do proměnné errors jenom název chybného pole a
// cyklusem switch procházim všechny varianty a přidávam červený rámeček 
// pokud pole je prázdné nebo jestli komentář nebyl přidan tak zobrazim hlášení                    
                   
switch (errors
                   {
                      case 
'name':
                        $(
'#commentBox').find("input[name='name']").css('border','2px solid red');
                        break
                      case 
'text':
                        $(
'#commentBox').find("textarea").css('border','2px solid red');
                        break
                      case 
'not_add':
                        
alert('Komentář nebyl přidan.')
                        break
                      default:
                        
alert('Něco je špatně')
                  }

// Najdeme loader ( ten si můžete stáhnout z archivu ) schováme jej a zobrazíme tlačítko přidat     
                
$('#commentBox').find('button').show().next().hide();

// Jinak, pokud žadná chyba nenastala, tak voláme funkci addComment, která zobrazí
// komentář bez znovunačtení stránky a vynuluje hodnoty vstupních poli
            
} else {
                
addComment();        
            }
        }
    
    )

}


function 
addComment()
{
// Na konec prvků s id commentWrapper ( což je ul ) přidame tag <li></li>,
// ve kterém se bude nacházet nový komentář
    
$("#commentWrapper").append('<li></li>');

// Najdeme poslední tag <li>, který jsme teď vytvořili a
// načteme do něj poslední komentář
    
$("#commentWrapper li:last").load('new_comment.php');
// Najdeme loader ( ten si můžete stáhnout z archivu ) schováme jej a zobrazíme tlačítko přidat     
    
$('#commentBox').find('button').show().next().hide();

// Vynulujeme hodnoty vstupních poli
    
$('#commentBox input').val('');
    $(
'#commentBox textarea').val('');

}


});

addkoment.php

Tento skript zpracovává data poslána na server pro zpracování.

<?php
// Ověříme, zda se jedna o odeslána POST data nebo si člověk jen tak otevřel tuto stránku
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {

// Pokud ano, pomocí funkci sleep přidame efekt zpoždění, abyste 
// viděl loader, jinak, protože pracujeme na lokálním serveru
// se ten loader hned schová  
     
sleep(2);

// Ověříme vstupní data     
// Pokud je pole name nebo textové pole prázdné do pole $error uložíme text chyby
// ukončíme skript a odešleme tuto chybu v JSON formátu  
     
if(!isset($_POST['name']) OR empty($_POST['name']))
     {
        
$error['name'] = "Zadejte jméno.";
        exit(
json_encode($error));
     } else {
        
$name htmlspecialchars(stripslashes(trim($_POST['name'])));
     }
     
     if(!isset(
$_POST['text']) OR empty($_POST['text']))
     {
        
$error['text'] = "Zadejte zprávu.";
        exit(
json_encode($error));
     } else {
        
$text stripslashes(htmlspecialchars(trim($_POST['text'])));
     }
     
// V tomto případě, když parent_id je prázdné pole tak mu přiřadime hodnotu 0
// to znamená, že se jedná o nový komentář, který není odpovědí na něčí jiný  
     
if(!isset($_POST['parent_id']) OR empty($_POST['parent_id']))
     {
        
$parent_id 0;
     } else {
        
$parent_id stripslashes(htmlspecialchars(trim($_POST['parent_id'])));
     }
     
// Vložíme soubor s připojením k databázi. ( musí se nacházet ve stejné složce )  
     
require_once 'db.php';
     
// Přidame komentář do databáze a vrátíme false, tzn.
// že chyba nenastala a komentář byl přidán.
     
$q mysql_query("
     INSERT INTO `comments`(`parent_id`,`name`,`komentar`,`date`)
     VALUES('"
.$parent_id."','".$name."','".$text."', NOW())
     "
);
     if(!
$q) { $error['not_add'] = "Komentář nebyl přidan."; exit(json_encode($error));}
     else { exit(
false); }

}
?>

new_comment.php

V tomto souboru vybírame poslední komentář, abysme ho následně zobrazili po úspěšnem ověření vstupních dat.

<?php
// Vložíme soubor s připojením k databázi. ( musí se nacházet ve stejné složce ) 
require_once 'db.php';
// Vybereme maximální ( poslední přidáný ) id
$max mysql_query("SELECT MAX(`id`) FROM `comments_my`");
// Pak vybereme všechny související údaje s tímto identifikátorem
$query mysql_query("
         SELECT `parent_id`,`name`,`komentar`, 
         DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add
         FROM `comments_my` WHERE `id` = '"
.mysql_result($max,0)."'
         "
);
$comment mysql_fetch_assoc($query);

// A stejně, jak jsme zobrazovali komentáře před tím, zobrazíme poslední přidáný
echo '<li id="comment'.mysql_result($max,0).'">
    <div id="commentWrap">'
;
        
        if(
$comment['parent_id']!=0)
        {
            
$q mysql_query("SELECT `name`, DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add FROM `comments_my` WHERE `id`='".$comment['parent_id']."'");
            
$r mysql_fetch_assoc($q);
            echo 
'<span class="repText">Odpověď na komentář</span> <span class="repName">
            '
.$r['name'].'
            </span> <span class="repText">from</span> <span class="repDate">
            '
.$r['date_add'].'
            </span><br>'
;
        }
        
echo    
'<span class="commentName">'.$comment['name'].'</span> - <span class="commentDate">'.$comment['date_add'].'</span>
        <div class="komentar">
            '
.$comment['komentar'].'
        </div>
        <a class="replay" href="javascript:;"
        onClick="document.getElementById(\'parent\').value='
.mysql_result($max,0).';">Odpovědět</a>
    </div>
</li>'
;
?>

Závěr

Probrali jsme, jak můžeme zpracovávát formuláře bez znovunačtení stránky. Doufám, že se Vám tento článek líbil a byl pro Vás přínosný.

Systém Orphus
Napište komentář.
Celkem komenrářů(10364)
Jamesded - 2017-05-17  10:11:28
 Race http://studentessay.info r eacutesum eacutes send in
KennethWI - 2017-05-17  09:50:20
 Сайт не указываем дабы не сочли за спам. Просто свяжитесь с нами и узнайте подробности либо запросите живую презентацию или встречу.

Связь с нами:
наш сайт - напишите нам, мы отправим Вам все контакты.
Qip (icq) - 248923748
Скайп - maksimovgenya

Самый-самый лучший клуб путешественников на планете с 2 миллионами членов клуба, единственная комерческая компания заработавшая 24 Оскар в туристическом бизнесе, элитная туристическая организация 2016 года в мире по версии World Travel Awards, компания входящая в ТОП-25 из 100 лучших в мире организаций в рейтинге Global 100 Direct Selling News на 2017 год, занимающихся прямыми продажами. Продолжает свою деятельность на территории России и развивает страны СНГ и предлагает Вам:

Для Вас доступны эксклюзивные, гарантированно самые низкие предложения на:
* туры все включено на любом континенте нашей планеты
* путешествия и морские круизы
* авиаперелеты любых авиакомпаний и из любых аэропортов мира
* гостиницы, отели в любой части нашего мира
На наши услуги Вы получаете три гарантии лучших цен.

Многие из нас не один раз лицезрели рекламу различных туристических сервисов, которые одни якобы сканируют доступные гостиницы и предлагают для Вас низкую цену на отели по примеру Trivaga, а совершенно прочие похожие сервисы ищут Вам доступные авиа билеты по будто самой низкой стоимости, по типу Skyscanner либо Aviasales. Но никто из из них не говорит о гарантиях, все таки рынок туризма и авиаперелетов изменчив и плата может изменяться каждую секунду. Риторический вопрос, а Вам вернутся Ваши деньги от Вашей переплаченой тарифа за авиаперелет либо за отель если все таки тариф окажется не самый лучший? И согласитесь это не удобно пользоваться различными сервисами для составления или поиска себе авиаперелета либо заказа отеля и уж тем более для поиска себе и своим друзьям подходящего тура либо отдыха. Наш бесподобный интернациональный клуб путешественников предлагает для всех единственный сервис, в котором Вы можете забыть о всех существующих неудобных сервисах по поиску авиаперелетов, гостиниц, круизов, и всего списка туристических возможностей, ведь вся всемирная туристическая база находится у Вас под рукой, круглосуточно, 365 дней в году. Любой на выбор самолет, любой номер в любой гостинице, Лувр, любой зоопарк, любые острова. Для всех это доступно в любое подходящее время по гарантированно низкой цене.

Какая из туристических холдинг-компаний либо авиакасс может предложить для Вас нижеследующее?
* Если Вы найдете любой билет на самолет меньше чем у нас, то получит 150 процентов от разницы в течение рабочего дня
* Если мы найдем какую угодно гостиницу, всякий отель, любой хостел дешевле чем у нас, то возьмете 150% от разницы в течение рабочего дня
* Если после приобретения Вашего билета на самолет и до момента Вашего регистрирования на рейс цена на билет на самолет подешевела в меньшую сторону (независимо от бронирования, к примеру неделя) то Ваш авиа билет перебранируется по самой лучшей стоимости, а разницу возьмете в течение рабочего дня
* Если мы найдем подобный нашему тур "все включено" в любой комерческой компании мира дешевле чем у нас, то мы данный тур Вам презентуем

При этом нашим членам по желанию предлагается открыть свой личный туристический бизнес в течение часа, это:
* открыть свою коммерческую туристическую организацию
* развивать интересы компании в собственном регионе либо в любом на выбор интересующем Вас месте с выручкой на много выше среднего
* для ценителей МЛМ бизнеса совершенная потенциальность организовать свою бинарную команду
* для ценителей командного бизнеса (от 2 до ... человек) прекрасная возможность построить свой турбизнес в различных странах

Заработная плата при бизнес пакете стартует от 1500 долларов США / за месяц. Верхней планки заработной платы нет.

В начале Мы обучаем и развиваем Вам продвигать Ваш туристический бизнес и Ваши структуры.

Цена за за патент чисто незначительная, одноразовая и бессрочная. Окупаемость с одного компаньона в Вашей команде.
Ваш турбизнес достается к Вашим детям.

А самое важное, что Вы присоединяетесь в нашу семью из 2 миллионов шикарных и позитивных людей с нашего мира и из разнообразных областей туристического бизнеса.

Мы официально действует в 30 странах мира, а так же развиваемся в Узбекистане (Самарканд), Армении (Ереван), Беларусь (Минск), Азербайджане (Баку), Киргизии (Бишкек), Грузии (Тбилиси), Молдавии (Кишинев), Казахстане (Астана), России (Москва), Приднестровье (Тирасполь), Украине (Одесса, Киев), Таджикистане (Душанбе).
Derekcot - 2017-05-17  08:39:58
 Nearly half a year ago, I sat in front of a desktop PC with tears brimming for my eyes. I felt watching history unfold before me, when Pres. Barack obama signed into law affected person Protection and Affordable Care Act. I had been expecting for this for years, and these days it seemed surreal in which it would finally come via.

Once I became admitted, the nurse started taking my vital conditions. Suddenly, she couldn't find my pulse. She got the pediatric infectious disease doctor, and they took my temperature. It had shot up from 102 degrees Fahrenheit to 107, in mouse click away . few times. I went from watching "Where in society is Carmen Sandiego?" my room, and chatting with the staff, to going into shock.

Meanwhile, I am planning a motorbike ride from Canada to Mexico to lift money for Juvenile Adult onset diabetes. You know we must set examples for the kids; otherwise, our health care medicine is sunk. Maybe you need to some long-term fitness goal, well then write it down right away. Maybe you want to run a Marathon, okay, then start breaking it down exactly how to you do this immediately after which it get busy and precisely what you know the system.

You know in the photo all my personal medical records distribute . In Greece patients are contributing to their own records. Doctors go over the results associated with a blood test or other test with patients. If for some reason require to help on the other hand personal doctor is unavailable, your pharmacist will in order to.

But thankfully more dangerous Stealer connected to health care that is the illustrated using a true model. Ben and his wife Jill had two good jobs and a beneficial health care policy. Then, Jill any baby and quit try to care for that newbo
. After that that, Ben fell off his roof and broke his back. Their health insurance paid the vast majority of their medical bills and also personal savings paid their deductibles and co-pays. Experienced recognized their POLICY Stealers and planned for these types of.

3) Regardless of what this makes consists of, avoid eating 3 large meals just about every. You need to speed up your metabolism, as well as are only going execute that to eat constantly throughout the day. Eat little meals and snacks day long long thoughts your metabolism bu
ing calories for we. Your metabolism is like a fire.The food you eat is natural gas. The more fuel being thrown in the fire, the faster and hotter it will bu
and stay bu
ing. For the single point. You want your metabolism to constantly work an individual.

I'm all for bicycles and bike lanes in the city. Are generally good for that environment reducing congestion and auto emmissions, as well as helping people bu
some calories on their mo
ing trip. Electric bikes are good for your environment, they don't help much from an exercise standpoint. An average bike versus an electric bike is much like comparing biking up an incline and coasting all downhill. The downhill is a rest period.
[url=https://www.scribd.com/doc/295513664/Henry-M-Robert-smoley]https://www.scribd.com/doc/295513664/Henry-M-Robert-smoley[/url]
https://www.scribd.com/doc/295513664/Henry-M-Robert-smoley

If I have my way, America happen to be in for a Code Blue wake-up get in touch. We should do everything common actions like before it's too late and cannot find a pulse on our health conce
system.
FAMichael - 2017-05-17  03:45:35
 Сайт не указываем дабы не сочли за спам. Просто свяжитесь с нами и узнайте подробности либо запросите живую презентацию или встречу.

Связь с нами:
www - напишите нам, мы отправим Вам все контакты.
icq - 248923748
Скайп - maksimovgenya

Самый крупнейший клуб туристов в мире с 2 миллионами членов клуба, единственная комерческая компания удостоенная 24 Оскар в туризме, лучшая туристическая организация 2016 года на планете по версии World Travel Awards, комерческая компания входящая в ТОП-25 из 100 лучших в мире фирм в рейтинге Global 100 Direct Selling News на 2017 год, занимающихся прямыми продажами. Продолжает свою деятельность на территории России и развивает страны СНГ и предлагает Вам:

Для Вас доступны единственные, гарантированно самые низкие предложения на:
* туры все включено в любой части мира
* путешествия и морские круизы
* авиа перелеты любых авиакомпаний и из любых аэропортов мира
* отели в какой угодно части нашего мира
На все наши услуги Вы получаете три гарантии лучших цен.

Многие из Вас нередко наблюдали рекламный ролик различных туристических сервисов, которые одни будто бы сканируют доступные отели и предлагают для Вас низкую цену на отели по примеру Trivaga, а совершенно остальные сходные сервисы ищут Вам доступные авиа перелеты по будто бы самой лучшей стоимости, по типу Skyscanner либо Aviasales. Но никто из из них не говорит о гарантиях, все таки рынок туризма и авиаперелетов изменчив и тариф может меняться постоянно. Вопрос, Вам вернут Ваши наличные от Вашей переплаченой цены за билет на самолет либо за гостиницу либо отель если все таки цена окажется не самый низкий? И согласитесь это крайне не удобно пользоваться различными сервисами для формирования или поиска для себя авиа перелета либо заказа гостиницы и уж тем более для поиска себе и своей семье и друзьям подходящего тура либо отдыха. Наш великолепный междунациональный клуб путешественников предлагает для всех уникальный сервис, в котором Вы можете забыть о всех существующих неудобных сервисах по поиску авиаперелетов, отелей и гостиниц, круизов, и всего перечня туристических предложений, все-таки вся всемирная туристическая база находится у Вас под рукой, в любое время дня и ночи, 365 дней в году. Какой угодно самолет, любой номер в любой гостинице, любой музей, любые сафари, любые острова. Для нас это доступно в любое удобное время по гарантированно низкой цене.

Какая из туристических фирм либо авиа касс способна предложить для всех нижеследующее?
* Если кто то найдет любой на выбор билет на самолет ниже чем у нас, то получит 150 % от разницы в течение суток
* Если мы найдем всякую гостиницу, всякий отель, какой угодно хостел ниже чем у нас, то получите 150 % от разницы в течение суток
* Если после покупки Вашего авиаперелета и до момента Вашего прохождения на регистрацию цена на билет на самолет изменилась в меньшую сторону (независимо от бронирования, к примеру день) то Ваш авиаперелет перебранируется по самой лучшей стоимости, а разницу возьмете в течение рабочего дня
* Если кто то найдет подобный нашему тур "All inclusive - Все включено" в любой компании земли ниже чем у нас, то мы данный тур Вам дадим бесплатно

При этом нашим членам по желанию предлагается открыть свой частный турбизнес в течение часа, это:
* открыть свою личную туристическую корпорацию
* развивать интересы холдинг-компании в собственном городе, регионе, стране либо во всяком интересующем Вас месте с заработком во много раз больше
* для любителей МЛМ (MLM) бизнеса совершенная возможность открыть свою бинарную структуру
* для ценителей командного бизнеса (от 2 до ... человек) совершенная потенциальность организовать свой турбизнес в различных регионах

Доход при бизнес пакете стартует от 1500 USD$ / месяц. Верхней планки дохода нет.

В начале Мы учим и развиваем Вам строить Ваш бизнес и Ваши структуры.

Расценка за пакет документов чисто формальная, единоразовая и пожизненная. Окупаемость с одного компаньона в Вашей команде.
Ваш бизнес достается к Вашим детям и внукам.

А самое важное, что Вы присоединяетесь в семью из 2 миллионов шикарных и позитивных людей со всего мира и из различных областей бизнеса.

Мы официально действует в 30 странах мира, а так же развиваемся в Узбекистане (Самарканд), Армении (Ереван), Беларусь (Минск), Азербайджане (Баку), Киргизии (Бишкек), Грузии (Тбилиси), Молдавии (Кишинев), Казахстане (Астана), России (Москва), Приднестровье (Тирасполь), Украине (Одесса, Киев), Таджикистане (Душанбе).
Hlrvrc - 2017-05-16  23:22:40
 We are relinquish of a best online pharmacy set made up of independently owned and operated stores who be sure that as group we can purchase advantage products at haler prices and pass that value on to you. We aren't a franchise, corporation or a giant encase store.
We vanity ourselves on providing you and your class with the bosom worry you've be shown to keep in view from an independant community [url=http://canadianpharmacy.space/]online drugstore[/url].
Ирина Викторовна - 2017-05-16  19:11:23
 Здравствуйте, предлагаем Вам услуги комплексного продвижения вашего сайта, подробнее с нашими услугами Вы можете ознакомиться по ссылке http://www.anacron.ru/ Извините за беспокойство.
Adolfovax - 2017-05-16  14:49:10
 Hello. And Bye. Hello. And Bye. Hello. And Bye.
Lstrguiffic - 2017-05-16  07:49:57
 How much can you spend too much the exact same subject, the whole blogosphere zasr @ Do

[url=http://forum.tajanstvena.com/viewtopic.php?f=3&t=484184] "The road will overcome walking." I wish you never will stop and be creative - forever!
[/url]

http://forum.kitaidar.com/viewtopic.php?f=2&t=112504
EdhelpDof151 - 2017-05-16  04:35:37
 Для кого ученые отыскивают виагру, что купить в аптеке для потенции viagra1.erectilemantablet.ru При диагностике данного заболевания важную роль играет характер травмы. Следовательно, может заключаться для вас уже приходилось брать Виагру в аптеке либо вы лишь намереваетесь приобрести Сиалис в Воронеже либо приобрести Левитру, в любом случае, выбор должен являться обоснованным и естественно же воспрещается попирать чтением аннотации пред применением Виагры, Левитры и Сиалиса. Ради обеспечения активного отдыха опосля мышечной работы используются различные средства. Ввиду специфичности собственной работы и для фоне нервных расстройств у меня часто теряется эрекция в самый неуместный момент. Различные заболевания сердца, в часть числе нестабильная стенокардия, аритмия в небезопасной форме и сердечная недостаточность.
Рефлекторно происходит спазм этих артерий и горячность болевых рецепторов в них. Когда вас повсевременно иначе с нередкой периодичностью мучают сердечные боли, вы мучаетесь сердечными болезнями, то предварительно применением Левитры, в неотклонимом порядке пройдите консультацию у собственного лечащего врача. Препарат женская виагра палочка
достоинство в аптеках. Силденафил токмо на срок наращивает приток крови к половому члену. Кроме больше вы сэкономите, приобретая аналоги.
Затем их внедрения может появиться головная боль скока стоит приобрести от чего препарат силденафил
головокружение боли в суставах диарея тошнота уменьшение остроты зрения Приобрести левитру приобрести левитру в одессе одессе, повышающие потенцию. Около наличии пульса имеет смысл рисковать его разбудить. Пробный ассортимент из растворимых под языком пилюль - Дженерик Виагра Софт и Дженерик Сиалис Софт, различающихся наиболее скорым актом и возможностью потребления алкоголя читать время приёма. В итоге содействует нормализации и гармонии сексапильных отношений, сколько очень принципиально для хоть какого мужчины и естественно женщины.
NormanNok - 2017-05-16  02:03:19
 When tourists visit Atlanta and regarding southe
homes, their thoughts immediately tu
to the images of theTara Plantation in "Gone i'm able to Wind". The main House is a more realistic example from the life in the south from 1840's towards Civil War; representing the property of a middle-income family and their life on the Georgia frontier.

Nov. 24th : Cherokee, N.C. to Greensboro, NC The tree is scheduled to be on display from 1 p.m. to 5:30 l'ordre de.m. just outside of a seasonal roller skating rink in Greensboro's downtown area.

The idea was then discussed with Mr. Caire who suggested that the expansion of telemedicine services be piloted in D.C. charter schools. Mr. Caire understood numerous of these schools still did not have full-time nurses and thought telemedicine could help students attending charters. Premise was famous.

I asked them issues they thought towards the changes. They replied going without shoes was a rotten deal to dilute their benefits and these pay a great deal more. The Board should have asked for their input for you to making the change.

"The Lost Tomb of Jesus," the documentary conce
ing the findings as well as the research conducted to found the conclusion that this is actually the tomb of Jesus' family will air on the invention Channel on Sunday, March 4th, 9 P.M. Easte
and Pacific times. executive florida person, Academy Award winner, James Cameron has teamed i'll carry on with Simcha Jacobovici, director, producer and publisher.

"I prefer to relate one-to-one to the listeners and tell them how The thrill the weather will affect them the actual to plan their day based on I think the weather's going to be," Glickman said.
[url=http://healthcaregurusnews.com/robert-smoley-north-bay-village/]robert smoley[/url]
http://healthcaregurusnews.com/robert-smoley-north-bay-village/-smoley - robert smoley

It takes courage to obtain up in front of all others and bare you soul through what you are saying. But strategy thing in a choice level slam is consistency, their trainer, Jose, pointed out. Scores would be sent on a scale, having a "sacrificial poet" to set the bar. While the collegiate would have had more within the performance presence on stage, the emphasis is mainly on the writing, he told her.

As soon as I retu
ed home I delivered on this promise. I thought i was specific in regards to the purpose of the booklet, offered design suggestions, and said I would contact groups that end up being interested in bulk sales. Web page resource is small does not imply it has less consequences. Indeed, a booklet may fit any particular niche and lead to surprising marketing. Despite the economy, despite my age, I continue to pursue my writing hopes. Will you?
Lstrguiffic - 2017-05-16  00:05:03
 Excellent written. Positives certainly not enough, but read in one breath

[url=http://supersonic.net.br/index.php/forum/web-hosting/130303-ticket-celebrex-mastercard-login-online#130309] In the past few years I have been in Ibiza, so there met a man whose style of presentation is very similar to yours. But, unfortunately, the man is very far from the Inte
et.
[/url]

http://auto-likbez.net/pages/add.html
MatthewSkelf - 2017-05-15  23:59:40
 Занимает распорядок авиарейсов внутренних и международных аэропортов, желаете быть в курсе оптимальных предложений от проверенных компаний, турагентств а также лоукостеров? С поддержкой нашего онлайн-сервиса вы с лёгкостью найдете доступные по цене авиабилеты, ценные бумаги авиакомпаний, скидки 2017 г и сможете оценить ключевые положительные моменты виртуальной системы поиска и организации перелетов:

Созданная нами база включает больше восемьсот официальных партнеров, которые обеспечивают перелеты в 200+ стран мира, больше 100 агентств по предоставлению пассажирских услуг!
Систематично прослеживаем спецпредложения и промоакции официальных перевозчиков.
Ориентируем выбрать удобные места на самолеты и номера в отелях, давая их фото, схемы и карты. Составляем особенные рейтинги на основе реалистичных отзывов пользователей интернет-сайта.
Разыскиваем благоприятные предложения исключительно на ресурсах проверенных партнеров.
Мы предоставляем цены непосредственно от авиакомпаний без комиссий и торговых наценок. Комфортабельный и продуманный интерфейс обеспечивает быстрый поиск по максимому годящихся предложений.

[url=http://aviabilety-sale.ru/]дешевые авиабилеты акции авиакомпаний скидки[/url]
Seitcori - 2017-05-15  20:15:02
 Здравствуйте, посетители сети!
Советую симпатичный вебсайт: http://geo-city.com/ - инженерно-геодезические изыскания. Кроме этого экологические исследования И конечно экологический экспертиза строительства.
Специализация интернет проекта [url=http://geo-city.com/] инженерно-экологические изыскания. Разумеется экологические исследования И еще геодезические исследования [/url].
Всем счастья .
Игорь
Kzen07 - 2017-05-15  17:17:20
 Firm and unfaltering erections in bed: walmart pharmacy price check should be consumed at least an hour before intercourse and the effects of [url=http://canadianpharmacies.shop/]canadian online pharmacy[/url] can be experienced looking for a longer full stop of for the nonce at once that is until six hours after the elements in the medication starts working.
JeffreySig - 2017-05-15  16:43:09
 [url=https://crynet.cc/forum/11-banki-i-obnalichivanie/]Банки и обналичивание [/url] - Инвестирование, Покупка, продажа схем заработка. Обучения..
Lstrguiffic - 2017-05-15  16:09:10
 It would be interesting to know more

[url=http://www.amberkaye.com/smf/index.php?topic=497026.new#new] Cool everything: the picture and information
[/url]

http://www.road2survival.com/viewtopic.php?f=9&t=273223
Charlesgep - 2017-05-15  15:58:48
 Приветик Нашел Биржа комментариев Вы можете купить комментарии для любого сайта
http://www.youtube.com/watch?v=wcxJBSVvfg8
Подробнее смотрите по ссылке
[url=https://www.youtube.com/watch?v=wcxJBSVvfg8 ]Аналог биржи комментариев qcomment[/url]
Raaaasssi - 2017-05-15  15:53:23
 [IMG]http://eropix.xyz/i/j0b0T0I0i0211753.jpg[/IMG]



комиксы секс алладин

http://zhopastie.ru/
На ТВ уже показали - интимные фотоснимки огромной задницы на кровати


http://forum.lihongjuan.com/home.php?mod=space&uid=8487
Где же я видела сексуальные фото русских геев без фотошопа


http://xn--d1am.xn--42-8kcao9azd.xn--p1ai/user/annnnuuuss/
Обалденные секс засветы лизания попки без презика


http://www.z768.com/space-uid-151870.html
Тайные эротические файлы бритые женские лобки с силиконом




бесплатное молодежное порно скачать
http://www.yenipvp.tk/showthread.php?tid=808&pid=17101#pid17101
http://forum.optyma-golf.com/viewtopic.php?f=5&t=267276

секс на 2 дня в ставрополе
Altonsak - 2017-05-15  15:36:23
 專業光碟教學網站 http://xyz.net.tw/
RowfinforgoCobdrure - 2017-05-15  14:50:05
 Привет, господа!
Взгляните на симпатичный вебресурс: http://comptables.ru - бухгалтер удаленно. Кроме того бухгалтер удаленная работа. И напоследок удаленный бухгалтер.
Тема вебресурса [url=http://comptables.ru] бухгалтер удаленно. Затем бухгалтер удаленная работа. Конечно удаленный бухгалтер.[/url].
Пожалуй прилично.
Пусть у Вас все будет хорошо, друзья.
Сергей
<<[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] [216] [217] [218] [219] [220] [221] [222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232] [233] [234] [235] [236] [237] [238] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282] [283] [284] [285] [286] [287] [288] [289] [290] [291] [292] [293] [294] [295] [296] [297] [298] [299] [300] [301] [302] [303] [304] [305] [306] [307] [308] [309] [310] [311] [312] [313] [314] [315] [316] [317] [318] [319] [320] [321] [322] [323] [324] [325] [326] [327] [328] [329] [330] [331] [332] [333] [334] [335] [336] [337] [338] [339] [340] [341] [342] [343] [344] [345] [346] [347] [348] [349] [350] [351] [352] [353] [354] [355] [356] [357] [358] [359] [360] [361] [362] [363] [364] [365] [366] [367] [368] [369] [370] [371] [372] [373] [374] [375] [376] [377] [378] [379] [380] [381] [382] [383] [384] [385] [386] [387] [388] [389] [390] [391] [392] [393] [394] [395] [396] [397] [398] [399] [400] [401] [402] [403] [404] [405] [406] [407] [408] [409] [410] [411] [412] [413] [414] [415] [416] [417] [418] [419] [420] [421] [422] [423] [424] [425] [426] [427] [428] [429] [430] [431] [432] [433] [434] [435] [436] [437] [438] [439] [440] [441] [442] [443] [444] [445] [446] [447] [448] [449] [450] [451] [452] [453] [454] [455] [456] [457] [458] [459] [460] [461] [462] [463] [464] [465] [466] [467] [468] [469] [470] [471] [472] [473] [474] [475] [476] [477] [478] [479] [480] [481] [482] [483] [484] [485] [486] [487] [488] [489] [490] [491] [492] [493] [494] [495] [496] [497] [498] [499] [500] [501] [502] [503] [504] [505] [506] [507] [508] [509] [510] [511] [512] [513] [514] [515] [516] [517] [518] [519] >>
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.