/* WIDGET COMPONENT */
/* ------------------------------------------------------------------------------------- */

/* vars */
var widgetTopElement;

/* TOOGLE HEADER WIDGET */
function toogleWidget(element){
	Effect.toggle(element,'BLIND',{duration: 0.5, afterFinish: swtichWidgetHeader});
}

function hideWidget(element){
	if (Element.visible(element)) {
		Effect.toggle(element,'BLIND',{duration: 0.5, afterFinish: swtichWidgetHeader});
	}
}

function showWidget(element){
	if (!Element.visible(element)) {
		Effect.toggle(element,'BLIND',{duration: 0.5, afterFinish: swtichWidgetHeader});
	}
}

/* SWITCH HEADER CLASS NAME "expanded|collapsed" */
function swtichWidgetHeader(obj){
	var whichWidget = obj.element.id;
	whichWidget = whichWidget.substr(12 , whichWidget.length);
	var widgetHeaderDiv = "widget-header-" + whichWidget;
	var actualState = document.getElementById(widgetHeaderDiv).className;
	var newState = actualState == 'widget-header-expanded' ? 'widget-header-collapsed' : 'widget-header-expanded';
	setStyle(widgetHeaderDiv, newState);	
}

function toogleRightWidgets(element){
	// widget names (only the Suffix)
	var rightWidgets = Array('vehicle-tracker','vehicle-list');
	toogleWidgets(element, rightWidgets);
}

function toogleLeftWidgets(element){
	// widget names (only the Suffix)
	var leftWidgets = Array( 'event-log','destination-list');
	toogleWidgets(element, leftWidgets);
}

function toogleWidgets(element, widgetsToToggle) {
	if(screen.height <= 1100){
		for(var i = 0; i < widgetsToToggle.length; i ++){
			var widgetBodyDiv = "widget-body-" + widgetsToToggle[i];
			if(widgetBodyDiv != element){
				var widgetHeaderDiv = "widget-header-" + widgetsToToggle[i];
				var actualState = document.getElementById(widgetHeaderDiv).className;
				if(actualState == 'widget-header-expanded'){
					toogleWidget(widgetBodyDiv);
				}
			}else{
				toogleWidget(widgetBodyDiv);
			}
		}
	}else{
		toogleWidget(element);
	}
}

/* TOOGLE SUBNAV WIDGET */
function toogleWidgetContent(element, clickedElement){
	widgetTopElement = clickedElement;
	Effect.toggle(element,'BLIND',{duration: 0.5, afterFinish: swtichWidgetContentTop});
}
/* SWITCH HEADER CLASS NAME "expanded|collapsed" */
function swtichWidgetContentTop(obj){
	var actualState = document.getElementById(widgetTopElement).className;
	var styleName = actualState.substr(0,actualState.lastIndexOf("-"));
	actualState = actualState.substr((actualState.lastIndexOf("-") + 1), actualState.length);
	
	//alert(actualState);
	var newState = actualState == 'open' ? styleName+'-close' : styleName+'-open';
	setStyle(widgetTopElement, newState);	
}

function getActualState(clickedElement) {
	var actualState = document.getElementById(clickedElement).className;
	var styleName = actualState.substr(0,actualState.lastIndexOf("-"));
	return actualState.substr((actualState.lastIndexOf("-") + 1), actualState.length);
}

function handleListItemClick(element, clickedElement, vehicle_id) {
	if (states_hash[vehicle_id].invisible) {
	 	Element.hide(element);
	 	setStyle(clickedElement,'widget-list-item-close');
		alert('This vehicle is off-duty.');
		return;
	}
	var elementVisibility = Element.visible(element);
	var items = $$('.widget-list-item-content');
	for (i=0;i<items.length;i++) {
		if (Element.visible(items[i]) ) {
			Element.hide(items[i]);
			setStyle(items[i].previousSiblings()[0].id,'widget-list-item-close');
		}
	}
	if (elementVisibility) {
	 	Element.show(element);
	 	setStyle($(clickedElement).id,'widget-list-item-open');
	} 
	setVehicleInRigthBar(vehicle_id,true);
	//toogleFollowVehicle(vehicle_id,getActualState(clickedElement) == 'open');
	requestWidgetContent(element, clickedElement, vehicle_id);
}
function handleListItemClickFollow(element, clickedElement, vehicle_id) {
	setVehicleInRigthBar(vehicle_id,true);
	toogleFollowVehicle(vehicle_id);
}
