// Javascript from Moodle modules
/**
 * This function is used to add/remove
 * the style named 'checked' to/from the
 * passed element's parent DIV.
 *
 * This function is used when checking
 * checkboxes or radio buttons.
 *
 * @param object el This element's parent will be used when adjusting the style
 * @param string parentClass Name of the parent DIV class to find
 * @param string groupClassName Name of a group of elements that should have the class 'checked' removed before toggling the passed one (el).
 * @return void
 **/
function assessToggleStyle(el, parentClass, groupClassName) {
    // Holds the parent element
    var obj;

    if (groupClassName) {
        var parent   = findParentNode(el, 'DIV', groupClassName);
        var elements = parent.getElementsByTagName('input');

        // Turn remove the style 'checked' from all elements in elements
        for (i = 0; i < elements.length; i++) {
            obj = findParentNode(elements[i], 'DIV', parentClass);

            if (obj.className.indexOf('checked') != -1) {
                obj.className = obj.className.replace(new RegExp(' ?checked'), '');
            }
        }
    }

    // Toggle the passed element
    obj = findParentNode(el, 'DIV', parentClass); 

    if (obj.className.indexOf('checked') == -1) {
        obj.className += ' checked';
    } else {
        obj.className = obj.className.replace(new RegExp(' ?checked'), '');
    }
}

/**
 * Holds the assessAutoSave object
 *
 * @var object
 **/
var assessAjaxObject = new assessAutoSave();

/**
 * Constructor - set defaults
 *
 * @return void
 **/
function assessAutoSave() {
    this.saveTimeoutId = 0;
    this.saveInProgress = false;
    this.formsToSave = Array();
    this.varsAreSet = false;
    this.saveInterval = 15000;      // Overall save interval.  Can only save every this.saveInterval miliseconds
    this.changeInterval = 10000;    // Save interval for all form elements
    this.textChangeInterval = 4000; // Save interval for textareas (overrides this.changeInterval)
    this.lastSave = 0;
}
/**
 * Variable setup routine - adds method to window.onload
 *
 * @param string wwwroot WWW root of the site
 * @param int offSet User's time minus current time (seconds)
 * @return void
 **/
assessAutoSave.prototype.setVars = function(wwwroot) {
    if (!this.varsAreSet) {
        this.wwwroot = wwwroot;

        if (typeof window.onload == "function") {
            var oldmethod = window.onload;
            window.onload = function() {
                oldmethod();
                assessAjaxObject.setListeners();
            }
        } else {
            window.onload = function() {
                assessAjaxObject.setListeners();
            }
        }
    }
    this.varsAreSet = true;
};
/**
 * Adds event listerns to form elements
 *
 * @return void
 **/
assessAutoSave.prototype.setListeners = function() {
    var forms = document.getElementsByName('assessaddformautosave');
    var other, textareas, form, datachange, datakeyup, iframs;

    for (var f = 0; f < forms.length; f++) {
        form = forms[f];
        form.assessCount = f;  // Used as a key later

        other = Array();
        textareas = Array();

        iframes = form.getElementsByTagName('iframe');
        for (i = 0; i < iframes.length; i++) {
            textareas.push(iframes[i].contentWindow.document);
        }
        for (i = 0; i < form.length; i++) {
            el = form.elements[i];
            if (el.tagName == 'TEXTAREA') {
                textareas.push(el);
            } else if (el.type != 'hidden' && el.type != 'button' && el.type != 'submit') {
                other.push(el);
            }
        }
        datachange = { formel: form, interval: this.changeInterval };
        YAHOO.util.Event.addListener(other, "click", assessAjaxObject.registerChange, datachange, assessAjaxObject);
        datakeyup = { formel: form, interval: this.textChangeInterval };
        YAHOO.util.Event.addListener(textareas, "keyup", assessAjaxObject.registerChange, datakeyup, assessAjaxObject);
    }
};
/**
 * Registers a form for saving and fires off setSaveTimeout()
 *
 * @param object e Event object
 * @param object data data.formel is the element of the form to save; data.interval is the wait till save
 * @return void
 **/
assessAutoSave.prototype.registerChange = function(e, data) {
    this.formsToSave[data.formel.assessCount] = data.formel;
    this.setSaveTimeout(data.interval);
};
/**
 * Sets a timeout for when to save the queue of forms.  Also
 * ensures that the save does not happen more frequently than
 * this saveInterval time.
 *
 * @param int milisec Miliseconds to save
 * @return void
 **/
assessAutoSave.prototype.setSaveTimeout = function(milisec) {
    var now = new Date();
    var timepassed = now.getTime() - this.lastSave;
    if (timepassed < this.saveInterval && this.lastSave != 0) {
        var timeleft = this.saveInterval - timepassed;
        if (timeleft > milisec) {
            milisec = timeleft;
        }
    }
    if (this.saveTimeoutId != 0) {
        clearTimeout(this.saveTimeoutId);
    }
    this.saveTimeoutId = setTimeout("assessAjaxObject.saveTimeoutId = 0; assessAjaxObject.saveForms();", milisec);
};
/**
 * Submits all forms that are targeted for saving
 *
 * @return void
 **/
assessAutoSave.prototype.saveForms = function() {
    if (!this.saveInProgress) {
        this.saveInProgress = true;

        if (this.formsToSave.length > 0) {
            var form, callback;

            if (typeof window.onunload == "function") {
                window.onunload();  // Moves HTMLEditor text to its textarea
            }

            for (var key in this.formsToSave) {
                form = this.formsToSave[key];

                callback = { success:this.handleSuccess,
                             failure:this.handleFailure,
                             argument:form,
                             scope:assessAjaxObject };

                YAHOO.util.Connect.setForm(form);  // Sets all form data for submitting
                YAHOO.util.Connect.asyncRequest('POST', this.wwwroot+'/mod/assess/rest.php', callback);
            }
            this.formsToSave = Array();
        }
    } else {
        // Still performing save - wait longer
        this.setSaveTimeout(this.saveInterval);
    }
};
/**
 * Handles successful asyncRequest call - sends feedback to user
 *
 * @return void
 **/
assessAutoSave.prototype.handleSuccess = function(o) {
    var divs = o.argument.getElementsByTagName('div');

    if (o.responseXML != null) {
        var root = o.responseXML.documentElement;
        var submissionid = root.getElementsByTagName('submissionid')[0].firstChild.nodeValue;
        var timesaved = root.getElementsByTagName('timesaved')[0].firstChild.nodeValue;

        // Update the time
        divs[0].getElementsByTagName('span')[0].innerHTML = timesaved;

        // Update the submissionid if not 0
        if (submissionid != 0) {
            var inputs = o.argument.getElementsByTagName('input');
            for (var i = 0; i < inputs.length; i++) {
                if (inputs[i].name == 'submissionid') {
                    inputs[i].value = submissionid;
                    break;
                }
            }
        }
        this.handleCommon(divs[1], divs[0]);
    } else {
        // No XML returned, failed
        this.handleCommon(divs[0], divs[1]);
    }
};
/**
 * Handles failed asyncRequest call - sends feedback to user
 *
 * @return void
 **/
assessAutoSave.prototype.handleFailure = function(o) {
    var divs = o.argument.getElementsByTagName('div');
    this.handleCommon(divs[0], divs[1]);
};
/**
 * Handles common asyncRequest tasks for success/failure
 *   - Display success/failure info to user
 *   - Update variables
 *
 * @return void
 **/
assessAutoSave.prototype.handleCommon = function(hide, show) {
    // Set visibility
    if (YAHOO.util.Dom.hasClass(show, 'hidden')) {
        YAHOO.util.Dom.removeClass(show, 'hidden')
    }
    if (!YAHOO.util.Dom.hasClass(hide, 'hidden')) {
        YAHOO.util.Dom.addClass(hide, 'hidden');
    }

    this.saveInProgress = false;

    var date = new Date();
    this.lastSave = date.getTime();
};/**
 * This function checks that the selected action is valid, via checking that the
 * selected action is valid and that there is at least one checked course
 * (eg: checkchecked())
 *
 * @param object    form        Document form object
 * @return boolean
 **/
function course_management_checksubmit(form) {
    var destination = form.courseaction.options[form.courseaction.selectedIndex].value;
    if (destination == "" || !course_management_checkchecked(form)) {
        form.courseaction.selectedIndex = 0;
        return false;
    } else {
        // Modifies the forms action value to submit to selected page
        return course_management_form_action(form, destination);
    }
}

/**
 * This function checks all inputs on the form that are of type checkbox to
 * ensure that at least one checkbox is selected
 *
 * @param object    form    Document form object
 * @return boolean
 **/
function course_management_checkchecked(form) {
    var inputs = document.getElementsByTagName("INPUT");
    var checked = false;
    inputs = filterByParent(inputs, function() {return form;});
    for(var i = 0; i < inputs.length; ++i) {
        if (inputs[i].type == "checkbox" && inputs[i].checked) {
            checked = true;
            // Only needs to check for one checked value
            break;
        }
    }
    return checked;
}

/**
 * This function modifies the form's action to passed destination url and
 * optionally submits.
 *
 * @param object    form        Document form object
 * @param string    destination URL of destination
 * @param boolean   submit      Submits form if set to true...returns bool otherwise
 **/
function course_management_form_action(form, destination, submit) {
    form.action = destination;
    if (submit) {
        form.submit();
    } else {
        return true;
    }
}/**
 * JavaScript for checking or unchecking 
 * all the students or all students in a group.
 *
 * @param toggle Check All/None
 * @param start the first checkbox to be changed
 * @param end the last checkbox to be changed
 * return boolean
 **/
function block_quickmail_toggle(toggle, start, end) {
    // Element ID
    var id = 'mailto'+start;

    // iterate through all of the appropriate checkboxes and change their state
    while(document.getElementById(id) && start != end) {
        document.getElementById(id).checked = toggle;
        start++;
        id = 'mailto'+start;
    }

    return false;
}


				//***Please Read it,But Don't Try To Modify*//
	//********************************************************************************
	//File Name 	: AjaxClassEx.js									*
	//File Version 	: 1.0.0										*
	//File Last Build: 11/12/2007 15.57									*
	//			: for IE<=IE7,firefox,opera							*
	//Copyright		:2007-08 (c) BOOKS Cybertech Pvt. ltd,www.bookscybertech.com	*
	//**********Note :It is absolutely Open source Code,If this code works fine		*
	// It is written by Lr Bijaya,BOOKS Cybertech Pvt. Ltd,					*
	// and just give me the credit nothing else.Otherwise code					*
	// is written someone else.										*
	//		Example: 											*
	//				var returnData='received';						*
	//				var ax=new ExAjaxClass();						*
	//			function cb(serverResponse,ARType,AStatus)				*
	//			{											*
	//				if(AStatus==AjaxStatus.OK)						*
	//				{										*
	//				returnData+="\n\n"+serverResponse;					*
	//				}										*
	//				else //error								*
	//				{										*
	//				returnData="error no:" +AStatus+"\n\n"+serverResponse;	*
	//				}										*
	//				alert(returnData);							*
	//			}											*
	//			ax.AddCallBackHnadler(cb,AjaxResponseType.responseTEXT);		*
	//		      ax.sendToServer(AjaxMethodType.POST,'test.php3',"name=bijay");	*
	//														*
	//********************************************************************************


































//*******[Enum Ajax ReadyState]********
var AjaxReadyState=new Object();
    	AjaxReadyState.UNINITIALIZED = 0;
   	AjaxReadyState.LOADING = 1;
	AjaxReadyState.LOADED = 2;
    	AjaxReadyState.INTERACTIVE = 3;
   	AjaxReadyState.COMPLETE = 4;


//*******[Enum Ajax Status]********
var AjaxStatus=new Object();
      AjaxStatus.OK=200 ;
	AjaxStatus.Created =201 ;
	AjaxStatus.Accepted =202 ;
	AjaxStatus.No_Content=204 ; 
	AjaxStatus.Moved_Permanently=301; 
	AjaxStatus.Moved_Temporarily =302;

	AjaxStatus.Not_Modified =304;
	AjaxStatus.Bad_Request =400;
	AjaxStatus.Unauthorized=401; 
	AjaxStatus.Forbidden =403 ;
	AjaxStatus.Not_Found =404;
	AjaxStatus.Method_Not_Allowed =405;
	AjaxStatus.NotAcceptable =406;
	AjaxStatus.PreconditionFailed=407;
	AjaxStatus.RequestTimeout  =408;
	AjaxStatus.Conflict  =409;
	AjaxStatus.Gone=410;
	AjaxStatus.RequestEntityTooLarge  =413;
	AjaxStatus.RequestUriTooLong  =414;
	AjaxStatus.Unsupported_MediaType  =415;
	AjaxStatus.RequestedRangeNotSatisfiable=416;
	AjaxStatus.ExpectationFailed=417;

	AjaxStatus.Internal_Server_Error=500 ; 
	AjaxStatus.Not_Implemented =501 ;
	AjaxStatus.Bad_Gateway =502 ;
	AjaxStatus.Service_Unavailable=503 ; 

	AjaxStatus.Open_Mathod_Fail =600 ;
	AjaxStatus.Send_Mathod_Fail=601 ;


	AjaxStatus.Pequest_Pending=700 ;


	


//*******[Enum Ajax Response Type]********
var AjaxResponseType=new Object();
    AjaxResponseType.responseXML=1; //onseXML';
    AjaxResponseType.responseTEXT=2; //onseText';


//*******[Enum Ajax Method Type]********
var AjaxMethodType=new Object();
    AjaxMethodType.POST=1;
    AjaxMethodType.GET=2;
    AjaxMethodType.HEAD=3;
    AjaxMethodType.UNDEFINED=4;






//*******[ Ajax Class]********
function ExAjaxClass()
	{
		

		// Public Property
		this.request=null;
		this.response=null;
		this.callingMethod='';
		this.responseType=null ; //''
		this.AjaxCallbackFunction=null;
		this.methodType=null;
		this.loaded=2;

		//********[ADD AJAX CALLBACK HANDLER ]*********/
		this.AddCallBackHnadler=function(AjaxCallbackFunction,responsetype)
		{
			
			this.responseType='';
			switch(responsetype)
			{
				case AjaxResponseType.responseXML:
					this.responseType=AjaxResponseType.responseXML; //'responseXML'; // ;
					break;
				case AjaxResponseType.responseTEXT:
					this.responseType=AjaxResponseType.responseTEXT; //'responseText'; //;
					break;
			}
			
			this.AjaxCallbackFunction=AjaxCallbackFunction||null;
		};//AddCallBackHnadler




	/********* M E T H O D *********/
this.initialize=function()
{
	this.response=null;
	this.callingMethod='';
		
	if(!this.request)
	{
		if(window['XMLHttpRequest'])
		{
			/*IE7, Mozillas*/ 
			try
			{
				this.request=new XMLHttpRequest();
			}
			catch(e)
			{
				this.request=null;
			};
		}
		else if(window['ActiveXObject'])
		{
			/*IE<IE7*/
			var ajaxMSversions=[/*'Msxml2.DOMDocument.5.0', 'Msxml2.DOMDocument.4.0', 'Msxml2.DOMDocument.3.0', 'MSXML2.DOMDocument',*/ 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'	];
			for(var v=0; v<ajaxMSversions.length; v++)
			{
				try
				{
					this.request=new ActiveXObject(ajaxMSversions[v]);
					 return this.request;
				}
				catch(e)
				{
					this.request=null;
				};
			}
		}
		else if(window['createRequest'])
		{ 
			try
			{
				this.request=window.createRequest();
			}
			catch(e)
			{
				this.request=null;
			}; 
		}
		else
		{
			alert('XMLHTTP not enabled. Impossible to proceed.'
		);
	}
	};
return this.request;
}



	this.sendToServer=function(methodtype,uri,arguments)
	{	
		
		if(this.loaded!=AjaxReadyState.LOADED)
		{
			
			if(typeof(this.AjaxCallbackFunction)=="function")
			{		
				this.response="Already one request is pending.";
			 	this.AjaxCallbackFunction(this.response,this.responseType,AjaxStatus.Pequest_Pending);
			}
			return ;
		}
			
		
		if(methodtype!=undefined)
		{	
			
			
			if(!uri || !this.initialize()){return false;};
		
			arguments=arguments||'';

			
			switch(methodtype)
			{
				case AjaxMethodType.POST:
					this.methodType=AjaxMethodType.POST;
					this.callingMethod='POST';
					arguments=unescape(arguments);
					
					try
					{
						this.request.open('POST', uri, true);
						this.request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
					}
					catch(e)
					{if(typeof(this.AjaxCallbackFunction)=="function")
						{		
							this.AjaxCallbackFunction(e.message,this.responseType,e.number);
							delete this.request;
							return;
						}
					}

					
					break;
				case AjaxMethodType.GET:
					this.methodType=AjaxMethodType.GET;
					this.callingMethod='GET';
					arguments=arguments.replace(/\?/, '');
					arguments=unescape(arguments);
					

					try
					{
						this.request.open('GET', (uri+'?'+arguments), true);
						this.request.setRequestHeader('Content-Type', 'text/xml');
					}
					catch(e)
					{if(typeof(this.AjaxCallbackFunction)=="function")
						{		
							this.AjaxCallbackFunction(e.message,this.responseType,e.number);
							delete this.request;
							return;
						}
					}



					
					arguments=null;
					break;
				case AjaxMethodType.HEAD:
					this.methodType=AjaxMethodType.HEAD;
					this.callingMethod='HEAD';
					


					try
					{
						this.request.open('HEAD', uri, true);
						this.request.setRequestHeader('Content-Type', 'text/xml');
					}
					catch(e)
					{if(typeof(this.AjaxCallbackFunction)=="function")
						{		
							this.AjaxCallbackFunction(e.message,this.responseType,e.number);
							delete this.request;
							return;
						}
					}

					
					arguments=(arguments||null);
					break;
			}
			
			
			
			try
			{
				this.request.onreadystatechange=this.AjaxCallback(this);
				this.request.send(arguments);
			}
			catch(e)
			{if(typeof(this.AjaxCallbackFunction)=="function")
				{		
				this.AjaxCallbackFunction(e.message,this.responseType,e.number);
				delete this.request;
				return;
				}
			}


	      	
		}
		else
		{
			return false;
		}
		

	};//doSendRequest

	/********* [ METHOD Error ] *********/
	this.error=function(statusError)
	{
		if(statusError)
		{
			this.response=(this.request && this.request.status)? 'Ajax Error: '+this.request.status+': '+this.request.statusText: 'Ajax Error: Requested document may be temporarily unavailable';
			//alert(this.response);
			return this.response;
		}
		else
		{
			return false;
		}
	}


	/********* M E T H O D *********/
	this.AjaxCallback=function(ajaxInstance)
	{
		return function()
		{

		
		//currying
		if(ajaxInstance.request.readyState==AjaxReadyState.COMPLETE || ajaxInstance.request.readyState=='complete')
		{
			ajaxInstance.loaded=AjaxReadyState.LOADED;
			if(ajaxInstance.request.status==AjaxStatus.OK)
			{
				
				var _callingMethod,_responseType;
 				_callingMethod='';
				_responseType='';
				switch(ajaxInstance.methodType)
				{
					case AjaxMethodType.POST:
						_callingMethod="POST";
						break;
					case AjaxMethodType.GET:
						_callingMethod="GET";
						break;
					case AjaxMethodType.HEAD:
						_callingMethod="HEAD";
						break;
				}

				
				switch(ajaxInstance.responseType)
				{
					case AjaxResponseType.responseXML:
						_responseType='responseXML'; 
						break;
					case AjaxResponseType.responseTEXT:
						_responseType='responseText'; 
						break;
				}

				
				ajaxInstance.response=(_callingMethod=='GET' || _callingMethod=='POST')?ajaxInstance.request[_responseType]:
				(_callingMethod=='HEAD')?ajaxInstance.request.getAllResponseHeaders():false;
				
				if(typeof(ajaxInstance.AjaxCallbackFunction)=="function")
				{		
					
					ajaxInstance.AjaxCallbackFunction(ajaxInstance.response,ajaxInstance.responseType,ajaxInstance.request.status);
					// delete this.request;
					// alert("hetre");
					return;
				}
					return ajaxInstance.response;
			}
			else
			{
				ajaxInstance.AjaxCallbackFunction(ajaxInstance.response,ajaxInstance.responseType,ajaxInstance.request.status);
				//delete this.request;
				//return;
				//return ajaxInstance.error(1);
			}
		}
		else
		{
			if(ajaxInstance.request.readyState==AjaxReadyState.LOADING)
				ajaxInstance.loaded=AjaxReadyState.LOADING;
			
			if(ajaxInstance.request.readyState==AjaxReadyState.LOADED)
				ajaxInstance.loaded=AjaxReadyState.LOADED;


			//alert(ajaxInstance.request.readyState);
			//return ajaxInstance.AjaxCallbackFunction(ajaxInstance.response,ajaxInstance.methodType,ajaxInstance.request.status);
			// return ajaxInstance.error(0);
		};
		}//currying over
	}


}




/*

	var returnData='received';
	var ax=new ExAjaxClass();
	function cb(serverResponse,ARType,AStatus)
	{
		
		if(AStatus==AjaxStatus.OK)
		{
			returnData+="\n\n"+serverResponse;
		}
		else //error
		{
			returnData="error no:" +AStatus+"\n\n"+serverResponse;
		}
		
		alert(returnData);
	}
	
	ax.AddCallBackHnadler(cb,AjaxResponseType.responseTEXT);
	//ax.post('http://etest.booksinstitute.com/respone.PHP3');
	 ax.sendToServer(AjaxMethodType.POST,'http://etest.booksinstitute.com/respone.PHP3',"DDD");
	//alert("send Next");
	 ax.sendToServer(AjaxMethodType.POST,'http://etest.booksinstitute.com/respone.PHP3',"DDD");
	
	//alert("send Next Completed");

*/







var mod_data_value_oAjax=new ExAjaxClass();
mod_data_value_oAjax.AddCallBackHnadler(recieve_data,AjaxResponseType.responseTEXT);


function add_value(req_for)
{
	
//alert("hi");
	var req='add';
	var data=''
	var block_id=req_for.id;
		var insertion_data='insertion_data'+block_id;
		var data=document.getElementById(insertion_data).value;
	    var url=document.getElementById('hidden_data').value;
		var course_id=document.getElementById('insertion_block_c_id').value;
		var user_id=document.getElementById('insertion_block_u_id').value;
		var insertion_block_row='insertion_block_row'+block_id;
		var noofrow=document.getElementById(insertion_block_row).value;
		//alert(noofrow);
		var insertion_block_noofcharbreak='insertion_block_noofcharbreak'+block_id;
	
		var noofcharbreak=document.getElementById(insertion_block_noofcharbreak).value;
			//alert(noofcharbreak);
	if(data=='') return false;

uri=url+'/blocks/shoutbox/adddata.php?data='+data+'&req='+req+'&course_id='+course_id+'&row='+noofrow+'&u_id='+user_id+'&noofcharbreak='+noofcharbreak+'&block_id='+block_id+'&';
	//alert(uri);
	mod_data_value_oAjax.sendToServer(AjaxMethodType.GET,uri,'true');
}

function recieve_data(retStr,errCode,AStatus)
{
	//alert(retStr);
	var result=retStr.split("%");
	//alert(result[1]);
	var insertion_data= 'insertion_data'+result[1];
document.getElementById(insertion_data).value='';
var list_container= 'list_container'+result[1];
//alert(list_container);
document.getElementById(list_container).innerHTML = result[0];
}


function checked_all()
{
var fmobj=document.forms[0];
for (var i=0;i<fmobj.elements.length;i++) {
    var e = fmobj.elements[i];
    if (e.type=='checkbox') {
      e.checked = true;
    }
  }
	
	
	
}


function unchecked_all()
{
var fmobj=document.forms[0];

for (var i=0;i<fmobj.elements.length;i++) {
    var e = fmobj.elements[i];
    if (e.type=='checkbox') {
      e.checked = false;
    }
  }
	
	
	
	
}
var mod_data_deletion_oAjax=new ExAjaxClass();
mod_data_deletion_oAjax.AddCallBackHnadler(delete_value,AjaxResponseType.responseTEXT);



function delete_data(gg)
{
jj=0;
var course_id=gg;
//alert(course_id);
sst=new Array();
var url=document.getElementById('hidden_data').value;
var fmobj=document.forms[0];
for (var i=0;i<fmobj.elements.length;i++) {
    var e = fmobj.elements[i];
    if (e.type=='checkbox'&& e.checked==true) {
      sst[jj]=e.id;
	  //alert(e.id);
	  jj++;
    }
  }
   uri=url+'/blocks/shoutbox/delete_data.php?id='+sst+'&course_id='+course_id+'&';
	//alert(uri);
	mod_data_deletion_oAjax.sendToServer(AjaxMethodType.GET,uri,'true');
	
}


function delete_value(retStr,errCode,AStatus)
{
//alert(retStr);
document.getElementById('conatiner_list').innerHTML = retStr;
}
function limiter(instanid){
var insertion_block_char='insertion_block_char'+instanid;
var count = document.getElementById(insertion_block_char).value;  
var insertion_data='insertion_data'+instanid;
var tex=document.getElementById(insertion_data).value;
var len = tex.length;

if(len > count){
        var insertion_data='insertion_data'+instanid;
		tex = tex.substring(0,count);
        document.getElementById(insertion_data).value =tex;
        return false;
}
var limit='limit'+instanid;
document.getElementById(limit).innerHTML = count-len;
}


function empty(b_id)
{
 var instance_id=b_id.id;
 var block_id=instance_id.substring("14");
  //alert(block_id);
 var insertion_data= 'insertion_data'+block_id;
document.getElementById(insertion_data).value ='';	
}


function popUp(ss) {
var url=document.getElementById('hidden_data').value;
var course_id=ss;	
URL=url+'/blocks/shoutbox/pop_window.php?course_id='+course_id;
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=1,scrollbars=1,location=1,statusbar=1,menubar=1,resizable=1,width=600,height=500,left = 540,top = 134');");
}

function edit_shoutbox_message(id)
{
	var editid='editid'+id;
document.getElementById(editid).innerHTML = "";
var change_message='change_message'+id;
var message_text=document.getElementById(change_message).innerHTML;
document.getElementById(change_message).innerHTML = '<textarea id=tedit'+id+' >'+message_text+'</textarea> <input  type="button" value="Submit" onClick="update_submit('+id+')"  />';
}

var mod_data_edit_oAjax=new ExAjaxClass();
mod_data_edit_oAjax.AddCallBackHnadler(edit_value,AjaxResponseType.responseTEXT);
function update_submit(id)
{
var textarea_id='tedit'+id;	
var textarea_val=document.getElementById(textarea_id).value;
var url=document.getElementById('hidden_data').value;
uri=url+'/blocks/shoutbox/editdata.php?textarea_val='+textarea_val+'&id='+id+'&';
mod_data_edit_oAjax.sendToServer(AjaxMethodType.GET,uri,'true');

}

function edit_value(retStr,errCode,AStatus)
{
//alert(retStr);
var result=retStr.split(",");
var id=parseInt(result[0]);
var updated_data=result[1];
var editid='editid'+id;
	
document.getElementById(editid).innerHTML = "EDIT";
var change_message='change_message'+id;
document.getElementById(change_message).style.background="#FFE6FF";
//document.getElementById(change_message).style.font-weight="bold";
document.getElementById(change_message).innerHTML=updated_data;


}