/**
 * @desc Функции для управления товарами
 * @author rassol
 * buyItem() - положить товар в корзину
 * delItem() - удалить товар из корзины
 */
	function buyItem(id,obj,price){
	    JsHttpRequest.query( 
	        '/ajax/orders_backend.php',
	        { 
	            item_id: id,
	            item_price: price
	        },
	        function(result, debugMessages) {
	            if (result.summ != ''){
	                object = $('cart_summ');
	                object.parentNode.show();
	                object.innerHTML = result.phrase;
	            }
	            return false;
	        },
	        function(result, debugMessages) {},
	        false
	    );
	}
	function delItem(id,obj_id){
	    $(obj_id).remove();
	    JsHttpRequest.query( 
	        '/ajax/orders_backend.php',
	        { 
	            item_id: id,
	            action: 'del'
	        },
	        function(result, debugMessages) {
	            if (result.redirect){
	                window.location = '/';
	            } else {
	                object = $('cart_summ');
	                object.parentNode.show();
	                object.innerHTML = result.phrase;
	                $('order_summ').innerHTML = result.order_summ;
	            }
	        },
	        function(result, debugMessages) {},
	        false
	    );
	}

/**
 * @desc Функции для управления букетами
 * @author rassol
 * addFlower() - добавить цветок в букет
 * delFlower() - удалить цветок из букета
 * recalcFlower() - пересчитать количество цветков в букете
 */
	function addFlower(id,obj,price){
	    JsHttpRequest.query( 
	        '/ajax/buket_backend.php',
	        { 
	            item_id: id,
	            item_price: price,
	            item_number:  $('item'+id+'number').value
	        },
	        function(result, debugMessages) {
	            if (result.summ != ''){
	            	$('item'+id+'number').value = 1;
	                object = $('buket_summ');
	                object.parentNode.show();
	                object.innerHTML = result.phrase;
	            }
	            return false;
	        },
	        function(result, debugMessages) {},
	        false
	    );
	}
	function recalcFlower(id,obj){
		if (parseInt(obj.value)<1){
			obj.value = 1;
		}
	    JsHttpRequest.query(
	        '/ajax/buket_backend.php',
	        {
	            item_id: id,
	            action: 'recalc',
	            number: obj.value
	        },
	        function(result, debugMessages) {
	            object = $('buket_summ');
	            object.innerHTML = result.phrase;
	            $('order_summ').innerHTML = result.order_summ;
	        },
	        function(result, debugMessages) {},
	        false
	    );
	}
	function delFlower(id,obj_id){
	    $(obj_id).remove();
	    JsHttpRequest.query( 
	        '/ajax/buket_backend.php',
	        { 
	            item_id: id,
	            action: 'del'
	        },
	        function(result, debugMessages) {
	            if (result.redirect){
	                window.location = '/';
	            } else {
	                object = $('buket_summ');
	                object.parentNode.show();
	                object.innerHTML = result.phrase;
	                $('order_summ').innerHTML = result.order_summ;
	            }
	        },
	        function(result, debugMessages) {},
	        false
	    );
	}


/**
* Функционал для работы с формами - функции переключения стиля-содеримого и функционал проверки полей.
* TODO: придумать систему авто-интеграции в любую форму
*/
function validateForm(form,obj){
    var x = 0;
    var error = false;
    var error_element = false;
    var error_img = '/admin/images/error.gif';
    form = prototyper(form);
    var items;
    if (obj){
        items = new Array(prototyper(obj));
    } else {
        items = form.select('input[type="text"]','textarea');
    }
    for(x in items){
        error_element = false;
        if (typeof(items[x]) === 'function'){
            continue;
        } else {
        	error_element = ((items[x].value == '' && items[x].getAttribute('req') == 1)?true:false);
            var text = new String(items[x].value);
            if (items[x].title == 'E-mail'){
                preg = new RegExp('^^([a-zA-Z0-9\-_]+)@([a-zA-Z0-9\-_\.]{2,})\.[a-zA-Z]{2,6}$');
                error_element = (preg.test(items[x].value)?error_element:true);
            } 
            if (items[x].title == 'Телефон'){
                preg = new RegExp('^(([0-9()+ -])+)$');
                error_element = (preg.test(items[x].value)?error_element:true);
            }
            error_element = (text.length<101?error_element:true);
            
            items[x].style.background = error_element?'#FFF url('+error_img+') no-repeat 100%':'';
            items[x].style.paddingRight = (error_element?'20px':'0px');
            items[x].style.width = (error_element?'155px':'175px');
            //items[x].style.border = error_element?'2px inset red':'';
            if (error_element){
                items[x].observe('change', function(){validateForm(this.parentNode,this);});
            } else {
                items[x].stopObserving('change');
            }
            error = error_element?true:error;
        }
    }
    items = form.select('input[type="checkbox"]');
    for (x in items){
        error_element = false;
        if (typeof(items[x]) === 'function'){
            continue;
        }
        error_element = (items[x].name == 'rights' && !items[x].checked)?true:error_element;
        $('sign').style.background = error_element?'url(/images/error.gif) no-repeat 100%':'';
        if (error_element){
            items[x].observe('click', function(){validateForm(this.parentNode);});
        } else {
            items[x].stopObserving('click');
        }
        error = error_element?true:error;
    }
    return !error;
}


/*
* Функция для переключения состояни ноды меню каталога
*/
function toggleNode(obj){
    var src_temp = new String(obj.src);
    obj.src = src_temp.search(/plus/)>-1?'/admin/_catalog/minus.gif':'/admin/_catalog/plus.gif';
    obj = prototyper(obj.parentNode); 
    collection = obj.select('ul'); collection[0].toggle();
}

/**
* Функция для сабмита поиска по нажатию enter
*/
function submitenter(obj,e){
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;

    if (keycode == 13 && obj.value){
       window.location = '/search/'+obj.value+'/'+(lang?lang+'/':'');
       return false;
    } else 
        return true;
}


// ------------ Функционал для запросов стоимости ------------
/**
* Функция покупки товара
*/
function askItem(id,obj){
    number = $('item'+id+'number').value;
    options = $('item'+id+'options')?$('item'+id+'options').value:'';
    JsHttpRequest.query( 
        '/ajax/asks_backend.php',
        { 
            item_id: id,
            item_number:  number,
            item_options: options
        },
        function(result, debugMessages) {
            $('item'+id+'number').value = 1;
            if (result.numbers > 0){
                object = $('ask_block');
                object.parentNode.style.visibility = 'visible';
                object.innerHTML = '('+result.numbers+')';
            }
            return false;
        },
        function(result, debugMessages) {},
        false
    );
}

/**
* Функция покупки товара
*/
function recalcAskItem(id,obj){
    JsHttpRequest.query(
        '/ajax/asks_backend.php',
        { 
            item_id: id,
            action: 'recalc',
            number: obj.value
        },
        function(result, debugMessages) {
            object = $('ask_block');
            object.parentNode.style.visibility = 'visible';
            object.innerHTML = '('+result.numbers+')';
        },
        function(result, debugMessages) {},
        false
    );
}

/**
* Функция удаления купленного товара
*/
function delAskItem(id,obj_id){
    $(obj_id).remove();
    JsHttpRequest.query( 
        '/ajax/asks_backend.php',
        { 
            item_id: id,
            action: 'del'
        },
        function(result, debugMessages) {
            if (result.redirect){
                window.location = '/'+(lang?lang+'/':'');
            } else {
                object = $('ask_block');
                object.parentNode.style.visibility = 'visible';
                object.innerHTML = '('+result.numbers+')';
                obj.value = result.number;
            }
        },
        function(result, debugMessages) {},
        false
    );
}
// ------------ / Функционал для запросов стоимости ------------

/**
* Функция установки переменных cookies
*/
function setCookie (name, value, expires, path, domain, secure) {
    document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

/**
* Функция для проверки правильности введенной каптчи
*/
var captcha_check = false;
function checkCaptcha(code){
    JsHttpRequest.query( 
        '/ajax/check_captcha.php',
        { 
            captcha: document.getElementsByName('captcha')[0].value
        },
        function(result, debugMessages) {
            if (!result.check){
                $('captcha_error').style.display = 'block';
                captcha_check = false;
            } else {
                $('captcha_error').style.display = 'none';
                captcha_check = true;
            }
            if (code){
                eval(code);
            }
        },
        function(result, debugMessages) {},
        false
    );
}

/**
* Функция для ручного расширения любой
* ссылки на объект до объекта типа
* Element:extended(Prototype)
*/
function prototyper(obj){
    if (!obj.id){
        obj.id = 'new';
        obj = $(obj.id);
        obj.id = null;
    } else {
        obj = $(obj.id);
    }
    
    return obj;
}

//<!--
//<![CDATA[
        function menuhide(menunum)
{
    var currentmenu = document.getElementById("navbody" + menunum);
    currentmenu.style.visibility = 'hidden';
}

  function menushow(menunum)
{
    var currentmenu = document.getElementById("navbody" + menunum);
    currentmenu.style.visibility = 'visible';
}
//]]>
//-->
