function stripNonDigits(a){
	return a.replace(/\D+/g,'');
}

function trimAllSpaces(a){
	return a.replace(/\s+/g,'');
}

function trim(s){
	return rtrim(ltrim(s));
}

function ltrim(s){
	return s.replace(/^\s+/, ''); 
}

function rtrim(s){
	return s.replace(/\s+$/, ''); 
}

function addSectionLink(){
	var $item = $('.pp_description');
	var text = $item.text();

	var href = $("a[title='" + text + "']").attr('data');
	if (typeof href != "undefined" && href != ''){
		var target = '';
		if ( href.indexOf("http://") != -1 )
			target = ' target="_blank" ';
		$item.html( '<a ' + target + 'href="' + href + '">' + text + '</a>');
	}
	
	var params = ['_trackEvent', 'Видео', 'open', text];
	_gaq.push(params);
}

function gmap_initialize() {
	var latlng = new google.maps.LatLng(coord.lat, coord.lng);
    var mapOpts = {
      		zoom: coord.zoom,
      		center: latlng,
      		mapTypeId: google.maps.MapTypeId.ROADMAP
    	};
	var map = new google.maps.Map(document.getElementById("map_canvas"), mapOpts);
	
	//var image = '/images/googlemap-mark.png';
	var beachMarker = new google.maps.Marker({
			position: latlng,
			map: map,
			//icon: image,
			animation: google.maps.Animation.DROP
	});

};

$(document).ready(function() {
	var extractParamFromUri_ = function(uri, paramName) {
	  if (!uri) {
	    return;
	  }
	  var uri = uri.split('#')[0];  // Remove anchor.
	  var parts = uri.split('?');  // Check for query params.
	  if (parts.length == 1) {
	    return;
	  }
	  var query = decodeURI(parts[1]);
	
	  // Find url param.
	  paramName += '=';
	  var params = query.split('&');
	  for (var i = 0, param; param = params[i]; ++i) {
	    if (param.indexOf(paramName) === 0) {
	      return unescape(param.split('=')[1]);
	    }
	  }
	  return;
	};

	var reInfoWinAnimate = function(){
		$(".info").animate({
			opacity: 1.0
		}, 3000).fadeOut("slow");
	};
	
	var ajaxFetch = function(formselector, href, container, params){
		$.ajax({
			type	: "GET",
			cache	: false,
			url		: href,
			success: function(data) {
				$.fancybox(
					data,
					{
					'overlayOpacity': 0.8,
					'overlayColor'	: '#000',
					'padding'		: 30,
					'autoScale'		: true,
					'transitionIn'	: 'none',
					'transitionOut'	: 'none'					
					}						
				);
				reBindingTracking(params);
				reBindingSubmit(formselector, href, container, params);
				processBodyTip();
			}
		});
	};
	
	var reBindingTracking = function(params){
		if ($('.messages').length > 0){
			params[2] = 'processed';
			_gaq.push( params );
		} else if ($('.errorMessage').length > 0) {
			params[2] = 'validation error';
			_gaq.push( params );
		}
	}
	
	var reBindingSubmit = function(formselector, href, container, params){
		$(formselector).submit(function(){
			if ( $('.def_text_body').val() == $('.def_text_body').attr('data') ) {
				$('.def_text_body').val('');
			}
			
			var dataString = $(formselector).serialize();
			
			$.ajax({
				url:	 	href,
				type:		'post',
				dataType:	'html',
				data:		dataString,
				cache: 		false,			
				success:	function(r)
				{
					$(container).html($(r).html());
					$.fancybox.center();
					reInfoWinAnimate();
					reBindingTracking(params);
					reBindingSubmit(formselector, href, container, params);
				}
			});

			return false;
		});
	};
	
	var processBodyTip = function(){
		if ( $('.def_text_body').length > 0 ){
			var commentText = $('.def_text_body').attr('data');
			var $body = $('.def_text_body');		
			if ( $body.val().length == 0 )
				$body.val( commentText ).css({'color':'#b5b5b5'});
			
			$body.focusin(function(){
				if ( $(this).val() == commentText ) {
					$(this).val('');
				}	
			});
			
			$body.focusout(function(){
				var trimmed_str = trim( $(this).val() );
				if ( trimmed_str.length == 0 ){
					$(this).val( commentText ).css({'color':'#b5b5b5'});
				}
			});
		}
	}
	
	$('#inpage_apply_button').click(function(){
		var href = $(this).attr('href');
		var data = $(this).attr('data');
		var params = ['_trackEvent', 'Заявка на участие в мероприятии', 'click', data];
		ajaxFetch('#apply_form', href, '#apply_form_wrapper', params);
		_gaq.push(params);
		return false;
	});
	
	/* Start HomePage slider Apply Buttons Precessing */
	$('.slider_apply_button').click(function(){
		var href = $(this).attr('href');
		var params = ['_trackEvent', 'Заявка на участие в мероприятии', 'click', extractParamFromUri_(href, 'subject')];
		ajaxFetch('#apply_form', href, '#apply_form_wrapper', params);
		_gaq.push(params);
		return false;
	});
	/* End HomePage slider Apply Buttons Precessing */

	/* Triggers for lightboxes */
	$('#top_feedback_link').click(function(){
		var href = $(this).attr('href');
		var params = ['_trackEvent', 'Форма обратной связи', 'click']; 
		ajaxFetch('#askquestion_form', href, '#askquestion_form_wrapper', params);
		_gaq.push(params);
		return false;
	});
    
    	/* is used on reviews page */
    $('.feedback_trigger').click(function(){
    	$('#feedback_link').trigger('click');
    	return false;
    });
	/* End Triggers */
	
	$('#feedback_link').click(function(){
		var href = $(this).attr('href');
		var params = ['_trackEvent', 'Оставление отзыва', 'click'];
		ajaxFetch('#feedback_form', href, '#feedback_form_wrapper', params);
		_gaq.push(params);
		return false;
	});
	
	$('#arrangevisit_link').click(function(){
		var href = $(this).attr('href');
		var params = ['_trackEvent', 'Записаться к врачу', 'click'];
		ajaxFetch('#arrangevisit_form', href, '#arrangevisit_form_wrapper', params);
		_gaq.push(params);
		return false;
	});
	/* End InnerPage right sidebar AskQuestion Button Precessing */
	
});
