//#######################################################################################################################

//Проверка символово вводимых в поле, все кроме цифр игнорируются
function checkNumbers(card, len)
{
	var t='';
	for(var i=0; i<card.length;i++)
	{
		if(t.length==len)
			break;
		//if(!isNaN(parseInt(card[i])))
		if(!isNaN(parseInt(card.substr(i,1))))
			t +=card.substr(i,1);
	}
	return t;
}
//Определяет является ли введенная строка email адресом
function checkEmail(text)
{
	var reg = new RegExp("^[a-z]+[a-z0-9.-_]*@[a-z0-9.-_]+\\.[a-z]{2,5}$", 'i');
	if(reg.test(text))
	{
		return true;
	}
	else
		return false;
}
//################################################ ИЗБРАННОЕ ############################################################
//Добавление и удаление товаров из избранного
function workFavorite(func,cid)
{
	$.ajax({
			url:'/ajax/ajax_func.php',
			type:'POST',
			data:'func='+func+'&cid='+cid,
			dataType:'html',
			cache:false,
			error:function(){
				alert('Ошибка');
				},
			success:function(res){
						if(!isNaN(parseInt(res)))
						{
							switch(parseInt(res))
							{
								case 0:
										switch(func)
										{
											case 'deleteFavorite':
													//Удаление строки
													$('#favorite_'+cid).remove();
													//Определяем количество товаров в избранном
													var fav_count = parseInt($('#favorites_count').html());
													//Изменение количества товаров в избранном
													if(!isNaN(fav_count) && fav_count > 1)
														$('#favorites_count').html(fav_count-1);
													else
													{
														$('#favotites_top_text').html('Вам ещё ничего не понравилось :-(');
														$('#favorites_list_table').remove();
													}
													break;
											case 'addFavorite':
													$('#addFavorite_'+cid).html('<div class="favorite_link"><a title="Добавлен в избранное" class="in_favorite" href="/?part=cabinet&sub=favorite"></a></div>');
													break;
										}
										break;
								case 1:
										alert('Неизвестная функция.');
										break;
								case 2:
										alert('Неверные параметры запроса.');
										break;
								case 3:
										alert('Не удалось выполнить запрос.');
										break;
							}
						}
					},
			complete:function(){},
			beforeSend:function(){}
		});
}
//########################################### УДАЛЕНИЕ ФАЙЛА С СЕРВЕРА ##################################################
//Файл ищется от корня сайта - "gretta/"
/*
	deleteFile('pixindex/acc100/123.jpg'); // удаляется
	deleteFile('gretta/pixindex/acc100/123.jpg'); // не удаляется
	deleteFile('acc100/123.jpg'); // не удаляется
*/
var can_delete = true;
function deleteFile(file, del_obj_id)
{
	if(can_delete)
		$.ajax({
				url:'/ajax/ajax_func.php',
				type:'POST',
				data:'func=deleteFile'+'&file='+file,
				dataType:'html',
				cache:false,
				error:function(){},
				success:function(res){
							if(!isNaN(parseInt(res))){
								switch(parseInt(res))
								{
									case 0:
											alert('Файл удален');
											//if(del_obj_id!=null && del_obj_id!=undefined && del_obj_id!='')
											$('#'+del_obj_id).remove();
											break;
									case 1:
											alert('Неизвестная функция');
											break;
									case 2:
											alert('Неверные параметры запроса');
											break;
									case 3:
											alert('Не удалось удалить файл');
											break;
									default:
											alert('Неизвестный результат');
								}
							}else
								alert('Неизвестный результат');
							can_delete = true;
						},
				complete:function(){},
				beforeSend:function(){
						can_delete = false;
				}
			});
}
//#######################################################################################################################
//Удаление лишних пробелов
function TrimString(str){
	str = str.replace(/ /g,' ');
return str.replace(/(^\s+)|(\s+$)/g, "");
}
//Прокрутка вниз
function scroll_down(id)
{
	var el=$("#"+id);
	//Вычисляет высоту скрола и прыгает вниз
	//el.scrollTop(el.attr("scrollHeight") - el.height());
	//Прыгает вниз без вычисления высоты, работает точно так же как и строка выше, но на всякий случай не используется.
	//el.scrollTop(el.height());
	el.scrollTop(el.attr("scrollHeight"));
}
//Функция отображает/прячет элемент
function show_hide_element(id)
{
	var el=$("#"+id);
	if(el.css("visibility")=="hidden")
		el.css("visibility","visible");
	else if(el.css("visibility")=="visible")
		el.css("visibility","hidden");
}
//Функция возвращает текущее время
function _getTime() {
	var currentTime = new Date();
	var hours = currentTime.getHours();
	var minutes = currentTime.getMinutes();
	var seconds = currentTime.getSeconds();

	if (minutes < 10){
		minutes = "0" + minutes;
	}
	if (seconds < 10){
		seconds = "0" + seconds;
	}
	return hours + ":" + minutes+":"+seconds;
}

//title - заголовок
//width - ширина
//height - высота
//content - контент
function open_window(title, width, height, content)
{
	//var content='asd asdf asdf asdf asd fasdfasdfas dfsadf';
    ScrWindow=window.open("","","toolbar=no,location=no,left=0,top=0,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width="+width+",height="+height+"");
    if (ScrWindow != null && ScrWindow.opener == null) ScrWindow.opener=window;
    ScrWindow.document.open();
    ScrWindow.document.writeln ("<html><head><title>"+title+"</title></head><body>"+content+"</body></html>");
    ScrWindow.document.close();
}
//Функция отображает/прячет элемент
function showHideElement(id)
{
	var el=$("#"+id);
	if(el.css("visibility")=="hidden" || el.css("display")=="none")
	{
		el.css("visibility","visible");
		el.css("display","block");
	}
	else if(el.css("visibility")=="visible" || el.css("display")=="block")
	{
		el.css("visibility","hidden");
		el.css("display","none");
	}
}
//Скрывает элемент с id
function hideElement(id)
{
	var el=$("#"+id);
	el.css("visibility","hidden");
	el.css("display","none");
}
//Показывает элемент с id
function showElement(id)
{
	var el=$("#"+id);
	el.css("visibility","visible");
	el.css("display","block");
}
//Чередование "+" и "-" в элементе
function plusMinus(id)
{
	var obj = $('#'+id);
	var text = obj.html();
	if(text=='+')
		obj.html('-');
	else
		obj.html('+');
}
/*
	Вывод "флешки".
	Пример:
		writeFlash(600,130,0,"/dir/flashka.swf","red",false);
*/
function writeFlash(width,height,id,src,bgcolor,transparent, link)
{
	id = 'asd';
    if(transparent){
        paramT='<param name="wmode" value="transparent">';
        embedT=' wmode="transparent"';
    } else {
        paramT='';
        embedT='';
    }
	//Ссылка
	link = encodeURIComponent(link);
	//'?part=search&product=no_action&color=violet');

    //document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+width+'" height="'+height+'" id="'+id+'" align="middle" codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0">');
	document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+width+'" height="'+height+'" id="'+id+'" align="middle">');
    document.write('<param name="allowScriptAccess" value="always" />');
    document.write('<param name="movie" value="'+src+'" />');
    document.write('<param name="quality" value="high" />');
	document.write('<param name="link1" value="'+link+'" />');
    document.write(paramT);
    document.write('<param name="bgcolor" value="'+bgcolor+'" />');
    document.write('<embed src="'+src+'?link1='+link+'" quality="high" bgcolor="'+bgcolor+'" width="'+width+'" height="'+height+'" name="'+id+'" align="middle" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="https://www.macromedia.com/go/getflashplayer"'+embedT+' />');
    document.write('</embed>');
    document.write('</object>');
}

//-----------------------------------------------------------------------------------------------------------------
//Перевод строки в time
function strtotime (str, now) {
    // Convert string representation of date and time to a timestamp
    //
    // version: 1103.1210
    // discuss at: http://phpjs.org/functions/strtotime    // +   original by: Caio Ariede (http://caioariede.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: David
    // +   improved by: Caio Ariede (http://caioariede.com)
    // +   improved by: Brett Zamir (http://brett-zamir.me)    // +   bugfixed by: Wagner B. Soares
    // +   bugfixed by: Artur Tchernychev
    // %        note 1: Examples all have a fixed timestamp to prevent tests to fail because of variable time(zones)
    // *     example 1: strtotime('+1 day', 1129633200);
    // *     returns 1: 1129719600    // *     example 2: strtotime('+1 week 2 days 4 hours 2 seconds', 1129633200);
    // *     returns 2: 1130425202
    // *     example 3: strtotime('last month', 1129633200);
    // *     returns 3: 1127041200
    // *     example 4: strtotime('2009-05-04 08:30:00');    // *     returns 4: 1241418600
    var i, match, s, strTmp = '',
        parse = '';

    strTmp = str;    strTmp = strTmp.replace(/\s{2,}|^\s|\s$/g, ' '); // unecessary spaces
    strTmp = strTmp.replace(/[\t\r\n]/g, ''); // unecessary chars
    if (strTmp == 'now') {
        return (new Date()).getTime() / 1000; // Return seconds, not milli-seconds
    } else if (!isNaN(parse = Date.parse(strTmp))) {        return (parse / 1000);
    } else if (now) {
        now = new Date(now * 1000); // Accept PHP-style seconds
    } else {
        now = new Date();    }

    strTmp = strTmp.toLowerCase();

    var __is = {        day: {
            'sun': 0,
            'mon': 1,
            'tue': 2,
            'wed': 3,
			'thu': 4,
            'fri': 5,
            'sat': 6
        },
        mon: {
			'jan': 0,
            'feb': 1,
            'mar': 2,
            'apr': 3,
            'may': 4,
			'jun': 5,
            'jul': 6,
            'aug': 7,
            'sep': 8,
            'oct': 9,
			'nov': 10,
            'dec': 11
        }
    };
     var process = function (m) {
        var ago = (m[2] && m[2] == 'ago');
        var num = (num = m[0] == 'last' ? -1 : 1) * (ago ? -1 : 1);

        switch (m[0]) {        case 'last':
        case 'next':
            switch (m[1].substring(0, 3)) {
            case 'yea':
                now.setFullYear(now.getFullYear() + num);
				break;
            case 'mon':
                now.setMonth(now.getMonth() + num);
                break;
            case 'wee':
			now.setDate(now.getDate() + (num * 7));
                break;
            case 'day':
                now.setDate(now.getDate() + num);
                break;            case 'hou':
                now.setHours(now.getHours() + num);
                break;
            case 'min':
                now.setMinutes(now.getMinutes() + num);
				break;
            case 'sec':
                now.setSeconds(now.getSeconds() + num);
                break;
            default:                var day;
                if (typeof(day = __is.day[m[1].substring(0, 3)]) != 'undefined')
				{
                    var diff = day - now.getDay();
                    if (diff == 0) {
                        diff = 7 * num;
						} else if (diff > 0) {
                        if (m[0] == 'last') {
                            diff -= 7;
                        }
                    } else {
					if (m[0] == 'next') {
                            diff += 7;
                        }
                    }
                    now.setDate(now.getDate() + diff);
					}
            }
            break;

        default:            if (/\d+/.test(m[0])) {
                num *= parseInt(m[0], 10);

                switch (m[1].substring(0, 3)) {
                case 'yea':
				now.setFullYear(now.getFullYear() + num);
                    break;
                case 'mon':
                    now.setMonth(now.getMonth() + num);
                    break;                case 'wee':
                    now.setDate(now.getDate() + (num * 7));
                    break;
                case 'day':
                    now.setDate(now.getDate() + num);
					break;
                case 'hou':
                    now.setHours(now.getHours() + num);
                    break;
                case 'min':
					now.setMinutes(now.getMinutes() + num);
                    break;
                case 'sec':
                    now.setSeconds(now.getSeconds() + num);
                    break;                }
            } else {
                return false;
            }
            break;        }
        return true;
    };

    match = strTmp.match(/^(\d{2,4}-\d{2}-\d{2})(?:\s(\d{1,2}:\d{2}(:\d{2})?)?(?:\.(\d+))?)?$/);
	if (match != null) {
        if (!match[2]) {
            match[2] = '00:00:00';
        } else if (!match[3]) {
            match[2] += ':00';        }

        s = match[1].split(/-/g);

        for (i in __is.mon) {
		if (__is.mon[i] == s[1] - 1) {
                s[1] = i;
            }
        }
        s[0] = parseInt(s[0], 10);
        s[0] = (s[0] >= 0 && s[0] <= 69) ? '20' + (s[0] < 10 ? '0' + s[0] : s[0] + '') : (s[0] >= 70 && s[0] <= 99) ? '19' + s[0] : s[0] + '';
        return parseInt(this.strtotime(s[2] + ' ' + s[1] + ' ' + s[0] + ' ' + match[2]) + (match[4] ? match[4] / 1000 : ''), 10);
    }
     var regex = '([+-]?\\d+\\s' + '(years?|months?|weeks?|days?|hours?|min|minutes?|sec|seconds?' + '|sun\\.?|sunday|mon\\.?|monday|tue\\.?|tuesday|wed\\.?|wednesday' + '|thu\\.?|thursday|fri\\.?|friday|sat\\.?|saturday)' + '|(last|next)\\s' + '(years?|months?|weeks?|days?|hours?|min|minutes?|sec|seconds?' + '|sun\\.?|sunday|mon\\.?|monday|tue\\.?|tuesday|wed\\.?|wednesday' + '|thu\\.?|thursday|fri\\.?|friday|sat\\.?|saturday))' + '(\\sago)?';

    match = strTmp.match(new RegExp(regex, 'gi')); // Brett: seems should be case insensitive per docs, so added 'i'
    if (match == null) {
        return false;    }

    for (i = 0; i < match.length; i++) {
        if (!process(match[i].split(' '))) {
            return false;        }
    }

    return (now.getTime() / 1000);
}
