$(document).ready(function(){

	$('#dolglink').focus();
		
	$('#suffix-help').tipsy({
		gravity: 's', 
		title: function(){ return 'http://0.mk/<strong>наставка</strong> (опционално)';},
		html: true
	});
	
	$('.help').tipsy({
		gravity: 'sw',
		html: true
	});

	$('textarea#dolglink').autoResize({
		limit: 120,
		animateDuration: 200,
		extraSpace: 0
	});
	
	$('.bookmarklet').click(function()  {
		return false;
	});
	

	/*
	  Скрати линк со ENTER (не додава нови редови)
	*/
	
	$('#dolglink').keypress(function(e){
    	if (e.keyCode == 13) {
			e.preventDefault();
        	$('#skrati').click();
    	}
	});

	/*
	  Анимиран scroll
	*/
	
$	('a[href^=#]').click( function() {
		var target = $(this).attr('href').split('#')[1];
		$('html, body').animate({
			scrollTop: $('a[name=' + target + ']').offset().top
		},600);
		return false;
	})

	
	/*
	  Брзо најавување
	*/
	
	var dropDown = 0;	

	$('#login').click(function()  {
		if (dropDown === 0) {
			$('.dropdown').addClass('active');
			$('#login').addClass('login-active');
			$('#drop-down').show();
			$('#loginKorisnickoImeQ').focus().select();
			dropDown = 1;
		}
		else {
			$('.dropdown').removeClass('active');
			$('#login').removeClass('login-active');
			$('#drop-down').hide();
			dropDown = 0;
		}
		return false;
	});
	
	/*
	  „Копирај“ копче на секој скратен линк во листата (Кориснички панел)
	 */
	
	$('.link').each(function(index) {
	
		index++;
		var kopiraj = new ZeroClipboard.Client();
                        
		kopiraj.setText('');
		kopiraj.setHandCursor( true );
							
		kopiraj.addEventListener( 'mouseDown', function(client) { 
			kopiraj.setText( $('.kratok-' + index).attr('href') );
			$('#copied-' + index).show().delay(3000).fadeOut('slow');
		} );
		
		var kopce = 'kopirajKratok-' + index;
		kopiraj.glue(kopce);
		
	});
	
	/*
	  Потврда за бришење на линк (Кориснички панел)
	 */
	
	$('.brisiLink').click(function() {

		var id = $(this).attr('id').replace('brisi-','');
		var potvrda = confirm("Дали сте сигурни дека сакате да гo избришете линкот?");

		if (potvrda) {
			window.location = "http://0.mk/panel?naredba=brisi&id=" + id;
		} else {
			return false;
		}
		
	});
	
	/*
	  Отворање на цела листа со линкови до статии за 0.mk
	 */
	
	$('#pokaziMediumi').click(function() {
	
		$('#mediumiSite').slideDown('slow');
		$(this).slideUp('fast');
		
		return false;	
	
	});
	
	
	/*
	 Последен tweet
	*/
	/*	
	$(document).ready(function(){
		$.getJSON("http://twitter.com/statuses/user_timeline/0mk.json?callback=?", function(data) {
	
			var posleden = data[0].text
			var regexp = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;  
			
			posleden = posleden.replace(regexp,'<a href="$1">$1</a>');
		
			$("#last-tweet").html(posleden);
	
		});
	});	*/
	
	/*
	 Кориснички панел - Подесувања
	*/
	
	$('#nova-lozinka, #email').focus(function() {
		$(this).addClass('edited'),
		$('#div-actions').slideDown('400');
	});
	$('#nova-lozinka').focus(function() {
		$('#div-confirm-password').slideDown('400');
	});
	$('#nova-lozinka').focus(function() {
		$(this).val("");
	});


	/*
	  Валидација
	*/
	
	function greska(poraka, rezultat) {
		
		rezultat.text(poraka);
		rezultat.addClass('error');  
		rezultat.hide().fadeIn('slow');
	
	}

	function validKorisnickoIme(pole, rezultat) {
		
		if (pole.val() === "") {
			
			var poraka = "Внесете го корисничкото име.";
			greska(poraka, rezultat);
			
			return false;
			
		} else {
		
			if (pole.val().length < 5) {
			
				var poraka = "Внесеното корисничко име е прекратко (најмалку 5 карактери).";
				greska(poraka, rezultat);
				
				return false;			
			}
			
		}
		
	}
	
	function validLozinka(pole, rezultat) {
	
		if (pole.val() === "") {
			
			var poraka = "Внесете ја лозинката.";
			greska(poraka, rezultat);
			
			return false;
		
		} else {

			if (pole.val().length < 6) {
			
				var poraka = "Внесената лозинка е прекратка (најмалку 6 карактери).";
				greska(poraka, rezultat);
				
				return false;
				
			}
			
		}
		
	}
	
	function validEmailAdresa(pole, rezultat) {	

		var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
		var email = pole.val();
		
		return pattern.test(email);
	
	}
	
	function validUrl(url) {
	
		var pattern = new RegExp(/\b(http?|ftp|file|https):\/\/[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i);
		
		return pattern.test(url);
	
	}
	
	$("#najaviSe").click(function() {
	
		var korisnickoIme = $("#loginKorisnickoIme");
		var lozinka = $("#loginLozinka");
		var status = $("#najavaStatus");
				
		if (validKorisnickoIme(korisnickoIme, status) === false || validLozinka(lozinka, status) === false) {
			return false;
		}
		
	});
	
	$("#pratiPoraka").click(function() {
	
		var ime = $("#kontaktIme");
		var email = $("#kontaktEmail");
		var poraka = $("#kontaktPoraka");
		var status = $("#kontaktStatus");
		
		if (ime.val() === "" || email.val() === "" || poraka.val() === "") {
			
			var poraka = "Пополнете ги полињата.";
			greska(poraka, status);
			
			return false;
		
		} else {
		
			if (validEmailAdresa(email) === false) {
				
				var poraka = "Внесете валидна e-mail адреса.";
				greska(poraka, status);
				
				return false;
				
			} else {
			
				if (poraka.val().length <= 10) {
				
					var poraka = "Внесената порака е прекратка.";
					greska(poraka, status);
					
					return false;
				
				}
				
			}
			
		}
		
	});
	
	$("#register").click(function() {
	
		var korisnickoIme = $("#registerKorisnickoIme");
		var lozinka1 = $("#registerLozinka");
		var lozinka2 = $("#registerLozinka2");
		var email = $("#registerEmail");	
		var pravila = $("#registerPravila");
		var status = $("#statusRegistracija");
		
		if (email.val() === "" || korisnickoIme.val() === "" || lozinka1.val() === "" || lozinka2.val() === "") {
			
				var poraka = "Пополнете ги полињата.";
				greska(poraka, status);
				
				return false;
				
		} else {
		
			if (validKorisnickoIme(korisnickoIme, status) === false) {
				return false;
			} else {
		
				if (lozinka1.val().length < 6) {
					
					var poraka = "Внесената лозинка е прекратка (најмалку 6 карактери).";
					greska(poraka, status);
					
					return false;
					
				} else {
				
					if (lozinka1.val() != lozinka2.val()) {
					
						var poraka = "Внесените лозинки не се совпаѓаат.";
						greska(poraka, status);
						
						return false;
						
					} else {
					
						if (validEmailAdresa(email) === false) {
						
							var poraka = "Внесете валидна e-mail адреса.";
							greska(poraka, status);
						
							return false;
						
						} else {
						
							if (!pravila.attr('checked')) {
							
								var poraka = "Мора да се согласувате со правилата и условите за користење на сервисот.";
								greska(poraka, status);
								
								return false;
							
							}						
						
						}
						
					}					
				}				
			}			
		}
		
	});
	
	$("#prijaviKratok").click(function() {
	
		var link = $("#prijaviLink");
		var poraka = $("#prijaviPoraka");
		var status = $("#statusPrijavi");
		
		if (link.val() === "") {
		
			var poraka = "Внесете го линкот.";
			greska(poraka, status);
			
			return false;
			
		} else {
		
			if (validUrl(link.val()) === false) {
		
				var poraka = "Линкот што го внесовте е невалиден.";
				greska(poraka, status);
				
				return false;
			
			}
			
		}
	
	});	

	$("#zLozinkaBaranje").click(function() {
	
		var korisnickoIme = $("#zlKorisnickoIme");
		var email = $("#zlEmail");
		var status = $("#statusZabLoz");
		
		if (korisnickoIme.val() === "" || email.val() === "") {
		
			var poraka = "Пополнете ги полињата.";
			greska(poraka, status);
			
			return false;
			
		} else {
		
			if (validKorisnickoIme(korisnickoIme, status) === false) {
				
				return false;
				
			} else {
			
				if (validEmailAdresa(email) === false) {
				
					var poraka = "Внесете валидна e-mail адреса.";
					greska(poraka, status);
					
					return false;
				
				}
				
			}
			
		}
	
	});
	
	$("#promeniPodesuvanja").click(function() {
	
		var lozinka1 = $("#nova-lozinka");
		var lozinka2 = $("#nova-lozinka-2");
		var email = $("#email");
		var status = $("#podesuvanjaStatus");
		
		if (lozinka1.val() != "" && lozinka2.val() != "") {
			if (lozinka1.val() != lozinka2.val()) {
				var poraka = "Внесените лозинки не се совпаѓаат.";
				greska(poraka, status);
				
				return false;
			
			} else {
			
				if (lozinka1.val().length < 6 || lozinka2.val().length < 6) {
				
					var poraka = "Внесената лозинка е прекратка (најмалку 6 карактери).";
					greska(poraka, status);
					
					return false;
				
				}
				
			}
		}
		
		if (email.val() != "") {
		
			if (validEmailAdresa(email) === false) {
			
				var poraka = "Внесете валидна e-mail адреса.";
				greska(poraka, status);
				
				return false;
			
			}
		
		}
			
	
	});
	
	$("#skrati").click(function() {
	
		var link = $("#dolglink");
		var nastavka = $("#nastavka").val();
		var status = $("#greskaKratenje");
		
		if (link.val() === "") {
		
			var poraka = "Внесете го линкот.";
			greska(poraka, status);
			
			return false;
		
		} else {
		
			if (!validUrl(link.val())) {
			
				var poraka = "Линкот што го внесовте е невалиден.";
				greska(poraka, status);
				
				return false;
			
			} /*else {
			
				$.ajax({
					type: "POST",
					url: "http://0.mk/vlezni/ajax/slobodna-nastavka.php",
					data: 'nastavka='+nastavka,
					error: function() {
						alert("neuspesno");
					},
					success: function(slobodna) { 
						
						//alert("uspesno: " + slobodna);
						//if (rezultat == "true") { alert("true"); } else { alert("false"); }
						
					}

				});
				
			}*/
			
		}	
		
	});
	
	$("#izbrisi").click(function() {
	
		var kod = $("#brisiKod");
		var status = $("#brisenjeStatus");
		
		if (kod.val() === "") {
			var poraka = "Внесете го кодот за бришење.";
			greska(poraka, status);
			
			return false;
		}
	
	});

	$('#newApiKey').click(function() {
		var potvrda = confirm("Постоечкиот клуч ќе биде избришан и повеќе нема да функционира. Ова може да доведе до грешка доколку веќе го имате искористено во вашата апликација. Дали сакате да продолжите?");
		var korisnik = $('#korisnik').val();
		var a = 0;
		
		if (potvrda) {
			
			$(this).addClass("newapi-loading");
			
			$.ajax({
				type: "POST",
				url: "http://0.mk/vlezni/ajax/nov-api-key.php",
				data: 'korisnik='+korisnik,
				success: function(status) { 
				
					var rezultat = new Object();
					rezultat = jQuery.parseJSON(status);
										
					if (rezultat.status == "ok") {
						$('#apiKey').html(rezultat.novKey);
						$('#newApiKey').removeClass("newapi-loading").addClass("newapi-success").delay(3000).fadeOut(500).queue(function(next){
							$(this).removeClass("newapi-success");
							next();
						}).fadeIn(500);
						
						
					}
					
				}
			});
			
		}
		
		return false;
	});
	
	/*
	 „Копирај“ копче (при кратење на линк, почетна страна)
	*/ 
	
	var copy = new ZeroClipboard.Client();
                        
	copy.setText('');
	copy.setHandCursor( true );
	//copy.setCSSEffects( true );
							
	copy.addEventListener( 'mouseDown', function(client) { 
		copy.setText( $('.shortened-link').attr('href') );
	} );
                        
	copy.glue('copyKratok');
	
	
});
