var max_coupons = 20, map=false, geocoder;
google.load("jquery", "1");
google.load("maps", "3", {other_params: "sensor=false"});
google.setOnLoadCallback(function() {
	$('.reducer ul a').click(function(e) {
		var parent = $(this).parent().parent().parent().parent().parent();
		$('.reducer ul li.curr').removeClass('curr');
		parent.addClass('curr');
		
	});
	loadContent();
	$(window).bind('hashchange',loadContent);
	$('.vk_login').click(function(e) {
		e.preventDefault();
		VK.Auth.login(authInfo);
	});
	
	$('#vk_logout').click(function(e) {
		e.preventDefault();
		VK.Auth.logout(function(e) {
			//console.log(e);
		});
	});
	
	VK.Auth.getLoginStatus(function(response) {
	  if (response.session) {
	    	//authInfo(response);
	  } else {
	    	//alert('NO AUTH');
	  }
	});
	
	$('#open_login_box').click(function(e) {
		e.preventDefault();
		var login_box = $('#login_box');

		var win_w = $(document).width();
		var win_h = $(document).height();
		
		var el_w = login_box.width();
		var el_h = login_box.height();
		
		$('<div>',{
			'id':'shadow'
		}).css({
			'width':win_w,
			'height':win_h
		}).appendTo('body');
		// login_box.css('top', ((win_h-el_h)/2)+'px');
		login_box.css('left', ((win_w-el_w)/2)+'px');
		login_box.removeClass('hide').appendTo('body');
		
		
	});
	$('.button-close').click(function(e) {
		e.preventDefault();
		$('#shadow').remove();
		$('.popup').addClass('hide');
	});
	
	// $('#market').click(function (e) {
	// 		return true;
	// 		e.preventDefault();
	// 		
	// 		var android_store = $('#android_store');
	// 
	// 		var win_w = $(document).width();
	// 		var win_h = $(document).height();
	// 		
	// 		var el_w = android_store.width();
	// 		var el_h = android_store.height();
	// 	
	// 		$('<div>',{
	// 			'id':'shadow'
	// 		}).css({
	// 			'width':win_w,
	// 			'height':win_h
	// 		}).appendTo('body');
	// 		android_store.css('top', ((window.innerHeight-el_h)/2)+'px');
	// 		android_store.css('left', ((win_w-el_w)/2)+'px');
	// 		android_store.removeClass('hide').appendTo('body');
	// 	});
	
	$('#amount_coupon').change(function() {
		var amount = $(this);
		
		if(!is_numeric(amount.val())) {
			amount.val(1);
		}
		
		if(parseInt(amount.val()) >= max_coupons) {
			amount.val(max_coupons);
		}
		if(parseInt(amount.val()) < 1) {
			amount.val(1);
		}
		cost_price();
	});
	$('#amount_plus').click(function(e) {
		e.preventDefault();
		var amount = $('#amount_coupon');
		if(parseInt(amount.val()) < max_coupons) {
			amount.val(parseInt(amount.val())+1);
		}
		cost_price();
	});
	$('#amount_minus').click(function(e) {
		e.preventDefault();
		var amount = $('#amount_coupon');
		if(parseInt(amount.val()) > 1) {
			amount.val(parseInt(amount.val())-1);
		}
		cost_price();
	});
	
	$('#pay_type input').click(function(e) {
		var form = $('#payment-form');
		var payment_sys = $(this).attr("class");
		var type_payment = $(this).attr("rel");
		if( payment_sys in payments_url) {
			form.attr('action',payments_url[payment_sys]);
			$('#type_payment').val(type_payment);
		}
	});
	
	//'HH ч. mm мин. ss с.'
	if(typeof offer_active != 'undefined') setInterval(updateTimer, 1000);
});
function initMap () {
	
	var google_map = $('#google_map');
	
	if(google_map.length && !map) {
		geocoder = new google.maps.Geocoder();
		
		var spb = new google.maps.LatLng(59.56, 30.2);
		var myOptions = {
			zoom: 15,
		  	mapTypeId: google.maps.MapTypeId.ROADMAP
		}
		map = new google.maps.Map(document.getElementById("google_map"), myOptions);
		map.setCenter(spb);
		//map.setZoom(5);
		//var delta = JS.delta(lat1,lat2,lon1,lon2)/2;
		for (var i=0; i < addresses.length; i++) {
			setAddressMarket(city+', '+addresses[i]);
		};

		
	}
	
}
function setAddressMarket(address, shops) {
  geocoder.geocode( { 'address': address}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
      map.setCenter(results[0].geometry.location);
      var marker = new google.maps.Marker({
          map: map, 
          position: results[0].geometry.location
      });
	  //shops.push(results[0].geometry.location);
    } else {
      // alert("Geocode was not successful for the following reason: " + status);
	  // callback(false);
    }
  });
}

function cost_price () {
	var price = parseInt($('#price').html());
	var amount = parseInt($('#amount_coupon').val());
	
	var costs = $('#costs');
		costs.html(price*amount);
}

var date_end = '00:00:00';

function updateTimer () {
	var date = String(date_end).replace(/\-/g, '/');
	var time_update = dateDiff( new Date() , date );
	if(time_update) {
		$('.time').html(time_update.h+':'+time_update.m+':'+time_update.s+'');
	}else{
		$('.time').html('Акция завершена');
	}
}

function dateDiff( str1, str2 ) {
    var diff = Date.parse( str2 ) - Date.parse( str1 );
	if(diff<0) return false;
    var objDate = isNaN( diff ) ? NaN : {
               diff : diff,
               ms : Math.floor( diff            % 1000 ),
               s  : Math.floor( diff /     1000 %   60 ),
               m  : Math.floor( diff /    60000 %   60 ),
               h  : Math.floor( diff /  3600000 %   24 ),
               d  : Math.floor( diff / 86400000        )
           };
	
	 if(objDate.d > 0) {
		objDate.h += objDate.d*24;
	 }
	 if(objDate.h < 10) {
		objDate.h = '0'+objDate.h;
	 }
	 if(objDate.m < 10) {
		objDate.m = '0'+objDate.m;
	 }
	 if(objDate.s < 10) {
		objDate.s = '0'+objDate.s;
	 }

	 return objDate;
}
function authInfo(response) {
  if (response.session) {	
	  VK.Api.call('getProfiles', {
		uids: response.session.mid, 
	    fields: 'uid, first_name, last_name, nickname, domain, sex, bdate, city, country, timezone, photo, photo_medium, photo_big, has_mobile, rate, contacts, education'
	  },
	  function(r) {
	    if(r.response) {
	   		//console.log(r.response);
			var url = DOMAIN +'/users/vk?user_info='+encodeURIComponent(JSON.stringify(r.response[0]));
			window.location = url;
			//console.log(url);
	    }
	  });
	  
  } else {
    
  }
}
function loadContent(){
	if(window.location.hash) {
		var hash = window.location.hash.replace(/#/,'');
		var tab_content = $('#'+hash);
		var tab = $('.'+hash).parent().parent().parent().parent().parent();

		if(tab_content.length) {
			$('.tbg', '#about').removeClass('at_f');
			switch(hash)
			{
			    case 'about_1':
			        $('.tbg', '#about').addClass('at_f');
			        break;
				case 'about_2':
					initMap();
					break;
			    default:
			};
			
			$('#about_tab li.curr').removeClass('curr');
			$('.tab_content').addClass('hidden');
			
			tab.addClass('curr');
			tab_content.removeClass('hidden');
		}else{
			defaultTab();
		}
	}else{
		defaultTab();
	}
}

function defaultTab () {
	$('.tab_content').addClass('hidden');
	$('.tab_default_content').removeClass('hidden');
	$('.tab_default').addClass('curr');
	$('.tbg', '#about').addClass('at_f');
}


function is_numeric (mixed_var) {
    return (typeof(mixed_var) === 'number' || typeof(mixed_var) === 'string') && mixed_var !== '' && !isNaN(mixed_var);
}
function grad_to_rad(grad){
    if(!grad) {
		return 0;
	}
    return Math.PI*grad/180;
};
function distanceBtw(lat1,lat2,lon1,lon2){
	var lat1_rad = grad_to_rad(lat1);
	var lat2_rad = grad_to_rad(lat2);

	var lon1_rad = grad_to_rad(lon1);
	var lon2_rad = grad_to_rad(lon2);
	
	return 6378*Math.acos( Math.sin(lat1_rad)*Math.sin(lat2_rad) + Math.cos(lat1_rad)*Math.cos(lat2_rad)*Math.cos(lon1_rad-lon2_rad) );
};
function delta(lat1,lat2,lon1,lon2){	
	var phi = lat2*Math.PI/180.0; //59.56*Math.PI/180
	var R = 6378;
	var R_km = distanceBtw(lat1,lat2,lon1,lon2);
	var R_grad = 360.0*R_km/(2*Math.PI*6378);
	
	return R_grad;
};
