/*************** Classes and Functions ********************/
/** namespace Lsd [ **/
var Lsd = {};

var formError = false;

Lsd.validateLogin = function(form) {
	var emptyFields = new Array();
	
	if (form.user.value == '') emptyFields.push('username');
	if (form.password.value == '') emptyFields.push('password');
	if(document.getElementById('signupArea').style.display == 'block'){
		if (form.password2.value == '') emptyFields.push('password2');
		if (form.namesign.value == '') emptyFields.push('fullname');
		if (form.country.value == '') emptyFields.push('country');
		if (form.email.value == '') emptyFields.push('email');
		if (form.usercode.value == '') emptyFields.push('usercode');		
	}
	if (emptyFields.length) {
		document.getElementById('responseAreaCnt').innerHTML = 'We need ' + Validator.glueWithSeparator(' and ', emptyFields);
		Lsd.responseVisible('block');
		return false;
	}
	return true;
}

Lsd.validateSettings = function(form) {
	var emptyFields = new Array();
	
	if (form.user.value == '') emptyFields.push('username');
	if (form.email.value == '') emptyFields.push('email');	
	if (emptyFields.length) {
		document.getElementById('responseAreaCnt').innerHTML = 'We need ' + Validator.glueWithSeparator(' and ', emptyFields);
		Lsd.responseVisible('block');
		return false;
	}
	return true;
}

Lsd.responseVisible = function(type) {	
	ra = document.getElementById('responseArea'); 
	ra.style.display = type;	
}

Lsd.responseToggle = function() {	
	ra = document.getElementById('responseArea'); 
	if (ra.style.display == 'block') {
		ra.style.display = 'none';		
	} else {
		ra.style.display = 'block';		
	}
	
}

Lsd.loginVisible = function() {	
	if (document.getElementById('boxLogin').style.display == 'block') {
		document.getElementById('boxLogin').style.display = 'none';
		Lsd.responseVisible('none');		
	} else {
		document.getElementById('boxLogin').style.display = 'block';
		document.formLogin.user.focus();
	}
	
}

Lsd.settingsVisible = function() {	
	dsettings = document.getElementById('boxSettings'); 
	fsettings = document.getElementById('formSettings'); 
	if (dsettings.style.display == 'block') {
		dsettings.style.display = 'none';
		Lsd.responseVisible('none');
	} else {
		dsettings.style.display = 'block';		
		if(fsettings.reqtype.value == 'forgot'){ //not sure it works
			fsettings.user.focus();
		}
	}
	
}

if (formError) Lsd.loginVisible();

Lsd.signinVisible = function(a){
	boxlogin = document.getElementById('boxLogin');
	lform = document.getElementById('formLogin');
	sarea = document.getElementById('signupArea');
	if(sarea.style.display == 'block'){
		sarea.style.display = 'none';
		lform.style.width = "100px";
		lform.style.height= "120px";
		boxlogin.style.width = "120px";
		boxlogin.style.height = "140px";
		boxlogin.style.left = "345px";
		lform.reqtype.value = 'login';
		
	} else {
		lform.style.width = "180px";
		lform.style.height = "200px";
		boxlogin.style.width = "204px";
		boxlogin.style.height = "230px";
		boxlogin.style.left = "302px";
		
		sarea.style.display = 'block';
		lform.reqtype.value = 'signin';
	}	
}

var Validator = {		
	glueWithSeparator: function(glue, arr) {
		var str = '';
		var length = arr.length;
		for (var i = 0; i < length; i++) {
			if (i != 0) str += glue;
			str += arr[i];
		}
	  return str;
	}	
}

Lsd.invokeByPost = function(url, responseAreaId, formName){
	  
	  var params = Nad.getFormParameters(formName);
	  
	  var xmlHttpContent = Nadj.createXMLHttpRequest();	
	  xmlHttpContent.onreadystatechange = function(){
		  if(xmlHttpContent.readyState==4){			 
			  document.getElementById(responseAreaId).innerHTML = xmlHttpContent.responseText;	
			  if(navigator.appName != "Microsoft Internet Explorer"){ 			
				  Fade.fadeIn(responseAreaId);			
			  }
		  }
	  }	 
	 
	  Nad.spinDiv(responseAreaId);		 
	 
	  xmlHttpContent.open("POST", url+"?"+params, true);	 
	  xmlHttpContent.send(null);	  
}
/** ] namespace Lsd **/

/** namespace Nad [ **/
var Nad = {};
Nad.makeNight = function(){	 
	document.body.style.background = "#00088F";
};

Nad.makeDay = function(){	 
	document.body.style.background = "#BDCCFF";
};

Nad.chooseBgColor = function(){		
};

Nad.printResume = function(){	 
	$.get(    		
    	"/php/ctrl/d.php",	    	    	
    	{reqtype : 'printcv'},		   
	    function(data){		      
	      $('#center').html(data);
    });	
};

Nad.getElementsByClass = function (searchClass, array) {	
	var classElements = new Array();	
	var els = array;
	var count = 0;
	for(i = 0; i < els.length; i++){
		if(els[i].className == searchClass){
			classElements[count++] = els[i];
		}
	}	
	return classElements;
}

/** addEvent designed by Aaron Moore **/   
Nad.addEvent = function(element, listener, handler) {
	if (typeof element[listener] != 'function'
			|| typeof element[listener + '_num'] == 'undefined') {
		element[listener + '_num'] = 0;
		if (typeof element[listener] == 'function') {
			element[listener + 0] = element[listener];
			element[listener + '_num']++;
		}
		element[listener] = function(e) {
			var r = true;
			e = (e) ? e : window.event;
			for ( var i = element[listener + '_num'] - 1; i >= 0; i--) {
				if (element[listener + i](e) == false)
					r = false;
			}
			return r;
		}
	}

	/** if handler is not already stored, assign it **/   
	for ( var i = 0; i < element[listener + '_num']; i++)
		if (element[listener + i] == handler)
			return;
	element[listener + element[listener + '_num']] = handler;
	element[listener + '_num']++;
};

Nad.spinDiv = function(divId) {
	  container = document.getElementById(divId);	 
	  positioning = 'top: '+container.offsetTop+'px; width: '+
	  	(container.offsetWidth + 10)+ 'px; height: '+(container.offsetHeight + 10)+'px; ';
	  positioning += 'top: 0px;';
	  container.innerHTML += '<div class="spinDiv" style="position: absolute; ' + positioning + '"></div>';	 
}

var imgs = new Array();

Nad.preloadImages = function(arr){
	for (i=1; i<arr.length; i++){
		imgs[i]=new Image();
		imgs[i].src=arr[i];		
	}
}

Nad.email = function() { 
	// try to avoid spam trollers, intentionally complex
		var a = "cont";
		var b = "act";
		var c = "@alin";
		var d = "nistor.net";
		e_string = "<a href=\"ma" + "ilto:" + a + b + c + d + "\">" + a + b + c + d + "</a>";
		document.write(e_string);
}

Nad.aler = function(str){
	document.getElementById('centercontent').innerHTML += str+"</br>";
}

Nad.getFormParameters = function(formNane){
	  var params = "";
	  var els = document.getElementById(formName).getElementsByTagName("input");
	  for(var i=0; i<els.length; i++){
		  params += els[i].name + "=" + els[i].value;
		  if(i < els.length - 1){
			  params += "&";
		  }		  
	  }
	  els = document.getElementById(formName).getElementsByTagName("textarea");
	  if(els.length != 0){
		  params += "&";
	  }
	  for(var j=0; j<els.length; j++){
		  params += els[j].name + "=" + els[j].value;
		  if(j < els.length - 1){
			  params += "&";
		  }		  
	  }
	 return params;
}

/** ] namespace Nad **/

/** namespace NChat [ **/

var NChat = {};

//Gets the browser specific XmlHttpRequest Object
NChat.getXmlHttpRequestObject = function() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		document.getElementById('pstatus').innerHTML = 'Status: Cound not create XmlHttpRequest Object.  Consider upgrading your browser.';
	}
}

var sendReq = NChat.getXmlHttpRequestObject();
var receiveReq = NChat.getXmlHttpRequestObject();
var lastMessage = 0;

//Gets the current messages from the server
NChat.getChatText = function() {
	/*var statusp = document.getElementById('pstatus');
	statusp.innerHTML = parseInt(statusp.innerHTML) + 1;*/	
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		receiveReq.open("GET", '/php/ctrl/cd.php?last=' + lastMessage, true);
		receiveReq.onreadystatechange = NChat.handleReceiveChat; 
		receiveReq.send(null);
	}			
}

//Function for handling the return of chat text
NChat.handleReceiveChat = function() {
	if (receiveReq.readyState == 4) {
		var chat_div = document.getElementById('divchat');
		var xmldoc = receiveReq.responseXML;
		var message_nodes = xmldoc.getElementsByTagName("message"); 
		var n_messages = message_nodes.length;
		for (i = 0; i < n_messages; i++) {
			var user_node = message_nodes[i].getElementsByTagName("user");
			var text_node = message_nodes[i].getElementsByTagName("text");
			var time_node = message_nodes[i].getElementsByTagName("time");
			
			var add = '<div class="msgdiv">'+ 
					  '<img border="0" alt="" src="/res/bullets/arrlive.gif"/>'+
					   user_node[0].firstChild.nodeValue + '&nbsp;'+					  
					  '<font class="chattime">' + time_node[0].firstChild.nodeValue + '</font>'+
					  '<br/>'+'<strong>'+text_node[0].firstChild.nodeValue + '</strong><br/></div>';
			chat_div.innerHTML += add;
			chat_div.scrollTop = chat_div.scrollHeight;
			lastMessage = (message_nodes[i].getAttribute('id'));
		}		
		if(HAccordionMenu.chatInitialized == true){
			NChat.getChatText(); //new request (Comet)			
		}
	}
}

//Add a message to the chat server.
NChat.sendChatText = function() { 
	if(document.getElementById('txtmessage').value == '') {
		alert("You have not entered a message");
		return;
	}
	if (sendReq.readyState == 4 || sendReq.readyState == 0) {
		sendReq.open("POST", '/php/ctrl/cd.php', true);
		sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		sendReq.onreadystatechange = NChat.handleSendChat; 
		var param = 'message=' + document.getElementById('txtmessage').value;
		var chatusername = document.getElementById('chatusername').value;
		param += '&name='+chatusername;		
		sendReq.send(param);
		document.getElementById('txtmessage').value = '';
	}							
}

//execute when our message has been sent.
NChat.handleSendChat = function() { 
	//nada yet
}

/**This functions handles when the user presses enter.
 * Instead of submitting the form, we
 * send a new message to the server and return false.
 **/
NChat.blockSubmit = function() {
	NChat.sendChatText();
	return false;
}

/*This cleans out the database so we can start a new chat session.*/
NChat.resetChat = function() {
	if (sendReq.readyState == 4 || sendReq.readyState == 0) {
		sendReq.open("POST", '/php/ctrl/cd.php', true);
		sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		sendReq.onreadystatechange = NChat.handleResetChat; 
		var param = 'action=reset';
		sendReq.send(param);
		document.getElementById('txtmessage').value = '';
	}							
}
/*This cleans out the database so we can start a new chat session.*/
NChat.refreshChat = function() {
	var answer = confirm("You are about to create a new message listener,\n are you sure the current listener died ?")
	if ( ! answer){
		return;		
	}
	NChat.getChatText();							
}

//This function handles the response after the page has been refreshed.
NChat.handleResetChat = function() {
	document.getElementById('divchat').innerHTML = '';	
}

NChat.sendEnter = function(myfield, e){
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;
	
	if (keycode == 13){
	   NChat.sendChatText();
	   return false;
	}
	else{
		return true;		
	}
}

/** ] namespace NChat **/

/** namespace RMenu [ **/
var RMenu = {};
RMenu.initialize = function(div){	

	$('#centernav .navbutton')
	.mouseover(function(){
		$(this).fadeTo(500, 0.40);		
	})
	.mouseout(function(){
		$(this).fadeTo(500, 1.0);		
	})
	.mousedown(RMenu.down)
	.mouseup(RMenu.up);
}

RMenu.down = function(){
	var els = this.getElementsByTagName("img");
	els[0].style.background = 'blue';		
}
RMenu.up = function(){
	var els = this.getElementsByTagName("img");
	els[0].style.background = 'none';		
}

/** ] namespace RMenu **/

/** namespace AccordionMenu [ **/
var AccordionMenu = {};
AccordionMenu.init = function(){	 
	$("p.acchead").click(function(){
		$(this).next("div.accbody").slideToggle(300).siblings("div.accbody").slideUp("slow");      
	});	
	$("p.acchead").mouseover(function(){
	     $(this).next("div.accbody").slideDown(500).siblings("div.accbody").slideUp("slow");         
	});
};

AccordionMenu.initLinks = function(){	 
	$("#accmenu a").click(function(){
		if(this.title != ""){
			Nadj.invokeAndFadeLater(
					"/php/ctrl/d.php?reqtype=showmenuoption&path="+this.title,
					"centercontent",
					true, 
					null
				);
		}					
	});	
};

AccordionMenu.initGalleryMenu = function(){	 
	$("p.acchead").click(function(){
		$(this).next("div.accbody").slideToggle(300).siblings("div.accbody").slideUp("slow");      
	});	
	$("p.acchead").mouseover(function(){
		$(this).next("div.accbody").slideDown(500).siblings("div.accbody").slideUp("slow");         
	});
	
	$("#accmenu a").click(function(){
		Nadj.invokeAndFadeLater(
				"/php/ctrl/d.php?reqtype=showgallery&path="+this.title,
				"gallerycontent",
				true, 
				"Gallery.init()"
			);			
	});	
	
};
/** ] namespace AccordionMenu **/

/** ] namespace Live **/
var Live = {};
Live.initTwitter = function() {	 		 
	 var xmlHttpContent = Nadj.createXMLHttpRequest();	
	 xmlHttpContent.onreadystatechange = function(){
		  if(xmlHttpContent.readyState==4){			  
			  eval(xmlHttpContent.responseText);
		  }
	  } 
	 xmlHttpContent.open("GET", '/php/ctrl/d.php?reqtype=gettwitts', true);	 
	 xmlHttpContent.send(null);	  
	
}
/** namespace Live [ **/

/** namespace Gallery [ **/
var Gallery = {};
Gallery.init = function() {	 
	$('#gallery a').lightBox();
}
/** ] namespace Gallery **/

/** namespace SmallPic [ **/
var SmallPic = {};
SmallPic.nextPic = function() {	 
	var sp = document.getElementById('smallpic');
	if(sp.current == null){
		sp.current = 2;
	} else 
		if(sp.current == 2){
			sp.current = 1;
		} else{
			sp.current+=1;
		  }
	sp.style.background = "url(/res/pics/nad"+sp.current+".jpg)";	
}
/** ] namespace SmallPic **/

/** namespace HAccordionMenu [ **/
var HAccordionMenu = {};

HAccordionMenu.initWhenLoaded = function(rqt){
	if(rqt == 'live' && HAccordionMenu.chatInitialized == null){
		HAccordionMenu.chatInitialized = true;
		//Set the focus to the Message Box.
		document.getElementById('txtmessage').focus();
		//Start Recieving Messages.
		NChat.getChatText();
		Live.initTwitter();		
	} 
	
	if(rqt != 'live'){		
		//stop chat here
		HAccordionMenu.chatInitialized = null;		
	}
	if(rqt == 'gallery'){
		AccordionMenu.initGalleryMenu();
		Gallery.init();
	}
}

HAccordionMenu.init = function(){
	
	var rqts = new Array('news','gallery','live');
	
	var els = document.getElementById('menutop').getElementsByTagName("a");
		els = Nad.getElementsByClass("listitem", els);
	for(var i=0; i < els.length; i++){	
		if(rqts[i] != null){
			els[i].rqt = rqts[i];			
		}
	}
	lastrqt  = null; 
	lastBlock = $("#menutop #a1");
    maxWidth = 180;
    minWidth = 40;	

    $("#menutop ul li a").hover(
      function(){
        $(lastBlock).animate({width: minWidth+"px"}, { queue:false, duration:400 });
		$(this).animate({width: maxWidth+"px"}, { queue:false, duration:400});
		lastBlock = this;
      }
    );
    
    $("#menutop ul li a").click(
      function(){    	  
    	cente = document.getElementById("center");    	
    	cente2 = document.getElementById("center2");    	
    	lia = this;
    	if(cente2.style.display == "none" || cente2.style.display == ""){
    		//$("#center2").slideDown();
    		$("#center").animate( 
    				{ right: '800px' },
    				500,
    				function(){ //called back when the animate finishes
    					cente2.innerHTML = "";
    					cente2.style.display = "block";
    					cente.style.display = "none";
	    				if(lia.rqt != null){								
	    					Nadj.invokeAndFadeLater(
	    						"/php/ctrl/d.php?reqtype="+lia.rqt,
	    						"center2",
	    						false, /*try to initialize chat if live is called*/
	    						"HAccordionMenu.initWhenLoaded('"+lia.rqt+"')"
	    					);				
	    				}
    				}
    		 );
    		
    	} else if(this.rqt == lastrqt){    		
			//$("#center2").slideUp(); 
			cente2.style.display = 'none';
			cente.style.display = "block";
			$("#center").animate( 
    				{ right: '0px' },
    				500    				
    		 );			
			HAccordionMenu.chatInitialized = null;			
			return;
		}
    	lastrqt = this.rqt;
    	
    	if(cente2.style.display == "block"){
    		if(this.rqt != null){								
				Nadj.invokeAndFadeLater(
					"/php/ctrl/d.php?reqtype="+this.rqt,
					"center2",
					true, /*try to initialize chat if live is called*/
					"HAccordionMenu.initWhenLoaded('"+this.rqt+"')");				
			}
    	}		
    	
      }//function
    );

};

/** ] namespace HAccordionMenu **/

/** namespace Spring [ **/
var Spring = {};
Spring.showSpacer = function(spacerId, ctrlId){
	$("#"+spacerId).slideToggle("slow");
	el = document.getElementById(ctrlId);
	if(el.open == true){		
		el.style.background = "url(/res/buttons/categoriesup.png)";
		el.open = false;
	} else {
		el.open = true;
		el.style.background = "url(/res/buttons/categoriesdown.png)";		
	}
};
/** ] namespace Spring **/

/** class Nadj [Ajax class] [ **/

function Nadj(){	
}

/**
 * Create a XMLHttpRequest regardless the browser type
 */
Nadj.createXMLHttpRequest = function(){
	var xmlHttp;	
	try{  // Firefox, Opera 8.0+, Safari 
		 xmlHttp=new XMLHttpRequest();  
	}catch (e) {  // Internet Explorer
	  try{ 
		 xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");    
	  }  catch (e){
		  try {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      
		  } catch (e) {
				alert("Your browser does not support AJAX!");
				return false; 
			}
		}
	 } 
	return xmlHttp;
} 
Nadj.ganadtxt = "";
Nadj.invokeCAndMenu = function(url){
	 var xmlHttpContent = Nadj.createXMLHttpRequest();
	 var xmlHttpMenu    = Nadj.createXMLHttpRequest();	
	 var googleaddnad1 = document.getElementById('googleaddnad');
	 if(googleaddnad1 && Nadj.ganadtxt == "" ){
	 	Nadj.ganadtxt = googleaddnad1.innerHTML;
	 }	  
	 xmlHttpContent.onreadystatechange = function(){
			if(xmlHttpContent.readyState==4){
				//document.getElementById('centercontent').style.display = "none";
				var ccont = document.getElementById('centercontent'); 
				ccont.innerHTML = xmlHttpContent.responseText;	
				if(navigator.appName != "Microsoft Internet Explorer"){ 			
					Fade.fadeIn('centercontent');				
					//$("#centercontent").fadeIn("slow");
				}
				var googleaddnad = document.getElementById('googleaddnad');
				if(googleaddnad && Nadj.ganadtxt != ""){
					googleaddnad.innerHTML = Nadj.ganadtxt;
				}
			  /*var scrpt = ccont.getElementsByTagName("script");    
				for(var i=0; i<scrpt.length; i++) {   
			       eval(scrpt[i].text);   
			    } */ 
			 }
		}
	 xmlHttpMenu.onreadystatechange = function(){
		 if(xmlHttpMenu.readyState==4){			 
			 document.getElementById('accmenu').innerHTML = xmlHttpMenu.responseText;	
			 if(navigator.appName != "Microsoft Internet Explorer"){ 					
				 Fade.fadeIn('accmenu');
			     //$("#accmenu").fadeIn("slow");
			 }
			 AccordionMenu.init();
			 AccordionMenu.initLinks();
		 }
	 }
	Nad.spinDiv('centercontent');
	xmlHttpContent.open("GET","/view/"+url,true); 
	xmlHttpMenu.open("GET","/view/menu/"+url,true); 
	xmlHttpContent.send(null);  
	xmlHttpMenu.send(null);  
}
 
 /**
  * Simple static method to send a request ,
  * and when the response received to put it
  * into a given div
  */
 Nadj.invokeAndFadeLater = function(url, divName, spin, callback){
	 var xmlHttpContent = Nadj.createXMLHttpRequest();	
	 xmlHttpContent.onreadystatechange = function(){
		 if(xmlHttpContent.readyState==4){			 
			 document.getElementById(divName).innerHTML = xmlHttpContent.responseText;	
			 if(navigator.appName != "Microsoft Internet Explorer"){ 			
				 Fade.fadeIn(divName);			
			 }
			 if(callback != null){
				 eval(callback);
			 }
		 }
	 }	 
	 if(spin == true){
		 Nad.spinDiv(divName);		 
	 }
	 xmlHttpContent.open("GET", url, true);	 
	 xmlHttpContent.send(null); 
 }
 
  
  /**
   * Simple static method to send a request by post ,
   * and when the response received to put it
   * into a given div
   */
  Nadj.invokeByPost = function(url, divName, spin, formName){
	  var params = "";
	  var els = document.getElementById(formName).getElementsByTagName("input");
	  for(var i=0; i<els.length; i++){
		  params += els[i].name + "=" + els[i].value;
		  if(i < els.length - 1){
			  params += "&";
		  }		  
	  }
	  els = document.getElementById(formName).getElementsByTagName("textarea");
	  if(els.length != 0){
		  params += "&";
	  }
	  for(var i=0; i<els.length; i++){
		  params += els[i].name + "=" + els[i].value;
		  if(i < els.length - 1){
			  params += "&";
		  }		  
	  }	  
	  var xmlHttpContent = Nadj.createXMLHttpRequest();	
	  xmlHttpContent.onreadystatechange = function(){
		  if(xmlHttpContent.readyState==4){			 
			  document.getElementById(divName).innerHTML = xmlHttpContent.responseText;	
			  if(navigator.appName != "Microsoft Internet Explorer"){ 			
				  Fade.fadeIn(divName);			
			  }
		  }
	  }	 
	  if(spin == true){
		  Nad.spinDiv(divName);		 
	  }
	  xmlHttpContent.open("POST", url+"?"+params, true);	 
	  xmlHttpContent.send(null);	  
  }
  
Nadj.showHideFollowup = function(vThis, subjId, resppage) {
	vParent = vThis.parentNode;
	vSibling = vParent.nextSibling;
	while (vSibling.nodeType == 3) { 
	// Fix for Mozilla/FireFox Empty Space becomes a TextNode or Something
		vSibling = vSibling.nextSibling;
	};

	if (vSibling.style.display == "none") {
		vThis.src = "/res/bullets/collapse.gif";
		vThis.alt = "Hide";
		if(resppage){ /*then it comes as a comment reply, otherwise it is a followup on live page*/
			Nadj.getFollowUps(vThis, subjId, resppage);			
		} else {
			Nadj.getFollowUps(vThis, subjId);			
		}
		vSibling.style.display = "block";
	} else {
		vSibling.style.display = "none";
		vThis.src = "/res/bullets/expand.gif";
		vThis.alt = "Show";
	}
	return;
}

Nadj.getFollowUps = function(vThis, subjId, resppage) {
	//show the loading bar    
    $('#bar'+subjId).css({display:'block'});    
    //send the ajax request
	if(resppage){
		$.get(    		
				"/php/ctrl/d.php",
				//name: value    	
				{subjId : subjId, reqtype : 'followups', resppage : resppage},    	
				//return the data
				function(data){
					//hide the graphic
					$('#bar'+subjId).css({display:'none'});
					$('#flu'+subjId).html(data);
				});		
	} else {
		$.get(    		
				"/php/ctrl/d.php",
				//name: value    	
				{subjId : subjId, reqtype : 'followups'},    	
				//return the data
				function(data){
					//hide the graphic
					$('#bar'+subjId).css({display:'none'});
					$('#flu'+subjId).html(data);
				});	
	}
     
}

Nadj.deleteSubject = function(subjId){
	var answer = confirm("You are about to delete a subject, are you sure?")
	if ( ! answer){
		return;		
	}	
	var center2 = 'center2';
	Nad.spinDiv(center2);
    $.get(    		
    	"/php/ctrl/d.php",    	    	
    	{ reqtype : 'deletesubj', subjId : subjId },	   
	    function(data){	      
    		$("#"+center2).html(data);	      	
			if(navigator.appName != "Microsoft Internet Explorer"){ 			
			   Fade.fadeIn(divName);			
			}
    });
}
Nadj.deleteFollowup = function(flwId, resppage){		
	var center2 = 'center2'; 
	if( resppage ){
		center2 = 'centercontent';
	}	
	Nad.spinDiv(center2);
	if(resppage){
		$.get(    		
				"/php/ctrl/d.php",    	    	
				{ reqtype : 'deleteflw', flwId : flwId , resppage : resppage},	   
				function(data){	      
					$("#"+center2).html(data);	      	
					if(navigator.appName != "Microsoft Internet Explorer"){ 			
						Fade.fadeIn(divName);			
					}
				});		
	} else {
		$.get(    		
				"/php/ctrl/d.php",    	    	
				{ reqtype : 'deleteflw', flwId : flwId},	   
				function(data){	      
					$("#"+center2).html(data);	      	
					if(navigator.appName != "Microsoft Internet Explorer"){ 			
						Fade.fadeIn(divName);			
					}
				});	
	}
}
  
/** ] class Nadj [Ajax class]**/
 
/** class Fade [fade-in / fade-out effects] [ **/
function Fade(){	
}
Fade.timeToFade = 1000.0;

Fade.fadeIn = function(eid) {
	if(navigator.appName != "Microsoft Internet Explorer"){ 
		var element = document.getElementById(eid);
		if (element == null)
			return;	
		
		element.FadeTimeLeft = Fade.timeToFade;	
		Fade.animateFadeIn( new Date().getTime(), eid);		
	}	
}

Fade.animateFadeIn = function(lastTick, eid) {
	var curTick = new Date().getTime();
	var elapsedTicks = curTick - lastTick;

	var element = document.getElementById(eid);

	if (element.FadeTimeLeft <= elapsedTicks) {
		element.style.opacity = '1';
		element.style.filter = 'alpha(opacity = 100 )';
		if(navigator.appName == "Microsoft Internet Explorer"){
			element.style.removeAttribute('filter');			
		}		
		return;
	}

	element.FadeTimeLeft -= elapsedTicks;
	var newOpVal = element.FadeTimeLeft / Fade.timeToFade;
	newOpVal = 1 - newOpVal;
	element.style.opacity = newOpVal;
	element.style.filter = 'alpha(opacity = ' + (newOpVal * 100) + ')';

	setTimeout("Fade.animateFadeIn(" + curTick + ",'" + eid + "')", 33);
}

Fade.fadeOut = function(eid) {	
	var element = document.getElementById(eid);
	if (element == null)
		return;	
	
	element.FadeTimeLeft = Fade.timeToFade;	
	Fade.animateFadeOut( new Date().getTime(), eid);		
	
}

Fade.fadeOut.inProgress = false;

Fade.animateFadeOut = function(lastTick, eid) {
	var curTick = new Date().getTime();
	var elapsedTicks = curTick - lastTick;
	
	var element = document.getElementById(eid);
	
	if (element.FadeTimeLeft <= elapsedTicks) {
		element.style.opacity = '0';
		element.style.filter = 'alpha(opacity = 0 )';
		if(navigator.appName == "Microsoft Internet Explorer"){
			element.style.removeAttribute('filter');			
		}		
		return;
	}
	
	element.FadeTimeLeft -= elapsedTicks;
	var newOpVal = element.FadeTimeLeft / Fade.timeToFade;	
	element.style.opacity = newOpVal;
	element.style.filter = 'alpha(opacity = ' + (newOpVal * 100) + ')';
	
	setTimeout("Fade.animateFadeOut(" + curTick + ",'" + eid + "')", 33);
}

Fade.fade = function(eid) {
	var element = document.getElementById(eid);
	if (element == null)
		return;
	if (element.FadeState == null) {
		if (element.style.opacity == null || element.style.opacity == ''
				|| element.style.opacity == '1') {
			element.FadeState = 2;
		} else {
			element.FadeState = -2;
		}
	}
	
	if (element.FadeState == 1 || element.FadeState == -1) {
		element.FadeState = element.FadeState == 1 ? -1 : 1;
		element.FadeTimeLeft = Fade.timeToFade - element.FadeTimeLeft;
	} else {
		element.FadeState = element.FadeState == 2 ? -1 : 1;
		element.FadeTimeLeft = Fade.timeToFade;
		setTimeout("Fade.animateFade(" + new Date().getTime() + ",'" + eid + "')",
				33);
	}
}

Fade.animateFade = function(lastTick, eid) {
	var curTick = new Date().getTime();
	var elapsedTicks = curTick - lastTick;

	var element = document.getElementById(eid);

	if (element.FadeTimeLeft <= elapsedTicks) {
		element.style.opacity = element.FadeState == 1 ? '1' : '0';
		element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100'
				: '0') + ')';
		element.FadeState = element.FadeState == 1 ? 2 : -2;
		return;
	}

	element.FadeTimeLeft -= elapsedTicks;
	var newOpVal = element.FadeTimeLeft / Fade.timeToFade;
	if (element.FadeState == 1)
		newOpVal = 1 - newOpVal;

	element.style.opacity = newOpVal;
	element.style.filter = 'alpha(opacity = ' + (newOpVal * 100) + ')';

	setTimeout("Fade.animateFade(" + curTick + ",'" + eid + "')", 33);
}
/** ] class Fade [fade-in / fade-out effects] **/
 
/** class MovableDiv [ **/
function MovableDiv(divName, top, left){	
	 this.div = document.getElementById(divName);
	 this.div.movable = true;
	 if(top != null && left != null){		 
		 this.div.style.top = top +'px';   // Starting location horizontal
		 this.div.style.left= left+'px';   // Starting location vertical
	 } else {		 
		 this.div.style.top = 0 +'px';   // Starting location horizontal
		 this.div.style.left= 0 +'px';   // Starting location vertical
	 }
	 
	 this.div.savedTarget = null; 	// The target layer (effectively currentMovableDiv)
	 this.div.orgCursor = null;		// The original Cursor (mouse) Style so we can restore it
	 this.div.dragOK = false;		// True if we're allowed to move the element under mouse
	 this.div.dragXoffset = 0;		// How much we've moved the element on the horizontal
	 this.div.dragYoffset = 0;		// How much we've moved the element on the vertical	
	 
	 /** global currentMovableDiv **/
	 currentMovableDiv = this.div;
	 
	 Nad.addEvent(document, 'onmousedown', MovableDiv.dragHandler);
}

MovableDiv.moveHandler = function(e) {
	if (e == null) {
		e = window.event;
	}
	if (e.button <= 1 && currentMovableDiv.dragOK) {
		currentMovableDiv.savedTarget.style.left = e.clientX - currentMovableDiv.dragXoffset + 'px';
		currentMovableDiv.savedTarget.style.top = e.clientY - currentMovableDiv.dragYoffset + 'px';
		return false;
	}
	return true;
}

MovableDiv.cleanup = function(e) {
	document.onmousemove = null;
	document.onmouseup = null;
	currentMovableDiv.savedTarget.style.cursor = currentMovableDiv.orgCursor;
	dragOK = false;
}

MovableDiv.dragHandler = function(e) {
	var htype = '-moz-grabbing';
	if (e == null) {
		e = window.event;
		htype = 'move';
	}
	var target = e.target != null ? e.target : e.srcElement;
	currentMovableDiv.orgCursor = target.style.cursor;
	
	if (target.movable == true) {
		currentMovableDiv = target;
		currentMovableDiv.savedTarget = target;
		target.style.cursor = htype;
		currentMovableDiv.dragOK = true;
		currentMovableDiv.dragXoffset = e.clientX - parseInt(currentMovableDiv.style.left);
		currentMovableDiv.dragYoffset = e.clientY - parseInt(currentMovableDiv.style.top);
		document.onmousemove = MovableDiv.moveHandler;
		document.onmouseup = MovableDiv.cleanup;
		return false;
	}
	return true;
}

/** ] class MovableDiv **/

/** class FlyingDiv [ **/
function FlyingDiv(divName){
	this.el = document.getElementById ? document.getElementById(divName)
			: document.all ? document.all[divName]
					: document.layers[divName];
	this.targetX = 0;
	this.targetY = 0;
	this.nextX   = 82;
	this.nextY   = 122;	
}

FlyingDiv.prototype.move = function() {
	this.el.style.left = this.nextX + 'px';
	this.el.style.top  = this.nextY + 'px';
}

FlyingDiv.prototype.doFloat = function() {
	var stepX, stepY;

	var cornerX = this.targetX;

	var stepX = (cornerX - this.nextX) * .07;
	if (Math.abs(stepX) < .5) {
		stepX = cornerX - this.nextX;
	}

	var cornerY = this.targetY;

	var stepY = (cornerY - this.nextY) * .07;
	if (Math.abs(stepY) < .5) {
		stepY = cornerY - this.nextY;
	}

	if (Math.abs(stepX) > 0 || Math.abs(stepY) > 0) {
		this.nextX += stepX;
		this.nextY += stepY;
		this.move();
	}
	if (Math.abs(stepX) == 0 && Math.abs(stepY) == 0) {		
		return;
	}
	setTimeout('flyingDiv.doFloat()', 20);

};

FlyingDiv.prototype.moveTo = function(x, y){
	this.targetX = x;
	this.targetY = y;		
	this.doFloat();
}

/** ] class FlyingDiv **/

/****** simple functions [ *****/
function twitterCallback2(C) {
	var A = [];
	for ( var D = 0; D < C.length; D++) {
		var E = C[D].user.screen_name;
		var B = C[D].text
				.replace(
						/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g,
						function(F) {
							return '<a href="' + F + '">' + F + "</a>"
						}).replace(
						/\B@([_a-z0-9]+)/ig,
						function(F) {
							return F.charAt(0)
									+ '<a href="http://www.twitter.com/'
									+ F.substring(1) + '">' + F.substring(1)
									+ "</a>"
						});
		A.push("<li><span>" + B
				+ '</span> <a style="font-size:85%" href="http://twitter.com/'
				+ E + "/statuses/" + C[D].id + '">'
				+ relative_time(C[D].created_at) + "</a></li>")
	}
	document.getElementById("twitter_update_list").innerHTML = A.join("")
}
function relative_time(C) {
	var B = C.split(" ");
	C = B[1] + " " + B[2] + ", " + B[5] + " " + B[3];
	var A = Date.parse(C);
	var D = (arguments.length > 1) ? arguments[1] : new Date();
	var E = parseInt((D.getTime() - A) / 1000);
	E = E + (D.getTimezoneOffset() * 60);
	if (E < 60) {
		return "less than a minute ago"
	} else {
		if (E < 120) {
			return "about a minute ago"
		} else {
			if (E < (60 * 60)) {
				return (parseInt(E / 60)).toString() + " minutes ago"
			} else {
				if (E < (120 * 60)) {
					return "about an hour ago"
				} else {
					if (E < (24 * 60 * 60)) {
						return "about " + (parseInt(E / 3600)).toString()
								+ " hours ago"
					} else {
						if (E < (48 * 60 * 60)) {
							return "1 day ago"
						} else {
							return (parseInt(E / 86400)).toString()
									+ " days ago"
						}
					}
				}
			}
		}
	}
};
/****** ] simple functions *****/

/*************** Classes and Functions ********************/

/*************** Execute right now [ *******************/
Nad.addEvent(window, 'onload', 
	function(){
		/** Our movable layers **/
	    movableDiv1 = new MovableDiv('smallpics', 82, 122);	   		
	    movableDiv2 = new MovableDiv('boxLogin', 30, 345);	   		
	    movableDiv3 = new MovableDiv('boxSettings', 30, 345);	   		
	    movableDiv3 = new MovableDiv('responseArea', 73, 0);	   		
	    flyingDiv   = new FlyingDiv('smallpics');
	    RMenu.initialize('centernav'); 
	    AccordionMenu.init();
	    AccordionMenu.initLinks();
	    HAccordionMenu.init();
	    //Nad.preloadImages('/res/bg/bgcenter.jpg','res/buttons/navubx.gif');
	    
	    document.getElementById("pageLoader").style.display = "none";
	    if(navigator.appName == "Microsoft Internet Explorer"){
	  	  document.getElementById("around").style.display = "block";	 
	    } else {
	  	  $('#around').fadeIn(200);	  
	    }
	    $('#colorPicker').colorPicker();	    
	}
);
/*************** ] Execute right now *******************/