<?php

define
('SOAP_LOGIN'''); // Имя пользователя для подключения к SOAP (PIN)
define('SOAP_PASS'''); // Пароль

$client = new SoapClient(null, array('location' => 'https://api.from.sh/wm.php?Soap_Order',
                                          
'uri' => 'urn:soap_order',
                                        
'login' => SOAP_LOGIN,
                                     
'password' => SOAP_PASS));

if (isset(
$_POST['submit'])) { // Обработка AJAX запроса

    
try {
        
$_POST['ip'] = $_SERVER['REMOTE_ADDR']; // IP-адрес пользователя
        
$id $client->create($_POST); // Номер заказа
        
echo $id;
    } catch (
SoapFault $e) {
        echo 
$e->getMessage();
    }

    exit;
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Заказ хостинга</title>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
    <style type="text/css">
        * { font-family: verdana; color: gray; font-size: 10pt; padding: 0; margin: 0; }
        h1 { padding: 1em 0 0.5em; text-align: center; color: gray; }
        .warn { color: #BB0000; font-weight: bold; }
        #order { margin: 0 auto; padding: 0.5em; text-align: right; width: 40em; }
        #order input, #order select, #order textarea { margin: 0.2em 0.5em; }
        #order input[type=submit] { padding: 0.2em; }
        #order input[type=text] { width: 20em; }
        #order input[name=birth_date], #order input[name=inpr_birth_date] { width: 8em; }
        #order select[name=order_type] { width: 12em; }
        #order select[name=package] { width: 8em; }
        #order textarea { width: 20em; height: 3em; vertical-align: text-top; }
        #order label { display: block; }
    </style>
    <!-- Используются библиотеки Prototype и script.aculo.us -->
    <script type="text/javascript" src="http://yandex.st/prototype/1.6.1.0/prototype.min.js"></script>
    <script type="text/javascript" src="http://yandex.st/scriptaculous/1.8.3/min/scriptaculous.js"></script>
    <script type="text/javascript" language="javascript">

        function switch_regmov() {
            if ($('reg').checked == true) {
                $$('[name=regdom]').invoke('show');
            } else if ($('mov').checked == true) {
                $$('[name=regdom]').invoke('hide');
            } else {
                $('mov').checked = true;
                $$('[name=regdom]').invoke('hide');
            }
        }

        function switch_order_type() {
            if ($('order_type').value == 'f') {
                $('f').show();
                $('u', 'i').invoke('hide');
            } else if ($('order_type').value == 'u') {
                $('u').show();
                $('f', 'i').invoke('hide');
            } else if ($('order_type').value == 'i') {
                $('i').show();
                $('f', 'u').invoke('hide');
            } else {
                $('order_type').value = 'f';
                $('f').show();
                $('u', 'i').invoke('hide');
            }
        }

        function send_order() {

            var url = '<?php echo $_SERVER['PHP_SELF']; ?>';
            new Ajax.Request(url, {
              parameters: Form.serialize('order_form'),
              onSuccess: function(transport) {
                var error = transport.responseText.match(/Incorrect field: (.*)/);
                if (!error) {
                    $('order').update('Заказ №' + transport.responseText + ' принят').setStyle({ background: '#DDFFDD', textAlign: 'center' });
                } else {
                    var el = $$('[name=' + error[1] + ']');
                    el[0].focus();
                    new Effect.Highlight(el[0].up(), { startcolor: '#BB0000' });
                }
              }
            });

        }

    </script>
</head>
<body onload="switch_regmov(); switch_order_type();">
    <fieldset id="order">
        <legend>Заказ хостинга</legend>
        <form id="order_form" action="#" method="post" onsubmit="return false">
            <label>Регистрация домена:<input type="radio" name="regmov" id="reg" value="reg" onclick="switch_regmov()" /></label>
            <label>Перенос:<input type="radio" name="regmov" id="mov" value="mov" onclick="switch_regmov()" /></label>
            <label>Домен:<input type="text" name="domain" /></label>
            <label><select name="order_type" id="order_type" onchange="switch_order_type()">
                    <option value="f">Физическое лицо</option>
                    <option value="u">Организация</option>
                    <option value="i">ИП</option>
                </select>
            </label>
            <div id="f">
                <label>ФИО:<input type="text" name="name" /></label>
                <label>Email:<input type="text" name="email" /></label>
                <div name="regdom">
                    <h1>Данные для регистрации домена</h1>
                    <label>Приватная персона:<input type="checkbox" name="private_person" /></label>
                    <label>Дата рождения:<input type="text" name="birth_date" /></label>
                    <label>Паспортные данные:<textarea name="passport"></textarea></label>
                    <label>Адрес:<textarea name="address"></textarea></label>
                    <label>Телефон:<input type="text" name="phone" /></label>
                </div>
            </div>
            <div id="u">
                <label>Наименование организации:<input type="text" name="org_name" /></label>
                <label>Email:<input type="text" name="org_email" /></label>
                <label>ИНН:<input type="text" name="inn" /></label>
                <label>КПП:<input type="text" name="kpp" /></label>
                <h1>Банковские реквизиты</h1>
                <label>Наименование банка:<input type="text" name="bank" /></label>
                <label>БИК:<input type="text" name="bik" /></label>
                <label>Корреспондентский счет:<input type="text" name="c_acc" /></label>
                <label>Расчетный счет:<input type="text" name="r_acc" /></label>
                <h1>Контактная информация</h1>
                <label>Руководитель:<input type="text" name="org_boss" /></label>
                <label>Юридический адрес:<textarea name="org_address"></textarea></label>
                <label>Почтовый адрес:<textarea name="org_post_address"></textarea></label>
                <label>Получатель:<input type="text" name="org_post_receiver" /></label>
                <label>Телефон:<input type="text" name="org_phone" /></label>
                <label>Факс:<input type="text" name="org_fax" /></label>
                <h1>Контактная персона</h1>
                <label>ФИО:<input type="text" name="contact_name" /></label>
                <label>Телефон:<input type="text" name="contact_phone" /></label>
            </div>
            <div id="i">
                <label>ФИО:<input type="text" name="inpr_name" /></label>
                <label>Email:<input type="text" name="inpr_email" /></label>
                <div name="regdom">
                    <h1>Данные для регистрации домена</h1>
                    <label>Приватная персона:<input type="checkbox" name="inpr_private_person" /></label>
                </div>
                <label>Дата рождения:<input type="text" name="inpr_birth_date" /></label>
                <label>Паспортные данные:<textarea name="inpr_passport"></textarea></label>
                <label>ИНН:<input type="text" name="inpr_inn" /></label>
                <h1>Банковские реквизиты</h1>
                <label>Наименование банка:<input type="text" name="inpr_bank" /></label>
                <label>БИК:<input type="text" name="inpr_bik" /></label>
                <label>Корреспондентский счет:<input type="text" name="inpr_c_acc" /></label>
                <label>Расчетный счет:<input type="text" name="inpr_r_acc" /></label>
                <h1>Контактная информация</h1>
                <label>Адрес:<textarea name="inpr_address"></textarea></label>
                <label>Почтовый адрес:<textarea name="inpr_post_address"></textarea></label>
                <label>Получатель:<input type="text" name="inpr_post_receiver" /></label>
                <label>Телефон:<input type="text" name="inpr_phone" /></label>
                <label>Факс:<input type="text" name="inpr_fax" /></label>
                <h1>Контактная персона</h1>
                <label>ФИО:<input type="text" name="inpr_contact_name" /></label>
                <label>Телефон:<input type="text" name="inpr_contact_phone" /></label>
            </div>
            <label>Тарифный план:<select name="package">
            <?php
            
foreach($client->getAvailablePackages() as $k => $v) { // Доступные для заказа тарифные планы
                
echo '<option value="' $k '">' $v['package_descr'] . '</option>';
            }
            
?>
            </select></label>
            <label>Период:<select name="period">
            <?php
            $periods 
$client->getAvailablePeriods(); // Доступные для заказа периоды
            
foreach($periods as $k => $v) {
                echo 
'<option value="' $k '"';
                if (
$v == end($periods)) echo ' selected="selected"';
                echo 
'>' $v '</option>';
            }
            
?>
            </select></label>
            <label>Комментарий к заказу:<textarea name="comment"></textarea></label>
            <input type="submit" name="submit" value="Отправить заказ" onclick="send_order()" />
        </form>
    </fieldset>
</body>

</html>