/*!
 * UserStory-Lab Ventus Common
 * 
 * http://maestros.pe.kr
 * @Ventus80
 * 
 * Copyleft 2010, HyunSuk Lee
 *
 * Date: Sat Feb 13 22:33:48 2010 -0823
 * Needs: jquery-1.4.2
 */
var _THIS_URL = "";

$(document).ready(function () {
    _THIS_URL = $('#this_url').val();
//    $('#header > div > h1 > a').attr('href',_THIS_URL);
    $('#img_upload').css('opacity','0');
    tooltip();
    
    $('.sub_cartoon').click(go_cartoon);
    $('.exp_cartoon').click(go_cartoon);
    if($('#fund').length != 0){
        $('#contents_len').text('75');
    }
    else if($('#stop').length != 0){
        $('#contents_len').text('49');
    }
    else{
        $('#contents_len').text('100');
    }
    

    $("#nav_2").hover(
		function(){$("a.nav_compaign",this).addClass("selected");$(".sub_compaign").show(); 
                    $("a.nav_worker",this).removeClass("selected");$(".sub_work").hide();},
		function(){$("a.nav_compaign",this).removeClass("selected");$(".sub_compaign").hide();
	});
    
    $("#nav_3").hover(
		function(){$("a.nav_worker",this).addClass("selected");$(".sub_work").show();
                    $("a.nav_compaign",this).removeClass("selected");$(".sub_compaign").hide();},
		function(){$("a.nav_worker",this).removeClass("selected");$(".sub_work").hide();
	});
    
});

var tooltip = function(){
    var positionTooltip = function(event) {
        var tPosX = event.pageX
        var tPosY = event.pageY+20;
        $('div.tooltip').css({top: tPosY, left: tPosX});
    };
    var showTooltip = function(event) {

        $('div.tooltip').remove();
        $('<div class="tooltip">' + _upload_toooltip + '</div>').appendTo('body');
        positionTooltip(event);
    };

    var hideTooltip = function() {
        $('div.tooltip').remove();
    };

    var  tooltip =  $('.qq-upload-button').filter('div');
    //alert(tooltip.length);
    $(tooltip).hover(showTooltip, hideTooltip).mousemove(positionTooltip);
}

var go_cartoon = function(e){
    event_ignore(e);
    location.href = '/story/c5'
};

var jquery_test = function(){
    var cc=document.createElement("div");
    $(cc).text("jquery okay");
    $('body').append(cc);
};

var event_ignore = function(e){
    var tagName = e.target.nodeName;
    if(tagName=="A"){
        e.preventDefault();
    }
};

var get_uri = function(){
    var url = document.location.href;
    var array_url = (url).split("/");
    var len = array_url.length;
    var uri = "";

    if(len > 4 ){
        for(var i=3 ; i < len; i++){
            if(i==3){
                uri += array_url[i];
            }else{
                uri += "/"+array_url[i];
            }
        }
    }else{
        //uri += "/"+array_url[len - 1];
        uri += array_url[len - 1];
    }
    return encodeURIComponent(uri);
};

var twitter_login = function(e){
    event_ignore(e);
    yesno(_twitter_login, twitter_login_go);
    
};

var twitter_login_go = function(e){
    var url = "/twitter?return_page="+get_uri();
    location.href = url;
};


var twitter_logout = function(e){
    event_ignore(e);
    var url = "/twitter/logout?return_page="+get_uri();
    location.href = url;
};

var show_and_fadeout_status = function(text)
{
    $("#div_status_inner").text(text);
    $("#div_status").slideDown('slow').delay(1200).slideUp('fast');
};

var act_function;
var yesno = function(msg, action_function)
{
    act_function = action_function;
    
    msg = msg + "<span class='yesno'>";
    msg = msg + "<a href='#' onclick=\"yesno_yes();return false;\">네!</a> ";
    msg = msg + "<a href='#' onclick=\"yesno_no();return false;\">아니요.</a>";
    msg = msg + "</span>";

    $("#div_yesno_inner").html(msg);
    $("#div_yesno").fadeIn('normal');

};

var yesno_yes = function()
{
    act_function();
    $("#div_yesno").fadeOut('normal');
};

var yesno_no = function()
{
    $("#div_yesno").fadeOut('normal');
    if($('#category_code').val() == 'st'){
        $('#none_twitter').fadeIn('normal');
        $('#open').val("1");
    }

};

var modify_go = function(_id){
    $("#password").hide();
    modify(_id);
};

var modify = function(_id)
{
    if($('#id').length == 1){
        
        $("#dialog").dialog("destroy");

        var password = $("#password_check"),
        allFields = $([]).add(password);

        function checkLength(o,n,min,max) {
            if ( o.val().length > max || o.val().length < min ) {
                //o.addClass('ui-state-error');
                return false;
            } else {
                return true;
            }

        }

        function checkRegexp(o,regexp,n) {

            if ( !( regexp.test( o.val() ) ) ) {
                //o.addClass('ui-state-error');
                return false;
            } else {
                return true;
            }
        }

        $("#dialog-form").dialog({
            autoOpen: false,
            height: 200,
            width: 350,
            modal: true,
            buttons: {
                '확인': function() {
                    //var bValid = true;
                    check_password(_id, this);
                },
                '취소': function() {
                    $(this).dialog('close');
                }
            },
            close: function() {
                allFields.val('').removeClass('ui-state-error');
            }
        });
                
        $('#dialog-form').dialog('open');
    }
};

var set_modify_contents = function(_id){
    
    var url = "/ajax/get_board_item/"+_id;
    $.getJSON(url, function(data) {
            
        $('#id').val(data.id);
        $('#screen_name').val(data.screen_name);
        $('#email').val(data.email);
        $('#web_page').val(data.web_page);
        $('#contents').val(data.contents);

        //$("#screen_name").attr('class','typeText disabled');
        $("#screen_name").addClass('disabled');
        $("#screen_name").addClass('focus');
        $("#screen_name").attr('disabled','disabled');
        $("#password").hide();
    });
};

var check_password = function(_id, _obj){
    var val = $("#password_check").val();
    var url = "/ajax/check_password/"+_id +"/"+val;
    $.getJSON(url, function(data) {
        if(data.check){
            $(_obj).dialog('close');
            set_modify_contents(_id);
        }else{
            show_and_fadeout_status("패스워드가 틀렸습니다.");
        }
    });
};

var form_reset = function(){
    $("#id").val("");
    $("#screen_name").val("");
    $("#password").val("");
    $("#email").val("");
    $("#web_page").val("");
    $("#contents").val("");

    $("#screen_name").removeClass("focus");
    $("#password").removeClass("focus");
    $("#email").removeClass("focus");
    $("#web_page").removeClass("focus");

    $("#screen_name").attr('readonly','');
    $("#password").show();
    $('#contents_len').text('100');
};


var validator = function(_id){
    if(typeof _id=="undefined" || _id==""){
        var screen_name = $('#screen_name').val();
        var screen_name_pattern = /[^(ㄱ-ㅎ가-힣a-zA-Z)]/;
        var screen_name_len = screen_name.length;
	    
        if (screen_name_len <= 1 || screen_name_len > 10){
            show_and_fadeout_status(_val_check_name);
            $('#screen_name').focus();
            return false;
	        
        }else if(screen_name_pattern.test(screen_name)){
            show_and_fadeout_status(_val_check_name_ke);
            $('#screen_name').focus();
            return false;
	        
        }
	
        var password = $('#password').val();
        var password_len = password.length;
	
        if (password_len < 4 || password_len > 10) {
            show_and_fadeout_status(_val_check_pwd);
            $('#password').focus();
            return false;
	        
        }
    
    }
    
    var email = $('#email').val();
    var email_len = email.length;
    
    if (email_len == 0) {
        show_and_fadeout_status(_val_check_email);
        $('#email').focus();
        return false;
    	
    }else{
        if(!check_mail(email)){
            show_and_fadeout_status(_val_check_email_false);
            $('#email').focus();
            return false;
    		
        }
    }

    var web_page = $('#web_page').val();
    var web_page_len = web_page.length;
    
    if (web_page_len != 0) {
        if(!check_url(web_page)){
            show_and_fadeout_status(_val_check_web);
            $('#web_page').focus();
            return false;
	    	
        }
    }

    return check_contents_by_len();

};
var check_contents_by_len = function(){

    var contents = $('#contents').val();
    var contents_len = contents.length;
    
    if (contents_len == 0) {
        show_and_fadeout_status(_val_check_contents);
        $('#contents').focus();
        return false;

    }else if (contents_len > 100) {
        show_and_fadeout_status(_val_check_contents_long);
        $('#contents').focus();
        return false;

    }else{
        
        return true;
    }
    
};

var check_mail = function(email){
    mail01 = /[^@]+@[A-Za-z0-9_-]+[.]+[A-Za-z]+/;
    mail02 = /[^@]+@[A-Za-z0-9_-]+[.]+[A-Za-z0-9_-]+[.]+[A-Za-z]+/;
    mail03 = /[^@]+@[A-Za-z0-9_-]+[.]+[A-Za-z0-9_-]+[.]+[A-Za-z0-9_-]+[.]+[A-Za-z]+/;

    if(mail01.test(email))return true;
    if(mail02.test(email))return true;
    if(mail03.test(email))return true;
    return false;
};

var check_url = function(url){
    c_url = /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
    if(c_url.test(url))return true;
    return false;
};

/* 게시판 공통 */
var btn_init = function(){
    var ch_obj = $("#btn_twitter_login").length;
    if(ch_obj == 1){
        $("#btn_twitter_login").click(twitter_login);

    }else{
        $("#btn_twitter_logout").click(twitter_logout);

    }

    $("#tw_write").click(twitter_write);
    $("#content_write").click(content_write);
    $("#tw_reset").click(form_reset);

    $("#contents").keyup(function(e){
        chklen(e.currentTarget, 100, 'contents_len');
    });

    $("#screen_name").keyup(input_check_bg);
    $("#password").keyup(input_check_bg);
    $("#email").keyup(input_check_bg);
    $("#web_page").keyup(input_check_bg);
    
};

var twitter_write = function(){
    if(check_contents_by_len()){
        var content = $("#req").serialize();
        var get_url = '/twitter/write';

        $.ajax({
           type: "POST",
           url: get_url,
           data: content,
           dataType: "json",
           success: tw_write_success
         });
    }
};

var tw_write_success = function(data){
    if(data.error == 'undefined' || data.error == '' || data.error == null){
        show_and_fadeout_status(_twitting_0);
        $("#contents").val("");
        $("#contents_len").text(100);
        first_get_list();

    }else{
        //show_and_fadeout_status(_twitting_1);
        // "Status is a duplicate."
        show_and_fadeout_status(data.error);

    }
};

var content_write = function(){

	var _id = $("#id").val();
    if(validator(_id)){
        var content = $("#req").serialize();
        if(_id==""){
            var get_url = '/ajax/write';

        }else{
            var get_url = '/ajax/update';

        }

        $.ajax({
           type: "POST",
           url: get_url,
           data: content,
           dataType: "json",
           success: function(data){
               if($("#id").val()==""){
                    content_write_success(data);
               }else{
                    content_update_success(data);
               }
           }
         });
    }
};

var content_write_success = function(data){
    form_reset()
    show_and_fadeout_status(data.msg);
    first_get_list();
};

var content_update_success = function(data){
	$("#screen_name").attr('class','typeText');
    $("#screen_name").attr('disabled','');
    form_reset()
    show_and_fadeout_status(data.msg);
    var data = $.data(document.body, 'page_data');
    var cc = $('#category_code').val();
    get_list(data.page, data.pagesize, cc);
};

var del_go = function(_id){

if(confirm('삭제 하시겠습니까?')){
del_start(_id);
}
/*
yesno(_check_del, function(){
del_start(_id);
});
*/
};

var del_start = function(_id){
	var content = _id;
	var get_url = '/ajax/del/'+_id;

    $.ajax({
       type: "POST",
       url: get_url,
       data: content,
       dataType: "json",
       success: function(data){
           content_del_success(data);
       }
     });
};

var content_del_success = function(data){
//    form_reset()
    show_and_fadeout_status(data.msg);
    first_get_list();
};

var first_get_list = function(){
    var cc = $('#category_code').val();
	get_list(1,10, cc);
};

var chklen = function(obj_textarea, int_chklen, signboxid)
{
    var magStr = $(obj_textarea).val();
    var calcuLen = int_chklen - magStr.length;
    if(calcuLen < 0){
        $('#'+signboxid).html("<font color='#FF0000'>"+calcuLen+"</font>");
    }else if(calcuLen < 10){
        $('#'+signboxid).html("<font color='#FF0000'>"+calcuLen+"</font>");
    }else if(calcuLen < 20){
        $('#'+signboxid).html("<font color='#000000'>"+calcuLen+"</font>");
    }else{
        $('#'+signboxid).html(calcuLen);
    }
};

var  input_check_bg = function(e){
    var obj = e.currentTarget;
    var val = $(obj).val();
    if(val.length==0){
        $(obj).removeClass('focus');
    }else{
        $(obj).addClass('focus');
    }
};
