var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var base = 'http://fkn.pl/';
var TMPTIMER = false;

function getLinkId(name){
   var linkId
   $.ajax({
      type: "POST",
      async: false,
      url: "request.html",
      data: "func=getLinkId&name="+name,
      success: function(msg){
         linkId = msg;
      }
   });
   return linkId;
}

function addLink(){
   var url = $('#UserUrl');
   var haveProtocol = /^(ftp|http|https)+:\/\//.test(url.val());
   if (!haveProtocol)
   {
      url.val('http://'+url.val());
   }

   if(validUrl()){

      var isAlready = $('#toEdit').val();
      if( isAlready == "" )
        isAlready = checkNewName();

      addNewLink(isAlready);
   }
}

function addNewLink(linkName){
   var url = $('#UserUrl').val();
   var params;
   url = Url.encode(url);
   var UserUrl = false;

   if(linkName != 0){
      params = "func=addLink&url="+url+"&save=true&name="+linkName;
   }else{
      params = "func=addLink&url="+url+"&save=true";
   }

   $.ajax({
      type: "POST",
      url: "request.html",
      data: params,
      success: function(msg){
         if(msg != 'error')
         {
	         var tab=msg.split('|');
	
	         $('#editedLinkId').val(tab[1]);
	         $('.links').hide();
	         $('.link_added').show();
	
	         $('ZeroClipboardMovie_1').show();
			     
	         var text = base +tab[0];
	         $('.input_center div input').val(text);
	
	
	         $('.myLinks ').remove();
	         GetMyLinks();
	
	         var clip = new ZeroClipboard.Client();
	         clip.glue( "copyToClipBoard" );
	
	         var txt   = $(".input_center div input").val();
	         clip.setText( txt );
	
	
	         clip.addEventListener( "complete", function(client, text) {
	            //alert("Copied text to clipboard: " + text );
	            clip.destroy();
	         } );
         }
         else
         {
		      $('.error').show();
		      drawInputError();
         }
      }
   });
   
//$("divid").style.top='209px';
}

function validUrl(){
   var url = $('#UserUrl');
   var v = new RegExp();
   v.compile("^(ftp|http|https)+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_@:#%&\?\+\,\/.=()]+$");   

   if(v.test(url.val())){
      $('.error').hide();
      drawInputOk();

      return true;
   }else{
      $('.error').show();
      drawInputError();
      return false;
   }
}

/* funkcja sprawdza dostępność skrótu */
function checkIfExist(data){
   var url = data
   var ret;

   $.ajax({
      type: "POST",
      async: false,
      url: "request.html",
      data: "func=checkName&value="+url,
      success: function(msg){
         ret = msg;

      }
   });

   return ret;
}
/*
 * funkcja sprawdza czy adres do skrócenia nie został już skrócony
 */
function checkNewName(){
   var url = $('#UserUrl').val();
   var data;

   url = Url.encode(url);
   
   $.ajax({
      type: "POST",
      async: false,
      url: "request.html",
      data: "func=checkNewName&url="+url,
      success: function(msg){
         if(msg == '0'){
            data = 0;
         }else{
            data = msg;
         }
      }
   });
   return data
}

/*
 * funkcja sprawdza czy adres do skrócenia nie został już skrócony
 */
function saveShortcut(){
   var url = $('#UserUrl').val();
   $.ajax({
      type: "POST",
      url: "request.html",
      data: "func=checkNewName&url="+url,
      success: function(msg){
         if(msg == 0){
            return false;
         }else{
            return msg;
         }
      }
   });
}

function switchLogin(){
   $(".links").hide();
   $(".login").show();
   $(".link_added").hide();
   $(".link_added_edit").hide();
   //   $(".divid").style.top='0px';

   drawInputOk();
   $('.error').hide();
}

function switchLinks(){
   $(".links").show();
   $(".login").hide();
   $(".link_added").hide();
   $(".link_added_edit").hide();


   drawInputOk();
   $('.error').hide();
}


function showAnother(){
   $(".link_added").hide();
   $(".link_added_edit").hide();
   //document.getElementById('divid').style.visibility='visible';
   // $("divid").style.top='0px';
   fhide();
   $(".links").show();
   $('#UserUrl').val('');
   drawInputOk();
   $('.error').hide();

}

function drawInputError(){
   $(".input_left").css("background-image","url(/_d/lewy_input_blad.png)");
   $(".input_center").css("background-image","url(/_d/srode_input_blad.png)");
   $(".input_right").css("background-image","url(/_d/prawy_input_blad.png)");
   $("div.input_center input").css("background-image","url(/_d/srode_input_blad_input.png)");
}

function drawInputOk(){
   $(".input_left").css("background-image","url(/_d/lewy_input.gif)");
   $(".input_center").css("background-image","url(/_d/srode_input.gif)");
   $(".input_right").css("background-image","url(/_d/prawy_input.gif)");
   $("div.input_center input").css("background-image","url(/_d/srode_input_input.gif)");
}

function StartLogin()
{
   if(document.getElementById('LoginFrame'))
   {
      document.getElementById('Center').removeChild( document.getElementById('LoginFrame') );
   }
   var frame1;

   frame1 = document.createElement('iframe');
   frame1.name = 'LoginFrame';
   frame1.src  = 'login_form.html';
   frame1.id   = 'LoginFrame';

   if(!document.getElementById('LoginFrame'))
   {
      $('#Center').append(frame1);
   }
   else
   {
      $('#LoginFrame').src  = 'login_form.html';
   }

   rama = frame1;
   setTimeout(SetFormValues,400);
}

function SetFormValues(){

   var frame = rama;

   if(frame && frame.contentDocument && frame.contentDocument != '')
   {
      var iframeHeader = frame.contentDocument;
   }
   else if (frame && frame.contentWindow)
   {
      if(frame.contentWindow.document)
      {
         var iframeHeader = frame.contentWindow.document;
      }
      else
      {
         var iframeHeader = frame.contentWindow;
      }
   }
   else
   {
      var iframeHeader = false;
   }

   if(iframeHeader && iframeHeader.getElementById('SendLogin'))
   {
      iframeHeader.getElementById('SendLogin').value = $('#UserId').val();
      iframeHeader.getElementById('SendHaslo').value = $('#UserPass').val();

      if($('SecuredConnection').checked)
      {
         iframeHeader.LoginFormPost.action = secured;
         ssl = true;
      }
      else
      {
         ssl = false;
      }

      // ewentualnie na layu info  -- czekaj

      iframeHeader.LoginFormPost.submit();
      setTimeout("DelAfter()",1000);
      clearInterval(TMPTIMER);
   }
   else
   {
      setTimeout("SetFormValues()",200);
   }
}

function DelAfter()
{
   login_timer = setInterval("AfterLogin()",700);
}

/***************************/

function AfterLogin()
{
   var iframeHeader;

   var frame = document.getElementById('LoginFrame');
   if(frame && frame.contentDocument && frame.contentDocument != '')
   {
      var iframeHeader = frame.contentDocument;
   }
   else if (frame && frame.contentWindow)
   {
      if(frame.contentWindow.document)
      {
         var iframeHeader = frame.contentWindow.document;
      }
      else
      {
         var iframeHeader = frame.contentWindow;
      }
   }
   else
   {
      var iframeHeader = false;
   }


   if(iframeHeader && iframeHeader.getElementById('Result'))
   {
      clearInterval(login_timer);
   }
   else
   {
      return false;
   }

   if(iframeHeader.getElementById('Result').value == '1')
   {
      ProperLogin();
   //alert('ZALOGOWANY');
   //ProperLogin();
   //logged = true;
   }
   else if(iframeHeader.getElementById('Result').value == '0')
   {
      //alert('NIE ZALOGOWANY');
      $('.error').slideDown();

      setTimeout("$('.error').slideUp()",1500);
      drawInputError();


   }

   return true;
}

function ProperLogin()
{
   document.getElementById('Center').removeChild( document.getElementById('LoginFrame') );
   GetMyLinks();
   userIsLogin();
   drawInputOk();
   $('.error').hide();

}

function GetMyLinks()
{
   $.ajax({
      type: "POST",
      url: "request.html",
      data: "func=getMyLinks",
      success: function(msg){
         $('#bottom_text').before(msg);
      }
   });
}

function userIsLogin(){
   $('.login').hide();
   $('.links').show();

   $('.logo_top_right').html('<div class="logout"><a href="http://onet.pl/logout.rd?url=http://fkn.pl">Wyloguj</a></div>');

   $('.pasek').remove();
   $('.bottom_text').remove();
}

function showBigBoxWhenUserIsLogin(){

}

function showSmallBoxWhenUserIsLogin(){

}

function showEdit(id){
   $('#edit_'+id).show();
}

function showLinkEdit(){
   /***************************************************************************************************************************/
   var old = $('.input_center div input').val();

   var addres = window.location.toString();

   var addres_len = addres.length;

   var link = old.substr(addres_len)

   $('#toEdit').val(link);
   $('#link_old_name').val(link);


   $('.link_added').hide();
   $('.link_added_edit').show();

   fhide();
//	$("divid").style.top='209px';
}

function fhide(){
   var idf=document.getElementById('divid');
   if(idf)
   {
	   idf.style.height='0px';
	   idf.style.weight='0px';
	   idf.style.top='0px';
	   idf.style.left='0px';
   }
}

function deleteUserLink(id){

   $.ajax({
      type: "POST",
      url: "request.html",
      data: "func=deleteMyLink&id="+id,
      success: function(msg){
         if(msg == 'true'){
            $('.myLinks ').remove();
            GetMyLinks();
         }
      }
   });
}

function userEditLink(){
   var old_name = $('#link_old_name').val();
   var new_name = $('#toEdit').val();
   new_name = new_name.toLowerCase();
   var linkId = $('#editedLinkId').val();
   var isAviable = checkIfExist(new_name);
   var ret;

   $('.error').hide();

   if(isAviable == "free"){
      $.ajax({
         type: "POST",
         url: "request.html",
         data: "func=updateMyLinkName&value="+new_name+"&old_name="+old_name+"&linkId="+linkId,
         success: function(msg){
             if(msg != 'false')
             {
            //$("divid").style.top='0px';
            $('.link_added_edit').hide();
            $('.link_added').show();
            var base = document.location.toString();
            var text = base + msg;
            $('.input_center div input').val(text);

            $('.myLinks ').remove();
            GetMyLinks();

            var clip = new ZeroClipboard.Client();
            clip.glue( "copyToClipBoard" );

            var txt   = $(".input_center div input").val();
            clip.setText( txt );


            clip.addEventListener( "complete", function(client, text) {
               //alert("Copied text to clipboard: " + text );
               clip.destroy();
                });
             }
             else
             {
                 $('.another').hide();
                 $('.error').show();
                 $('.error_container').css('margin-bottom','26px');
                 setTimeout("$('.error').hide()",2000);
                 setTimeout("$('.error_container').css('margin-bottom','0px');",2000);
                 setTimeout("$('.another').show()",2000);
             }
         }
      }
      );
      //document.getElementById('divid').style.visibility='visible';

   }else{
      $('.another').hide();
      $('.error').show();
      $('.error_container').css('margin-bottom','26px');
      setTimeout("$('.error').hide()",2000);
      setTimeout("$('.error_container').css('margin-bottom','0px');",2000);
      setTimeout("$('.another').show()",2000);
   }



}

function mark(schema) {

   schema.focus();
   schema.select();

}


function generateName(){
	var chars = "0123456789abcdefghiklmnopqrstuvwxyz_";
	var max_string_length = 8;
	var randomstring = '';
	for(var j=2; j<max_string_length; j++){	
		for (var i=2; i<j; i++) {
			var rnum = Math.floor(Math.random() * chars.length);
			randomstring += chars.substring(rnum,rnum+1);
			
			if(randomstring.length >= 3){
				var isAviable = checkIfExist(randomstring);
				if(isAviable == "free"){
					return randomstring;
				}
			}
		}
	}

	return 0;
}

var Url = {
		 
		// public method for url encoding
		encode : function (string) {
			return escape(this._utf8_encode(string));
		},
	 
		// public method for url decoding
		decode : function (string) {
			return this._utf8_decode(unescape(string));
		},
	 
		// private method for UTF-8 encoding
		_utf8_encode : function (string) {
			string = string.replace(/\r\n/g,"\n");
			var utftext = "";
	 
			for (var n = 0; n < string.length; n++) {
	 
				var c = string.charCodeAt(n);
	 
				if (c < 128) {
					utftext += String.fromCharCode(c);
				}
				else if((c > 127) && (c < 2048)) {
					utftext += String.fromCharCode((c >> 6) | 192);
					utftext += String.fromCharCode((c & 63) | 128);
				}
				else {
					utftext += String.fromCharCode((c >> 12) | 224);
					utftext += String.fromCharCode(((c >> 6) & 63) | 128);
					utftext += String.fromCharCode((c & 63) | 128);
				}
	 
			}
	 
			return utftext;
		},
	 
		// private method for UTF-8 decoding
		_utf8_decode : function (utftext) {
			var string = "";
			var i = 0;
			var c = c1 = c2 = 0;
	 
			while ( i < utftext.length ) {
	 
				c = utftext.charCodeAt(i);
	 
				if (c < 128) {
					string += String.fromCharCode(c);
					i++;
				}
				else if((c > 191) && (c < 224)) {
					c2 = utftext.charCodeAt(i+1);
					string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
					i += 2;
				}
				else {
					c2 = utftext.charCodeAt(i+1);
					c3 = utftext.charCodeAt(i+2);
					string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
					i += 3;
				}
	 
			}
	 
			return string;
		}
	 
	}