// JavaScript Document
var currentShow="";
var invited="";
function $m(theVar){
	return document.getElementById(theVar)
}


function getHTTPObject(){
	if (window.XMLHttpRequest) return new XMLHttpRequest();
	else if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
	else {
		alert("Your browser does not support AJAX.");
      	return null;
   }
}
function getElementByClass(container,objClass){
//  This function is similar to 'getElementByID' since there
//  is no inherent function to get an element by it's class
//  Works with IE and Mozilla based browsers
var elements = (ie) ? container.all : container.getElementsByTagName('*');
  for (i=0; i<elements.length; i++){
    //alert(elements[i].className)
    //alert(objClass)
    if (elements[i].className==objClass){
    	return elements[i]
    }
  }
  return false;
}

function setLanguage(lang){
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/home/ajax.home.php?action=setlanguage&lang="+lang, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		response=httpObj.responseText;
			window.location = window.location;
      	}
	}	
}

function toggleShow(elem){
	var display= $m(elem).style.display;
	if(display=="none"){
		$j("#"+elem).slideDown("fast");
	}
	else{
		$j("#"+elem).slideUp("fast");
	}
}

function toggleAccordian(elem){
	if(currentShow){ 
		$j("#"+currentShow).slideUp("fast"); 
	}
	var display= $m(elem).style.display;
	if(display=="none"){
		$j("#"+elem).slideDown("fast");
		currentShow=elem;
	}
	else{
		currentShow="";
		$("#"+elem).slideUp("fast");
	}
}

function showDiv(elem){
	$j("#"+elem).fadeIn("fast");
}

function hideDiv(elem){
	$j("#"+elem).fadeOut("fast");
}
function populateURL(text,f){
	var field=f?f:"url";
	var element = (ie) ? document.all.url : document.getElementById(field);
	var strip=stripAccents(text);
	element.value=strip;
	$m("post_"+field).style.display="block";
	
}
function get(obj) {
      var getstr = "";
      for (i=0; i<obj.elements.length; i++) {
         if (obj.elements.item(i).tagName == "INPUT") {
            if (obj.elements.item(i).type == "text") {
               getstr += obj.elements.item(i).name + "=" +  encodeURI(obj.elements.item(i).value) + "&";
            }
			 if (obj.elements.item(i).type == "hidden") {
               getstr += obj.elements.item(i).name + "=" +  encodeURI(obj.elements.item(i).value) + "&";
            }
			 if (obj.elements.item(i).type == "file") {
               getstr += obj.elements.item(i).name + "=" + encodeURI(obj.elements.item(i).value) + "&";
            }
            if (obj.elements.item(i).type == "checkbox") {
               if (obj.elements.item(i).checked) {
                  getstr += obj.elements.item(i).name + "=" +  encodeURI(obj.elements.item(i).value) + "&";
               } else {
                  getstr += obj.elements.item(i).name + "=&";
               }
            }
            if (obj.elements.item(i).type == "radio") {
               if (obj.elements.item(i).checked) {
                  getstr += obj.elements.item(i).name + "=" +  encodeURI(obj.elements.item(i).value) + "&";
               }
            }
         }   
         if (obj.elements.item(i).tagName == "SELECT") {
            var sel = obj.elements.item(i);
            getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
         }
		  if (obj.elements.item(i).tagName == "TEXTAREA") {
			  if(tinyMCE.get(obj.elements.item(i).id)){	
       		  		getstr += obj.elements.item(i).name + "=" + escape(getCleanText(tinyMCE.get(obj.elements.item(i).id))) + "&";
			  }
			  else{
				   getstr += obj.elements.item(i).name + "=" +  encodeURI(obj.elements.item(i).value) + "&";
			  }
         }
         
      }
	  return getstr;
}

function stripAccents(s, c){
    var $acc, $str, o, r, i

    // if character case for output string is not set set it to -1 (lowercase)
    if (typeof(c)=='undefined'){
      c = -1;
    }
    // convertion table. It can be copied from PHP source.
	$acc =	'É	Ê	Ë	š	Ì	Í	ƒ	œ	µ	Î	Ï	ž	Ð	Ÿ	Ñ	Ò	Ó	Ô	Š	£	Õ	Ö	Œ	¥	Ø	Ž	§	À	Ù	Á	Ú	Â	Û	Ã	Ü	Ä	Ý	';
	$str =	'E	E	E	s	I	I	f	o	m	I	I	z	D	Y	N	O	O	O	S	L	O	O	O	Y	O	Z	S	A	U	A	U	A	U	A	U	A	Y	';
	$acc+=	'Å	Æ	ß	Ç	à	È	á	â	û	Ĕ	ĭ	ņ	ş	Ÿ	ã	ü	ĕ	Į	Ň	Š	Ź	ä	ý	Ė	į	ň	š	ź	å	þ	ė	İ	ŉ	Ţ	Ż	æ	ÿ	';
	$str+=	'A	A	S	C	a	E	a	a	u	E	i	n	s	Y	a	u	e	I	N	S	Z	a	y	E	i	n	s	z	a	p	e	I	n	T	Z	a	y	';
	$acc+=	'Ę	ı	Ŋ	ţ	ż	ç	Ā	ę	Ĳ	ŋ	Ť	Ž	è	ā	Ě	ĳ	Ō	ť	ž	é	Ă	ě	Ĵ	ō	Ŧ	ſ	ê	ă	Ĝ	ĵ	Ŏ	ŧ	ë	Ą	ĝ	Ķ	ŏ	';
	$str+=	'E	l	n	t	z	c	A	e	I	n	T	Z	e	a	E	i	O	t	z	e	A	e	J	o	T	i	e	a	G	j	O	t	e	A	g	K	o	';
	$acc+=	'Ũ	ì	ą	Ğ	ķ	Ő	ũ	í	Ć	ğ	ĸ	ő	Ū	î	ć	Ġ	Ĺ	Œ	ū	ï	Ĉ	ġ	ĺ	œ	Ŭ	ð	ĉ	Ģ	Ļ	Ŕ	ŭ	ñ	Ċ	ģ	ļ	ŕ	Ů	';
	$str+=	'U	i	a	G	k	O	u	i	C	g	k	o	U	i	c	G	L	O	u	i	C	g	l	o	U	o	c	G	L	R	u	n	C	g	l	r	U	';
	$acc+=	'ò	ċ	Ĥ	Ľ	Ŗ	ů	ó	Č	ĥ	ľ	ŗ	Ű	ô	č	Ħ	Ŀ	Ř	ű	õ	Ď	ħ	ŀ	ř	Ų	ö	ď	Ĩ	Ł	Ś	ų	Đ	ĩ	ł	ś	Ŵ	ø	đ	';
	$str+=	'o	c	H	L	R	u	o	C	h	l	r	U	o	c	H	L	R	u	o	D	h	l	r	U	o	d	I	L	S	c	D	i	l	s	W	o	d	';
	$acc+=	'Ī	Ń	Ŝ	ŵ	ù	Ē	ī	ń	ŝ	Ŷ	Ə	ú	ē	Ĭ	Ņ	Ş	ŷ	 	:	;	.	,';
	$str+=	'I	N	S	w	u	E	i	n	s	Y	e	u	e	I	N	S	y	-	_	_	_	_';

    // If charactes wasn't in convertion table and it is not a [a-zA-z0-9_-] convert it to this char
    o = '';

    // convert convertion tables into arrays
    var ta = $acc.split("\t");
    var ts = $str.split("\t");

    // iterate over convertion tables and replace every char in string
    for (i = 0; i < ta.length; i++){
      r = new RegExp('[' + ta[i] + ']', 'g');
      s = s.replace(r, ts[i]);
    }

    // remove every character not found in convertion table
    s = s.replace(/[^a-zA-Z0-9_-]/gi, o);

    // some optimization - you can change it if you change conversion tables
    // here I replace multiple underscores into one undercore and strip
    // underscores at begining and ehd of string
    s = s.replace(/[_]+/, '_');
    s = s.replace(/^_*(.*?)_*$/gi, '$1')

    // return converted string
	if(c == -1){
		return s.toLowerCase();
	}else if(c == 1){
		return s.toUpperCase();
	}else{
		return s;
	}
}

function getCleanText(editor){
	//var editor = tinyMCE.get(editor);
	//var root = editor.dom.getRoot();
	//editor.selection.select(root);
	//var content = editor.selection.getContent({format : 'text'});
	//editor.selection.collapse();
	return editor.getContent();
}

function showQuickPanel(elem,quick){
	var panel=quick?quick:"quick_panel";
	var cur=getElementByClass(elem,panel);
	cur.style.display="block";
}

function hideQuickPanel(elem,quick){
	var panel=quick?quick:"quick_panel";
	var cur=getElementByClass(elem,panel);
	cur.style.display="none";
}

function toggleCMSOptions(container,type){
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/widget/ajax.cmsoptions.php?action=show&type="+type, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		response=httpObj.responseText;
      	}
	}
	$m(container).innerHTML=response;
	toggleShow(container);
}

function saveCMSOptions(type,field,cookie){
	var value=$m(field).value;
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/widget/ajax.cmsoptions.php?action=save&type="+type+"&value="+value+"&cookie="+cookie, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		response=httpObj.responseText;
      	}
	}
	//alert(response);
	window.location = ""+host+"/"+type;
}

function redirect(url,params){
	window.location = ""+host+"/"+url+"?"+params;
}

function statusUpdate(elem,profile,action){
	var time=new Date();
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/posts/ajax.posts.php?action="+action+"&profile="+profile+"&time="+time, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		var response=httpObj.responseText;
      	}
	}
	$m(elem).innerHTML=response;
	$j('textarea').elastic();
}


function linksUpdate(elem,profile,l){
	var time=new Date();
	var url="url="+encodeURIComponent($m(l).value);
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("POST", host+"/inc/posts/ajax.links.php?action=new&profile="+profile+"&time="+time, false);
        httpObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		httpObj.setRequestHeader("Content-length", url.length);
		httpObj.setRequestHeader("Connection", "close");
		httpObj.send(url);
		if (httpObj.readyState==4){
       		var response=httpObj.responseText;
      	}
	}
	$m(elem).innerHTML=response;
	$m("load_box").innerHTML="";
}


function ajaxUpdate(box,form,action,url){
	var params=""+get(document.getElementById(form));
	var httpObj=getHTTPObject();
	var time= new Date();
	if(httpObj != null){
		httpObj.open("POST", host+url+"?"+params+"&action="+action+"&time="+time, false);
        httpObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		httpObj.setRequestHeader("Content-length", params.length);
		httpObj.setRequestHeader("Connection", "close");
		httpObj.send(params);
		if (httpObj.readyState==4){
       		response=httpObj.responseText;
      	}
	}
	$m(box).innerHTML=response;
	document.location=document.location;
}

function addAttachment(type){
	var time=new Date();
	var httpObj=getHTTPObject();
	$j("#attachments").fadeOut("fast");
	$m("attachments").innerHTML='';
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/posts/ajax.posts.php?action=add_attachment&type="+type+"&time="+time, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		var response=httpObj.responseText;
      	}
	}
	$m("attachments").innerHTML=response;
	$j("#attachments").fadeIn('slow');
	$j("#remove_attachments").fadeIn("fast");
	$j('textarea').elastic();
}


function removePost(elem,profile,type){
	var time=new Date();
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/posts/ajax.posts.php?action=remove&profile="+profile+"&post_id="+elem+"&type="+type+"&time="+time, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		var response=httpObj.responseText;
      	}
	}
	$j("#post_"+elem).parent("li").remove();
}

function removeDiscussionPost(elem,profile,type){
	var time=new Date();
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/discussions/ajax.discussions.php?action=remove&profile="+profile+"&post_id="+elem+"&type="+type+"&time="+time, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		var response=httpObj.responseText;
      	}
	}
	$j("#post_"+elem).parent("li").remove();
}

function removePhoto(elem,profile,type){
	var time=new Date();
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/photos/ajax.photos.php?action=remove&profile="+profile+"&photoid="+elem+"&time="+time, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		var response=httpObj.responseText;
      	}
	}
	window.location=host+"/photos/?id="+profile;
}

function emptyField(elem,profile,type,field){
	var time=new Date();
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/posts/ajax.posts.php?action=remove_field&profile="+profile+"&post_id="+elem+"&type="+type+"&field="+field+"&time="+time, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		var response=httpObj.responseText;
      	}
	}
	$j("#"+field+"_"+elem).remove();
}

function refreshPosts(container,profile,view,filter,last){
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/posts/ajax.posts.php?action="+filter+"&profile="+profile+"&time="+lasttime+"&view="+view+"&last="+last, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		var response=httpObj.responseText;
      	}
	}
	var data=response.evalJSON();
	if(data.timestamp){
		//alert(lasttime);
		$m(""+container+"_"+lasttime).innerHTML=data.html;
		lasttime=data.timestamp;
	}
}


function autocompleteSearch(elem,q,filter){
	var search_string=$m(q).value;
	var time=new Date();
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/search/ajax.search.php?action="+filter+"&q="+search_string+"&time="+time, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		var response=httpObj.responseText;
      	}
	}
	if(response){
		$m(elem).innerHTML=response;
		$j("#"+elem).fadeIn("fast");
		$j("input:submit").removeClass("gray");
		$j("input:submit").attr({"disabled":""});
	}
	else{
		$m(elem).innerHTML="";
		$j("#"+elem).fadeOut("fast");
	}
	search_string="";
	response="";
}

function invite_member(member){
	$j(member).find(".checkbox").toggleCheck();
		if($j(member).find("input:checked").length) $j(member).children(".select_item").css({'background':'#ddd'});
		else {$j(member).children(".select_item").css({'background':'none'})}
}

function usersSearch(elem,q,filter){
	var search_string=$m(q).value;
	var time=new Date();
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/search/ajax.search.php?action="+filter+"&q="+search_string+"&time="+time, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		var response=httpObj.responseText;
      	}
	}
	if(search_string!="") {$j(".profile_item").addClass('hidden'); $j('#remove').removeClass('hidden');}
	if(response){
		var profiles=response.evalJSON();
		for(var i=0; i<profiles.length;i++){
			$j("#profile_"+profiles[i]).removeClass("hidden");
		}
	}
	search_string="";
	response="";
}

function setCookie(c_name,value,exdays){
	var exdate=new Date();
	exdate.setDate(exdate.getDate() + exdays);
	var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
	document.cookie=c_name + "=" + c_value+"; path=/";
}
function getCookie(c_name){
	var i,x,y,ARRcookies=document.cookie.split(";");
	for (i=0;i<ARRcookies.length;i++)
	{
	  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
	  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
	  x=x.replace(/^\s+|\s+$/g,"");
	  if (x==c_name)
		{
		return unescape(y);
		}
	  }
	 return false;
}

function checkAviabillity(type,profile){
	var time=new Date();
	var value=$m(type).value;
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/settings/ajax.settings.php?action="+type+"&profile="+profile+"&"+type+"="+value+"&time="+time, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		var response=httpObj.responseText;
      	}
	}
	$j("#change_"+type).parent('div').html(response);
}

function changePassword(type,profile){
	var time=new Date();
	var pass=$m('password').value;
	var old=$m('old_password').value;
	var cfr=$m('password_c').value;
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/settings/ajax.settings.php?action="+type+"&profile="+profile+"&pass="+pass+"&old="+old+"&cfr="+cfr+"&time="+time, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		var response=httpObj.responseText;
      	}
	}
	$j("#change_"+type).parent('div').html(response);
}

function installApp(profile,app){
	var time=new Date();
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/settings/ajax.settings.php?action=install&profile="+profile+"&app_id="+app+"&time="+time, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		var response=httpObj.responseText;
      	}
	}
	
	$j("#install_app_"+app).addClass("gray");
	$j("#install_app_"+app).attr({"disabled":"disabled"});
	$j("#uninstall_app_"+app).removeClass("gray");
	$j("#uninstall_app_"+app).attr({"disabled":""});
}

function uninstallApp(profile,app){
	var time=new Date();
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/settings/ajax.settings.php?action=uninstall&profile="+profile+"&app_id="+app+"&time="+time, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		var response=httpObj.responseText;
      	}
	}
	$j("#uninstall_app_"+app).addClass("gray");
	$j("#uninstall_app_"+app).attr({"disabled":"disabled"});
	$j("#install_app_"+app).removeClass("gray");
	$j("#install_app_"+app).attr({"disabled":""});
}

function removeEssay(elem,profile,type){
	var time=new Date();
	var httpObj=getHTTPObject();
	if(httpObj != null){
		httpObj.open("GET", host+"/inc/essays/ajax.essays.php?action=remove&profile="+profile+"&post_id="+elem+"&type="+type+"&time="+time, false);
        httpObj.send(null);
		if (httpObj.readyState==4){
       		var response=httpObj.responseText;
      	}
	}
	$j("#post_"+elem).remove();
}

function show_confirm(message){
	var r=confirm(message);
	if (r==true){
	 	return true
	}
	else{
	  return false
	}
}
