// Функция для отображения предупреждений
// На вход подается текст предупреждения 
// и абсолютные координаты от левого верхнего угла
function showWarning(message, x, y) {
    var hand = document.getElementById('error_container');
    if (hand.style.display != 'block') {
        hand.innerHTML = '<div class="error_container"><b>Внимание:</b><br />'+message+'</div>';
	hand.style.display = 'block';
	hand.style.position = 'absolute';
        // Если кто-то забыл указать единицы - мы их допишем
        if (!isNaN(x)) { x = x+'px'; }
        if (!isNaN(y)) { y = y+'px'; }
	hand.style.left = x;
	hand.style.top = y;
        //alert(hand.style.left);
    }
    //stopClick(e);
}
// Переключалка вывода средств
// На вход подается название раздела
// потом для получения ID элемента интерфейса
// к нему прибавляются суффиксы 
function switchCheckoutTarget(target_id) {
    // Коряво деактивируем кнопки
    //'domain', - отключена
    var targets = Array('hosting','webmoney','domain');
    for (var i = 0; i < targets.length; i++) {
        if (document.getElementById(targets[i]+'_img') != null) {
            document.getElementById(targets[i]+'_img').src = '/img/toggle_accdom/'+targets[i]+'_off.gif';
            document.getElementById(targets[i]+'_img').style.cursor = 'pointer';

	    // Переключаем наборы полей
	    document.getElementById(targets[i]+'_tr').style.display = 'none';
	    //
	    }
    }
    // Указываем какая нажата
	var sbutton = document.getElementById(target_id+'_img');
	// Таким вот извращенским способом предохраняемся от прохода
	// в потенциально опасный ошибками код
	if (sbutton != null) {
	    sbutton.src = '/img/toggle_accdom/'+target_id+'_on.gif';
	    document.getElementById(target_id+'_img').style.cursor = '';
	
    // Переключаем наборы полей
//    document.getElementById('hosting_tr').style.display = 'none';
//    document.getElementById('domain_tr').style.display = 'none';
//    document.getElementById('webmoney_tr').style.display = 'none';
    	document.getElementById(target_id+'_tr').style.display = '';
	
    // Выясняем которая была выбрана и переключаем выбранную
    	var hand = document.getElementById('checkout_target');
	    if (hand.innerHTML != target_id) {
            hand.innerHTML = target_id;
	        document.getElementById(target_id+'_r').checked = true;
		}
    
    // Грязный хак (тм) by Niimai
		document.getElementById('summ_vi').value = '';
    	if (target_id == 'domain') {
        	document.getElementById('summ_vi').disabled=true;
    	} else {
        	document.getElementById('summ_vi').disabled=false;
    	}
		//
		//setCookie('checkout_type', target_id);
	}
}

// Переключалка редактирования клиентов для вебмастера
// на вход получает номер строки для редактирования
function reportregisterSwitchMode(num) {

    // потенциально опасно для оперы, т.к. она при разборе строк может добалять лишние пробелы в название класса
    // Если это редактирование...
    if (document.getElementById('editid'+num).className == 'x-hide') {
        document.getElementById('editid'+num).className = 'x-show';
        document.getElementById('saveid'+num).className = 'x-hide';
        // Потенциально опасно логическими ошибками
        document.getElementById('client_id'+num).className = 'x-show';
        document.getElementById('e_client_id'+num).className = 'x-hide';

        document.getElementById('client_id'+num).innerHTML = document.getElementById('client'+num).value;
        // Вызов сохранения изменений
        saveClient(num);
    } else
    // Если это сохранение...
    {
        document.getElementById('editid'+num).className = 'x-hide';
        document.getElementById('saveid'+num).className = 'x-show';
        // Потенциально опасно логическими ошибками
        document.getElementById('client_id'+num).className = 'x-hide';
        document.getElementById('e_client_id'+num).className = 'x-show';
    }
}

// Выполняет AJAX запрос основываясь на данных со страницы
/*
Какого-то буя jsHttpRequest не передает параметр в $_POST. На кол Котерова!
function saveClient(num) {
    //alert(document.getElementById('hash'+num).innerHTML);
    JsHttpRequest.query(
    '/update/clients/'+ document.getElementById('hash'+num).innerHTML,
    {
        'descr' : document.getElementById('client'+num).value
    },

    function(result, errors) {
        if (result['status'] == 1) {
            if (result['error']) {
                alert(result['error']);
            }
        }
    },
    true 
    );
} */

// Переключалка отчетов
// по второму разу уже влом писать комменты
function switchTabMyClientReport() {
    if (document.getElementById('list').className == 'x-hide') {
        document.getElementById('list').className = 'x-show';
        document.getElementById('statist').className = 'x-hide';
        //---------------------------------
        document.getElementById('statist_tab_on').className = 'x-hide';
        document.getElementById('statist_tab_off').className = 'x-show';
        document.getElementById('list_tab_on').className = 'x-show';
        document.getElementById('list_tab_off').className = 'x-hide';
    } else {
        document.getElementById('list').className = 'x-hide';
        document.getElementById('statist').className = 'x-show';
        //---------------------------------
        document.getElementById('statist_tab_on').className = 'x-show';
        document.getElementById('statist_tab_off').className = 'x-hide';
        document.getElementById('list_tab_on').className = 'x-hide';
        document.getElementById('list_tab_off').className = 'x-show';
    }
}
// Переключалка выбора кошельков
// На вход подается id кошелька, а не сам кошелек!
function switchToggler(item_id) {
    // Интерфейсная часть
    var hand = document.getElementById('toggler_container').getElementsByTagName('div');
    for (var i = 0; i < hand.length; i++) {
        hand[i].className = hand[i].className.replace(/_sel/, '');
    }
    var item = document.getElementById(item_id);
    if (hand.length == 1) {
        // Обрабатываем случай, когда это единственный кошелек
        item.className = 'single_item';
    } else {
        item.className = item.className+'_sel';
    }
    // Функциональная часть
//    var wallet = item.getElementsByTagName('span')[0].innerHTML;
//    console.log(wallet);
    document.getElementById('wm_wallet').value = item_id;
}

// Переключалка таблиц с заявками
// На вход подается первая часть id
function switchCheckoutTables(item_id) {
    var tabs = Array('waiting','processing','finished');
    for (var i = 0; i < tabs.length; i++) { 
       if (document.getElementById(tabs[i]+'_tab') != null) {
            //alert(1);
            //document.getElementById(tabs[i]+'_tab').style.fontWeight = 'normal';
	    document.getElementById(tabs[i]+'_tab').style.cursor = 'pointer';
	    document.getElementById(tabs[i]+'_tab').src = '/img/checkouts/'+tabs[i]+'_off.gif';
	    // console.log(tabs[i]+'_tab');
            document.getElementById(tabs[i]+'_table').style.display = 'none';
	}
	// console.log(tabs[i]);	
    }
    document.getElementById(item_id+'_tab').style.fontWeight = 'bold';
    document.getElementById(item_id+'_tab').style.cursor = '';
    document.getElementById(item_id+'_tab').src = 'img/checkouts/'+item_id+'_on.gif';
    document.getElementById(item_id+'_table').style.display = 'block';
}


// Переключалка таблиц с отчетами по операциям со счетом
// (Денежные средства)
// На вход подается первая часть id
function switchReportTables(item_id) {
    var tab = document.getElementById(item_id+'_tab');
    if (tab != null) {
    	var reps = Array('alloper','inputs','processing','outputs','byclient');
	    for (var i = 0; i < reps.length; i++) {
	       // console.log(tabs[i]);
	       if (document.getElementById(reps[i]+'_tab') != null) {
	          // document.getElementById(reps[i]+'_tab').style.fontWeight = 'normal';
	           document.getElementById(reps[i]+'_tab').style.cursor = 'pointer';
	       // console.log(tabs[i]+'_tab');
	           document.getElementById(reps[i]+'_table').style.display = 'none';
		   document.getElementById(reps[i]+'_tab').src = "/img/report_statement/" + reps[i] + '_off.gif';
	       // console.log(tabs[i]); 
	       }
	    }
	    document.getElementById(item_id+'_tab').style.fontWeight = 'bold';
	    document.getElementById(item_id+'_tab').style.cursor = '';
	    document.getElementById(item_id+'_tab').src = '/img/report_statement/' + item_id + '_on.gif';
	    document.getElementById(item_id+'_table').style.display = 'block';
	    setCookie('repstat',item_id);
	} else {
	    // молчим...
	}
}


/* Переключалка типов баннеров (flash & image) *
function bannerSwitch(banner_type) {
    var hand = document.getElementById('banners');
    hand.className = banner_type;
    setCookie('banner_type', banner_type);
}*/

// Проверялка форм
// на вход подается заранее условленный id формы
// 1 - форма обратной связи
// 2 - форма добавления заказа на вывод средств
// 3 - форма смены пароля у вебмастера
// e - событие
function checkRequirements(form_id, e) {
    switch (form_id) {
    case 1:
       if (document.getElementById('topic').value == '') {
           //console.log('ошибка заполнения формы');
	   showWarning('укажите тему сообщения',700,200);
	   return false;
       }
       if (document.getElementById('message').value == '') {
           //console.log('напишите текст сообщения');	   
	   showWarning('напишите текст сообщения', 700,220);
	   return false;
       }
       break;
    case 2:
       document.getElementById('summ').value = document.getElementById('summ_vi').value;

       if (document.getElementById('hosting_r').checked == true) {
           //console.log('вывод денег на хостинг');
	   if (document.getElementById('haccount').value == '') {
	       showWarning('необходимо указать аккаунт',700,290);
               return false;
	   }
       } else 
/*       if (document.getElementById('domain_r').checked == true) {
           //console.log('вывод денег на домен');
	   if (document.getElementById('daccount').value == '') {
	       showWarning('необходимо указать аккаунт',700,290);
               return false;
	   } else
	   if (document.getElementById('domain_name').value == '') {
	       showWarning('необходимо указать домен',700,290);
	       return false;
	   }
       } else */
       if (document.getElementById('webmoney_r').checked == true) {
           //console.log('вывод денег на webmoney');
	   /*if (document.getElementById('wm_wallet').value == '') {
	       showWarning('необходимо выбрать WM-кошелек',700,290);
               return false;
	   }*/
       }
       if (document.getElementById('summ').value == '') {
           showWarning('укажите пожалуйста сумму', 700,290);
	   return false;
       }
       return checkSum();
       break;
    // Проверка формы изменения пароля у вебмастера
    case 3:
       var oldpass = document.getElementById('old_password').value;
       var newpass = document.getElementById('password').value;
       var newpass2 = document.getElementById('password2').value;
       if (newpass == '') {
           showWarning('введите новый пароль', 750,215);
           stopClick(e);
           return false;
       }
       if (newpass2 == '') {
           showWarning('введите новый пароль еще раз', 750,215);
           stopClick(e);
           return false;
       }
       if (old_pass == '') {
           showWarning('введите старый пароль', 750,215);
           stopClick(e);
           return false;
       }
       if (newpass != newpass2) {
           showWarning('введенные пароли не совпадают', 750,215);
           stopClick(e);
           return false;
       }
       if (oldpass == newpass) {
           showWarning('старый и новый пароли совпадают, хотите сохранить старый пароль?', 750,215);
           stopClick(e);
           return false;
       }
       break;
    }
}

// Скрывалка сообщений об ошибках в формах
function clearErrors() {
    var hand = document.getElementById('error_container');
    hand.style.display = 'none';
}

// Остановка клика
function stopClick(e) {
    if (!e) var e = window.event;
        e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
}

function OnPageClick() {
    clearErrors();
}

function OnPageLoad() {
    var repstat = getCookie('repstat');
    //console.log(repstat);
    if (repstat != undefined) {
        switchReportTables(repstat);
    }

    var checkout = getCookie('checkout_type');
    if (checkout != undefined) {
       switchCheckoutTarget(checkout);
    } else {
       switchCheckoutTarget('hosting');
    }

    //alert(location.href);
    if (location.href.match(/promote\/banners/)) {
	//var bannerType = getCookie('banner_type');
	//bannerSwitch(bannerType);
    //var table = bannerType.replace(/\_group/, "");
	//var sorting = getCookie(table+'sort');
	//var column = getCookie(table+'column');
	//alert(table + '_' +column+ '_' +sorting);
	//simpleSortTable(table, column, sorting); // Первая сортировка
    }
}

// Такая специальная штучка
// для перехвата нажатия энтера и подбора по нему суммы к оплате за домен
function enterHack(e) {
    if (e.keyCode == 13)
    {
        suggestDomainPrice();
        return false
    }
}

function checkSum(e) {
    //alert(document.getElementById('summ_vi').value);
    document.getElementById('summ').value = document.getElementById('summ_vi').value;

    var source_summ = Number(document.getElementById('avasumm').value) + 0;
    var dec_summ = Number(document.getElementById('summ').value) + 0;
    
    //console.log('Исходное число: '+source_summ);
    //console.log('Вычитаемое: '+dec_summ);
    //var result = source_summ - dec_summ;
    //console.log('Результат: ' + result);
    //alert(result);
    //return false;
    //alert(dec_summ + ' > ' + source_summ);
    if (dec_summ >  source_summ) {
        //return false;
        showWarning('Запрошенная сумма слишком велика.', 700, 270);
	stopClick(e);
	return false;
    } else {
        //document.getElementById('summ').disabled = 'N';
        return true;
    }

}

// Расчет стоимости регистрации/продления домена AJAX-запросом
function suggestDomainPrice() {
	var hdomain = jQuery('#hdomain');
    var domain = document.getElementById("hdomain").value;
    var errorPosX = hdomain.offset().left + hdomain.outerWidth() + 110;
    var errorPosY = hdomain.offset().top - hdomain.outerHeight();
    //document.getElementById('button_ssum').style.visibility="hiddden";
    hdomain.addClass('loading');
    //document.getElementById('ajaxl').style.display="block";

    /*jQuery.post(
    		'/index_ajax.php',
    		{
    			action: 'calc_domain_price',
    			domain: domain,
    			mode: 'r'
    		},
    		function(data){
    				console.log(data)
    			}
    		);*/
	JsHttpRequest.query(
		'/index_ajax.php',
		{
		  action: 'calc_domain_price',
		  domain: domain,
		  mode: 'r'
		},
		function(result, debugMessages) {
		    if (result.price > 0) {
		        document.getElementById('summ').value = result.price;
		        document.getElementById('summ_vi').value = result.price;
		    } else if (result.price == -1) {
                showWarning('Неверное имя домена', errorPosX, errorPosY);
                document.getElementById('summ').value = '';
                document.getElementById('summ_vi').value = '';
            } else if (result.price == -2) {
                showWarning('Такой домен не существует на нашем хостинге', errorPosX, errorPosY);
                document.getElementById('summ').value = '';
                document.getElementById('summ_vi').value = '';
            } else if (result.price == -3) {
                showWarning('Домен находится у другого регистратора. За комментариями обратитесь в доменную службу — <a href="http://live.sweb.ru/?domain" target="_blank">LiveChat</a> или <a href="mailto:dom@sweb.ru">dom@sweb.ru</a>', errorPosX, errorPosY);
                document.getElementById('summ').value = '';
                document.getElementById('summ_vi').value = '';
            } else if (result.price == -4) {
                showWarning('Для доменов .RU/.SU продление осуществляется не раньше, чем за 2 месяца до окончания срока делегирования. За комментариями, обратитесь в доменную службу — <a href="http://live.sweb.ru/?domain" target="_blank">LiveChat</a> или <a href="mailto:dom@sweb.ru">dom@sweb.ru</a>', errorPosX, errorPosY);
                document.getElementById('summ').value = '';
                document.getElementById('summ_vi').value = '';
            } else if (result.price == 0) {
                showWarning('Данный домен регистрируется или продлевается бесплатно', errorPosX, errorPosY);
                document.getElementById('summ').value = '';
                document.getElementById('summ_vi').value = '';
		    }

     //document.getElementById('button_ssum').style.visibility="visibile";
     hdomain.removeClass('loading');
     // document.getElementById('ajaxl').style.display="none";
		}
	)
    //document.getElementById('button_ssum').style.visibility="visibile";
	//hdomain.removeClass('loading');
    //document.getElementById('ajaxl').style.display="none";
}

/* Полезная функция, позволяет определить браузер
 * использовать можно так: browserDetect().isIE
 * */
function browserDetect() {          
    // Получим userAgent браузера и переведем его в нижний регистр
    var ua = navigator.userAgent.toLowerCase();
    // Определим Internet Explorer
    isIE = (ua.indexOf("msie") != -1 && ua.indexOf("opera") == -1 && ua.indexOf("webtv") == -1);
    // Opera
    isOpera = (ua.indexOf("opera") != -1);
    // Gecko = Mozilla + Firefox + Netscape
    isGecko = (ua.indexOf("gecko") != -1);
    // Safari, используется в MAC OS
    isSafari = (ua.indexOf("safari") != -1);
    // Konqueror, используется в UNIX-системах
    isKonqueror = (ua.indexOf("konqueror") != -1);
    hash = {'isIE':isIE, 'isOpera': isOpera, 'isGecko':isGecko, 'isSafari':isSafari, 'isKonqueror':isKonqueror };
    return hash;
}


// Работа с Cookie
/* Получение cookie по ее имени */
function getCookie(c_name) {
    if (!browserDetect().isIE) {
        //alert(1);
	var cont;
	if (document.cookie.length>0) {
             c_start=document.cookie.indexOf(c_name + "=");
	     if (c_start!=-1) {
	          c_start=c_start + c_name.length+1; 
	          c_end=document.cookie.indexOf(";",c_start);
	          if (c_end==-1) c_end=document.cookie.length;
	          cont = unescape(document.cookie.substring(c_start,c_end));
	     } 
	}
	//alert(cont);
	if (cont != 'null') {
	    return cont;
	} else
	{
	  return '';	                                                                                                   	     }
    } else
    {
       return '';
    }
}

// Устанавливаем Cookie
function setCookie(cookieName, cookieValue) {
    if (!browserDetect().isIE) {
        document.cookie = cookieName + "=" + escape((cookieValue));
	}
}