//Javascript
var modelsAjax = new Ajax();
var activeMakeId;
var modelId;

var modelsArray = new Array();

var agt			= navigator.userAgent.toLowerCase();
var is_major 	= parseInt(navigator.appVersion);
var is_minor	= parseFloat(navigator.appVersion);
var is_ie     	= ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie3   	= (is_ie && (is_major < 4));
var is_ie4   	= (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
var is_ie5   	= (is_ie && (is_major == 4) && (agt.indexOf("msie 5") !=-1));
var is_ie6    	= (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
var is_ie7   	= (is_ie && (is_major == 4) && (agt.indexOf("msie 7.")!=-1) );

ie_ver = 6;
if(is_ie)
	ie_ver = 1;
if(is_ie3)
	ie_ver = 3;
if(is_ie4)
	ie_ver = 4;
if(is_ie5)
	ie_ver = 5;
if(is_ie6)
	ie_ver = 6;
if(is_ie7)
	ie_ver = 7;

function checkMin(obj)
{
	if( obj.value == 'Min' )
	{
		obj.value = '';
	}
	
	else if( obj.value == '' )
	{
		obj.value = 'Min'
	}
};

function checkMax(obj)
{
	if( obj.value == 'Max' )
	{
		obj.value = '';
	}
	
	else if( obj.value == '' )
	{
		obj.value = 'Max'
	}
};

function deleteCurrentImage(vehicle_id)
{
	var current_image = car_thumbs[document.getElementById('current_image').value];
		
	if( confirm("Are you sure you want to delete '"+current_image+"'?") )
	{
		location.href = 'inventory.php?action=deleteImage&vehicle_id='+vehicle_id+'&vehicle_image_filename='+current_image;
	}
};

function addUploadFields()
{
	var toAdd = document.getElementById('fields-to-add').value;
	for( var c=0;c<toAdd;c++ )
	{
		document.getElementById('upload-fields').innerHTML += "<input name=\"files[]\" type=\"file\"/><br />\n";
	}
};

function confirmGoBack()
{
	if( confirm("Are you sure? All changes will be lost!") )
	{
		history.go(-1);
	}
};

function vehicleValidator()
{
	//reset colors
	for( c=0;c<document.form1.elements.length;c++ )
	{
		document.form1.elements[c].style.background = '#ffffff';
		document.form1.elements[c].style.color = '#000000';
	}
	
	var errorStr = "The following needs to be selected or filled out!\n";
	var hasErrors = false;

	if( document.getElementById('vehicle_name').value == '' )
	{
		document.getElementById('vehicle_name').style.background = '#ff0000';
		document.getElementById('vehicle_name').style.color = '#ffffff';
		errorStr += "- Vehicle Name\n";
		hasErrors = true;
	}

	if( document.getElementById('vehicle_year_dropdown').value == '' )
	{
		document.getElementById('vehicle_year_dropdown').style.background = '#ff0000';
		document.getElementById('vehicle_year_dropdown').style.color = '#ffffff';
		errorStr += "- Vehicle Year\n";
		hasErrors = true;
	}

	if( document.getElementById('new_make').value == '' && document.getElementById('vehicle_make_dropdown').value == '' )
	{
		document.getElementById('vehicle_make_dropdown').style.background = '#ff0000';
		document.getElementById('vehicle_make_dropdown').style.color = '#ffffff';
		errorStr += "- Vehicle Make\n";
		hasErrors = true;
	}
	
	if( document.getElementById('new_model').value == '' && document.getElementById('vehicle_model_dropdown').value == '' )
	{
		document.getElementById('vehicle_model_dropdown').style.background = '#ff0000';
		document.getElementById('vehicle_model_dropdown').style.color = '#ffffff';
		errorStr += "- Vehicle Model\n";
		hasErrors = true;
	}
	
	if( document.getElementById('vehicle_vin').value == '' )
	{
		document.getElementById('vehicle_vin').style.background = '#ff0000';
		document.getElementById('vehicle_vin').style.color = '#ffffff';
		errorStr += "- Vehicle Vin\n";
		hasErrors = true;
	}

	if( document.getElementById('vehicle_color').value == '' )
	{
		document.getElementById('vehicle_color').style.background = '#ff0000';
		document.getElementById('vehicle_color').style.color = '#ffffff';
		errorStr += "- Vehicle Color\n";
		hasErrors = true;
	}

	if( document.getElementById('vehicle_engine').value == '' )
	{
		document.getElementById('vehicle_engine').style.background = '#ff0000';
		document.getElementById('vehicle_engine').style.color = '#ffffff';
		errorStr += "- Vehicle Engine\n";
		hasErrors = true;
	}

	if( document.getElementById('vehicle_transmission_dropdown').value == '' )
	{
		document.getElementById('vehicle_transmission_dropdown').style.background = '#ff0000';
		document.getElementById('vehicle_transmission_dropdown').style.color = '#ffffff';
		errorStr += "- Vehicle Transmission\n";
		hasErrors = true;
	}

	if( document.getElementById('vehicle_drivetrain_dropdown').value == '' )
	{
		document.getElementById('vehicle_drivetrain_dropdown').style.background = '#ff0000';
		document.getElementById('vehicle_drivetrain_dropdown').style.color = '#ffffff';
		errorStr += "- Vehicle Drive-Train\n";
		hasErrors = true;
	}

	if( document.getElementById('vehicle_price').value == '' )
	{
		document.getElementById('vehicle_price').style.background = '#ff0000';
		document.getElementById('vehicle_price').style.color = '#ffffff';
		errorStr += "- Vehicle Price\n";
		hasErrors = true;
	}

	if( hasErrors == true )
	{
		alert( errorStr );
		return false;
	}
	else
	{
		return true;
	}
}

function addModelDropdown( name,value )
{
	if( ie_ver <= 5 )
	{
		document.getElementById('vehicle_model_dropdown').options[document.getElementById('vehicle_model_dropdown').length] = new Option(name, value, false, false)
	}
	else
	{
		var objOption = document.createElement("option");
		objOption.innerHTML = name;
		objOption.value = value;
		document.getElementById('vehicle_model_dropdown').appendChild(objOption);
	}
};

function modelsDropdownAjaxOpen( obj )
{
	document.getElementById('system-message').innerHTML = 'Loading...';
	document.getElementById('system-message').style.display = 'block';
};

function sortSearch()
{
	var make = document.getElementById( 'vehicle_make_dropdown' ).value;
	var model = document.getElementById( 'vehicle_model_dropdown' ).value;
	var min_year = document.getElementById( 'min_year' ).value;
	var max_year = document.getElementById( 'max_year' ).value;
	var sort_by = document.getElementById( 'sort-dropdown' ).value;
	var keyword = document.getElementById( 'keyword' ).value;
	var vpp = document.getElementById( 'vpp' ).value;

	location.href = 'inventory.php?vehicle_make_dropdown='+make+'&vehicle_model_dropdown='+model+'&min_year='+min_year+'&max_year='+max_year+'&sort='+sort_by+'&keyword='+keyword+'&vpp='+vpp;
};

function doLoadModelsDropdown( id )
{
	for( i=document.getElementById('vehicle_model_dropdown').length-1; i >= 0;i-- )
	{
		document.getElementById('vehicle_model_dropdown').options[i] = null;
	}
	
	addModelDropdown( 'All','' );
	for( var i=0;i<modelsArray[activeMakeId].length-1;i++ )
	{
		addModelDropdown( modelsArray[activeMakeId][i]['name'],modelsArray[activeMakeId][i]['value'] );
	}
	
	document.getElementById('vehicle_model_dropdown').selectIndex = modelId;

modelId = '';
};

function modelsDropdownAjaxReceived(obj)
{
	var data = obj.responseText.split( '|' );
	
	for( var c=0;c<data.length;c++ )
	{
		var dataItem = data[c].split( '#' );
		if( data[0] != '' && data[1] != '' )
		{
			var temp = new Array();
			temp['value'] = dataItem[0];
			temp['name'] = dataItem[1];
			
			modelsArray[activeMakeId].push( temp );
		}
	}

	doLoadModelsDropdown( activeMakeId );

	document.getElementById('system-message').style.display = 'none';
};

function modelDropDown(model_id)
{
	var make_id = document.getElementById('vehicle_make_dropdown').value;
	modelId = model_id;
	
	if( modelsArray[make_id] )
	{
		activeMakeId = make_id;
		doLoadModelsDropdown( make_id );
	}
	else
	{
		modelsArray[make_id] = new Array();
	
		activeMakeId = make_id;
	
		if( make_id != '' )
		{
			modelsAjax.setOpenFunction(modelsDropdownAjaxOpen);
			modelsAjax.setReceivedFunction(modelsDropdownAjaxReceived);
			modelsAjax.run( 'model-service.php','action=dropdown&make_id='+make_id,'POST',true,true );	
		}
	}
};

function modelsUpdateAjaxOpen(obj)
{
	document.getElementById('system-message').innerHTML = 'Updating Model...';
	document.getElementById('system-message').style.display = 'block';
};

function modelsUpdateAjaxReceived(obj)
{
	document.getElementById('system-message').innerHTML = obj.responseText;	
	document.getElementById('system-message').style.display = 'none';
	
//	modelsAjax.setOpenFunction(modelsAjaxOpen);
//	modelsAjax.setReceivedFunction(modelsAjaxReceived);
//	modelsAjax.run( 'model-service.php','action=load&make_id='+activeMakeId,'POST',true,true );	
};

function updateModel(obj,id)
{
	var node = obj.parentNode.parentNode;
	var name = node.cells[0].childNodes[0].value;

	if( name == '' )
	{
		alert( 'Cannot change to blank model!' );
		return;
	}
	
	modelsAjax.setOpenFunction(modelsUpdateAjaxOpen);
	modelsAjax.setReceivedFunction(modelsUpdateAjaxReceived);
	modelsAjax.run( 'model-service.php','action=update&model_id='+id+'&model_name='+name,'POST',true,true );	

	node.cells[0].innerHTML = name;
//	node.cells[1].style.display = 'block';	
//	node.cells[2].style.display = 'block';	
	
	node.cells[1].childNodes[0].disabled = '';
};

function revertModel(obj,name)
{
	var node = obj.parentNode.parentNode;
	
	node.cells[0].innerHTML = name;
	node.cells[1].childNodes[0].disabled = '';
};

function editModel(obj,id,make_id)
{
	var node = obj.parentNode.parentNode;
	var name = node.cells[0].innerHTML;	
	activeMakeId = make_id;
	
	node.cells[0].innerHTML = '<input type="text" value="'+name+'"><input class="buttons-1" type="button" value="Save" onClick="updateModel(this,'+id+');"><input class="buttons-1" type="button" value="Cancel" onClick="revertModel(this,\''+name+'\')">';
//	node.cells[1].style.display = 'none';
//	node.cells[2].style.display = 'none';

	node.cells[1].childNodes[0].disabled = 'true';
};

function modelsDeleteAjaxOpen(obj)
{
	document.getElementById('system-message').innerHTML = 'Deleting Model...';
	document.getElementById('system-message').style.display = 'block';
};

function modelsDeleteAjaxReceived(obj)
{
	document.getElementById('system-message').innerHTML = obj.responseText;	
	document.getElementById('system-message').style.display = 'none';
	
	modelsAjax.setOpenFunction(modelsAjaxOpen);
	modelsAjax.setReceivedFunction(modelsAjaxReceived);
	modelsAjax.run( 'model-service.php','action=load&make_id='+activeMakeId,'POST',true,true );	
};

function deleteVehicle( id,name )
{
	if( confirm("Are you sure you want to delete '"+name+"'?") )
	{
		location.href="inventory.php?action=delete&id="+id;
	}
};

function deleteModel(obj,id,make_id)
{
	var name = obj.parentNode.parentNode.cells[0].innerHTML;
	
	if( confirm("Are you sure you want to delete '"+name+"'?") )
	{
		activeMakeId = make_id;
		modelsAjax.setOpenFunction(modelsDeleteAjaxOpen);
		modelsAjax.setReceivedFunction(modelsDeleteAjaxReceived);
		modelsAjax.run( 'model-service.php','action=delete&model_id='+id,'POST',true,true );	
	}
};

function modelsAddAjaxOpen(obj)
{
	document.getElementById('system-message').innerHTML = 'Adding Model...';
	document.getElementById('system-message').style.display = 'block';
};

function modelsAddAjaxReceived(obj)
{
	document.getElementById('system-message').innerHTML = obj.responseText;	
	document.getElementById('system-message').style.display = 'none';
	
	modelsAjax.setOpenFunction(modelsAjaxOpen);
	modelsAjax.setReceivedFunction(modelsAjaxReceived);
	modelsAjax.run( 'model-service.php','action=load&make_id='+activeMakeId,'POST',true,true );	
};

function modelsAjaxOpen(obj)
{
	document.getElementById('system-message').innerHTML = 'Loading Models...';
	document.getElementById('system-message').style.display = 'block';
};

function modelsAjaxReceived(obj)
{
	var id = 'model_list_'+activeMakeId;

	document.getElementById(id).innerHTML = obj.responseText;
	document.getElementById(id).style.display = 'block';
	document.getElementById('system-message').style.display = 'none';
};

function toggleMakeModel( obj,make_id )
{
	activeMakeId = make_id;
	var display = document.getElementById(obj).style.display;
	var plusminus ='plusminus'+make_id;

	if( display == 'none' )
	{
		//Load Models
		modelsAjax.setOpenFunction(modelsAjaxOpen);
		modelsAjax.setReceivedFunction(modelsAjaxReceived);
		modelsAjax.run( 'model-service.php','action=load&make_id='+make_id,'POST',true,true );
	
		document.getElementById(obj).style.display = 'block';
		document.getElementById(plusminus).src = 'images/minus.gif';
	}
	else
	{
		document.getElementById(obj).style.display = 'none';
		document.getElementById(plusminus).src = 'images/plus.gif';
	}
};

function addModel( obj,make_id )
{
	var toAdd = document.getElementById(obj).value;
	
	if( toAdd == '' )
	{
		alert( 'Cannot add a blank Model!' );
		return;
	}
	
	document.getElementById(obj).value = '';
	activeMakeId = make_id;

	modelsAjax.setOpenFunction(modelsAddAjaxOpen);
	modelsAjax.setReceivedFunction(modelsAddAjaxReceived);
	modelsAjax.run( 'model-service.php','action=add&make_id='+make_id+'&model_name='+toAdd,'POST',true,true );
};

function deleteTransmission( id,name )
{
	if( confirm("Are you sure you want to delete '"+name+"'?") )
	{
		location.href = 'transmission.php?action=delete&transmission_id='+id;
	}
};

function deleteDriveTrain( id,name )
{
	if( confirm("Are you sure you want to delete '"+name+"'?") )
	{
		location.href = 'drivetrain.php?action=delete&drivetrain_id='+id;
	}
};

function deleteMake( id,name )
{
	if( confirm("Are you sure you want to delete '"+name+"'?") )
	{
		if( confirm("Deleting this Make will also Delete all Models under it\nThis action cannot be undone.\nAre you sure you want to continue?") )
		{
			location.href = 'make.php?action=delete&make_id='+id;
		}
	}
};