/*(c)Richard Kraayenhagen*/
var screenActive = 1;
$(window).blur(function(event){ screenActive=0; });
$(window).focus(function(event){ screenActive=1; });
var more 		= '';

var server = 'http://'+window.location.host+'/';
var api = 'http://owlin.com/';

var baloon = function(obj, html){
	$('.block'+obj).removeClass("baloon").addClass("hidden");
	var pos = $('.'+obj).offset();
	var width = $('.'+obj).width();
	$("body").append('<div class="baloon block'+obj+'" style="top: '+Math.floor(pos.top)+'px;left: '+Math.floor(pos.left+width+11)+'px;"><div class="arrow"></div><div class="text">'+html+'</div></div>');
}

var removeBaloon = function(obj){
	$(".baloon.block"+obj).remove();
}

function loadCss(css){
	$("head").append('<link href="'+css+'" rel="stylesheet" />');
}

var user=[], logged=[], blog=[];

function gebid(id){
	return document.getElementById(id);
}

function ec(str){
	return encodeURIComponent(str);	
}
function dec(str){
	return decodeURIComponent(str);	
}

function none(result){ return false;}

function setCookie(name,string){
	ajax("setcookie.php","name="+name+"&value="+string,none);
}

/*	Returns string with all characters replaced to underscores. Input: hello hell/world. Output: hello_hell_world*/
function parseUrl(text){
	return text.replace(/[^a-z0-9]+/gi,'_');
}

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 nl2br (str, is_xhtml) {
	breakTag = '<br />';
	if (typeof is_xhtml != 'undefined' && !is_xhtml)
		breakTag = '<br>';
	return (str + '').replace(/([^>]?)\n/g, '$1'+ breakTag +'\n');
}

function Alert(title,string,name){
	$("body").append('<div class="greyOverLayer"></div><div class="alertContainer"><div class="AlertBox '+name+'"><div class="title">'+title+'</div><div class="content" id="AlertContent">'+string+'</div></div></div>');
}

function CloseAlert(){
	$(".greyOverLayer, .alertContainer").hide();
	$(".baloon").remove();
}

function show(id){
	gebid(id).style.display="block";
}

function hide(id){
	gebid(id).style.display="none";
}

function in_array(needle, haystack, argStrict) {
    var key = '', strict = !!argStrict;
    if(strict)
        for(key in haystack)
            if(haystack[key] === needle)
                return true;
    else
        for(key in haystack)
            if(haystack[key] == needle)
                return true; 
    return false;
}

function strtolower( str ) {
	return (str+'').toLowerCase();
}

function ajaxUrl(){	
	var url = jQuery.url.attr("anchor");
	if(url!=null){
		if(url.match('search\\S*'))
			searchmessage(url);
	}
}

function getArrayByKey(array, index, value){
	var respond;
	$.each(array, function(i, row){
		if(array[i][index]==value)
			respond = array[i];
	});
	return respond;
}

function updateArrayByKey(array, index, value, newValue){
	var arrayReturn = array;
	$.each(array, function(i, row){
		if(array[i][index]==value)
			arrayReturn[i][index]=newValue;
	});
	return arrayReturn;
}

function jsonLength(array){
	var output = 0;
	$.each(array, function(i, k){
		output++;
	});
	return output;
}

function updatePhotoForm(photoLink, formName){ //alert(photoLink+','+formName);
	$(".photo"+formName+" .photo img").attr("src", "up/thumb/"+photoLink);
	$(".p"+formName).val(photoLink);
	$(".photo"+formName+" .photoName").val(photoLink);
	if(formName == 'userPhoto')
		return false;
	else if(formName == 'progressPhoto'){
		$.post("api/userSettings/null.json", { thumbnail:photoLink });
		$(".addAvatar .photoFrame img").attr("src", 'up/large/'+photoLink);
		$(".side .lastMessage .thumbnail img").attr("src", 'up/thumb/'+photoLink);
	}
	else if(formName == 'newMessagePhoto')
		newMessage.addAlbum(photoLink);
	else if(formName == 'newBlogPhoto')
		var nothing;
	else theme.form.setImage(formName, photoLink);
}

function toggleAdmin(ObjClass){
	if($('.admin.'+ObjClass).hasClass("active")){
		$('.admin.'+ObjClass).removeClass("active");
		$('.admin.'+ObjClass+' .title span').html("&#9658;");
	}
	else{
		$('.admin.'+ObjClass).addClass("active");
		$('.admin.'+ObjClass+' .title span').html("&#9660;");
	}
}

function colorfields(){
	$("body").append('<script type="text/javascript" src="scripts/colorpicker.js"></script>');
}

var version = parseFloat(navigator.appVersion.split('MSIE')[1]);
if ((version >= 5.5) && (version < 7) && (document.body.filters)) {
	document.getElementsByClassName('ie-fix-opacity').each(function(poElement){
		// if IE5.5+ on win32, then display PNGs with AlphaImageLoader
		var cBGImg = poElement.currentStyle.backgroundImage;
		var cImage = cBGImg.substring(cBGImg.indexOf('"') + 1, cBGImg.lastIndexOf('"'));

		poElement.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + cImage + "', sizingMethod='scale')";
		poElement.style.backgroundImage = "none";
	});
}

var scrollMessagesOffset = 20;
function scroll(e){
	/*if(window.pageYOffset > window.innerHeight){
		$(".scrollTop").addClass("active");
		window.onscroll = undefined;
	}
	else
		$(".scrollTop").removeClass("active");*/
	if($(window).scrollTop() == $(document).height() - $(window).height()){
    	if(more)
			loadMore();
  	}
}

function str_replace (search, replace, subject, count) {
    var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }
    for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {
            temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}
        }
    }
    return sa ? s : s[0];
}

function autoScroll(){
	if(screen.height<650){
		document.body.scrollTop = 0;
		document.documentElement.scrollTop = 0;	
	}
	else
		$('html,body').animate({scrollTop: "0px" }, 300);
	if(keyNav)
		keyNav.activeMessage = $(".message:first-child");
}

function popup(message){
	var a = 
	'<div class="alert"><table cellpadding="0" cellspacing="0">'+
		'<tr class="firstRow"><td class="left"></td><td class="center"></td><td class="right"></td></tr>'+
		'<tr class="centerRow"><td class="left"></td>'+
		'<td class="center">'+message+
		'</td><td class="right"></td></tr>'+
		'<tr class="lastRow"><td class="left"></td><td class="center"></td><td class="right"></td></tr>'+
	'</table></div>';
	$(document).ready(function(){
		$("body").append(a);
		setTimeout('$(".alert").animate({ bottom : "10px" }, 800).animate({ bottom : 0 }, 50);', 600);
	});
}

function implode(separator, array){
	var output = '';
	$.each(array, function(i, node){
		if(i != 0)
			output += separator;
		output += node;
	});
	return output;
}

function integer(string){
	var regex = /[^0-9]+/;
	return string.replace(regex, "");
}

function print_r(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	if(typeof(arr) == 'object') { //Array/Hashes/Objects 
		for(var item in arr) {
			var value = arr[item];
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += print_r(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	return dumped_text;
}

var connection,
search = {
	update : function(value, e){
		var keynum;
		var keychar;
		var numcheck;
		if(window.event) // IE
			keynum = e.keyCode;
		else if(e.which) // Netscape/Firefox/Opera
			keynum = e.which;
		if(keynum != 40 && keynum != 38 && keynum != 39 && keynum != 37){
			if(value.length > 2){
				if(connection)
					connection.abort();
				connection = $.get("spotlight.php?s="+value, function(data){
					$(".spotlight").remove();
					$("body").append('<div class="spotlight"><table cellpadding="0" cellspacing="0">'+data+'</table></div>');
					$(".toolbar .search").removeClass("loading");
					search.activeRow(search.currentrow);
				});
				$(".toolbar .search").addClass("loading");
			}
			else {
				$(".spotlight").remove();
			}
		}
	},
	currentrow 	: 0,
	location	: '',
	keystroke : function(e){
		var keynum;
		var keychar;
		var numcheck;
		if(window.event) // IE
			keynum = e.keyCode;
		else if(e.which) // Netscape/Firefox/Opera
			keynum = e.which;
		if(keynum==38){ // up
			if(search.currentrow > 0){
				var up = search.currentrow - 1;
				$(".spotlight tr").removeClass("active");
				search.activeRow(up);
				search.currentrow = up;
			}
			return false;
		}
		else if(keynum==40){  // down
				var down = search.currentrow + 1;
				$(".spotlight tr").removeClass("active");
				search.activeRow(down);
				search.currentrow = down;
			return false;
		}
		else if(keynum == 13){ // enter
			var val = $(".spotlight tr.active").attr('loc');
			if(val)
				window.location = val;
			else
				window.location = '../../../../search/'+$(".toolbar .search input[name=v]").val();
			return false;
		}
		else
			return true;
	},
	activeRow : function(row){
		$(".spotlight tr:nth-child("+row+")").addClass("active");
	}
}


function getScreenSize(){
	return 	(typeof(window.innerWidth)=='number')?{height:window.innerHeight,width:window.innerWidth}://Not IE
	(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight))?{height:document.documentElement.clientHeight,width:document.documentElement.clientWidth}://IE 6+ in standards compliant mode
	(document.body && (document.body.clientWidth || document.body.clientHeight))?{height:document.body.clientHeight,width:document.body.clientWidth}:
	{height:0,width:0};
}

var testEvent = null;
var bookmark = {
	object : null,
	active : false,
	animating : false,
	init : function(){
		bookmark.object = $('<div class="bookmark" id="bookmark"><div class="logo"></div><div class="links"></div></div>');
		bookmark.object.bind("mouseover",bookmark.load);
		bookmark.object.bind("mouseout",bookmark.unload);
		var links = $(".links",bookmark.object);
		var menu = [
			{	title:"New message", 	href:"new" 	},
			{	title:"Settings",		href:"settings/general"},
			{	title:"Logoff",			href:"logoff"	}
		];
		for(link in menu){
			links.append('<div class="link"><a href="'+menu[link].href+'">'+menu[link].title+'</a></div>');		
		}
		$("#container").append(bookmark.object);
	},
	load : function(e){
		//if(bookmark.active==true)return;
		bookmark.object.stop().animate({ height:"230px"},500);
		//bookmark.active=true;
	},
	unload : function(e){
		//document.title = e.originalTarget.id;
		//document.title = $(e.relatedTarget).parents(".bookmark")[0].tagName;
		//if(bookmark.active==false)return;
		bookmark.object.stop().animate({ height:"60px"},500);
		setTimeout("bookmark.active=false;",500);
	}
};
