var Dom = YAHOO.util.Dom; 
var $=Dom.get;
var boot = 1;
var last_entry_id = 0;
var user_id = 0;

var C_community_autoupdate_enable = 1;
var C_community_autoupdate_time = 15000;

init = function() {
    if (boot==1) {
        if (C_community_autoupdate_enable==1) {
            setTimeout(server_ping, C_community_autoupdate_time);
        }
        YAHOO.util.Event.addListener('link_add_entry', 'click', link_add_entry_click);
        YAHOO.util.Event.addListener('link_share_page', 'click', link_share_page_click);
        YAHOO.util.Event.addListener('btn_add_entry_close', 'click', btn_add_entry_close_click);
        YAHOO.util.Event.addListener('btn_share_page_close', 'click', btn_share_page_close_click);
        YAHOO.util.Event.addListener('btn_share_entry_close', 'click', btn_share_entry_close_click);
        YAHOO.util.Event.addListener('check_email_notification', 'click', check_email_notification_click);
        YAHOO.util.Event.addListener('btn_add_entry', 'click', btn_add_entry_click);
        YAHOO.util.Event.addListener('btn_share_page', 'click', btn_share_page_click);
        YAHOO.util.Event.addListener('btn_share_entry', 'click', btn_share_entry_click);
        YAHOO.util.Event.addListener('link_add_friend', 'click', link_add_friend_click);
        YAHOO.util.Event.addListener('link_add_favorites', 'click', link_add_favorites_click);
    }
    boot = 0;
}

YAHOO.util.Event.addListener(window, 'load', init );

var btn_add_entry_click = function(e) {
    var title = $('edit_newentry_title').value;
    var content = $('edit_newentry_content').value;
    var tags = $('edit_newentry_tags').value;
    var email_notification = $('check_email_notification').checked;
    var entry_private = $('select_newentry_access').value;

    var email = $('text_addentry_email').value;
    var photo = $('edit_newentry_photo').value;

    if (title.length < 2) {
        alert('Please enter a title for the new entry.');
        return;
    }
    if (content.length < 2) {
        alert('Please enter the contents of the new entry.');
        return;
    }

    title = urlencode(title);
    content = urlencode(content);
    tags = urlencode(tags);
    if (photo!='') {
        //swfu.setUploadURL('do_community_add.php');
        swfu.setPostParams({
            "user_id" : user_id,
            "email_notification" : email_notification,
            "title" : title,
            "content" : content,
            "tags": tags,
            "email" : email,
            "private" : entry_private,
            "vikingbra_auth" : vikingbra_auth
        });
        swfu.startUpload();
    } else {
        var callback = {
            success: handleSuccess_ping,
            failure: handleFailure_ping
        };

        var postData = "user_id=" + user_id + "&email_notification=" + email_notification + "&title=" + title + "&content=" + content + "&email=" + email + "&tags=" + tags + "&private=" + entry_private;
        YAHOO.util.Connect.asyncRequest('POST', "do_community_add.php", callback, postData);
    }
    //close_dialog_newentry();
    $('edit_newentry_title').value = '';
    $('edit_newentry_content').value = '';
    $('edit_newentry_tags').value = '';
    $('edit_newentry_photo').value = '';
}

var btn_share_page_click = function(e) {
    var email = $('edit_sharepage_email').value;

    if (email.length < 5) {
        alert('Please enter at least one email address.');
        return;
    }

    var callback = {
        success: handleSuccess_vote,
        failure: handleFailure_ping
    };
    email = urlencode(email);
    var postData = "email=" + email + "&p_userid=" + user_id;
    YAHOO.util.Connect.asyncRequest('POST', "do_community_sharepage.php", callback, postData);
    
    close_dialog_sharepage();
    $('edit_sharepage_email').value = '';
}

var upload_finished = function(data) {
    handle_server_response(data);
}

var check_email_notification_click = function(e) {
    var checkbox = $('check_email_notification');
    var email = $('text_addentry_email');
    if (checkbox.checked==true) {
        email.style.display = 'inline';
    } else {
        email.style.display = 'none';
    }
}

var link_add_entry_click = function(e) {
    var div = $('dialog_add_entry');
    var div2 = $('dialog_share_page');
    if (div2.style.display=='none' || div2.style.display=='') {
        //
    } else {
        close_dialog_sharepage();
    }
    if (div.style.display=='none' || div.style.display=='') {
        open_dialog_newentry();
    } else {
        close_dialog_newentry();
    }
}

var link_share_page_click = function(e) {
    var div = $('dialog_share_page');
    var div2 = $('dialog_add_entry');
    if (div2==null || div2.style.display=='none' || div2.style.display=='') {
        //
    } else {
        close_dialog_newentry();
    }
    if (div.style.display=='none' || div.style.display=='') {
        open_dialog_sharepage();
    } else {
        close_dialog_sharepage();
    }
}

var btn_add_entry_close_click = function(e) {
    close_dialog_newentry();
}

var btn_share_page_close_click = function(e) {
    close_dialog_sharepage();
}

var open_dialog_sharepage = function() {
    var div = $('dialog_share_page');

    div.style.display = 'block';
    div.style.height = 'auto';
    var x = div.offsetHeight - 30;
    //var x = 200;
    Dom.setStyle( div, 'background-color', "#ffffff");
    Dom.setStyle( div, 'color', "#ffffff");
    div.style.height = '0';

    var attributes = {
        color: {
            to: '#000000'
        },
        backgroundColor: {
            to: '#f0f0f0'
        }
    };
    var anim = new YAHOO.util.ColorAnim(div, attributes);
    anim.animate();

    var attributes2 = {
        height: { to: x}
    };
    var anim2 = new YAHOO.util.Anim(div, attributes2);
    anim2.animate();
    anim2.onComplete.subscribe(function() {
        div.style.height = 'auto';
    });
}

var open_dialog_newentry = function() {
    var div = $('dialog_add_entry');

    div.style.display = 'block';
    div.style.height = 'auto';
    var x = div.offsetHeight - 30;
    //var x = 200;
    Dom.setStyle( div, 'background-color', "#ffffff");
    Dom.setStyle( div, 'color', "#ffffff");
    div.style.height = '0';
    
    var attributes = {
        color: {
            to: '#000000'
        },
        backgroundColor: {
            to: '#f0f0f0'
        }
    };
    var anim = new YAHOO.util.ColorAnim(div, attributes);
    anim.animate();

    var attributes2 = {
        height: { to: x}
    };
    var anim2 = new YAHOO.util.Anim(div, attributes2);
    anim2.animate();
    anim2.onComplete.subscribe(function() {
        div.style.height = 'auto';
    });
}

var close_dialog_newentry = function() {
    var div = $('dialog_add_entry');

    //Dom.setStyle( div, 'background-color', "#ffffff");
    //Dom.setStyle( div, 'color', "#ffffff");
    //div.style.height = '0';

    var attributes = {
        color: {
            to: '#ffffff'
        },
        backgroundColor: {
            to: '#ffffff'
        }
    };
    var anim = new YAHOO.util.ColorAnim(div, attributes);
    anim.animate();

    var attributes2 = {
        height: { to: 0}
    };
    var anim2 = new YAHOO.util.Anim(div, attributes2);
    anim2.animate();
    anim2.onComplete.subscribe(function() {
            div.style.display = 'none';
    });
}

var close_dialog_sharepage = function() {
    var div = $('dialog_share_page');

    //Dom.setStyle( div, 'background-color', "#ffffff");
    //Dom.setStyle( div, 'color', "#ffffff");
    //div.style.height = '0';

    var attributes = {
        color: {
            to: '#ffffff'
        },
        backgroundColor: {
            to: '#ffffff'
        }
    };
    var anim = new YAHOO.util.ColorAnim(div, attributes);
    anim.animate();

    var attributes2 = {
        height: { to: 0}
    };
    var anim2 = new YAHOO.util.Anim(div, attributes2);
    anim2.animate();
    anim2.onComplete.subscribe(function() {
            div.style.display = 'none';
    });
}


var delete_entry = function(user_id, id) {
    var entry = $('entry_' + id);

    var attributes = {
        color: {
            to: '#ffffff'
        },
        backgroundColor: {
            to: '#ffffff'
        }
    };
    var anim = new YAHOO.util.ColorAnim(entry, attributes);
    anim.animate();

    var attributes2 = {
        height: {
            to : 0
        }
    };
    var anim2 = new YAHOO.util.Anim(entry, attributes2);
    anim2.animate();
    anim2.onComplete.subscribe(function() {
        removeElement2(entry);
    });

    var callback = {
        success: handleSuccess_vote,
        failure: handleFailure_ping
    };
    var postData = "user_id=" + user_id + "&entry_id=" + id;
    YAHOO.util.Connect.asyncRequest('POST', "do_community_delete.php", callback, postData);
}

var vote = function(user_id, id, votes) {
    var a = $('vote_' + id);
    a.innerHTML = 'Votes received (' + (votes+1) + ')';

    var callback = {
        success: handleSuccess_vote,
        failure: handleFailure_ping
    };
    var postData = "user_id=" + user_id + "&entry_id=" + id;
    YAHOO.util.Connect.asyncRequest('POST', "do_community_vote.php", callback, postData);
}

var report_abuse = function(user_id, id) {
    var a = $('abuse_' + id);
    a.innerHTML = 'Abuse reported';
    
    var callback = {
        success: handleSuccess_vote,
        failure: handleFailure_ping
    };
    var postData = "user_id=" + user_id + "&entry_id=" + id;
    YAHOO.util.Connect.asyncRequest('POST', "do_community_abuse.php", callback, postData);
}

function server_ping() {
    if (page_current>1)
        return;

    var callback = {
        success: handleSuccess_ping,
        failure: handleFailure_ping
    };
    var postData = "user_id=" + user_id + "&last_entry_id=" + last_entry_id;
    YAHOO.util.Connect.asyncRequest('POST', "do_community_ping.php", callback, postData);

    setTimeout(server_ping, C_community_autoupdate_time);
}

var handleSuccess_vote = function(o){
    //alert(o.responseText);
}

var handle_server_response = function(data) {
    var t = data.split("#|#|");
    var id = t[1];
    var html = t[0];
    last_entry_id = id;

    var div2 = document.createElement('div');
    div2.innerHTML = html;
    var div = div2.firstChild;
    YAHOO.util.Dom.insertBefore(div, $('content').firstChild);
    var x = div.offsetHeight - 15;   
    Dom.setStyle( div, 'background-color', "#ffffff");
    Dom.setStyle( div, 'color', "#ffffff");
    div.style.height = 0;

    var attributes = {
        color: {
            to: '#000000'
        },
        backgroundColor: {
            to: '#ffffff'
        }
    };
    var anim = new YAHOO.util.ColorAnim(div, attributes);
    anim.animate();

    var attributes2 = {
        height: {
            to : x
        }
    };
    var anim2 = new YAHOO.util.Anim(div, attributes2);
    anim2.animate();
    anim2.onComplete.subscribe(function() {
        div.style.height = 'auto';
    });
}

var handleSuccess_ping = function(o){
    if (o.responseText.length>4) {
        handle_server_response(o.responseText);
    }
}

var handleFailure_ping = function(o){
    //
}


function share(id) {
    var dialog_share_entry = $('dialog_share_entry');
    var div_entry = $('entry_' + id + '_space');
    $('edit_shareentry_link').value = $('entry_' + id + '_link').innerHTML;
    $('edit_shareentry_id').value = id;
    div_entry.appendChild(dialog_share_entry);
    dialog_share_entry.style.display = 'block';
}

function btn_share_entry_close_click(e) {
    $('dialog_share_entry').style.display = 'none';
}

function btn_share_entry_click(e) {
    var id = $('edit_shareentry_id').value;
    var email = $('edit_shareentry_email').value;

    if (email.length < 5) {
        alert('Please enter at least one email address.');
        return;
    }

    var callback = {
        success: handleSuccess_vote,
        failure: handleFailure_ping
    };
    email = urlencode(email);
    var postData = "id=" + id + "&email=" + email;
    YAHOO.util.Connect.asyncRequest('POST', "do_community_shareentry.php", callback, postData);

    $('edit_shareentry_email').value = '';
    $('dialog_share_entry').style.display = 'none';
}

function link_add_friend_click(e) {
    var callback = {
        success: handleSuccess_vote,
        failure: handleFailure_ping
    };
    var postData = "id=" + user_id;
    YAHOO.util.Connect.asyncRequest('POST', "do_community_add_friend.php", callback, postData);

    alert('This user was added as a friend.');
}

function link_add_favorites_click(e) {
    var callback = {
        success: handleSuccess_vote,
        failure: handleFailure_ping
    };
    var postData = "id=" + user_id;
    YAHOO.util.Connect.asyncRequest('POST', "do_community_add_favorites.php", callback, postData);

    alert('Photo Blog page added to favorites.');
}


function sendcomment2(id, name, email, message) {

    name = urlencode(name);
    email = urlencode(email);
    message = urlencode(message);
    
    
    var callback = {
        success: handleSuccess_comment,
        failure: handleFailure_ping
    };

    var postData = "id=" + id + "&name=" + name + "&email=" + email + "&message=" + message;
    YAHOO.util.Connect.asyncRequest('POST', "do_community_comment.php", callback, postData);

    //close_dialog_newentry();
    $('edit_newentry_title').value = '';
    $('edit_newentry_content').value = '';
    $('edit_newentry_tags').value = '';
    $('edit_newentry_photo').value = '';
}


var handleSuccess_comment = function(o){
    if (o.responseText.length>4) {
        var id = YAHOO.util.Dom.get('form_id').value;

        var div = document.createElement('div');
        div.innerHTML = o.responseText;
        //var div = div2.firstChild;
        //YAHOO.util.Dom.insertBefore(div, $('div_comments_' + id).firstChild);
        $('div_comments_' + id).appendChild(div);
        var x = div.offsetHeight - 15;
        Dom.setStyle( div, 'background-color', "#ffffff");
        Dom.setStyle( div, 'color', "#ffffff");
        div.style.height = 0;

        var attributes = {
            color: {
                to: '#000000'
            },
            backgroundColor: {
                to: '#ffffff'
            }
        };
        var anim = new YAHOO.util.ColorAnim(div, attributes);
        anim.animate();

        var attributes2 = {
            height: {
                to : x
            }
        };
        var anim2 = new YAHOO.util.Anim(div, attributes2);
        anim2.animate();
        anim2.onComplete.subscribe(function() {
            div.style.height = 'auto';
        });
    }
}