
function infader(){
	var custom = document.getElementById('custom').value;
	var orgurl = document.getElementById('orgurl').value;
	orgurl = orgurl.replace(/\s/g, ""); 
	nexturl = orgurl.replace(/\//g, "\\");

	var p = {};

        //$('#feeds').load('index.php/urlhandling/main/' + encodeURIComponent(nexturl) +'/'+custom,p,function(){  });
	$('#feeds').load('cisource/urlhandling/main/' + encodeURIComponent(nexturl) +'/'+custom,p,function(){  });

	$("div.contentToChange").find("div.firstparagraph:hidden").slideDown("slow");

}

function loginfader(){

	//alert("Nachricht"); 
	$('#showlogin').show();
	//$('#showlogin').load( 'cisource/login_form' );

}

function logonaction(){

	var loginname = document.getElementById('loginname').value;
	var password = document.getElementById('password').value;
                 
	painurl = 'http://myurl.to/index.php/welcome/authenticate/'+encodeURIComponent(loginname)+'/'+encodeURIComponent(password);
	//alert(painurl);
	window.location=painurl;

}

$(document).ready(function(){
	$("div.firstparagraph").hide();
	$('#showlogin').hide();
	//$('#showlogin').load( 'cisource/login_form' );
});


function langEnButton(host)
{
    $('.langButton').click(function(){
        jaaulde.utils.cookies.set('lang', 
            'en', 
            {   domain: host,
                path: '/',
                hoursToLive: 4320
            });
    });    
}

function langDeButton(host)
{
    $('.langButton').click(function(){
        jaaulde.utils.cookies.del('lang',
            {   domain: host,
                path: '/'
            });
    });    
}
function blink(element)
{
    $(element).fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100);
}


function showError(msg, element)
{
    if(typeof(element) == "undefined") 
    {
        var e = $('#error');
    }
    else 
    {
        var e = $(element);
    }
    e.html("");
    e.html('<p>'+msg+'</p>');
    e.fadeIn('fast');
    return false;
}
function hideError(element)
{   
    if(typeof(element) == "undefined") 
    {
        var e = $('#error');
    }
    else 
    {
        var e = $(element);
    }
    e.fadeOut('fast');
    return false;
}

function bookmarklet(url, title, selected) 
{
    $('#appid').val('bookmarklet');
    $('#longurl').val(url);
}

function bookmarkletMail(title, selected)
{
    var redirec = $('#shorturl').val();
    if( redirec.length > 3 )
    {
        location.href = "mailto:?subject="+title+"&body="+redirec;                
    }
    else
    {
        window.setTimeout("bookmarkletMail('"+title+"', '"+selected+"')", 1000);        
    }
}

function twitterUpdate(url, title, selected) 
{
    $('#appid').val('redirectwitterupdate');
    $('#longurl').val(url);
}


ACTION = {};
TRANSLATE = {};
TRANSLATE.ERROR_MSG_URL_IS_WRONG="Das ist keine korrekte URL, bitte versuch es noch mal.";
TRANSLATE.ERROR_MSG_SITE_NOT_AVAILABLE="Diese Seite ist nicht mehr verfügbar.";
TRANSLATE.ERROR_MSG_SITE_NOT_FOUND="Seite nicht gefunden";
TRANSLATE.ERROR_MSG_SITE_FORBIDDEN="Zugang nur für angemeldete Benutzer.";
TRANSLATE.ERROR_MSG_URL_DOMAIN_IS_SHORTENER="Diese URL ist bereits gekürzt.";
TRANSLATE.ERROR_MSG_URL_TOO_SHORT="Die eingebene URL ist nicht korrekt oder zu kurz.";
TRANSLATE.ERROR_MSG_URL_IS_EMPTY="Du hast keine URL eingegeben.";
TRANSLATE.ERROR_MSG_URL_IS_REDIRECT=" ist kurz genug.";
TRANSLATE.ERROR_MSG_UNKOWN="Es ist ein Fehler aufgetreten, bitte versuche es später noch einmal.";
TRANSLATE.ERROR_MSG_TO_MANY_REQUESTS="Zu viele URL Kürzungen von deiner IP. Bitte versuch es später wieder.";
TRANSLATE.ERROR_MSG_URL_IS_ALREADY_REDIRECT="Du hast die URL gerade gekürzt.";
TRANSLATE.ERROR_MSG_URL_REQUEST_RUNNING="myurl's busy at the moment.";
TRANSLATE.ERROR_MSG_URL_WISH_DENY="Verwende bitte nur alphanumerische Zeichen A-Z, a-z, 0-9 und Bindestrich für dein Kürzel.";
TRANSLATE.ERROR_MSG_URL_WISH_IS_ALREADY_USED="Deine gewünschte URL ist bereits verwendet.";
TRANSLATE.ERROR_MSG_USER_AUTH_INVALID_CHARS="Dein Name enthält nicht erlaubte Zeichen.";
TRANSLATE.ERROR_MSG_USER_AUTH_PASSWORD_SHORT="Dein Passwort ist zu kurz.";
TRANSLATE.ERROR_MSG_USER_AUTH_NOTLOGGEDIN="Um Tweets absenden zu können, melde dich bitte an. (oben rechts)";
TRANSLATE.ERROR_MSG_USER_TWITTER_LOGIN_FAILED="Twitter-Login fehlerhaft. Bitte Angaben prüfen.";
TRANSLATE.ERROR_MSG_USER_TWITTER_NOT_EXISTS="Twitter-Account existiert nicht.";
TRANSLATE.ERROR_MSG_USER_AUTH_EMAIL_NOT_SET="Du hast keinen Namen angegeben.";
TRANSLATE.ERROR_MSG_TWEET_NO_NETWORK_SELECTED="Du hast weder Facebook noch Twitter zum updaten ausgewählt.";
TRANSLATE.ERROR_MSG_TWEET_FACEBOOK_FAILED="Dein Facebook Profil konnte nicht geupdated werden.";
TRANSLATE.ERROR_MSG_TWEET_MSG_TOO_LONG="Dein Twitter-Text ist zu lang.";
TRANSLATE.ERROR_MSG_TWEET_MSG_EMPTY="Dein Twitter-Text ist leer.";
TRANSLATE.ERROR_MSG_TWEET_SUCCESS="Dein Twitterstatus wurde erfolgreich versendet.";
TRANSLATE.ERROR_MSG_TWEET_FACEBOOK_SUCCESS="Dein Facebookstatus wurde erfolgreich versendet.";
TRANSLATE.ERROR_MSG_TWEET_SUCCESS_LINK="Jetzt bei Twitter ansehen.";
TRANSLATE.ERROR_MSG_TWEET_FUTURE_INVALID_TIME="Die Zeitangabe für deinen zukünftigen Tweet ist nicht korrekt.";
TRANSLATE.ERROR_MSG_TWEET_SUCCESS_FUTURE="Deine Nachricht wird am {TIME} Uhr verbreitet.";
TRANSLATE.ERROR_MSG_REDIREC_RECENT_REMOVE="Willst du diesen redirec wirklich löschen?";
TRANSLATE.ERROR_MSG_TWEET_REMOVE_FUTURE="Willst du diesen geplanten Tweet wirklich löschen?";
TRANSLATE.ERROR_MSG_URL_WISH_TAKEN="Das Kürzel existiert bereits";
TRANSLATE.TWEET_NOW = "Absenden";


var process_shortening =
{
    lastContent: "",
    lastWishContent: "",
    checkInterval: 0,
    lastContentSuccess: "",
    clip: null,
    submitRunning: false,
    shorturls: 0,
    
    init: function()
    {
        
        $('#longurl').select();        
        this.clip = new ZeroClipboard.Client();
        this.clip.setHandCursor( true );
        this.clip.setText('');
        //this.clip.glue('copynew');
        this.clip.reposition();
        this.clip.addEventListener( 'onComplete', this.clipboardCopyComplete );

        this.reloadRecentsCopy();         
        this.checkInterval = window.setInterval("process_shortening.checkInput()", 100);
        var t = this;


        $('#wishToggle').click(function(){
            $('#formWishUrl').toggle();
            if($('#formWishUrl').css('display') == 'block')
                $(this).css('background', 'url("/images/wishurl_close_btn.gif") no-repeat center left');
            else
                $(this).css('background', 'url("/images/wishurl_arrow.jpg") no-repeat center left');
            return false;
        });
        $('#shortUrlForm').submit(function(){t.doSubmit(); return false;});


    },

    example: function()
    {
        alert("alles");
    },


    
    clipboardCopyComplete: function(client, text)
    {
        $('#copynew').addClass('click');
        window.setTimeout("$('#copynew').removeClass('click');", 100);        
        
    },
    
    clipboardCopyClick: function() {
        
    },
    
    reloadRecentsCopy: function()
    {
        $('#recents .action .copy').each(function() {
	        var e = $(this);
	        var clip = new ZeroClipboard.Client();
	        clip.setHandCursor( true );
	        clip.setText(e.attr('href'));
	        clip.glue(e.attr('id'));
	        clip.reposition();
        });
        
        $('#recents tbody .recent').each(function() {
            var e = $(this);
            e.mouseover(function() {e.children('a.remove').show()});
            e.mouseout(function() {e.children('a.remove').hide()});
            
            e.mouseover(function() {e.children('td.remove').css('background', 'url("/images/recent_remove_btn.jpg") no-repeat 0px 5px')});
            e.mouseout(function() {e.children('td.remove').css('background', 'none')});
            
            var rid = e.attr('id');
            e.children('.remove').click(function(){
                if(confirm(TRANSLATE.ERROR_MSG_REDIREC_RECENT_REMOVE))
                {
	                $('#'+rid).fadeOut('fast', function(){$(this).remove();});
	                $.post(AJAX_HOST+ACTION.REMOVE_RECENT, {hash: rid.substring(2)});
	                if($('#recents .recent').size() == 1) $('.recentShort').fadeOut('fast');
	            }
                return false;
            });
        });
    },    
    
    checkInput: function (ev)
    {
        if($('#longurl').val() == this.lastContent &&
           this.lastWishContent == $('#wishurl').val() ) 
        {
            return;
        }
    
        if( ( $('#longurl').val() != this.lastContentSuccess &&
            $('#longurl').val() != this.lastContent ) ||
            this.lastWishContent != $('#wishurl').val() )
        {
            $('.shortUrl').addClass('shortUrlInactive');
            $('.longUrl').removeClass('longUrlInactive');
            hideError();
        }
    
        if(this.isClipboardPaste() && $('#longurl').val() != this.lastContentSuccess)
        {
            $('#formWishUrl').show();
            //this.doSubmit();
        }
          
        this.lastWishContent = $('#wishurl').val();  
        this.lastContent = $('#longurl').val();
    },
    
    isClipboardPaste: function()
    {
        if( 10 <  $('#longurl').val().length - this.lastContent.length )
            return true; 
        return false;
    },
    
    checkWishUrl: function()
    {
        
        
        return wishurl;  
    },
    
    doSubmit: function()
    {
        hideError();
 

        wishurl = 'no_wish_url';
        if($('#formWishUrl').css('display') == 'block')
        {
            var wishurl = $('#wishurl').val();
            
            if(wishurl != jQuery.trim(wishurl))
            {
                wishurl = jQuery.trim(wishurl);
                $('#wishurl').val(wishurl);
            }
            
            if(wishurl.length == 0) 
            {
                wishurl = 'no_wish_url';
            }
            else
            {
                if (!wishurl.match(new RegExp('^[A-Za-z0-9-]{1,30}$')))
				{
				    showError(TRANSLATE.ERROR_MSG_URL_WISH_DENY);
				    return false;
				}        
		    }

            numwishurl = 0
            $.ajax({
           	 type: "GET",
         	 url: "cisource/urlhandling/numshorturl/" + wishurl,
          	 dataType: 'json',
          	 async: false,
          	 success: function(score){
          	     numwishurl = score;
          	 },
          	 error: function(msg){
            	    alert("Fehler c");
           	 }
            });

            if (numwishurl > 0)
	    {
		  showError(TRANSLATE.ERROR_MSG_URL_WISH_TAKEN);
			    return false;
            }        
	    
        }
 
        var url = $('#longurl').val();                        
        
        url = jQuery.trim(url);
        



        /* check if no url is inserted  */
   
        if(url == '')
        {
            showError(TRANSLATE.ERROR_MSG_URL_IS_EMPTY);
            return false;
        }
        
        
        /* check for regular url  */

        if (!url.match(new RegExp('^([a-zA-Z]+:\/\/)')))
            url = 'http://'+url;

      
        if (url.indexOf('.') < 0  || url.indexOf(' ') >= 0)
        {
            showError(TRANSLATE.ERROR_MSG_URL_IS_WRONG);
            return false;
        }
        
        

        /* check wether long url already inserted  */        
        if  ( url == this.lastContentSuccess &&
                (                       
                    $('#shorturl').val() == SHORT_HOST+'/'+wishurl
                    ||
                    wishurl == 'no_wish_url'                    
                )
            )
        {
            showError(TRANSLATE.ERROR_MSG_URL_IS_ALREADY_REDIRECT);
            return false;
        }

        this.submitRunning = true;
        var t = this;



        var custom = document.getElementById('wishurl').value;
        var orgurl = document.getElementById('longurl').value;


        var p = {};

        var e = $('#shortedurlinfo');

        nextone = this.shorturls + 1;

        $('<div class="firstparagraph'+nextone+'" style="visible:none;"'+this.shorturls+' </div>').insertBefore('div.firstparagraph'+this.shorturls).hide();

        var e = $('.firstparagraph'+nextone);
						
        //e.html('cisource/urlhandling/loggedoutshortening?url=' + encodeURIComponent(orgurl) +'&custom='+custom);


        e.load('cisource/urlhandling/loggedoutshortening?url=' + encodeURIComponent(orgurl) +'&custom='+custom,p,function(){  });


        $('div.firstparagraph'+nextone).fadeIn("slow"); 
        e.fadeIn('slow');


        this.shorturls = this.shorturls + 1;

        return false;

    },
    
    response: function(data)
    {
        this.submitRunning = false;


        if(data.error == 'URL_DOMAIN_IS_SHORTENER')
        {
            showError(TRANSLATE.ERROR_MSG_URL_DOMAIN_IS_SHORTENER);
            return;
        }
        
        if(data.error == 'URL_TOO_SHORT')
        {
            showError(TRANSLATE.ERROR_MSG_URL_TOO_SHORT);
            return;
        }
        
        if(data.error == 'URL_IS_EMPTY')
        {
            showError(TRANSLATE.ERROR_MSG_URL_IS_EMPTY);
            return;
        }
        
        if(data.error == 'URL_IS_REDIRECT')
        {
            showError(TRANSLATE.ERROR_MSG_URL_IS_REDIRECT);
            return;
        }
        
        if(data.error == 'URL_WISH_DENY')
        {
            showError(TRANSLATE.ERROR_MSG_URL_WISH_DENY);
            return;
        }
        
        if(data.error == 'URL_WISH_IS_ALREADY_USED')
        {
            showError(TRANSLATE.ERROR_MSG_URL_WISH_IS_ALREADY_USED);
            return;
        }
        
        
        if(data.error == 'SUCCESS')
        {
            if( this.lastContentSuccess == data.longurl && 
                data.wishurl !== 'no_wish_url' && 
                data.wishurl.length>0)
            {
                //its possible a shortened url, but now with optional redirec hash
                //so remove so old one
                var oldredirec = $('#recents div:first-child');
                oldredirec.fadeOut('fast', function(){$(this).remove();});
                $.post(AJAX_HOST+ACTION.REMOVE_RECENT, {hash: oldredirec.attr('id').substring(2)}); 
            }
        
            $('#shorturl').val(data.shorturl);
            $('#recents').prepend(data.recents);
            this.lastContentSuccess = data.longurl;
            $('.shortUrl').removeClass('shortUrlInactive');
            $('.longUrl').addClass('longUrlInactive');
            $('.recentShort').show();  
            $('.shortUrl a.open').attr('href', data.shorturl); 
            this.reloadRecentsCopy();              
	        this.clip.setText(data.shorturl);
	        this.clip.reposition();
	        
	        user.appendTweet(data.shorturl);
	        
            return;
        }
        
        showError(TRANSLATE.ERROR_MSG_UNKOWN);
        return;
    }
    
}




