var tr_day_names = ['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi'];
var tr_month_names = ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'];

function parse_url(input){
    var ureg = new RegExp("http\\:\\/\\/([a-z0-9\\.\\/\?]+)", "gim");
    return input.replace(ureg, '<a target="_blank" href="http://$1">$1</a>');
}

function parse_date(input){
    var date_object = new Date(input);
    var tr_day_name = tr_day_names[date_object.getDay()];
    var tr_month_name = tr_month_names[date_object.getMonth()];
    var date_value = set_digits(date_object.getDate());
    var year_value = date_object.getFullYear();
    var hour_minute_value = set_digits(date_object.getHours()) + ":" + set_digits(date_object.getMinutes());
    return date_value + " " + tr_month_name + " " + year_value + " " + tr_day_name + ", " + hour_minute_value;
}

function parse_date_relative(input){
    var values = input.split(" ");
    var time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
    var parsed_date = Date.parse(time_value);
    var relative_to = (arguments.length>1) ? arguments[1] : new Date();
    var delta = parseInt((relative_to.getTime()-parsed_date)/1000);
    var how_many_days = parseInt(delta/86400);
    var how_many_months = parseInt(how_many_days/30);
    var how_many_years = parseInt(how_many_months/12);
    
    delta = delta + (relative_to.getTimezoneOffset()*60);
    
    if(delta<60 ){
        return "az önce";
    }
    else if(delta<120 ){
        return "1 dakika oldu";
    }
    else if(delta<(60*60)){
        return (parseInt(delta/60)).toString()+" dakika önce";
    }
    else if(delta<(120*60)){
        return "1 saat kadar";
    }
    else if(delta<(24*60*60)){
        return "yaklaşık "+(parseInt(delta/3600)).toString()+" saat önce";
    }
    else if(delta<(48*60*60)){
        return "dün"
    }
    else {
        if(how_many_months<12){
            return how_many_months.toString()+" ay önce";
        }
        if(how_many_years>0){
            return how_many_years.toString()+" yıl önce";
        }
        return (how_many_days).toString()+" gün önce";
    }
}

function parse_twitter_name(input){
    var treg = new RegExp("[@]+([A-Za-z0-9-_]+)", "gim");
    return input.replace(treg, '<a target="_blank" href="http://twitter.com/$1">@$1</a>');
}

function parse_hash_tags(input){
    var hreg = new RegExp("[#]+([a-zA-Z0-9_\x81-\xFF\u0100-\u0fff]+)", "gim");
    return input.replace(hreg, '<a target="_blank" href="http://search.twitter.com/search?q=$1">#$1</a>');
}

function parse_twitter_text(input){
    input = parse_url(input);
    input = parse_twitter_name(input);
    input = parse_hash_tags(input);
    return input;
}

function set_digits(input, digit){
    if(! arguments[1]){ digit = 2; }
    var str_input = input.toString();
    if( str_input.length == digit ){ return input; }
    var zero_str = "";
    for( var i=0; i < (digit-str_input.length); i++ ){ zero_str+= "0"; };
    return zero_str+input;
}

