var currenttimeout;
var savedheights = new Array();
var wait = new Array();
var containers = containers || null;
function send_request (object,url) {
	if(helper){hide_helper();}
	var object = object && object.style ? object : document.getElementById(object);
	if (object.style.position == ""){object.style.position = "relative";}
	
	var hidehtml = document.createElement("div");
	hidehtml.style.position = "absolute";
	hidehtml.style.top = "0px";
	hidehtml.style.left = "0px";
	hidehtml.style.zIndex = "100";
	hidehtml.style.backgroundImage="url(../images/sitedesign/fader.png)";
	hidehtml.style.width="100%";
	hidehtml.style.height = "100%";
	var xmlhttp;
	object.appendChild(hidehtml);
	if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp=new XMLHttpRequest();
	}else{// code for IE6, IE5
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	xmlhttp.onreadystatechange= function(){
		if (xmlhttp.readyState==4 && xmlhttp.status==200){
			
				
			command = xmlhttp.getResponseHeader("ajax_command");						
			dragdroptext = xmlhttp.getResponseHeader("ajax_ddt");
			if(xmlhttp.getResponseHeader("ajax_extra")){
				var extra = eval(xmlhttp.getResponseHeader("ajax_extra"));
			}else{
				extra = [0];
			}
			contents = xmlhttp.responseText;

			switch(command){
				case "refresh":
					object.innerHTML = contents;
					scripts =object.getElementsByTagName("script");
					break;
				case "replace":
					var parent = object.parentNode;
					parent.innerHTML = parent.innerHTML.replace(gethtml(object),contents);
					scripts =parent.getElementsByTagName("script");
					break;
				case "delete":
					
					switch( extra[0]){
						case 0:
						default:
							break;
						case 1: //delete previous node
							spacer = object;
							while(spacer.className != "v_spacer"){
								spacer = spacer.previousSibling;
							}
							spacer.parentNode.removeChild(spacer);
							break;
						case 2:
							spacer = object;
							while(spacer.className != "v_spacer"){
								spacer = spacer.nextSibling;
							}
							spacer.parentNode.removeChild(spacer);
							break;
					}
					object.parentNode.removeChild(object);
					break;
				default:
					hidehtml.parentNode.removeChild(hidehtml);
					break;
			}	
			if(xmlhttp.getResponseHeader("ajax_js") && xmlhttp.getResponseHeader("ajax_js") != "") {eval(xmlhttp.getResponseHeader("ajax_js"));}
			if(xmlhttp.getResponseHeader("ajax_nodeclass") && xmlhttp.getResponseHeader("ajax_nodeclass") != "") {object.className = xmlhttp.getResponseHeader("ajax_nodeclass");}
			if(xmlhttp.getResponseHeader("ajax_ddc")&& xmlhttp.getResponseHeader("ajax_ddc") != "") {
				ddc = eval(xmlhttp.getResponseHeader("ajax_ddc"));
				if(ddc && ddc.length){
					if(ddc.length > 0){
						initalise(ddc,dragdroptext);
					}
				}
			}
			if(containers && containers.length){check_items();}
			// excute javascript in html
			
			for(var i=0; i<scripts.length; i++){
				eval(scripts[i].innerHTML);
			}
			
		}
	}
	
	
	xmlhttp.open("GET",url ,true);
	xmlhttp.setRequestHeader('User-Session',ajax_session);
	xmlhttp.send();
	
}




var previous;
function fitcontent(id, maxHeight,checkparent)
{
   var text = id && id.style ? id : document.getElementById(id);
   if ( !text )
      return;
   var checkparent = checkparent && checkparent.style ? checkparent : document.getElementById(checkparent);
   if ( !text )
      return;
	  
	 if (checkparent){checkparent.style.height = "";}
	
   var adjustedHeight = text.clientHeight;
  if ( !maxHeight || maxHeight > adjustedHeight )
   {
      adjustedHeight = Math.max(text.scrollHeight, adjustedHeight);
      if ( maxHeight ){
         adjustedHeight = Math.min(maxHeight, adjustedHeight);}
      if ( adjustedHeight > text.clientHeight ){
		 previous = text.clientHeight;
		 text.style.height = text.scrollHeight + "px";
		 if (checkparent){
			checkparent.style.height = "";
		  	if( checkparent.clientHeight < checkparent.scrollHeight){
				//checkparent.style.height = checkparent.scrollHeight + "px";
				 
			}
		 }
	}else{
		while (text.scrollHeight <= text.clientHeight)
		{
			text.style.height = (text.clientHeight - 1) + "px";
		 }

		 text.style.height = text.scrollHeight + "px";
	  }
	
  }
	if(window.containers !== undefined){if (containers && containers.length){check_items();}}
}


function checkentry(entryid,colour) {
	document.getElementById(entryid).style.backgroundColor =colour;	
}
function addslashes(str) {
	//str=str.replace(/\\/g,'\\\\');
	str=str.replace(/\'/g,'\\\'');
	//str=str.replace(/\"/g,'\\"');
	//str=str.replace(/\0/g,'\\0');
	return str;
}
function stripslashes(str) {
	str=str.replace(/\\'/g,'\'');
	//str=str.replace(/\\"/g,'"');
	//str=str.replace(/\\0/g,'\0');
	//str=str.replace(/\\\\/g,'\\');
return str;
}
function gethtml(object){
	var object =object && object.style ? object : document.getElementById(object);
	var oi = object.innerHTML;
	var pi = object.parentNode.innerHTML;
	var pi_lower = pi.toLowerCase();
	var oi_lower = oi.toLowerCase();
	var start = -1;
	var end = -1;
	var id = -1;
	if( pi_lower.indexOf("id=\"" + object.getAttribute("id") + "\"") > -1){
		id = pi_lower.indexOf("id=\"" + object.getAttribute("id") + "\"");
	}else if( pi_lower.indexOf("id='" + object.getAttribute("id") + "'") > -1){
		id = pi_lower.indexOf("id='" + object.getAttribute("id") + "'");
	}else if( pi_lower.indexOf("id=" + object.getAttribute("id") + "") > -1){
		id = pi_lower.indexOf("id=" + object.getAttribute("id") + "");
	}
	index = id
	while(  pi_lower.indexOf("<" + object.nodeName.toLowerCase(),index) > id ){
		index --;
	}
	start = pi_lower.indexOf("<" + object.nodeName.toLowerCase(),index)
	index = oi_lower.length + pi_lower.indexOf(oi_lower,start);
	
	index = pi_lower.indexOf("</" + object.nodeName.toLowerCase(),index);
	
	end = pi_lower.indexOf(">",index);


	//+ 2 + object.nodeName.toLowerCase().length;
	return pi.substr(start,end + 1 -start);
}

