// Funadvice js-code

function set_check_boxs(boxs, value) {
    boxs.each(
        function(box) {
            box.checked = value;
        }
    );
}

function capitalize_par(text) {
    near_done = text.gsub(/[\?|\!|\.]\s([a-z])/, function(matched) { return matched[0].toUpperCase(); })
    return near_done.replace(/^(\s*)[a-z]/, function(matched) { return matched.toUpperCase(); })
}

function toggle_text_case(element_id, direction, orig_text) {
    switch(direction) {
    case 'lower':
        $(element_id).update(capitalize_par(orig_text.toLowerCase()));
        break;
    case 'upper':
        $(element_id).update(orig_text.toUpperCase());
        break;
    case 'orig':
        $(element_id).update(orig_text);
        break;
    default:
        return false;
    }
}

function show_edit_form_for(id) {
    $('note_for_caption_edit_' + id.toString()).update('');
    $('caption_edit_' + id.toString()).style.display = 'block';
    // $('caption_edit_' + id.toString()).show();
    $('caption_edit_form_for_' + id.toString()).style.display = 'block';
    // $('caption_edit_form_for_' + id.toString()).show();
}

function hide_other_caption_edit_form() {
    $$('.caption_edit_form').each(
        function(edit_form){
            edit_form.hide();
        }
    );
}

function update_thing(id)
{
        new Ajax.Updater("c_" + id, "/my/show_thing/" + id)
}

function clear_photo_form()
{
        $('photo_form').innerHTML = "";
}

function clear_npost_form()
{
        $('npost').innerHTML = "";
}

function try_login()
{
        var email = $('email').value;
        var pass  = $('password').value;

        new Ajax.Request("/login/auth?e=" + escape(email) + "&pw=" + escape(pass),
                {onComplete: log_us_in})
}

function log_us_in(obj)
{
        res = obj.responseText
        if(res == "ERROR")
        {
                alert("Incorrect Username or Password")
        }
        else
        {
                document.location.href = res
        }
}

function gen_token()
{
        new Ajax.Request("/login/auth?token=1")
}

function gen_token_signup()
{
	new Ajax.Request("/signup?token=1")
}

function sendfriend()
{
        var email = prompt('Enter Your Friends Email Address\nto invite them to FunAdvice:');

        if(email != null || email == '' || email == ' ') {
                new Ajax.Request('/sendfriend?email=' + escape(email), {onSuccess:alert_friend, onFailure:alert_friend})
        }
}

function alert_friend(obj)
{
        res = obj.responseText;

        if (res == 'OK') {
                alert('Your invitation was sent.');
        } else {
                alert(res);
        }
}

function selphoto(id)
{
        var str = '';
        str  = '<img src="' + $(id).src + '" border=0 style="border: 2px solid #CC0000;" /><br/>';
        str += '<small><a href="javascript: clearselphoto()">clear</a></small>';
        $('selected_photo').innerHTML = str;
        $('photo_id').value = id.replace(/wip/, '');
}
function selphotos(id)
{
        p_id=id.replace(/wip/,'');
        if (!$('photo_id').value.match(p_id)) {
          var str = '';
          str  = '<td width="50"><img src="' + $(id).src + '" border=0 style="border: 2px solid #CC0000;" /> </td>';
          $('selected_photos').innerHTML = $('selected_photos').innerHTML + str;
          $('photo_id').value = $('photo_id').value + id.replace(/wip/, '') + ',';
        }
}

function clearselphoto()
{
        $('selected_photo').innerHTML = '';
        $('photo_id').value = 0;
}

function suggest_category()
{
        if (!$('msg_category_id').value) {
                text = $('msg_content').value + " " + $('msg_subject').value
                new Ajax.Request('/ask/suggest/?text=' + escape(text), {onComplete: function(req){upcat(req)}});
        }

        // Suggest some answers
        if ($('msg_subject').value) {
                new Ajax.Updater('related_text', '/ask/related/?text=' + escape($('msg_subject').value));
        }
}

function upcat(obj)
{
        var ret = obj.responseText
        if(ret.length > 0)
        {
                // Select a value in the dropdown as indicated
                $('msg_category_id').value = ret
        }
        return
}

function createCookie(name,value,days) {
        if (days) {
                var date = new Date();
                date.setTime(date.getTime()+(days*24*60*60*1000));
                var expires = "; expires="+date.toGMTString();
        }
        else var expires = "";
        document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
                var c = ca[i];
                while (c.charAt(0)==' ') c = c.substring(1,c.length);
                if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
}

function eraseCookie(name) {
        createCookie(name,"",-1);
}

function swapbg(num) {

        var backi =new Array;

        backi[0]="http://static.funadvice.com/images/whitebg.gif";
        backi[1]="http://static.funadvice.com/images/redbg.gif";
        backi[2]="http://static.funadvice.com/images/bluebg.gif";
        backi[3]="http://static.funadvice.com/images/graybg.gif";
        backi[4]="http://static.funadvice.com/images/yellowbg.gif";

        if (num >= 0 && num <= 4) {
                document.body.style.backgroundImage = "url('" + backi[num] + "')";
                $('logo_img').style.backgroundImage = "url('http://static.funadvice.com/images/logoblue.gif')";
                createCookie('funstyle', num, 90);
        }
}

// Call this on load
function swap_my_bg() {
        swapbg(readCookie('funstyle'));
}

/* fade flashes automatically */
Event.observe(window, 'load', function() {
        if (!$('notice')) {
                return;
        }
        $('notice').opacity = 100.0;
    Effect.Fade($('notice'), {duration: 10.0});
});

Event.observe(window, 'load', function() {
    /* implement ajax friend activity feed for user profile page */
    if( $$('#ajax_friend_activity_feed').length > 0 ) {
        var target = $('ajax_friend_activity_feed');
        var username = target.getAttribute('username');
        var loggedin = target.getAttribute('loggedin');
        var request_url = '/' + 'my' + '/' + 'ajax_friend_activity_feed' + '/' + username;
        var status;

        if( loggedin ) {
            new Ajax.Request(request_url, { method: 'get', onComplete: function(request) { target.replace(request.responseText); } });
        } else {
            new Ajax.Request(request_url + '.html', { method: 'get', onSuccess: function(request) { target.replace(request.responseText); },
                                                      onFailure: function(request) {
                                                          new Ajax.Request(request_url, { method: 'get', onComplete: function(request) { target.replace(request.responseText); } });
                                                      } });
        }

    }
});


function add_upload_photo_entry_handler(num) {
    if( num < 10 ) {
        new Ajax.Updater('photo_upload_entries', '/my/add_photo_upload_entry/' + num, {asynchronous:true, evalScripts:true, insertion:Insertion.Bottom});
        return false;
    }
    else {
        alert("You can only upload upto 10 photos at once");
        return false;
    }
}

var album = {
  startup: function() {
    new PeriodicalExecuter(album.cycle, 5) // change image every 5 seconds
  },
  cycle: function() {
    new Effect.Fade('image', { // the id of the <DIV> containing the photos
      duration: 1,
      fps: 50,
      afterFinish: function() {
        new Ajax.Updater('image','/album/next', { // URL for next <IMG> tag
          asynchronous: true,
          onSuccess: function() {
            new Effect.Appear('image', {
              duration: 1,
              fps: 50,
              queue:'end'
            })
          }
        })
      }
    })
  }
}

function fun_toggle(element_id, display) {

    element = $(element_id);

    if( display ) {
        if( Element.visible(element) && element.getStyle('display') != 'none' ) {
            element.hide();
        } else {
            element.style.display = display;
        }
    } else {
        if( Element.visible(element) && element.getStyle('display') != 'none' ) {
            element.hide();
        } else {
            element.style.display = 'block';
        }
    }

    return element;
}


function showPhotoUploadEntry(entry_type) {
    switch(entry_type) {
    case 'upload':
        $('photo_upload').show();
        $('photoselect').hide();
        $('photo_upload_cancel_button').show();
        break;
    case 'multiple_upload':
        $('photo_upload').show();
        $('photoselect').hide();
        $('photo_upload_cancel_button').show();
        break;
    case 'select':
        $('photo_upload').hide();
        $('photoselect').show();
        $('photo_upload_cancel_button').show();
        resetUploadForm();
        break;
    }

    return false
}


function cancelPhotoUpload() {
    resetUploadForm();

    if ($('photoselect')) {
        $('photoselect').innerHTML = '';
    }

    if ($('upload_form')) {
        $('upload_form').hide()
    }

    if ($('photo_upload')) {
        $('photo_upload').hide();
    }

    $("photo_upload_cancel_button").hide()

    return false;
}

function resetUploadForm() {
    if ($('image_image')) {
        $('image_image').replace('<input id="image_image" type="file" size="30" name="image[image]">')
    }

    if ($('image_caption')) {
        $('image_caption').clear();
    }

    if ($('photos_0_filename')) {
        $('photos_0_filename').replace('<input type="file" size="25" name="photos[0][image]" id="photos_0_filename"/>');
    }

    if ($('photos_0_caption')) {
        $('photos_0_caption').clear();
    }

    var entries = $$('p.photo_upload_entry');
    entries.shift();
    entries.each(function(e) { e.remove(); })

    return false;
}

function show_photo_upload_form_popup()
{
  var div = document.getElementById("add_photo");
  div.style.display = "block";
}

function clear_photo_form()
{
  var div = document.getElementById("add_photo");
  div.style.display = "none";
}


function clear_checked()
{
    document.getElementById("spam_form").action = "/admin/clear_checked_spam";
    document.getElementById("spam_form").submit();
}
