/**********************************************************************************************************
*********************************** JAVASCRIPT FOR THE MODEL SEARCH ***************************************
**********************************************************************************************************/

// this function changes the list of marques avaliable according to the category selected
function modelCatSelector( modelCategory ) {

	// clear all the classes
     $('superminis').className = '';
     $('family').className     = '';
     $('executives').className  = '';
     $('largeFamily').className    = '';
	 	 
     // set the selected one to active
	 switch ( modelCategory ) {
	 	case 'panelVans':
	 		$('superminis').className = 'active';
	 	break;
	 	
	 	case 'peopleMovers':
	 		$('family').className = 'active';
	 	break;
	 	
	 	case 'pickUps':
	 		$('executives').className = 'active';
	 	break;
	 		
	 	case 'doubleCabs':
	 		$('largeFamily').className = 'active';
	 	break;
	 	
	 	default:
	 		$(modelCategory).className = 'active';
	 	break;	 		
	 }
	 		
	 // change the make list according to the selected category
     getMake( modelCategory );
	 
     // set all the min and max drop-downs back to empty
     $('modelSearchMinPrice').selectedIndex     = 0;
     $('modelSearchMaxPrice').selectedIndex     = 0;
     $('modelSearchMinPrice').onchange          = function() { modelSearch( modelCategory, $('modelSearchMakeList').value, $('modelSearchModelList').value, $('modelSearchMinPrice').value, $('modelSearchMaxPrice').value, $('modelSearchFuelType').value, $('modelSearchTransmission').value, $('modelUsed').checked, $('modelNew').checked ); };
     $('modelSearchMaxPrice').onchange          = function() { modelSearch( modelCategory, $('modelSearchMakeList').value, $('modelSearchModelList').value, $('modelSearchMinPrice').value, $('modelSearchMaxPrice').value, $('modelSearchFuelType').value, $('modelSearchTransmission').value, $('modelUsed').checked, $('modelNew').checked ); };
     
     $('category').value = modelCategory;
}


// this function gets all the avaliable marques depending on the category selected  
function getMake( modelCategory ) {
	
	if ( typeof modelCategory == "undefined" ) {
        modelCategory = "";
    }

    var target = baseHref + 'ajax.php';
    var params = 'type=getMake&modelCategory=' + modelCategory + '&newCars=' + $('modelNew').checked + '&usedCars=' + $('modelUsed').checked ;

    var myAjax = new Ajax.Request(target,
    {
        method: 'post',
        parameters: params,
        onSuccess: function (request) {
        	
        	// removes all the makes from the make drop down list
            var i;                    
            for(i = $('modelSearchMakeList').options.length - 1 ; i >= 0 ; i-- ) {
                $('modelSearchMakeList').remove(i);
            }
			
            // removes all the models from the model drop down list
			var j;
            for( j = $('modelSearchModelList').options.length - 1 ; j >= 1 ; j-- ) {
                $('modelSearchModelList').remove(j);
            }

            var outText = request.responseText;
            outText = outText.split(',');

            // from the results returned create the make drop down list
            if ( outText.length > 0 ) {
                for (i = 0 ; i < outText.length ; i++) {
                    $('modelSearchMakeList').options[ $('modelSearchMakeList').options.length ] = new Option( outText[i], outText[i] );
                }
            }
			
			// as make has changed clear the model list
			var i;
		    for(i = $('modelSearchModelList').options.length - 1 ; i >= 1 ; i-- ) {
		        $('modelSearchModelList').remove(i);
		    }
			
		    alterRestOfFields();
			
        },
        onFailure: function (request) {  }
    });
}


function alterRestOfFields() {
	
	// call model search counter
	modelSearch( $('category').value, $( 'modelSearchMakeList' ).value, $('modelSearchModelList').value, $('modelSearchMinPrice').value, $('modelSearchMaxPrice').value, $('modelSearchFuelType').value, $('modelSearchTransmission').value, $('modelUsed').checked, $('modelNew').checked );

	// if the make has changed get a list of the fuel and transmssion types avaliable
	getTransmissions( $('category').value, '', '', '' );
	getFuelTypes( $('category').value, '', '', ''  );
	
	setMakeSelection();	
	
}


/* this function gets all the avaliable models depending on the marque selected */
function getModels( make ) {
		
    var target = baseHref + 'ajax.php';
    var params = 'type=getModel&make=' + make + '&modelCategory=' + $('category').value + '&newCars=' + $('modelNew').checked + '&usedCars=' + $('modelUsed').checked ;
    
    var myAjax = new Ajax.Request(target,
    {
        method: 'post',
        parameters: params,
        onSuccess: function (request) {
        	var i;
            for(i = $('modelSearchModelList').options.length - 1 ; i >= 1 ; i-- ) {
                $('modelSearchModelList').remove(i);
            }

            var outText = request.responseText;                       
            outText = outText.split(',');
            
            if ( outText.length > 1 ) {
                for (i = 1 ; i < outText.length ; i++) {
                    $('modelSearchModelList').options[ $('modelSearchModelList').options.length ] = new Option( outText[i], outText[i] );
                }
            }
                        
            setModelSelection();
            
        },
        onFailure: function (request) {  }
    });
    
    // if the model has changed get a list of the fuel and transmssion types avaliable
	getTransmissions( $('category').value, $( 'modelSearchMakeList' ).value, '', '' );
	getFuelTypes( $('category').value, $( 'modelSearchMakeList' ).value, '', '' );
            
}


/* this function gets all the avaliable transmissions depending on the category, marque and model selected */
function getTransmissions( category, make, model ) {

    var target = baseHref + 'ajax.php';
    var params = 'type=getTransmissions&modelCategory=' + category + '&make=' + make + '&model=' + model + '&newCars=' + $('modelNew').checked + '&usedCars=' + $('modelUsed').checked ;
    
    var myAjax = new Ajax.Request(target,
    {
        method: 'post',
        parameters: params,
        onSuccess: function (request) {
        	
        	var i;
            for(i = $('modelSearchTransmission').options.length - 1 ; i >= 1 ; i-- ) {
                $('modelSearchTransmission').remove(i);
            }

            var outText = request.responseText;
            outText = outText.split(',');
            
            if ( outText.length > 1 ) {
                for (i = 1 ; i < outText.length ; i++) {                	
                	transmission = outText[i].split('##');                	                	
                    $('modelSearchTransmission').options[ $('modelSearchTransmission').options.length ] = new Option( transmission[0], transmission[1] );
                }
            }
            
            setTransSelection();
        },
        onFailure: function (request) {  }
    });
            
}

/* this function gets all the avaliable fuel types depending on the category, marque and model selected */
function getFuelTypes( category, make, model ) {

	var target = baseHref + 'ajax.php';
    var params = 'type=getFuelTypes&modelCategory=' + category + '&make=' + make + '&model=' + model + '&newCars=' + $('modelNew').checked + '&usedCars=' + $('modelUsed').checked ;
    
    var myAjax = new Ajax.Request(target,
    {
        method: 'post',
        parameters: params,
        onSuccess: function (request) {
        	var i;
            for(i = $('modelSearchFuelType').options.length - 1 ; i >= 1 ; i-- ) {
                $('modelSearchFuelType').remove(i);
            }

            var outText = request.responseText;
            outText = outText.split(',');
            
            if ( outText.length > 1 ) {
                for (i = 1 ; i < outText.length ; i++) {
                	fuel = outText[i].split('##');                	                	
                    $('modelSearchFuelType').options[ $('modelSearchFuelType').options.length ] = new Option( fuel[0], fuel[1] );
                }
            }
        	
            setFuelSelection();
        },
        onFailure: function (request) {  }
    });
            
}


/* this function recalculates the number of cars there are avaliable for the model search depending on the selection made */
function modelSearch( category, make, model, minPrice, maxPrice, fuelType, transmission, usedCars, newCars ) {
     	
    var target = baseHref + 'ajax.php';
    var params = 'type=modelSearch&category=' + category + '&make=' + make + '&model=' + model + '&minPrice=' + minPrice + '&maxPrice=' + maxPrice + '&fuelType=' + fuelType + '&transmission=' + transmission + '&usedCars=' + usedCars + '&newCars=' + newCars;

    var myAjax = new Ajax.Request(target,
    {
        method: 'post',
        parameters: params,
        onSuccess: function (request) {
            $('searchResults').style.display       = 'block';

            var outText = request.responseText;            
            outText = outText.split(',');
			
            $('modelSearchResultsValue').innerHTML = outText[0];
            $('vehiclesFound').innerHTML           = outText[1];
        },
        onFailure: function (request) {  }
    });
    
}

/**********************************************************************************************************
******************************** END OF JAVASCRIPT FOR THE MODEL SEARCH ***********************************
**********************************************************************************************************/

/**********************************************************************************************************
********************************** JAVASCRIPT FOR THE BUDGET SEARCH ***************************************
**********************************************************************************************************/

function budgetSearch( minPrice, maxPrice, usedCars, newCars ) {
    var target = baseHref + 'ajax.php';
    var params = 'type=budgetSearch&minPrice=' + minPrice + '&maxPrice=' + maxPrice + '&usedCars=' + usedCars + '&newCars=' + newCars;

    var myAjax = new Ajax.Request(target,
    {
        method: 'post',
        parameters: params,
        onSuccess: function (request) {
            $('budgetSearchResults').style.display  = 'block';

            var outText = request.responseText;
            outText = outText.split(',');

            $('budgetSearchResultsValue').innerHTML = outText[0];
            $('budgetVehiclesFound').innerHTML      = outText[1];
        },
        onFailure: function (request) {  }
    });
    
    $('budgetSearchMinPrice').value = minPrice;
    $('budgetSearchMaxPrice').value = maxPrice;
}

/**********************************************************************************************************
******************************* END OF JAVASCRIPT FOR THE BUDGET SEARCH ***********************************
**********************************************************************************************************/


/**********************************************************************************************************
******************************** JAVASCRIPT FOR THE LIFESTYLE SEARCH **************************************
**********************************************************************************************************/

function lifestyleSearch( budget, greenLiving, white, grey, yellow, blue, green, red, black, room, fuelType, transmission, newCars, usedCars ) {
	
    var target = baseHref + 'ajax.php';
    var params = 'type=lifestyleSearch&budget=' + budget + '&greenLiving=' + greenLiving + '&white=' + white + '&grey=' + grey + '&yellow=' + yellow + '&blue=' + blue + '&green=' + green + '&red=' + red + '&black=' + black + '&room=' + room + '&fuelType=' + fuelType + '&transmission=' + transmission + '&usedCars=' + usedCars + '&newCars=' + newCars;

    var myAjax = new Ajax.Request(target, {
        method: 'post',
        parameters: params,
        onSuccess: function (request) {
            $('lifeStyleSearchResults').style.display  = 'block';
            
            var outText = request.responseText;            
            outText = outText.split(',');

            $('lifeStyleSearchResultsValue').innerHTML = outText[0];
            $('lifeStyleVehiclesFound').innerHTML      = outText[1];

        },

        onFailure: function (request) {  }
    });

}

function dontLikeColour(colour, active) {
	if ( active ) {
        $(colour).value = colour;
        $(colour + 'DontLikeColour').className  = 'active';
        $(colour + 'DontLikeColour').href = "javascript: dontLikeColour('"+colour+"',false);lifestyleSearch( $('budgetPrice').value, $('greenLivingSliderRegulatorValue').value, $('white').value, $('grey').value, $('yellow').value, $('blue').value, $('green').value, $('red').value, $('black').value, $$('input[name=room]').find(function(el){return el.checked;}).value, $$('input[name=fuelType]').find(function(el){return el.checked;}).value, $$('input[name=transmission]').find(function(el){return el.checked;}).value, $('lifeStyleNew').checked, $('lifeStyleUsed').checked );";

        if ( homePage ) {
            $('optionColoursDontMind').src = 'images/layup/btnDontMind.gif';
        } else {
            $('optionColours2DontMind').src = 'images/layup/btnDontMind2.gif';
        }
     } else { 
        $(colour).value = '';
        $(colour + 'DontLikeColour').className  = '';
        $(colour + 'DontLikeColour').href = "javascript: dontLikeColour('"+colour+"',true);lifestyleSearch( $('budgetPrice').value, $('greenLivingSliderRegulatorValue').value, $('white').value, $('grey').value, $('yellow').value, $('blue').value, $('green').value, $('red').value, $('black').value, $$('input[name=room]').find(function(el){return el.checked;}).value, $$('input[name=fuelType]').find(function(el){return el.checked;}).value, $$('input[name=transmission]').find(function(el){return el.checked;}).value, $('lifeStyleNew').checked, $('lifeStyleUsed').checked );";
     }

     if ( $('white').value == '' && $('grey').value == '' && $('yellow').value == '' && $('blue').value == '' && $('green').value == '' && $('red').value == '' && $('black').value == '' ) {
         if ( homePage ) {
            $('optionColoursDontMind').src = 'images/layup/btnDontMindActive.gif';
         } else {
            $('optionColours2DontMind').src = 'images/layup/btnDontMind2Active.gif';
         }
     }
}    


/**********************************************************************************************************
****************************** END OF JAVASCRIPT FOR THE LIFESTYLE SEARCH *********************************
**********************************************************************************************************/