var searchstring = '';
var contentheightstart = false;
var asearch = false;

function debugres(value, level) {
	var space = '';
	for(var s = 0; s <= level; s++) {
		space = space + '    ';
	}
	switch(typeof(value)) {
		case 'string':
		case 'number':
		case 'boolean':
			return space+value;

		case 'array':
		case 'object':
			var val = [];
			for(var i in value) {
				if(typeof(value) == 'array' || typeof(value) == 'object')
					val.push(space+i+" = "+typeof(value)+"(\n"+debugres(value[i], level + 1)+"\n"+space+")");
				else		
					val.push(space+i+' = "'+value[i]+'"');
			}
			return val.join("\n")
	}
}

function debug(value) {
	alert("Debug:\n"+debugres(value, 0));
}

function sklon(num) {
	var n = new String(num);
	var last = n.substr(n.length - 1, 1) * 1;
	if(n >= 5 && n <= 20)
		return 'ов';
	else if (last >= 2 && last <= 4)	
		return 'а';
	else if (last >= 5 && last <= 9)	
		return 'ов';
	else if (last == 0)	
		return 'ов';
	else
		return '';	
}

function basket_html(quantity, summ, weight) {
	var title = 'Корзина пуста';
	var text = 'нет товаров';
	if(quantity > 0) {
		title = 'Товаров: '+quantity+' шт; На сумму: '+summ+' руб; Общим весом: '+weight+' кг';
		text = '<span id="basket_quantity">'+quantity+'</span> товар<span id="end">'+sklon(quantity)+'</span>';
	}

	return '<a href="basket/" title="'+title+'"><font color="white">В корзине '+text+'</font></a>';
}

function ajax(params) {

	var start = false;
	var complete = false;
	var success = false;
	var error = false;
	
	var loader = false;
	var action = false;
	var id = false;
	var session = false;
	
	var data = {};

	for(var i in params) {
		switch(i) {
			case 'l':
			case 'loader':
				if(typeof(loader) == 'object')
					loader = params[i];
				else if(typeof(loader) == 'string' && loader.test('/^[a-z0-9\_\.\- ]+$/'))
					loader = $('#'+params[i]); break;

			case 'a':
			case 'action':
				action = params[i]; break;

			case 'id':
				id = params[i]; break;

			case 's':
			case 'session':
				session = params[i]; break;

			case 'start':
			case 'onstart':
			case 'before':
				start = params[i]; break;

			case 'success':
			case 'onsuccess':
				success = params[i]; break;
				
			case 'error':
			case 'onerror':
				error = params[i]; break;
				
			case 'complete':
			case 'oncomplete':
				complete = params[i]; break;

			default:
				data[i] = params[i]; break;
		}
	}

	if(!action)
		return false;

	if(!session) {
		if(s.length == 32)
			session = s;
		else
			return false;
	}
	
	if(id)
		data['id'] = id;

	data['action'] = action;
	data['s'] = session;
	
	var ajaxParam = {
		url: 'http://'+window.location.host+'/ajax.php',
		type: 'POST',
		dataType: 'json',
		data: data
	};
	
	// При начале обработки запроса
	if(typeof(start) == 'function') {
		ajaxParam.beforeSend = function(XMLHttpRequest) {
			if(loader)
				loader.show();
			//start(data);
		}
	} else {
		ajaxParam.beforeSend = function(XMLHttpRequest) {
			if(loader)
				loader.show();
		}
		
	}	
	
	// При успешной обработке запроса	
	if(typeof(success) == 'function') {
		ajaxParam.success = function(data) {
			if(data.retcode !== undefined) {
				if(data.retcode == '403' || data.retcode == '404')
					return false;
			} else
				return false;
			
			success(data);
		};
	}

	// При ошибке запроса	
	if(typeof(error) == 'function') {
		ajaxParam.error = function(XMLHttpRequest, textStatus, errorThrown) {
			alert('Ошибка: '+textStatus+"\n"+XMLHttpRequest.responseText);
			error();
		};
	} else {
		ajaxParam.error = function(XMLHttpRequest, textStatus, errorThrown) {
			alert('Ошибка: '+textStatus+"\n"+XMLHttpRequest.responseText);
		};
	}

		
	// При выполнении запроса	
	if(typeof(complete) == 'function') {
		ajaxParam.complete = function(XMLHttpRequest, textStatus) {
			if(loader)
				loader.hide();
			complete(textStatus);
		}
	} else {
		ajaxParam.complete = function(XMLHttpRequest, textStatus) {
			if(loader)
				loader.hide();
		};
	}			
	
		
	
	return $.ajax(ajaxParam);
}

function suggest_search(obj, e) {
	obj = $(obj);
//alert('false');
	//alert(e);
	var evnt = e;
    if (evnt === undefined) {
		evnt = window.event;
    }
	
	if(evnt.keyCode == 13) {
		gotourl('search/'+$('#text').val());
		return false;
	}	
		
	if(contentheightstart === false) {
		$('#content').height();
	}

	if(searchstring != obj.attr('value')) {
		searchstring = obj.attr('value');

		if(asearch)
			asearch.abort();

		if(obj.attr('value').length > 0) {
			$('#suggest_search #ajaxloader').show();
			asearch = ajax({
				a:'search.text',
				id:2,
				text:obj.attr('value'),
				onsuccess:function(data) { //debug(data);
					$('#suggest_search #ajaxloader').hide();
					$('#suggest_search .result').html(data.data['data']);

					asearch = false;
					if($('#content').height() < $('#results').height())
						$('#content').css('height', $('#results').height());
					else
						$('#content').css('height', contentheightstart);
				}
			});
			$('#suggest_search')
				.css('height', $('#content').height()+20)
				.show();
		} else {
			$('#suggest_search').hide();
		}
	}
}

// VK Do LogIn
function VKdoLogin() {
  VK.Auth.login(
	function(response) { 
		//debug(response);
		if(response.session) {
			ajax({
				a:'user.vkauth',
				id:1,
				data:response,
				onsuccess:function(data) {
					if(data.data['return'] == 'OK') {
						window.location.href='http://'+window.location.host+'/cp/'
						//$('#logeduser').html('Здравствуйте '+data.data['username']);
						//$('#vk_login').hide();
						
					}	
				}
			});
		} else {
			// Нажата кнопка отмена в окне авторизации
		}		
	},
    VK.access.FRIENDS | VK.access.WIKI | VK.access.AUDIO | VK.access.VIDEO
  );
}

//VK Do LogOut
function VKdoLogout() {
  VK.Auth.logout(logoutOpenAPI);
}

function intval( mixed_var, base ) {
	var tmp;

	if( typeof( mixed_var ) == 'string' ){
		tmp = parseInt(mixed_var);
		if(isNaN(tmp)){
			return 0;
		} else{
			return tmp.toString(base || 10);
		}
	} else if( typeof( mixed_var ) == 'number' ){
		return Math.floor(mixed_var);
	} else{
		return 0;
	}
}

function gotourl(url) {
	window.location = 'http://'+window.location.host+'/'+url;
}
