function replace_get_param(params) {
	var url = "";
	var get_obj = {};
	if(params.search != undefined) {
	    document_url = '';
	} else {
	    document_url = document.location.search.replace('?', '');
	}

	var get_params = document_url.split('&');

	for(get_param in get_params) {
	    param = get_params[get_param].split('=');
	    if(param.length == 2) {
		if(param[1]) {
		    get_obj[param[0]] = param[1];
		}
	    }
	}
	if(params) {
	    for(param in params) {
		if(typeof params[param] != "undefined" && get_obj[param] != params[param]) {
		    get_obj[param] = params[param];
		}
	    }
	}
	
	for(param in get_obj) {
	    url += param+'='+get_obj[param]+'&';
	}
	url = url.replace(/&$/, '');

	return url;
}

function filter_submit(form, event) {
	obj = {};
	
	var _level;
	var curLevel = $(event.target).attr('class').replace(/[a-z_]+/, '');
	
	if(typeof form == "object") {
	    for(e in form.elements) {


		if(form.elements[e] != undefined && (form.elements[e].type == 'text' || form.elements[e].type == 'select-one') /*&& form.elements[e].value*/) {
				_level = $(form.elements[e]).attr('class').replace(/[a-z_]+/, '');

				if(_level <= curLevel) {
					obj[form.elements[e].name] = form.elements[e].value;
				} else {
					obj[form.elements[e].name] = "";
				}
			}
		}
		if(form.elements[e] != undefined && form.elements[e].type == 'submit') {
			form.elements[e].disabled = true;
	    }
	    if(obj.page == undefined || obj.page < 2) {
		obj.page = 1;
	    }
	    var url = replace_get_param(obj);
	    document.location.search = url;
	}
	return false;
}




$(document).ready(function() {

	$("a.fancybox").fancybox({
		'overlayOpacity'	:	0.7,
		'overlayColor'		:	'#696969'
	});

	$("a.inline").fancybox({
		'type'				:	'inline',
		'overlayColor'		:	'#FFFFFF',
		'overlayOpacity'	:	0.2,
		'overlayShow'		: false
		
	});

	$("#cart-frame").fancybox({
		'type'	:	'iframe',
                'href'  :       '/cart-view/',
		'zoomSpeedIn'	:   0,
		'zoomSpeedOut'	:   0,
		'frameWidth'	:   980,
		'frameHeight'	:   800
	});
	$("#cart-frame").attr('href', '/cart-view/');
	
	
	
	jQuery('.add_item_button').click(function(event){
		GLOBAL.event = event;
		CART.addToCart(event.target.form);
	});
	jQuery('.no_contract').click(function(event){
		alert('Вы должны выбрать контракт')
		return false;
	});
	jQuery('.remove_item_button').click(function(event){
		GLOBAL.event = event;
		var id = $(event.target).attr('id').replace(/remove_item_([0-9]+)/, '$1');
		CART.removeItem(id);
	});
	jQuery('#cart_items form').eq(1).keyup(function(event){
		GLOBAL.event = event;
		countValue = $(event.target).val();
		$(event.target).val($(event.target).val().replace(/[^0-9]+/, ''));
		var id = $(event.target).attr('id').replace(/item_count_([0-9]*?)/, '$1');
		
		if(id) {
			CART.recountTotal();
			if(typeof(GLOBAL.setInputTimeout[id]) != undefined) {
				clearTimeout(GLOBAL.setInputTimeout[id]);
			}
			GLOBAL.setInputTimeout[id] = setTimeout(function() { CART.changeCountTimeout(id, countValue)}, 500);
		}
	});
	$('.filters').add('.plate').add('#wrapper').add('li.current').corner('5px');
	$('.filters select').change(function(event){filter_submit(this.form, event);});
	$('#filters_reset').click(function(event) {
	    $(event.target.form).find('select').val('');
	    filter_submit(event.target.form, event);
	    return false;
	});
	
	$('.searchForm input.searchString').each(function(i, e){CONTROL.bindTimeout(e);});

	$('.pageNumberForm').change(function(event) {
	    document.location.search = replace_get_param({'page': $(event.target.form).find('select[name=page]').val()});
	});
	
	$('.rowOnPageForm').change(function(event) {
	    document.location.search = replace_get_param({'page' : 1, 'rowonpage': $(event.target.form).find('select[name=rowonpage]').val()});
	});
	
	$('#select_contract').change(function(event) {
		event.target.form.submit();
	});
});


// возвращает cookie если есть или undefined
function getCookie(name) {
	var matches = document.cookie.match(new RegExp(
	  "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
	))
	return matches ? decodeURIComponent(matches[1]) : undefined 
}

// уcтанавливает cookie
function setCookie(name, value, props) {
	props = props || {}
	var exp = props.expires
	if (typeof exp == "number" && exp) {
		var d = new Date()
		d.setTime(d.getTime() + exp*1000)
		exp = props.expires = d
	}
	if(exp && exp.toUTCString) { props.expires = exp.toUTCString() }

	value = encodeURIComponent(value)
	var updatedCookie = name + "=" + value
	for(var propName in props){
		updatedCookie += "; " + propName
		var propValue = props[propName]
		if(propValue !== true){ updatedCookie += "=" + propValue }
	}
	document.cookie = updatedCookie

}

// удаляет cookie
function deleteCookie(name) {
	setCookie(name, null, { expires: -1 })
}


GLOBAL = {
	setInputTimeout : {}
};
