
var _w	= window;
var _d	= document;
var siteurl	= "/";
function ajax_init(is_xml) {
	var req = false;
	if (_w.XMLHttpRequest) {
		req = new XMLHttpRequest();
		if (req.overrideMimeType) {
			if( is_xml ) {
				req.overrideMimeType("application/xml");
			}
			else {
				req.overrideMimeType("text/plain");
			}
		}
	} else if (_w.ActiveXObject) {
		try { req = new _w.ActiveXObject("MSXML3.XMLHTTP"); } catch(exptn) {
		try { req = new _w.ActiveXObject("MSXML2.XMLHTTP.3.0"); } catch(exptn) {
		try { req = new _w.ActiveXObject("Msxml2.XMLHTTP"); } catch(exptn) {
		try { req = new _w.ActiveXObject("Microsoft.XMLHTTP"); } catch(exptn) {
		}}}}
	}
	return req;
}


function stingIt(id) {
	jQuery.get('stinger/' + id, '', updateDown, 'text');
}

function pollinateIt(id) { 
	jQuery.get('pollinator/' + id, '', updateUp, 'text');
}

function updateUp(data, textStatus) {
	var parts = data.split(':');
	$('#stings' + parts[0]).text(parts[2]);
	$('#pollination' + parts[0]).text(parts[1]);
}

function updateDown(data, textStatus) {
	var parts = data.split(':');
	$('#stings' + parts[0]).text(parts[2]);
	$('#pollination' + parts[0]).text(parts[1]);
}



var buzzform_enabled	= true;
var buzzform_autoopen	= false;
var buzzform_autoload_lnk	= [];
var buzzform_autoload_txt	= "";
var buzzform_urerid	= 0;
var buzzform_loading	= 0;
var buzzform_tmout	= 0;
var	buzzform_opened	= 0;
function submitBuzz() {
	_d.buzzform.buzzform_msg.value	 = trim(_d.buzzform.buzzform_msg.value);
  _d.buzzform.buzzform_title.value = trim(_d.buzzform.buzzform_title.value);

	if( _d.buzzform.buzzform_msg.value === "" ) {
		_d.buzzform.buzzform_msg.focus();
    alert('Please enter a Message');
		return false;
	}

	if( _d.buzzform.buzzform_msg.value == "What are you Buzzing about?" ) {
		_d.buzzform.buzzform_msg.focus();
    alert('Please enter a real Message');
		return false;
	}

	if( _d.buzzform.buzzform_title.value === "" ) {
		_d.buzzform.buzzform_title.focus();
    alert('Please enter a Title');
		return false;
	}

	if( _d.buzzform.buzzform_title.value == "Title ..." ) {
		_d.buzzform.buzzform_title.focus();
    alert('Please enter a real Title');
		return false;
	}

  if( _d.buzzform.category.value === "-1" ) {
		_d.buzzform.category.focus();
    alert('Please select a Category');
		return false;
	}

	_d.getElementById("buzzform_btn").blur();
	buzzform_loading	= 1;
	_d.getElementById("buzzform_loading").style.display	= "";
	var req = ajax_init();
	if( ! req ) {
		return true;
	}
	req.onreadystatechange = function() {
		if( req.readyState != 4  ) { return;}
    var txt	= req.responseText;
    if(txt.substr(0, 5) ==  "Error") {
      alert(txt);
    } else {
      window.location.href='/latest';
    }
	};
	var data	= "to_user="+encodeURIComponent(_d.buzzform.to_user.value)+"&attach_link="+encodeURIComponent(_d.buzzform.attach_link.value)+"&attach_media="+encodeURIComponent(_d.buzzform.attach_media.value)+"&buzzform_msg="+encodeURIComponent(_d.buzzform.buzzform_msg.value)+"&buzzform_title="+encodeURIComponent(_d.buzzform.buzzform_title.value)+"&category="+encodeURIComponent(_d.buzzform.category.value);
	req.open("POST", siteurl+"from:ajax/post/?r="+Math.round(Math.random()*1000), true);
	req.setRequestHeader("Content-type",	"application/x-www-form-urlencoded");
	req.send(data);
	_d.buzzform.buzzform_msg.value	= "";
	_d.buzzform.attach_link.value		= "";
	_d.buzzform.attach_media.value	= "";
	_d.buzzform.category.value	= "";
	return false;
}


function submitMessage() {
	_d.message.buzzform_msg.value	= trim(_d.message.buzzform_msg.value);

	if( _d.message.buzzform_msg.value === "" ) {
		_d.message.buzzform_msg.focus();
    alert('Please enter a Message');
		return false;
	}

	var req = ajax_init();
	if( ! req ) {
		return true;
	}

	req.onreadystatechange = function() {
		if( req.readyState != 4  ) { return;}
    var txt	= req.responseText;
    if(txt.substr(0, 5) ==  "Error") {
      alert(txt);
    } else {
      window.location.href='/post/usr:'+_d.message.username.value;
    }
	};
	var data	= "to_user="+encodeURIComponent(_d.message.to_user.value)+"&attach_link="+encodeURIComponent(_d.message.attach_link.value)+"&attach_media="+encodeURIComponent(_d.message.attach_media.value)+"&buzzform_msg="+encodeURIComponent(_d.message.buzzform_msg.value)+"&category="+encodeURIComponent(_d.message.category.value);
	req.open("POST", siteurl+"from:ajax/post/?r="+Math.round(Math.random()*1000), true);
	req.setRequestHeader("Content-type",	"application/x-www-form-urlencoded");
	req.send(data);

	return false;
}



function buzzform_close() {

	var f	= _d.buzzform;
	f.buzzform_msg.value	= "";
	_d.getElementById("buzzform_newpost").style.display	= "none";
	_d.getElementById("buzzform_tp1").style.display	= "none";
	_d.getElementById("buzzform_tp2").style.display	= "none";
	_d.getElementById("buzzform_loading").style.display	= "none";
	_d.getElementById("buzzform_success").style.display	= "none";
	buzzform_opened	= 0;
	buzzform_remove_link();
	buzzform_remove_media();
	if( buzzform_tmout ) { clearTimeout(buzzform_tmout); }
}

function buzzform_mention(username, len) {
	if( buzzform_loading || buzzform_opened == 99 ) {
		return;
	}
	if( buzzform_opened == 1 ) {
		var area	= _d.buzzform.buzzform_msg;
		var v	= area.value + " " + "@"+username;
		v	= trim( v.replace("  ", " ") );
		if( v.length > len ) {
			return;
		}
		area.value	= v + " ";
		area.onkeypress();
		area.focus();
	}
	return buzzform_open(1, len, "", 0, "@"+username+" ");
}

function buzzform_attach_link(boxtitle) {

	var id	= 'tmpid'+Math.round(Math.random()*10000);
	var src	= siteurl+'profile/mediabox/attach:link';
	var html	= '<iframe name="'+id+'" id="'+id+'" src="'+src+'" style="width: 498px; height: 165px; border: 0px solid; overflow: hidden;" width="498" height="165" border="0" frameborder="0" scrolling="no"></iframe>';
	mediabox_open(500,155,boxtitle,html);
	var nav	= navigator.userAgent.toLowerCase();
	if( nav.indexOf("msie")!=-1 && nav.indexOf("opera")==-1 && !_w.XMLHttpRequest ) {
		_d.frames[id].location	= src;
	}
}

function buzzform_attach_image(boxtitle) {

	var id	= 'tmpid'+Math.round(Math.random()*10000);
	var src	= siteurl+'profile/mediabox/attach:image';
	var html	= '<iframe name="'+id+'" id="'+id+'" src="'+src+'" style="width: 498px; height: 185px; border: 0px solid; overflow: hidden;" width="498" height="185" border="0" frameborder="0" scrolling="no"></iframe>';
	mediabox_open(500,155,boxtitle,html);
	var nav	= navigator.userAgent.toLowerCase();
	if( nav.indexOf("msie")!=-1 && nav.indexOf("opera")==-1 && !_w.XMLHttpRequest ) {
		_d.frames[id].location	= src;
	}
}

function buzzform_attach_video(boxtitle){

	var id	= 'tmpid'+Math.round(Math.random()*10000);
	var src	= siteurl+'profile/mediabox/attach:video';
	var html	= '<iframe name="'+id+'" id="'+id+'" src="'+src+'" style="width: 498px; height: 165px; border: 0px solid; overflow: hidden;" width="498" height="165" border="0" frameborder="0" scrolling="no"></iframe>';
	mediabox_open(500,155,boxtitle,html);
	var nav	= navigator.userAgent.toLowerCase();
	if( nav.indexOf("msie")!=-1 && nav.indexOf("opera")==-1 && !_w.XMLHttpRequest ) {
		_d.frames[id].location	= src;
	}
}

function buzzform_attach_link_ok(txt, data) {

	_d.getElementById("postmedia_link_on_txt").innerHTML	= txt;
	_d.getElementById("postmedia_link").style.display	= "none";
	_d.getElementById("postmedia_link_on").style.display	= "block";
	_d.buzzform.attach_link.value	= data;
}

function buzzform_attach_image_ok(txt, data) {

	_d.getElementById("postmedia_pic_on_txt").innerHTML	= txt;
	_d.getElementById("postmedia_pic").style.display	= "none";
	_d.getElementById("postmedia_video").style.display	= "none";
	_d.getElementById("postmedia_pic_on").style.display	= "block";
	_d.buzzform.attach_media.value	= data;
}

function buzzform_attach_video_ok(txt, data) {

	_d.getElementById("postmedia_video_on_txt").innerHTML	= txt;
	_d.getElementById("postmedia_video").style.display	= "none";
	_d.getElementById("postmedia_pic").style.display	= "none";
	_d.getElementById("postmedia_video_on").style.display	= "block";
	_d.buzzform.attach_media.value	= data;
}

function buzzform_remove_link() {

	_d.getElementById("postmedia_link_on_txt").innerHTML	= "";
	_d.getElementById("postmedia_link_on").style.display	= "none";
	_d.getElementById("postmedia_link").style.display	= "block";
	_d.buzzform.attach_link.value	= "";
}

function buzzform_remove_media() {

	_d.getElementById("postmedia_video_on_txt").innerHTML	= "";
	_d.getElementById("postmedia_video_on").style.display	= "none";
	_d.getElementById("postmedia_video").style.display	= "block";
	_d.getElementById("postmedia_pic_on_txt").innerHTML	= "";
	_d.getElementById("postmedia_pic_on").style.display	= "none";
	_d.getElementById("postmedia_pic").style.display	= "block";
	_d.buzzform.attach_media.value	= "";
}

function trim(str) {
	if( typeof(str) != "string" ) {
		return str;
	}
	str	= str.replace(/^\s+/, "");
	str	= str.replace(/\s+$/, "");
	return str;
}

function do_watch(username, b) {
	var req = ajax_init();
	if( ! req ) {
		return true;
	}
	req.onreadystatechange = function() {
		if( req.readyState != 4  ) { return; }
		_d.getElementById("followBtn1").style.cursor	= "default";
		_d.getElementById("followBtn2").style.cursor	= "default";
		_d.getElementById("followBtn1").style.display	= b ? "none" : "";
		_d.getElementById("followBtn2").style.display	= b ? "" : "none";
		var tmp	= _d.getElementById("user_follow_out");
		if( ! tmp ) { return; }
		var val	= parseInt(tmp.innerHTML, 10);
		val	+= b ? 1 : -1;
		val	= Math.max(0, val);
		tmp.innerHTML	= val;
	};
	req.open("GET", siteurl+"from:ajax/watch/"+(b?"on:":"off:")+username+"/?r="+Math.round(Math.random()*1000), true);
	req.send("");
	return false;
}

function followUser(username, id, b) {

	var req = ajax_init();
	if( ! req ) {
		return true;
	}
	req.onreadystatechange = function() {
		if( req.readyState != 4  ) { return; }
		_d.getElementById("followBtn_"+id).style.display	= b ? "none" : "";
		_d.getElementById("stopFollowBtn_"+id).style.display	= b ? "" : "none";
		var tmp	= _d.getElementById("user_follow_out");
		if( ! tmp ) { return; }
		var val	= parseInt(tmp.innerHTML, 10);
		val	+= b ? 1 : -1;
		val	= Math.max(0, val);
		tmp.innerHTML	= val;
	};
	req.open("GET", siteurl+"from:ajax/watch/"+(b?"on:":"off:")+username+"/?r="+Math.round(Math.random()*1000), true);
	req.send("");
	return false;
}




function buzzoff(post, ptype) {

	var req = ajax_init();
	if( ! req ) { return true; }
	req.onreadystatechange = function() {
		if( req.readyState != 4  ) { return; }
	};
	req.open("GET", siteurl+"from:ajax/post/buzzoff:"+post+"_"+ptype+"/?r="+Math.round(Math.random()*1000), true);
	req.send("");
  _d.getElementById("buzzId_"+post+"_"+ptype).style.display	= "none";
	return false;
}



function delete_buzz(post, ptype) {

	var req = ajax_init();
	if( ! req ) { return true; }
	req.onreadystatechange = function() {
		if( req.readyState != 4  ) { return; }
	};
	req.open("GET", siteurl+"from:ajax/post/del:"+post+"_"+ptype+"/?r="+Math.round(Math.random()*1000), true);
	req.send("");
  _d.getElementById("buzzId_"+post+"_"+ptype).style.display	= "none";
	return false;
}


function delete_comment(comment, ptype) {

	var req = ajax_init();
	if( ! req ) { return true; }
	req.onreadystatechange = function() {
		if( req.readyState != 4  ) { return; }
	};
	req.open("GET", siteurl+"from:ajax/post/delcomment:"+comment+"_"+ptype+"/?r="+Math.round(Math.random()*1000), true);
	req.send("");
  _d.getElementById("commentId_"+comment+"_"+ptype).style.display	= "none";
	return false;
}

function delete_buzz_and_redirect(post, ptype, url) {
	var req = ajax_init();
	if( ! req ) { return true; }
	req.onreadystatechange = function() {
		if( req.readyState != 4  ) { return; }
		self.location	= url;
	};
	req.open("GET", siteurl+"from:ajax/post/del:"+post+"_"+ptype+"/?r="+Math.round(Math.random()*1000), true);
	req.send("");
	return false;
}

function do_fave(post, ptype, b) {
	
  var req = ajax_init();
  
	if( ! req ) {
		return true;
	}
	req.onreadystatechange = function() {
		if( req.readyState != 4  ) { return; }
		_d.getElementById("favlink_"+post+"_"+ptype+"_1").style.cursor	= "pointer";
		_d.getElementById("favlink_"+post+"_"+ptype+"_2").style.cursor	= "pointer";
		_d.getElementById("favlink_"+post+"_"+ptype+"_1").style.display	= b ? "none" : "block";
		_d.getElementById("favlink_"+post+"_"+ptype+"_2").style.display	= b ? "block" : "none";
	};
	req.open("GET", siteurl+"from:ajax/post/"+(b?"fave:":"unfav:")+post+"_"+ptype+"/?r="+Math.round(Math.random()*1000), true);
	req.send("");
	return false;
}

var tabs_check	= [];
function check_tabs() {
	if( get_time() - time_start > 1800 ) { return false; }
	var req = ajax_init();
	if( ! req ) { return false; }
	req.onreadystatechange = function() {
		if( req.readyState != 4  ) { return; }
		var txt	= req.responseText;
		if( ! txt ) { return; }
		txt	= txt.replace("OK:", "");
		if( txt == "" ) { return; }
		txt	= txt.split(",");
		if( txt.length == 0 ) { return; }
		for(var i=0; i<txt.length; i++) {
			var obj	= _d.getElementById(txt[i]);
			if( ! obj ) { continue; }
			obj.className	= "new";
			var tmp	= [];
			for(var j=0; j<tabs_check.length; j++) {
				if(tabs_check[j] == txt[i]) { continue; }
				tmp[tmp.length]	= tabs_check[j];
			}
			tabs_check	= tmp;
		}
	};
	if( tabs_check.length == 0 ) {
		return;
	}
	var data	= "tabs="+tabs_check.join(",");
	req.open("POST", siteurl+"from:ajax/tabsstate/?r="+Math.round(Math.random()*1000000), true);
	req.setRequestHeader("Content-type",	"application/x-www-form-urlencoded");
	req.send(data);
}

var time_start;
function get_time() {
	return parseInt(new Date().getTime().toString().substr(0,10),10);
}

var hotkeys_enabled	= true;
_w.onload	= function()
{
	setInterval( check_tabs, 30000 );
	
	var i;
	var links	= _d.getElementsByTagName("a");
	for(i=0; i<links.length; i++) {
		links[i].onfocus	= function() { this.blur(); };
	}
	
	_d.onkeypress	= function(e) {
		if( !e && _w.event ) { e = _w.event; }
		if( !e ) { return; }
		var code = e.charCode ? e.charCode : e.keyCode;
		if( buzzform_opened!=1 && buzzform_opened!=2 && _d.getElementById("buzzform") && hotkeys_enabled && (code==112 || code==1087) ) {
			buzzform_open(1);
			return false;
		}
    
		if( mediabox_opened && code==27 ) {
			mediabox_close();
		}
	}
	
	if( buzzform_autoopen ) {
		if( buzzform_autoload_txt == "" ) {
			buzzform_open(1);
		} else {
			buzzform_open(1, false, false, false, buzzform_autoload_txt);
		}
    
		if( buzzform_autoload_lnk.length == 2 ) {
			buzzform_attach_link_ok(buzzform_autoload_lnk[0], buzzform_autoload_lnk[1]);
		}
	}
	
	var lgn	= _d.getElementById("loginform_user");
	if( lgn && lgn.focus ) {
		lgn.focus();
	}
	
	var elems1	= _d.getElementsByTagName("INPUT");
	var elems2	= _d.getElementsByTagName("TEXTAREA");
	for(i=0; i<elems1.length; i++) {
		elems1[i].onfocus	= function() { hotkeys_enabled = false; };
		elems1[i].onblur	= function() { hotkeys_enabled = true; };
	}
	for(i=0; i<elems2.length; i++) {
		elems2[i].onfocus	= function() { hotkeys_enabled = false; };
		elems2[i].onblur	= function() { hotkeys_enabled = true; };
	}
	
	time_start	= get_time();
};

function preload_img() {

	var tmp	= [];
	for(var i=0; i<arguments.length; i++) {
		tmp[i]	= new Image();
		tmp[i].src	= arguments[i];
	}
}

function get_screen_preview_size() {
	var w=0, h=0;
	if( typeof( window.innerWidth ) == 'number' ) {
		w	= window.innerWidth;
		h	= window.innerHeight;
	}	else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		w	= document.documentElement.clientWidth;
		h	= document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		w	= document.body.clientWidth;
		h	= document.body.clientHeight;
	}
  
	return [w, h];
}

function get_screen_scroll() {
	var x=0, y=0;
	if( typeof( window.pageYOffset ) == 'number' ) {
		x	= window.pageXOffset;
		y	= window.pageYOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		x	= document.body.scrollLeft;
		y	= document.body.scrollTop;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		y	= document.documentElement.scrollTop;
		x	= document.documentElement.scrollLeft;
	}
	return [x, y];
}

var mediabox_opened	= false;
function mediabox_open(width, top, title, html) {

	if( mediabox_opened ) { return false; }
	mediabox_opened	= true;
	var box	= _d.getElementById("mediabox_BOX");
	if( ! box ) { return false; }
	if( ! width ) { width = 600; }
	if( ! top ) { top = 100; }
	if( ! title ) { title = ""; }
	if( ! html ) { html = ""; }
	var backgr	= _d.getElementById("mediabox_BACKGR");
	var cnt	= _d.getElementById("mediabox_MAIN");
	var page_size	= get_screen_preview_size();
	box.style.width	= width + "px";
	left	= Math.round((page_size[0] - width) / 2);
	box.style.left	= left + "px";
	box.style.top	= top + "px";
	var nav	= navigator.userAgent.toLowerCase();
	if( nav.indexOf("msie")!=-1 && nav.indexOf("opera")==-1 && !_w.XMLHttpRequest ) {
		var size_scroll	= get_screen_scroll();
		box.style.position	= "absolute";
		box.style.left	= (left + size_scroll[0])  + "px";
		box.style.top	= (top + size_scroll[1]) + "px";
		backgr.style.position	= "absolute";
		backgr.style.width	= page_size[0];
		backgr.style.height	= page_size[1];
		backgr.style.left	= size_scroll[0] + "px";
		backgr.style.top	= size_scroll[1] + "px";
		_w.onscroll	= function () {
			var size_scroll	= get_screen_scroll();
			box.style.left	= (left + size_scroll[0]) + "px";
			box.style.top	= (top + size_scroll[1]) + "px";
			backgr.style.left	= size_scroll[0] + "px";
			backgr.style.top	= size_scroll[1] + "px";
		};
	}
	_d.getElementById("mediabox_TITLE").innerHTML	= title;
	cnt.innerHTML	= html;
	backgr.style.opacity	= "0.5";
	backgr.style.mozOpacity	= "0.5";
	backgr.style.filter	= "alpha(opacity=50)";
	backgr.style.display	= "block";
	setTimeout( function() { box.style.display = "block"; }, 0 );
}

function mediabox_close(){

	mediabox_opened	= false;
	_d.getElementById("mediabox_BOX").style.display	= "none";
	_d.getElementById("mediabox_BACKGR").style.display	= "none";
	_d.getElementById("mediabox_MAIN").innerHTML	= "";
}

function post_view_image(w, h, src, title) {

	if( ! title ) { title = ""; }
	var sz	= get_screen_preview_size();
	sz	= Math.round((sz[1] - h) / 2);
	sz	= Math.max(1, sz);
	mediabox_open(w+16, sz, title, "<img src=\""+src+"\" style=\"width: "+w+"px; height: "+h+"px; margin-left: 7px; margin-top: 7px; background-color: white;\" alt=\"\" />");
	return false;
}

function post_view_video(w, h, html, title) {

	if( ! title ) { title = ""; }
	var sz	= get_screen_preview_size();
	sz	= Math.round((sz[1] - h) / 2);
	sz	= Math.max(1, sz);
	mediabox_open(w+16, sz, title, "<div style=\"padding-left: 7px; padding-top: 7px;\">"+html+"</div>");
	return false;
}

var posts_sync_url	= false;
var posts_sync_div	= false;
var posts_sync_list	= false;
function synchronize_posts( sync_callback_ok ) {

  // reload page
  window.location.href=window.location.href;
  return;


	if( !posts_sync_url || !posts_sync_div  ) {
		if( sync_callback_ok ) {
			sync_callback_ok();
		}
		return false;
	}
	var req = ajax_init();
	if( ! req ) { return false; }
	req.onreadystatechange = function() {
		if( req.readyState != 4  ) { return; }
		var txt	= req.responseText;
		if( txt.substr(0, 3) !== "OK:" ) {
			return;
		}
		txt	= txt.substr(3);
		document.getElementById(posts_sync_div).innerHTML	= txt;
		if( sync_callback_ok ) {
			sync_callback_ok();
		}
	}
	var data	= "tabs="+tabs_check.join(",");
	req.open("POST", posts_sync_url+"?r="+Math.round(Math.random()*1000000), true);
	req.setRequestHeader("Content-type",	"application/x-www-form-urlencoded");
	req.send(data);
}

function obj_class_add(obj, cl) {

	if( !obj ) { return false; }
	if( !obj.className ) { obj.className = ""; }
	var tmp	= obj.className.split(" ");
	if(cl in tmp) {
		return true;
	}
	tmp[tmp.length]	= cl;
	obj.className	= tmp.join(" ");
}

function obj_class_del(obj, cl) {

	if( !obj ) { return false; }
	if( !obj.className ) { obj.className = ""; }
	var tmp	= obj.className.split(" ");
	for(var i=0; i<tmp.length; i++) {
		if(tmp[i]==cl || tmp[i]==="") {
			delete tmp[i];
		}
	}
	obj.className	= tmp.join(" ");
}

var posts_topbtns_hd	= {};
var posts_topbtns_sh	= {};
function show_post_topbtns(pid) {

	var div	= document.getElementById("post_btns_top_"+pid);
	if( ! div ) { return; }
	if( posts_topbtns_hd[pid] ) {
		clearTimeout(posts_topbtns_hd[pid]);
	}
	posts_topbtns_hd[pid]	= null;
	posts_topbtns_sh[pid]	= setTimeout( function() { div.style.display = "block"; }, 100 );
}

function hide_post_topbtns(pid, fast) {

	var div	= document.getElementById("post_btns_top_"+pid);
	if( ! div ) { return; }
	if( posts_topbtns_hd[pid] ) {
		return;
	}
	if( posts_topbtns_sh[pid] ) {
		clearTimeout(posts_topbtns_sh[pid]);
	}
	posts_topbtns_sh[pid]	= null;
	if( fast ) {
		div.style.display = "none";
		return;
	}
	posts_topbtns_hd[pid]	= setTimeout( function() { div.style.display = "none"; }, 250 );
}


$(document).ready(function(){
  
  var requiredHTML  = "<img src='/images/icon/required.png' /> Required...";
  var isInvalidHTML = "<img src='/images/icon/error.png' /> it's invalid!"
  var isValidHTML   = "<img src='/images/icon/tik.png' />";
  var defaultPopupHeight = 400;
  var defaultPopupWidth  = 500;
  
  /* AJAX LOADING */
  
  $("#loading").ajaxStart(function(request, settings){
     $(this).fadeIn();
  });
  
  $("#loading").ajaxComplete(function(){
     $(this).fadeOut();
  });
  
  /* OTHER */
  $('.delete').click(function(){
    if(!confirm('Are you sure?! Do you want to delete this?!'))
      return false;
  });
  /* POPUP */
  $('a.popup').click(function(){
    var w = defaultPopupWidth;
    var h = defaultPopupHeight;
    
    if($(this).attr('popupwidth')!='')
      w = $(this).attr('popupwidth');
      
    if($(this).attr('popupheight')!='')
      h = $(this).attr('popupheight');
    
    window.open($(this).attr('href'),'popup','width='+w+',height='+h+'');
    
    return false;
  });
  /* ************ */
  
  
  /*  FORM VALIDATOR */
  $('.required').focus(function(){
    $(this).next('span.validator').removeClass('red');
    $(this).next('span.validator').removeClass('green');
    $(this).next('span.validator').html(requiredHTML);
  });
  
  $('.required').change(function(){
    var isValid = 1;
    
    if($(this).is('[type="checkbox"]')){
      if(!$(this).is(':checked')){
        isValid = 0;
      }
    }
    
    if(isValid == 1){
      $(this).next('span.validator').removeClass('red');
      $(this).next('span.validator').addClass('green');
      $(this).next('span.validator').removeClass('invalid');
      $(this).removeClass('required');
      $(this).next('span.validator').html(isValidHTML);
    }else{
      $(this).next('span.validator').removeClass('green');
      $(this).next('span.validator').addClass('red');
      $(this).next('span.validator').addClass('invalid');
      $(this).next('span.validator').html(isInvalidHTML);
    }			
    
  });
  
  $('.required').blur(function(){
    var isValid = 1;
    
    if($(this).is('select')){
      if($(this).val() == 'select'){
        isValid = 0;
      }
    }
    
    if($(this).is(".emailValidator")){
      if (!emailValidator($(this).val())) {
        isValid = 0;
      }
    }
    
    var thisFixcount = $(this).attr('fixcount');
    if(thisFixcount > 0){
      if(!($(this).val().length == thisFixcount)){
        isValid = 0;
      }
    }
    
    var thisMincount = $(this).attr('mincount');
    if(thisMincount > 0){
      if(!($(this).val().length >= thisMincount)){
        isValid = 0;
        var isInvalidHTML = "<img src='images/icon/error.png' /> Min Chars: "+thisMincount+"!"
      }
    }
    
    var thisMaxcount = $(this).attr('maxcount');
    if(thisMaxcount > 0){
      if(!($(this).val().length <= thisMaxcount)){
        isValid = 0;
        var isInvalidHTML = "<img src='images/icon/error.png' /> Max Chars: "+thisMincount+"!"
      }
    }
    
    var sameAs = $(this).attr('sameas');
    if(sameAs != undefined){
      if($(sameAs).val() != $(this).val()){
        isValid = 0;
        var isInvalidHTML = "<img src='images/icon/error.png' /> Passwords not matching!"
      }
    }
    
    if ($(this).val().length < 1) {
      isValid = 0;
      var isInvalidHTML = "<img src='images/icon/error.png' /> it's invalid!"
    }
    
    if(isValid == 1){
      $(this).next('span.validator').removeClass('red');
      $(this).next('span.validator').addClass('green');
      $(this).next('span.validator').removeClass('invalid');
      $(this).removeClass('required');
      $(this).next('span.validator').html(isValidHTML);
    }else{
      $(this).next('span.validator').removeClass('green');
      $(this).next('span.validator').addClass('red');
      $(this).next('span.validator').addClass('invalid');
      $(this).next('span.validator').html(isInvalidHTML);
    }
    
  });
  
  $('form.submitValidator').submit(function(){
    var invalidInputs = $(this).find('.invalid').length;
    var requireInputs = $(this).find('.required').length;
    if(invalidInputs > 0 || requireInputs > 0){
      alert("Please fill all fields correctly!");
      $(this).children('input#hiddenValidator').val(0);
      return false;
    }else{
      $(this).children('input#hiddenValidator').val(1);
    }
  });
  
  /*  **********  */
  
  /*  LOCATION SELECTOR  */
  
  $('select.locationFinder').change(function(){
    //---CLEAR OTHER SELECTs
    $(this).parent().nextAll('div').children('select').html('');
    //---
    if ($(this).val() != 0) {
      var thisD = $(this).attr('id');
      var next = $(this).parent().next('div').children('select');
      var data = 'act=location_finder&thisd=' + thisD + '&next=' + next.attr('id') + '&parent_id=' + $(this).attr('pid') + '&this_value=' + $(this).val();
      
      $.ajax({
        type: "POST",
        url: "ajax.php",
        data: data,
        success: function(msg){
          next.html(msg);
        }
      });
    }
  });
  
  $('input#addLocation').click(function(){
    var thisOb = $(this);
    var data = 'act=add_location&'+$(this).parents('form').serialize();
    $.ajax({
        type: "POST",
        url: "ajax.php",
        data: data,
        success: function(msg){
          if (msg == 'err') {
            alert('You have 5 location!');
          }else{
            var liStr = '<li id="location_'+msg+'"><b>Global &gt; ';
            thisOb.parent().children('div').children('select').children('option:selected').each(function(){
              if ($(this).val() != 0) {
                liStr += $(this).text();
              }
            });
            liStr += ' <a href="#" onclick="removeLocation('+msg+')">Remove</a> </b></li>';
            $('#locations').append(liStr);
          }
        }
    });
  });	
});

var emailValidator = function(email){
  
  var emailValidator  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
  if (emailValidator.test(email)) {
    return true;
  }else{
    return false;
  }
  
}

var loadStates = function(country,selector){
   if (country != 'select') {
    $.ajax({
      type: "POST",
      url: "ajax.php",
      data: "act=countrylist&country=" + country,
      success: function(msg){
        $(selector).html(msg);
      }
    });
   }
}

var removeLocation = function(lId){
    var data = "act=remove_location&location="+lId;
    $.ajax({
      type: "POST",
      url: "ajax.php",
      data: data,
      success: function(msg){
        if(msg == 'ok'){
          $('li#location_'+lId).remove();
        }else{
          alert(msg);
        }
      }
    });
}

var checkExpDate = function(tdObj){
  var isInvalidHTML = "<img src='images/icon/error.png' /> it's invalid!"
  var isValidHTML   = "<img src='images/icon/tik.png' />";
  //---
  var nowD = new Date();
  var thisM = nowD.getMonth()+1;
  var thisY = nowD.getFullYear();
  //---
  var thisMD = new Date(thisY,thisM);
  var thisMtime = thisMD.getTime()/1000;
  //---
  var exp_y = tdObj.children('#exp_y').val();
  var exp_m = tdObj.children('#exp_m').val();
  //---
  var entredD = new Date(exp_y,exp_m);
  var entredTime = entredD.getTime()/1000;
  
  if(entredTime < thisMtime){
    tdObj.children('span').removeClass('valid');
    tdObj.children('span').addClass('invalid');
    tdObj.children('span').addClass('red');
    tdObj.children('span').html(isInvalidHTML);
  }else{
    tdObj.children('span').removeClass('invalid');
    tdObj.children('span').addClass('valid');
    tdObj.children('span').html(isValidHTML);
  }
}


function toggle(nr) {
 if(document.layers) {
  if(document.layers[nr].display == 'block') {
     document.layers[nr].display = 'none';
  } else {
     document.layers[nr].display = 'block';
  }
        
 } else if(document.all) {
  if(document.all[nr].style.display == 'block') {
     document.all[nr].style.display = 'none';
  } else {
     document.all[nr].style.display = 'block';
  }
 } else if(document.getElementById) {
  if(document.getElementById(nr).style.display == 'block') {
     document.getElementById(nr).style.display = 'none';
  } else {
     document.getElementById(nr).style.display = 'block';
  }
 }
}
	
document.getElementsByClassName = function(clsName){
    var retVal = new Array();
    var elements = document.getElementsByTagName("*");
    for(var i = 0;i < elements.length;i++){
        if(elements[i].className.indexOf(" ") >= 0){
            var classes = elements[i].className.split(" ");
            for(var j = 0;j < classes.length;j++){
                if(classes[j] == clsName)
                    retVal.push(elements[i]);
            }
        }
        else if(elements[i].className == clsName)
            retVal.push(elements[i]);
    }
    return retVal;
}


function check_length(textarea, counter, maxLen) {
  var limit = maxLen - 20;
  if (textarea.value.length >= limit) {
    document.getElementById(counter).innerHTML = maxLen - textarea.value.length;
    document.getElementById(counter).style.color="#FF0000";
  } else if(textarea.value.length >= maxLen) {
    textarea.value = textarea.value.substring(0, maxLen);
    document.getElementById(counter).style.color = "#FF0000";
  } else { // Maximum length not reached so update the value of my_text counter
    document.getElementById(counter).innerHTML = maxLen - textarea.value.length;
    document.getElementById(counter).style.color="#7B7B7B";
  }
}
