var xmlhttpWidgets;

/*function parseJavascript(){
	script=document.getElementsByTagName("script");
	for(i=0;i<script.length-1; i++)
		if(script[i+1].text!=null) 
			eval(script[i+1].text);	
}*/
//DEFINED IN global_functions.js

function GetXmlHttpObject(){
	if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
	  return new XMLHttpRequest();
	}
	if (window.ActiveXObject){// code for IE6, IE5
	  return new ActiveXObject("Microsoft.XMLHTTP");
	}
	return null;
}

function hideElement(id){
	document.getElementById(id).style.display="none";	
}

function showElement(id){
	document.getElementById(id).style.display="inline";	
}

function widgets(){
	document.getElementById("dimBackground").style.display="block";
	document.getElementById("settings").style.display="block";
	//document.getElementById("settings").innerHTML="settings";
	
	xmlhttpWidgets=GetXmlHttpObject();
	
	if (xmlhttpWidgets==null){
		alert ("Browser does not support HTTP Request");
	  	return;
	}
	
	var url="igluu/widgets/widgets.php";
	url=url+"?sid="+Math.random();
	xmlhttpWidgets.onreadystatechange=function(){
		if (xmlhttpWidgets.readyState!=4){
			document.getElementById("settings").innerHTML="<div class='load'></div>";
		}
		if (xmlhttpWidgets.readyState==4){
			document.getElementById("settings").innerHTML=xmlhttpWidgets.responseText;
			parseJavascript();
			loadSortable();
		}
	};
	xmlhttpWidgets.open("GET",url,true);
	xmlhttpWidgets.send(null);
}

function hideWidgets(){
	document.getElementById("settings").style.display="none";
	document.getElementById("dimBackground").style.display="none";
}

function addWidget(wid){//global widget id
	
	xmlhttpWidgets=GetXmlHttpObject();
	
	if (xmlhttpWidgets==null){
		alert ("Browser does not support HTTP Request");
	  	return;
	}
	
	var url="igluu/widgets/ajax/addWidget.php";
	url=url+"?wid="+wid;
	url=url+"&sid="+Math.random();
	xmlhttpWidgets.onreadystatechange=stateChangedAddWidget;
	xmlhttpWidgets.open("GET",url,true);
	xmlhttpWidgets.send(null);
}

function stateChangedAddWidget(){
	if (xmlhttpWidgets.readyState!=4){
		document.getElementById("settings").innerHTML="<div class='load'></div>";
	}
	if (xmlhttpWidgets.readyState==4){
		if(xmlhttpWidgets.responseText==1)
			widgets();
		else
			document.getElementById("settings").innerHTML="Widget couldn't be added because: "+xmlhttpWidgets.responseText;
	}
}

function removeWidget(wid,uwid){
	
	xmlhttpWidgets=GetXmlHttpObject();
	
	if (xmlhttpWidgets==null){
		alert ("Browser does not support HTTP Request");
	  	return;
	}
	
	var url="igluu/widgets/ajax/deleteWidget.php";
	url=url+"?wid="+wid+"&uwid="+uwid;
	url=url+"&sid="+Math.random();
	xmlhttpWidgets.onreadystatechange=stateChangedRemoveWidget;
	xmlhttpWidgets.open("GET",url,true);
	xmlhttpWidgets.send(null);
}

function stateChangedRemoveWidget(){
	if (xmlhttpWidgets.readyState!=4){
		document.getElementById("settings").innerHTML="<div class='load'></div>";
	}
	if (xmlhttpWidgets.readyState==4){
		if(xmlhttpWidgets.responseText==1)
			widgets();
		else
			document.getElementById("settings").innerHTML="Widget couldn't be deleted because: "+xmlhttpWidgets.responseText;
	}
}

function statusWidget(uwid,status){//status: enable/disable (1/0)
	
	xmlhttpWidgets=GetXmlHttpObject();
	
	if (xmlhttpWidgets==null){
		alert ("Browser does not support HTTP Request");
	  	return;
	}
	
	var url="igluu/widgets/ajax/statusWidget.php";
	url=url+"?uwid="+uwid+"&status="+status;
	url=url+"&sid="+Math.random();
	xmlhttpWidgets.onreadystatechange=stateChangedStatusWidget;
	xmlhttpWidgets.open("GET",url,true);
	xmlhttpWidgets.send(null);
}

function stateChangedStatusWidget(){
	if (xmlhttpWidgets.readyState!=4){
		document.getElementById("settings").innerHTML="<div class='load'></div>";
	}
	if (xmlhttpWidgets.readyState==4){
		if(xmlhttpWidgets.responseText==1)
			widgets();
		else
			document.getElementById("settings").innerHTML="Widget's status couldn't be updated because: "+xmlhttpWidgets.responseText;
	}
}

function searchWidgets(){
	document.getElementById("dimBackground").style.display="block";
	document.getElementById("settings").style.display="block";
	//document.getElementById("settings").innerHTML="settings";
	
	xmlhttpWidgets=GetXmlHttpObject();
	
	if (xmlhttpWidgets==null){
		alert ("Browser does not support HTTP Request");
	  	return;
	}
	
	var url="igluu/widgets/search_widgets.php";
	url=url+"?sid="+Math.random();
	xmlhttpWidgets.onreadystatechange=function(){
		if (xmlhttpWidgets.readyState!=4){
			document.getElementById("settings").innerHTML="<div class='load'></div>";
		}
		if (xmlhttpWidgets.readyState==4){
			document.getElementById("settings").innerHTML=xmlhttpWidgets.responseText;
			parseJavascript();
			adjustSettingsHeight();
			document.getElementById("search_input").focus();//give focus to search input text to immediately start typing; on enter, the search will be submitted and results shown
		}
	};
	xmlhttpWidgets.open("GET",url,true);
	xmlhttpWidgets.send(null);
}

function hideSearchWidgets(){
	document.getElementById("settings").style.display="none";
	document.getElementById("dimBackground").style.display="none";
}

function hoverSuggestions(){
	if(document.getElementById('widget_suggestions')!=null)
		document.getElementById('widget_suggestions').setAttribute('hovered', '1');
}

function removeHoverSuggestions(){
	if(document.getElementById('widget_suggestions')!=null)
		document.getElementById('widget_suggestions').removeAttribute('hovered');
}

function checkIfSuggestionsHovered(){
	if(document.getElementById('widget_suggestions')!=null)
		if(!document.getElementById('widget_suggestions').hasAttribute('hovered')) 
			hideElement('widget_suggestions');
}

function checkIfValueIsEntered(){
	if(document.getElementById("search").value!='')
		if(document.getElementById("widget_suggestions")!=null)
			showElement('widget_suggestions');
}

function searchWidgetsResults(q,p_st){
	if(q.length>2){		
		xmlhttpAdmin=GetXmlHttpObject();
		
		if (xmlhttpAdmin==null){
			alert ("Browser does not support HTTP Request");
			return;
		}
		
		var url="igluu/widgets/ajax/searchWidgets.php";
		url=url+"?q="+q+"&sid="+Math.random();
		
		if(p_st==undefined)//if function was called without the pagination start parameter, set it to 0 (e.g.: show first page)
			p_st=0;
		url=url+"&p_st="+p_st;
		
		url=url+"&p_show="+settingsItemsPerPage(70);//how many results to be shown on each page depending on browser's window
		
		xmlhttpAdmin.onreadystatechange=function(){
			if (xmlhttpAdmin.readyState!=4){
				document.getElementById("search_results").innerHTML="<div class='admin_load'></div>";
			}
			if (xmlhttpAdmin.readyState==4){
				document.getElementById("search_results").innerHTML=xmlhttpAdmin.responseText;
			}
		};
		xmlhttpAdmin.open("GET",url,true);
		xmlhttpAdmin.send(null);
	}
}
