$(function(){
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
});

function errortooltip(ele, msg){
	killtt();
	$('.errtt').remove();
	ele = $(ele);
	var tt = $('<div />').addClass('errtt').html(msg);
	tt.css({
		left: Math.ceil(ele.offset()["left"]) + "px",
		top: ele.height() + Math.ceil(ele.offset()["top"]) + "px",
		width: (ele.width() - 4) + "px"
	});
	tt.appendTo('body');
	ele.bind("mouseleave", killtt);
	return false;
}

function killtt(e){
	$('.errtt').remove();
	return false;
}

function clickcb(e){
	var ele;
	if(e.target){
		ele = $(e.target);
	}else{
		ele = $(e);
	}


	var pare = ele.parent();
	var cbele = pare.find("input");
	var cbid = cbele.attr("id");
	var chkd = cbele.attr("checked");
	cbele.attr("checked", !chkd);
	updateCB(cbele);
	return false;
}


function updateCB(ele){
	if(ele.attr("type") == "radio"){
		$('input[type=radio][name=' + ele.attr("name") + ']').each(function(i, e){
			e = $(e);
			var chkd = e.attr("checked");
			if(chkd){
				e.parent().addClass("chkd");
			}else{
				e.parent().removeClass("chkd");
			}
		});
		
	}else{
		var chkd = ele.attr("checked");
		if(chkd){
			ele.parent().addClass("chkd");
		}else{
			ele.parent().removeClass("chkd");
		}		
	}
}

function checktbtitle(e){
	var ele;
	if(e.target){
		if(e.keyCode){
			if(
				e.keyCode == 8 || // backspace
				e.keyCode == 9 || // tab
				e.keyCode == 13 || // esc
				e.keyCode == 27 || // enter
				e.keyCode == 16 || // shift
				e.keyCode == 18 || // enter
				e.keyCode == 17 || // ctrl
				e.keyCode == 224 // omppu
			) return false;
		}
		ele = $(e.target);
	}else{
		ele = $(e);
	}

	if(ele.attr("value") == ele.attr("title") || ele.attr("value").length == 0){
		ele.addClass("init_val");
		ele.attr("value", ele.attr("title"));
	}else{
		ele.removeClass("init_val");
	}
}

function addMembers(host1, host2){
	var ind = $('.jasen').size();
	if(ind <= 0) $('#sbmt').show();
	getMemberDiv(++ind).appendTo(host1);
	getMemberDiv(++ind).appendTo(host2);
	return false;		
}

function getMemberDiv(ind){
	var jasenSpan = $('<span />').text('JÄSEN ' + ind);
	var jasenDiv = $('<div />').addClass('jasen');
	var firstDiv = $('<div />').addClass('tb').append($('<input />').attr("type", "text").attr("name", "firstname" + ind).attr("value", "").attr("title", "ETUNIMI"));
	var lastDiv = $('<div />').addClass('tb').append($('<input />').attr("type", "text").attr("name", "lastname" + ind).attr("value", "").attr("title", "SUKUNIMI"));
	var emailDiv = $('<div />').addClass('tb').append($('<input />').attr("type", "text").attr("name", "email" + ind).attr("value", "").attr("title", "EMAIL"));
	jasenSpan.appendTo(jasenDiv);
	bindTB(1, firstDiv.find("input"));
	bindTB(1, lastDiv.find("input"));
	bindTB(1, emailDiv.find("input"));
	firstDiv.appendTo(jasenDiv);
	lastDiv.appendTo(jasenDiv);
	emailDiv.appendTo(jasenDiv);
	return jasenDiv;
}

function bindTB(i,c){
	c = $(c);
	checktbtitle(c);
	c.bind("keyup", checktbtitle);
	c.bind("blur", checktbtitle);
	c.bind("focus", function(e){
		var ele = $(e.target);
		if(ele.attr("value") == ele.attr("title")){
			ele.attr("value", "");
		}
	});	
}

function ajaxFileUpload(team_id){
	$.ajaxFileUpload({
		url:'/save_team_img.php?team=' + team_id,
		secureuri:false,
		fileElementId:'teamimgfile',
		dataType: 'json',
		success: function (data, status){
			if(typeof(data.error) != 'undefined'){
				if(data.error != ''){
					//alert(data.error);
				}else{
					//alert(data.msg);
					$('.teamimg').attr("src", "/user_images/" + team_id + "g.jpg?x=" + Math.floor(Math.random()*110000));
				}
			}
		},
		error: function (data, status, e){
			alert(e);
		}
    });
	
	return false;

}

function setLabelOn(ele){
	var l = ele.siblings('label[for="' + ele.attr("id") + '"]');
	l.fadeIn(200);
}
function setLabelOff(ele){
	var l = ele.siblings('label[for="' + ele.attr("id") + '"]');
	l.fadeOut(200);
}

function showBox(ele){
	if(ele.length > 0){
		var out = $('#colw410 .box:visible:not(.w310)');
		if(out.length > 0){
			out.fadeOut(150, function(){
				ele.fadeIn(250);
			});
		}else{
			ele.fadeIn(250);
		}
	}
}

function updateShoutbox(data){
    if(data){
        sbJSONparse(data);   
    }else{
        $.getJSON("/shoutbox.php?g=" + $('#shoutgroup').val(), function(data){
            sbJSONparse(data)
        });
    }
    setTimeout(updateShoutbox, 2000);
}

function sbJSONparse(data){
    var sb = $('#shoutbox');
    var newsb = $('<div />');
    if(! data || ! data.length) return;
    for(var i = 0; i < data.length; i++){
        var shoutitem = $('<div />').addClass('shoutitem');
        if(data[i].is_admin == "1" || data[i].is_isonen == "1") shoutitem.addClass('isonen');
        var sender = $('<span />').addClass('sender').text(data[i].sender + ": ");
        var msg = $('<span />').addClass('msg').text(data[i].msg);
        shoutitem.append(sender);
        shoutitem.append(msg);
        newsb.append(shoutitem);
    }    
    sb.html(newsb.html());
}

var sendShout = function (){
    var sho = $('#shout');
    if(sho.length <= 0 || sho.val().length <= 0) return;
    $.post("/shoutbox.php?g=" + $('#shoutgroup').val(), { msg: sho.val()}, function(data){
        updateShoutbox(data);   
    }, "json");
    sho.val("");
}

var toggleKummi = function (){
    var me = $(this);
    var g = getIntFromClass("g", me);
    if(g <= 0) return;

    $.get("/togglekummi.php?g=" + g, function(data){
        if(data == "1"){
            showmsg("Olet nyt tämän joukkueen kummi!", false);   
            //me.text('lopeta kummiutesi');
            $('#kummiksi').fadeOut(500);
        }else{
            showmsg("Et ole enää tämän joukkueen kummi!", false);   
            me.fadeOut(500);
            me.text('ala joukkueen kummiksi');
        }
        updatePoints();
    });
}

$(function(){
	$('#newteamform label').hide();
	
	$('.topbox').append($('<div />').addClass('enkeli'));
	
	if($('#shoutbox').length > 0){
	    updateShoutbox();   
	}
    
    $('.togglekummi').click(toggleKummi);
/*    
    $('.removefromgroup').click(function(e){
        e.preventDefault();
        alert("Toiminto ei vielä käytössä!");
    });

    $('.toggleisonen').click(function(e){
        e.preventDefault();
        alert("Toiminto ei vielä käytössä!");
    });
*/
    $('#shoutsend').click(sendShout);
    $('#shoutform').submit(function(e){ e.preventDefault(); sendShout(); });


	var focusItem = null;
	$('#newteamform input').mouseover(function(){
		var me = $(this);
		if(me.attr("id") != focusItem) setLabelOn(me);
	});

	$('#newteamform input').mouseout(function(){
		var me = $(this);
		if(me.attr("id") != focusItem) setLabelOff(me);
	});

	$('#newteamform input').focus(function(){
		var me = $(this);
		focusItem = me.attr("id");
		setLabelOn(me);
	});
	
	$('#newteamform input').blur(function(){
		var me = $(this);
		focusItem = 0;
		setLabelOff(me);
	});

	$('#newteamform').submit(function(e){
		var me = $(this);
		var joukkuenimi = me.find('#joukkue_nimi');
		if(joukkuenimi.val().length <= 0){
			e.preventDefault();
			showmsg('Ryhmän lempinimi pitää antaa', true);	
		}
	});


	$('#newteam,#newteam2').click(function(e){
		var me = $(this);
		e.preventDefault();
		var ntb = $('#newteambox');
		me.addClass("activelink");
		$('.adminlinks').children('a:not(#newteam)').removeClass("activelink");
		
		showBox(ntb);
	});

	$('.addgooddeed').click(function(e){
		var me = $(this);
		e.preventDefault();
		var gdb = $('#gooddeedbox');
		me.addClass("activelink");
		$('.adminlinks').children('a:not(.addgooddeed)').removeClass("activelink");
		showBox(gdb);
	});

	$('.grouplink').click(function(e){
		var me = $(this);
		e.preventDefault();
		var thisbox = $(me.attr("href"));
		me.addClass("activelink");
		$('.adminlinks').children('a:not([href=' + me.attr("href") + '])').removeClass("activelink");
		showBox(thisbox);
	});


    $('#upl_teamimg').click(function(eve){
        var me = $(this);
        eve.preventDefault();
        
        var ti = $('#teamimgfile');
        var t_id = ti.parents().find("#team_id").val();
        if(ti.length <= 0) return;
        ajaxFileUpload(t_id);
        return false;
    });

    $('#teampickerselect').change(function(){
        var me = $(this);
        var v = me.val();
        if(v.length > 0){
			if(me.hasClass("tehtavat")){
				window.location = '/tehtavat/' + v;   
			}else if(me.hasClass("oma")){
				window.location = '/oma/' + v;   
			}else{
	            window.location = '/joukkue/' + v;   
    		}
    	}
    });

	$(".togglenexthidden").click(function(eve){
	    var me = $(this);
	    eve.preventDefault();
	    var hid = null;
	    
	    if(me.next().hasClass("hidden")){
	        hid = me.next();   
	    }else{
	        hid = me.parents().find('.hidden');
	    }
        hid.slideToggle(500, function(){setSize();}); 
	});
	
	$(".togglehidden").click(function(eve){
	    var me = $(this);
	    eve.preventDefault();
	    var hid = null;
	    var hid_id = getStrFromClass("h_", me);

		hid = $('#' + hid_id);   

        hid.slideToggle(500, function(){setSize();}); 
	});
	
	var rk = $('#riparikirjaimet');
	if(rk.length > 0){
		var ltrs = [];

		$.getJSON("/riparit.php", function(groupsJson){
		    if(groupsJson.length <= 0){
		        rk.parent().hide();
		        return;   
		    }
			for(var i= 0; i < groupsJson.length; i++){
				var ltr = groupsJson[i].title.substr(0,1);
				if(ltrs.join(",").indexOf(ltr) < 0){
					ltrs[ltrs.length] = ltr.toUpperCase();
				}
			}
			ltrs.sort();
			var ltrelem;
			for(var i = 0; i < ltrs.length; i++){
				ltrelem =
					$('<a>')
						.addClass('riparikirjain')
						.text(ltrs[i])
						.attr("id", "kirjain-" + ltrs[i])
						.attr("href", "#kirj-" + ltrs[i])
						.click(function(e){
							var me = $(this);
							var ltr = me.attr("href").replace("#kirj-", "");
							var rl = $('#riparilista');
							rl.empty();
							for(var i = 0; i < groupsJson.length; i++){
								if(groupsJson[i].title.substr(0,1).toUpperCase() == ltr){
									rl.append(
										$('<a>')
											.addClass('ripari')
											.attr('href', '/joukkue/' + groupsJson[i].urlname)
											.text(
												(groupsJson[i].srk_string.length > 0 ? 
													groupsJson[i].srk_string + ": " : ""
												) + groupsJson[i].title
											)
									);
								}
							}						
						})
					;
				rk.append(ltrelem);
			}
		});
	}
	

	$("div.cb input").each(function(i, c){
		c = $(c);
		c.hide();
		var link = $("<a/>").attr("href", "#");
		link.bind("click", clickcb);
		link.appendTo(c.parent());
		updateCB(c);
	});

	$("div.tb input").each(bindTB);

	$('.usercard .ucnickname .val a').bind("click", ucedit);
	$('.usercard .ucsrk .val a').bind("click", ucedit);
	$('.usercard .uchobbies .val a').bind("click", ucedit);

	$('.usercard .ucnickname .edit a').bind("click", ucsave);
	$('.usercard .ucsrk .edit a').bind("click", ucsave);
	$('.usercard .uchobbies .edit a').bind("click", ucsave);


    setSize();
    setTimeout("setSize();", 500);
	var hashval = $.param.fragment();
	if(hashval.length > 1){
		if(hashval == "_adddeed"){
			$('.addgooddeed').click();
		}
		if(hashval == "uusijoukkue"){
			$('#newteam').click();
		}

		var grouplink = $('a.grouplink[href=\"#' + $.param.fragment() + '\"]');
		if(grouplink.length > 0){
			grouplink.click();
		}
	}

});

function setSize(){
    if(FB && FB.Canvas) FB.Canvas.setSize();    
}

function strpad(val){
	return (!isNaN(val) && val.toString().length==1)?"0"+val:val;
}



function showmsg(msg, err, elem){
/*	var msgelem = null;
	if(elem){
	    msgelem = $('#' + elem);
	}else{
	    msgelem = $('.msg');
	}
	*/
	//if(msgelem.length <= 0) msgelem = $('<div />').addClass("msg").appendTo($('#content'));

    var msgelem = $('<div />').attr("id", "notification");
	
	msgelem.removeClass('err');
	if(err) msgelem.addClass('err');
    /*msgelem.css({
        "left" :  (($('body').width() / 2) - 100) + "px",
        "top" : "150px"
    });*/
    
	msgelem.html(msg);
    $('body').append(msgelem);
	msgelem.fadeIn(1000, function(){
	    setTimeout(function(){
	        msgelem.fadeOut(5000, function(){msgelem.remove();});
	    }, 1000);   
	});

	return;
}

function ucedit(e){
    var me = $(this);
	var ele = me.parent();
	var pardiv = ele.parent();
	ele.fadeOut(100, function(){
	    pardiv.find(".edit").fadeIn(100);
	});
	return false;
}

function ucsave(e){
    var me = $(this);
	var ele = me.parent();
	var pardiv = ele.parent();
	var valdiv = pardiv.find(".val");
	
	var flditem = ele.find('input,select');
	var val = flditem.val();
	
	var dt = "key=";
	if(pardiv.hasClass('ucnickname')){
	    dt += "nickname";
	}else if(pardiv.hasClass('ucsrk')){
	    dt += "srk";
	}else if(pardiv.hasClass('uchobbies')){
	    dt += "hobbies";
	}
	dt += "&value=" + val;
	
	$.ajax({
   		type: "GET",
   		url: "/save.php",
   		data: dt
 	});
	
	if(flditem.is('select')){
	    val = flditem.find('option:selected').text()   
	}
	
	valdiv.find("em").text(val);
	ele.fadeOut(100, function(){
	    var msg = "";
	    if(pardiv.hasClass('ucnickname')){
    	    msg += "Lempinimi";
    	}else if(pardiv.hasClass('ucsrk')){
	        msg += "Seurakunta";
	    }else if(pardiv.hasClass('uchobbies')){
    	    msg += "Harrastukset";
	    }
		showmsg(msg + ' tallennettu!', false);
		valdiv.fadeIn(100);
	});
    updatePoints();
	return false;
}

function updatePoints(){
    var points = $('#pointsit');
    if(points.length <= 0) return;
    
    var gid = 0;
    var uid = getIntFromClass("u", points);
    if(uid <= 0){
        gid = getIntFromClass("g", points);
        if(gid <= 0) return;
    }
    
    var url = "/userpoints.php?";
    if(uid > 0){
        url += "u=" + uid;
    }else if(gid > 0){
        url += "g=" + gid;
    }
    $.get(url, function(data){
        var d = $('<div />').html(data);
        var newdata = d.find('#pointsit');
        if(newdata.length > 0){
            points.html(newdata.html());
        }
    }, "html");
}


function isIe6(){
	if($.browser.msie && $.browser.version.substr(0, 1) == "6") return true;
	return false;
}

function qwidth(ew){
	var oneq = ew.find(".enkeliquestion");
	var w = 0;
	w += oneq.width();
	w += Math.floor(oneq.css("padding-left").replace("px", ""));
	w += Math.floor(oneq.css("padding-right").replace("px", ""));
	return w;
}

function nextQuestion(){
	var ew = $('#enkeliwrap');

	var w = qwidth(ew);

	var sl = ew.scrollLeft();
	var st = ew.scrollTop();
	var q = (sl / w) + 1;
	if(isIe6()) q = (st / 362) + 1;
	
	var curq = $('#enkeliq' + q);
	var nextq = $('#enkeliq' + (q+1));
	if(nextq.length > 0){
		nextq.css({opacity: 0});
		curq.animate({opacity: 0},"slow");
		nextq.animate({opacity: 1},"slow");

		if(isIe6()){
			ew.scrollTop(st + 362);
		}else{
			ew.animate({scrollLeft: sl + w}, "normal");
		}

		updtcur(q+1);
	}else{
		var result = $('#enkeliresult');
		var controls = $('#enkelicontrols');
		result.css({opacity: 0});
		curq.animate({opacity: 0},"slow");
		controls.animate({opacity: 0},"slow");
		result.animate({opacity: 1},"slow");
		if(isIe6()){
			ew.scrollTop(st + 362);
		}else{
			ew.animate({scrollLeft: sl + w}, "normal");
		}
	
		updtcur(q+1);
	}
	return false;
}

function updtcur(n){
	var cur = $('#num #cur');
	cur.fadeOut("normal", function(){
		cur.text(n);
		cur.fadeIn("normal");
	});
	return false;
}

function prevQuestion(){
	var ew = $('#enkeliwrap');

	var w = qwidth(ew);

	var sl = ew.scrollLeft();
	var st = ew.scrollTop();
	var q = (sl / w) + 1;
	if(isIe6()) q = (st / 362) + 1;
	
	if(q <= 1) return false;
	
	var curq = $('#enkeliq' + q);
	var nextq = $('#enkeliq' + (q-1));
	if(nextq.length <= 0) return;
	nextq.css({opacity: 0});
	curq.animate({opacity: 0},"slow");
	nextq.animate({opacity: 1},"slow");
	
	if(isIe6()){
		ew.scrollTop(st - 362);
	}else{
		ew.animate({scrollLeft: sl - w}, "normal");
	}
	
	
	updtcur(q-1);
	return false;
}

/* Helper function for getting numeric data from class names */
function getIntFromClass(start, elem){
    var elemClasses = elem.attr("class").split(" ");
    var pattern = new RegExp(start + "([0-9]+)");

    for(var i = 0; i < elemClasses.length; i++){
        var m;
        if(m = pattern.exec(elemClasses[i])){
            if(m[1]) return m[1];   
        }
    }
    return 0;
}


/* Helper function for getting numeric data from class names */
function getStrFromClass(start, elem){
    var elemClasses = elem.attr("class").split(" ");
    var pattern = new RegExp(start + "([a-zA-Z0-9]+)");

    for(var i = 0; i < elemClasses.length; i++){
        var m;
        if(m = pattern.exec(elemClasses[i])){
            if(m[1]) return m[1];   
        }
    }
    return 0;
}

