// SVN $Id: forms.js 37924 2008-11-19 12:47:01Z dev2003\aschiessl $ 
function setDealerPrivate(whichToSet){
	var onlyCheckBox = document.forms['searchform'].elements['adtype'];
	var onlyDealerCheckBoxState = onlyCheckBox[0].checked;
	var onlyPrivateCheckBoxState = onlyCheckBox[1].checked;

	onlyCheckBox[0].checked = false;
	onlyCheckBox[1].checked = false;

	if (whichToSet == 'D'){
		onlyCheckBox[0].checked = onlyDealerCheckBoxState;
	}
	else{
		onlyCheckBox[1].checked = onlyPrivateCheckBoxState;
	}
}

function deselectRadios(radioName)
{
	var radios = document.getElementsByName(radioName);
	if (radios.value == -1) return;
	if (radios != null)
	{
		for (var i = 0; i < radios.length; i++)
		{
			radios[i].checked = false;
		}
	}
}

var lastSelectedRadio=null;
function deselectIfSelected(radio)
{
    if (lastSelectedRadio == null)
    {
        lastSelectedRadio = radio;
        return;
    }
    if (lastSelectedRadio == radio)
    {
        radio.checked = false;
        lastSelectedRadio = null;
    }
    else
    {
        lastSelectedRadio = radio;
    }
}


function selectFinanceSorting(selectName, boxControl)
{
    if (boxControl.selectedIndex > 0)
    {
        var listBox = document.getElementById(selectName);
        
        if (listBox != null)
        {
            listBox.selectedIndex = 1;
        }
    }
}

/* Deselect "all europe" checkbox if one of the  
	country checkboxes is unchecked */
function countryCheckBoxClicked(cb, europeId, otherCountriesId)
{
	if (cb.checked==false)
	{
		gE(europeId).checked=false;
	}
	
	checkRadiusSearchPossible(europeId, otherCountriesId)
}

function europeCheckBoxClicked(parentId, europe, defaultCbId)
{
	var children = gE(parentId).getElementsByTagName("input");
	
	if (europe.checked==true)
	{
		enableCountryCheckboxes(true, europe, children);
		disableRadiusSearchAvailability(true);
	}
	else
	{
		enableCountryCheckboxes(false, europe, children);
		var defaultCb = gE(defaultCbId);
		if (defaultCb != null)
		{
			defaultCb.checked = true;
			disableRadiusSearchAvailability(false);
		}
		else
		{
			disableRadiusSearchAvailability(true);
		}
	}
}

function enableCountryCheckboxes(enable, europe, children)
{
	for (var i = 0; i < children.length;  i++)
		{
			if (children[i].type=='checkbox')
			{
				if (children[i] != europe)
				{
					children[i].checked = enable;
				}
			}
		}
}

/* Enables or disables the radius search input controls */
function disableRadiusSearchAvailability(disabled)
{
		var textBox = gE('radiusDiv').getElementsByTagName('input');
		var dropDown = gE('radiusDiv').getElementsByTagName('select');
		
		dropDown[0].selectedIndex = 0;
		if (disabled == true)
		{
		    textBox[0].value = textBox[0].defaultText;
		    //textBox[0].blur();
		}
		textBox[0].disabled = disabled;
		dropDown[0].disabled = disabled;
}

function checkRadiusSearchPossible(europeId, otherCountriesId)
{
	var countryCheckboxes = gE('countryTable').getElementsByTagName("input");
	var otherCountries = gE(otherCountriesId);
	var europe = gE(europeId)
	var checkedOnes = 0;
	if (otherCountries.checked==true || europe.checked==true)
	{
		disableRadiusSearchAvailability(true);
	}
	else
	{
		for (var i = 0; i < countryCheckboxes.length; i++)
		{
			if (countryCheckboxes[i].id != europeId && countryCheckboxes[i].id != otherCountriesId)
			{
				if (countryCheckboxes[i].checked)
				{
					checkedOnes++;
				}
			}
		}
		(checkedOnes == 1) ? disableRadiusSearchAvailability(false) : disableRadiusSearchAvailability(true);
	}
}

function FormElement(id, inputType)
{
	this.Id = id;
	this.InputType = inputType;
}

function hideModalLayer()
{
	gE('modalLayer').style.display='none';
}
function showModalLayer()
{
	gE('modalLayer').style.display='block';
}
function hideFeedbackForm()
{
	hideModalLayer()
	gE('feedback-form').style.display='none';
}
var tabs;
function showHideForm(f,dis,pn,elemList)
{
	gE('modalLayer').style.display=dis;
	gE(f).style.display=dis;
	tabs=(dis=='none'?null:elemList);
	if (elemList)
	{
		if (dis!='none')
		{
			gE(elemList[0].Id).focus();
			// attach event listener
			if (document.addEventListener)
				document.addEventListener('keydown',handleKeyDown,false);
			else
				document.attachEvent('onkeydown',handleKeyDown);
		}
		else
		{
			// detach event listener
			if (document.removeEventListener)
				document.removeEventListener('keydown',handleKeyDown,false);
			else
				document.detachEvent('onkeydown',handleKeyDown);
		}
	}
	// omniture
	if (pn)
	{
		if (typeof(CheckPageName)=='function') pn=CheckPageName(pn);
		try
		{
			s.pageName=pn;
			s.events='';
			var s_code=s.t();
			if (s_code) document.write(s_code);
		}
		catch (e) {}
	}
	if (BrowserDetect.browser=='Explorer' && BrowserDetect.version<=6)
	{
		var sel=document.getElementsByTagName('select');
		for (var i=0;i<sel.length;i++) 
			if (sel[i].id.indexOf('insertionBugType')==-1) sel[i].style.display=(dis=='block'?'none':'');
	}
}
var formOpened=false;
function startupContact()
{
	if (formOpened) return;
	showHideForm('contact-form','block',s.pageName+'-Email',contactFormElements);
	formOpened=true;
}

function handleKeyDown(e)
{
	// get current event
	var evt=(window.event ? window.event : e);
	if (evt)
	{
		// get current key code
		var code=(evt.keyCode?evt.keyCode:evt.which);
		if (code==9 || code==13)
		{
			// get current sender and find it's id in the tabs collection
			var curId=(evt.srcElement?evt.srcElement.id:evt.target.id);
			var shift=evt.shiftKey;
			var curElement=-1;
			for (var i=0;i<tabs.length;i++)
			{
				if (tabs[i].Id==curId)
				{
					curElement=i;
					break;
				}
			}
			if (code==9)
			{
				// handle tab
				if (shift) 
				{
					// shift key is pressed
					curElement--; 
					if (curElement<0) curElement=tabs.length-1;
				}
				else
				{ 
					// only tab is pressed
					curElement++; 
					if (curElement>=tabs.length) curElement=0;
				}
				gE(tabs[curElement].Id).focus();
				// prevent event bubbling
				if (evt.preventDefault)
					evt.preventDefault();
				else
					evt.returnValue=false;
				return false;
			}
			if (code==13)
			{
				// handle enter
				if (tabs[curElement].InputType==3)
				{
					// submit on single line and button
					document.submit();
				}
				if (tabs[curElement].InputType!=2)
				{
					// prevent event bubbling when not an multiline box
					if (evt.preventDefault)
						evt.preventDefault();
					else
						evt.returnValue=false;
					return false;
				}
			}
		}
	}
}
