var OptionsoldonloadHndlr=window.onload, OptionspopupHgt, OptionsactualHgt;
var OptionstitHgt, OptionscntDelta;
var OptionsnWin, OptionspopupBottom, OptionsoldLeft;
var OptionsmousemoveBack,OptionsmouseupBack;
var OptionsofsX,OptionsofsY;
var RVOption;
var mousex = 0;
var mousey = 0;
var IE = (navigator.appName=='Microsoft Internet Explorer') ? true : false;

document.onmousemove = getMouseXY;
window.onload=OptionsPopup_winLoad;

var OptionsoldonscrollHndr=window.onscroll;
window.onscroll=OptionsPopup_winScroll;

function BuildRVEngineWarningMessage(floorplanID, engineID, event)
{
    var chassis = GetChassisOptions(floorplanID, engineID);
    
    if (chassis != null & typeof(chassis) == "object")
    {
        var showPopup = true;
        
        if (chassis.Compatibilities.length == 1)
            showPopup = !IsEngineChassisAlreadySelected('CHASSIS', chassis.Compatibilities[0].ChassisCode)
            
        if (showPopup)
            ChassisEnginesPopup_ShowPopup(chassis, 'CHASSIS', event);        
    }
}

function BuildRVChassisWarningMessage(floorplanID, chassisCode, event)
{
    var engines = GetEngineOptions(floorplanID, chassisCode);
    
    if (engines != null && typeof(engines) == "object")
    {        
        var showPopup = true;
        
        if (engines.Compatibilities.length == 1)
            showPopup = !IsEngineChassisAlreadySelected('ENGINE', engines.Compatibilities[0].EngineID)
   
        if (showPopup)        
            ChassisEnginesPopup_ShowPopup(engines, 'ENGINE', event)
    }
}

function BuildRVOptionWarningMessage(optionID, event)
{
	var option = GetRVOption(optionID);
	
	if (option != null && typeof(option) == "object")
	{
		if (hasOptionConflicts(option))
		{
			OptionsPopup_ShowPopup(option, event);
		}
		else 
		{
			ReverseCheckOption(option.OptionID);
		}
	}
}

function hasOptionConflicts(option)
{
	if (option.Compatibilities.length > 0)
	{
		for(var i=0; i<option.Compatibilities.length; i++)
		{
			if(option.Compatibilities[i].IsCompatibility)
			{
			    if (option.Compatibilities[i].CompatibilityType=="EXCLUSION")
			    {
			        if (!isOptionChecked(option.OptionID))
			        {
				        if (isOptionChecked(option.Compatibilities[i].OptionID))
				        {
					        return true;
				        }
				        else 
				        {
					        showHideCompatibilityWarningImage(option.Compatibilities[i].OptionID)
				        }
				    }
				} 
				else if (option.Compatibilities[i].CompatibilityType=="REPLACEMENT") 
				{
				    return true;				    
				}
				else if (option.Compatibilities[i].CompatibilityType=="INCLUSION")
				{
				    if (!option.Compatibilities[i].IsStandard && !isOptionChecked(option.Compatibilities[i].OptionID))
				    {
				        return true;			    
				    }
				}
				else 
				{
				    if (isOptionChecked(option.Compatibilities[i].OptionID) == isOptionChecked(option.OptionID))
				    {
					    return true;
				    }
				    else 
				    {
					    showHideCompatibilityWarningImage(option.Compatibilities[i].OptionID)
				    }				    
				}
			}
			else 
			{
				if (isOptionChecked(option.Compatibilities[i].OptionID))
				{
					return true;
				}
			}
		}
	}
	
	return false;
}

function isOptionChecked(optionID)
{
	var chkField = GetElementById('OptionID-' + optionID);
	
	if (chkField != null)
	{
		var chk = document.getElementById(chkField.value + 'chkOption');
		
		if (chk != null)
		{
			return chk.checked;
		}
	}
	
	return false;
}

function GetChassisOptions(floorplanID, engineID)
{
    var resp = LazydaysDotCom.BuildYourOwnAjaxMethods.GetEngineRequirements(floorplanID, engineID);
    
    if (resp != null && resp.value != null)
        return resp.value;
        
    return null;
}

function GetEngineOptions(floorplanID, chassisCode)
{
    var resp = LazydaysDotCom.BuildYourOwnAjaxMethods.GetChassisRequirements(floorplanID, chassisCode);
    
    if (resp != null && resp.value != null)
        return resp.value;
        
    return null;
}

function GetRVOption(optionID)
{
	var resp = LazydaysDotCom.BuildYourOwnAjaxMethods.GetOption(optionID, true, true);

	if (resp != null && resp.value != null)
	{
		return resp.value;
	}

	return null;
}

function OptionsPopup_winScroll()
{
    if (OptionsoldonscrollHndr!=null) OptionsoldonscrollHndr();
    el=document.getElementById('Options');
    
    if (el.style.display!='none')
    {
		el.style.display='none';
		el.style.display='block';
	}
}

function CancelEngineChassisPopup(type)
{
    var ctl;
    
    if (type == 'CHASSIS')
    {
        ctl = document.getElementById("SelectedEngineID");
        SetEngineChassisSelection('ENGINE', ctl.value);
        
    } 
    else if (type == 'ENGINE')
    {
        ctl = document.getElementById("SelectedChassisCode");
        SetEngineChassisSelection('CHASSIS', ctl.value);
    }
    
    OptionsPopup_Close();
}

function buildCancelDialogButton(type)
{	
	var imgCancel = document.createElement('img');
	imgCancel.src = 'images/cancel.jpg';
	imgCancel.onclick = new Function("e", "CancelEngineChassisPopup('" + type + "')");

	var td = document.createElement('td');
	td.setAttribute('align', 'center');
	td.appendChild(imgCancel);
	
	var tr = document.createElement('tr');
	tr.appendChild(td);
	
	var tbody = document.createElement('tbody');
	tbody.appendChild(tr);
	
	var table = document.createElement('table');
	table.setAttribute('width', '100%');
	table.appendChild(tbody);
	
	return table;
}

function ChassisEnginesPopup_ShowPopup(chassisEngines, type, event)
{
    el=document.getElementById('Options');
    
    if (el.style.display=='none')
    {
		OptionsactualHgt=OptionspopupHgt;
		el.style.display='';
		el.style.height=OptionsactualHgt+'px';

		document.getElementById('Options_header').style.display='';

		elCnt=document.getElementById('Options_content')
		elCnt.style.display='';
		elCnt.style.height=(OptionsactualHgt-OptionscntDelta)+'px';

		if (type == 'ENGINE')
		    BuildChassisEngineOptionsPopup(chassisEngines, 'ENGINE');		
		else if (type == 'CHASSIS')
		    BuildChassisEngineOptionsPopup(chassisEngines, 'CHASSIS');
		    
		OptionsPopup_CenterPosition(event);
		
		var frame = document.getElementById('frame');
		frame.style.display='';		
	}
}

function OptionsPopup_ShowPopup(option, event)
{ 
    el=document.getElementById('Options');
    
    if (el.style.display=='none')
    {
		OptionsactualHgt=OptionspopupHgt;
		el.style.display='';
		el.style.height=OptionsactualHgt+'px';

		document.getElementById('Options_header').style.display='';

		elCnt=document.getElementById('Options_content')
		elCnt.style.display='';
		elCnt.style.height=(OptionsactualHgt-OptionscntDelta)+'px';

		BuildOptionsPopup(option, true);
		OptionsPopup_CenterPosition(event);
		
		var frame = document.getElementById('frame');
		frame.style.display='';		
	}
}

function OptionsPopup_CenterPosition(event)
{
	var screenX, screenY, xVar, yVar, width, height, offsetX, offsetY

	el=document.getElementById('Options');
	var frame = document.getElementById('frame');
	var factor = 0;
	    
	if(navigator.appName == "Microsoft Internet Explorer")
	{
		screenX = window.screen.availWidth;
	}
	else
	{ 
		screenX = screen.width;
	}

	width = el.style.width.substring(0,el.style.width.length-2);
	height = el.style.height.substring(0,el.style.height.length-2);

	if (event.screenY <= document.documentElement.scrollTop)
	{
	    factor = document.documentElement.scrollTop - event.screenY	
	} 
	else 
	{
	    factor = event.screenY - document.documentElement.scrollTop;
	}
	
	xVar = (screenX - width - 50) / 2; 
	yVar = document.documentElement.scrollTop + factor;
    
	el.style.left = xVar;
	el.style.top = yVar;
	
	frame.style.left = el.style.left;
	frame.style.top = el.style.top;
	frame.style.width = el.style.width;
	frame.style.height = el.style.height;
}

function OptionsPopup_winLoad()
{
    SetRVsAvailable();
    preloadImages();
    RetrieveSearchCriteria();
    SaveURL();
    
    //if (OptionsoldonloadHndlr!=null) OptionsoldonloadHndlr();
    
    elCnt=document.getElementById('Options_content')
    elTit=document.getElementById('Options_header');
    
    el=document.getElementById('Options');
	OptionsoldLeft=el.style.left;
    OptionspopupBottom=el.style.bottom.substr(0,el.style.bottom.length-2);
    
    OptionstitHgt=elTit.style.height.substr(0,elTit.style.height.length-2);
    OptionspopupHgt=el.style.height;
    OptionspopupHgt=OptionspopupHgt.substr(0,OptionspopupHgt.length-2); OptionsactualHgt=0;
    OptionscntDelta=OptionspopupHgt-(elCnt.style.height.substr(0,elCnt.style.height.length-2));
    
    OptionsPopup_Close();
}

function OptionsPopup_Close()
{
    el=document.getElementById('Options');
    el.style.display='none';
    
    var frame = document.getElementById('frame');
    frame.style.display='none';
    
    var div = document.getElementById('Options_content');
	var form = document.getElementById('optionsPopupForm');
	
	if (form!=null)
	{
		div.removeChild(form);
	}
}

function OptionsPopup_DragDrop(e)
{
    OptionsmousemoveBack=document.body.onmousemove;
    OptionsmouseupBack=document.body.onmouseup;
    ox=(e.offsetX==null)?e.layerX:e.offsetX;
    oy=(e.offsetY==null)?e.layerY:e.offsetY;
    OptionsofsX=ox; OptionsofsY=oy;

    document.body.onmousemove=OptionsPopup_DragDropMove;
    document.body.onmouseup=OptionsPopup_DragDropStop;
}

function OptionsPopup_DragDropMove(e)
{
	var frame = document.getElementById('frame');
    el=document.getElementById('Options');          
    if (e==null&&event!=null)
    {
		el.style.left=(event.clientX*1+document.body.scrollLeft-OptionsofsX)+'px';
		el.style.top=(event.clientY*1+document.body.scrollTop-OptionsofsY)+'px';
		event.cancelBubble=true;
    }
    else
    {
		el.style.left=(e.pageX*1-OptionsofsX)+'px';
		el.style.top=(e.pageY*1-OptionsofsY)+'px';
		e.cancelBubble=true;
    }
    
    frame.style.left = el.style.left;
	frame.style.top = el.style.top;
	
    if ((event.button&1)==0) OptionsPopup_DragDropStop();
}

function OptionsPopup_DragDropStop()
{
    document.body.onmousemove=OptionsmousemoveBack;
    document.body.onmouseup=OptionsmouseupBack;
}

function ProcessCompatibilityOptionsTable(option, type)
{
	var hasResults = false;
	
	var table = document.createElement('table');
	table.setAttribute('border', '0');
	table.setAttribute('width', '394');
	table.setAttribute('cellpadding', '0');
	table.setAttribute('cellspacing', '0');
		
	var tbody = document.createElement('tbody');
		
	for(var i=0; i<option.Compatibilities.length; i++)
	{
		if (option.Compatibilities[i].CompatibilityType==type)
		{
			var hiddenField = GetElementById('OptionID-' + option.Compatibilities[i].OptionID);
			
			if (hiddenField != null)
			{
				hasResults = true;
				
				var tr  = document.createElement('tr');			
				var td = document.createElement('td');							
				var text = document.createElement('span');
				text.className = "bodytext10";
				
				if (option.Compatibilities[i].OptionName.length > 50)
				{
				    var index = option.Compatibilities[i].OptionName.indexOf(" ", 25);
				    text.innerHTML = option.Compatibilities[i].OptionName.substring(0, index) + '<br />' + option.Compatibilities[i].OptionName.substring(index + 1);
				} 
				else 
				{
				    text.innerHTML = option.Compatibilities[i].OptionName;				
				}

				if (option.Compatibilities[i].IsStandard != true)
				{					
					text.innerHTML += " (" + option.Compatibilities[i].Price + ")"
				}
				
				td.appendChild(text);
				tr.appendChild(td);			
				tbody.appendChild(tr);
			}
		}
	}
	
	table.appendChild(tbody);
	
	if (hasResults != true)
	{
		return null;
	}
	
	return table;
}

function BuildTableHeader(title)
{
	var tableHeader;
	tableHeader = document.createElement('span');
	tableHeader.className = "bodytext10";
	
	tableHeader.innerHTML = "<em>" + title + "</em>";
	
	return tableHeader;
}

function BuildChassisEngineOptionsPopup(chassisEngines, type)
{
	var header = document.createElement('span');
	header.className = "bodytext10";	
	
	if (type == 'ENGINE')
	{
	    header.innerHTML = "The chassis you selected...<br><br>";
    }
    else if (type == 'CHASSIS')
    {
        header.innerHTML = "The engine you selected...<br><br>";		    
    }
    
    header.innerHTML += "<b>" + chassisEngines.ChassisEngineName + "</b><br>";
    
	var form = document.createElement('form');
	form.setAttribute('id', 'optionsPopupForm');
	
	form.appendChild(header);
	form.appendChild(document.createElement('br'));
	
	if (chassisEngines.Compatibilities.length > 1)
	{
	    if (type == 'ENGINE')
	        form.appendChild(BuildTableHeader("...requires that one of the engines below be selected:"));
	    else if (type == 'CHASSIS')
	        form.appendChild(BuildTableHeader("...requires that one of the chassis below be selected:"));
	}
	else
	{
	    if (type == 'ENGINE')
	        form.appendChild(BuildTableHeader("...requires that the following engine be selected:"));	
	    else if (type == 'CHASSIS')
	        form.appendChild(BuildTableHeader("...requires that the following chassis be selected:"));	
	}
	
	var tbody = document.createElement('tbody');
	var table = document.createElement('table');
	
	table.setAttribute('width', '80%');
	table.appendChild(tbody);
	  
	for (var i = 0; i < chassisEngines.Compatibilities.length; i++)
	{
	    var tr = document.createElement('tr');
	    var td = document.createElement('td');
	    
	    var link = document.createElement('a');
	    
	    if (type == 'ENGINE')
	    {
	        link.setAttribute('href', 'javascript:ChangeEngineChassisSelection(\'ENGINE\', \'' + chassisEngines.ChassisCode + '\', \'' + chassisEngines.Compatibilities[i].EngineID + '\')');
	    }
	    else if (type == 'CHASSIS')
	    {
	        link.setAttribute('href', 'javascript:ChangeEngineChassisSelection(\'CHASSIS\', \'' + chassisEngines.EngineID +'\', \'' + chassisEngines.Compatibilities[i].ChassisCode + '\')');
	    }
	    
	    link.innerHTML = chassisEngines.Compatibilities[i].ChassisEngineName;
	    
	    td.setAttribute('align', 'center');
	    td.appendChild(link)
	    
	    tr.appendChild(td);
	    tbody.appendChild(tr);	    
	}
	
	table.appendChild(tbody);
	form.appendChild(table);

    form.appendChild(buildCancelDialogButton(type));
    
	var div;
	var parent = document.getElementById('Options');
	
	div = document.getElementById('Options_content');	
	div.appendChild(form);
	
	div.style.height = 270;
	parent.style.height = 300;
	
	var windowXButton = document.getElementById('subWindowCloseButton');
	windowXButton.onclick = new Function("e", "CancelEngineChassisPopup('" + type + "')");
	//windowXButton.style.visibility='hidden';
}

function IsEngineChassisAlreadySelected(type, value)
{    
    if (type=='ENGINE')
    {
        var engineTag = document.getElementById('EngineListID-' + value);
        var rdoEngine = document.getElementById(engineTag.value + 'SelectedEngineID');
        return rdoEngine.checked;
    } 
    else if (type=='CHASSIS') 
    {
        var chassisTag = document.getElementById('ChassisListID-' + value);
        var rdoChassis = document.getElementById(chassisTag.value + 'SelectedChassisID');        
        return rdoChassis.checked;
    }
    
    return false;
}

function SetEngineChassisSelection(type, value)
{
    if (type=='ENGINE')
    {
        var engineTag = document.getElementById('EngineListID-' + value);
        var rdoEngine = document.getElementById(engineTag.value + 'SelectedEngineID');
        
        rdoEngine.checked = true;
    }
    else if (type=='CHASSIS')
    {
        var chassisTag = document.getElementById('ChassisListID-' + value);
        var rdoChassis = document.getElementById(chassisTag.value + 'SelectedChassisID');
        
        rdoChassis.checked = true;
    }
}

function ChangeEngineChassisSelection(type, chassisEngineID, value)
{    
    var ctl1;
    var ctl2;
    
    if (type=='ENGINE')
    {
        ctl1 = document.getElementById("SelectedChassisCode");
        ctl2 = document.getElementById("SelectedEngineID");
        
        SetEngineChassisSelection('ENGINE', value);
        SetEngineChassisSelection('CHASSIS', chassisEngineID);
    }
    else if (type=='CHASSIS')
    {
        ctl1 = document.getElementById("SelectedEngineID");
        ctl2 = document.getElementById("SelectedChassisCode");
        
        SetEngineChassisSelection('ENGINE', chassisEngineID);
        SetEngineChassisSelection('CHASSIS', value);
    }
    
    ctl1.value = chassisEngineID;
    ctl2.value = value;
        
    OptionsPopup_Close();
}

function BuildOptionsPopup(option, isForm)
{
	var hiddenOpt = GetElementById('OptionID-' + option.OptionID);
	var chkOption = document.getElementById(hiddenOpt.value + 'chkOption');

	var header = document.createElement('span');
	header.className = "bodytext10";
	
	if (isForm)
	{
		if (chkOption.checked==false)
		{
			header.innerHTML = "The option you selected...<br><br>";
		}
		else 
		{
			header.innerHTML = "The option you deselected...<br><br>";
		}
	}
	else
	{
		chkOption = document.createElement('input');
		chkOption.setAttribute('type', 'checkbox');
		
		if (option.IsStandard)
		{
			var stdImage = document.getElementById(hiddenOpt.value + 'imgSelection');
			
			if (stdImage.src.indexOf('checkmark') != -1)
			{
				chkOption.checked = true;
			}
		}
	}
	
	header.innerHTML += "<b>" + option.OptionName + "</b><br>";

	var form = document.createElement('form');
	form.setAttribute('id', 'optionsPopupForm');
	
	form.appendChild(header);
	
	var compTable;

	//Inclusion
	compTable = ProcessCompatibilityOptionsTable(option, 'INCLUSION')

	if (compTable != null)
	{
		form.appendChild(document.createElement('br'));
		
		if (chkOption.checked==false)
		{
			form.appendChild(BuildTableHeader("...requires that the following options be selected:"));
		} 
		else 
		{
			form.appendChild(BuildTableHeader("...requires that the following options be deselected:"));
		}
		
		form.appendChild(compTable);
	}
	
	//Exclusions
	compTable = ProcessCompatibilityOptionsTable(option, 'EXCLUSION');
	
	if (compTable != null)
	{
		if (chkOption.checked==false)
		{
			form.appendChild(document.createElement('br'));
			
			form.appendChild(BuildTableHeader("...requires the removal of the following options (if selected):"));
			
			form.appendChild(compTable);
		} 
	}
	
	//Replacement
	compTable = ProcessCompatibilityOptionsTable(option, 'REPLACEMENT');
	
	if (compTable != null)
	{
		form.appendChild(document.createElement('br'));
		
		if (chkOption.checked==false)
		{
			form.appendChild(BuildTableHeader("...will replace the following options (if selected):"));
		} 
		else 
		{
			form.appendChild(BuildTableHeader("...will be replaced by the following options:"));
		}

		form.appendChild(compTable);
	}

	var div;
	var parent = document.getElementById('Options');
	
	if (isForm)
	{
		form.appendChild(buildOkCancelDialogButtons(chkOption.checked));

		div = document.getElementById('Options_content');		
	}
	else 
	{
		div = document.getElementById('compatibilityDisplay');
	}

	div.appendChild(form);
	
	if (option.Compatibilities.length > 5)
	{
	    //div.style.width='494';
	    div.style.height = 276 + ((option.Compatibilities.length - 5) * 11) - 5;
	    parent.style.height = 300 + ((option.Compatibilities.length - 5) * 11);
	} 
	else 
	{
	    div.style.height = 276;
	    parent.style.height = 300;
	}
	
	//var windowXButton = document.getElementById('subWindowCloseButton');
	//windowXButton.style.visibility='';
	
	RVOption = option;
}

function getStyle(element, styleProp)
{
    var e = document.getElementById(element);
    var y;
    
    if (e.currentStyle)
    {
        y = e.currentStyle[styleProp];
    } 
    else if (window.getComputedStyle)
    {
        y = document.defaultView.getComputedStyle(x, null).getPropertyValue(styleProp);
    }
    
    return y;
}

function buildOkCancelDialogButtons(required)
{	
	var imgCancel = document.createElement('img');
	imgCancel.src = 'images/cancel.jpg';
	imgCancel.onclick = new Function("e", "OptionsForm_CancelClick()");
	
	var imgOk = document.createElement('img');
	imgOk.src = 'images/ok.jpg';
	imgOk.onclick = new Function("e", "OptionsForm_OKClick(" + required + ")");
	
	var td1 = document.createElement('td');
	td1.setAttribute('align', 'right');	
	td1.appendChild(imgOk);
	
	var td2 = document.createElement('td');
	td2.setAttribute('align', 'left');
	td2.appendChild(imgCancel);
	
	var tr = document.createElement('tr');
	tr.appendChild(td1);
	tr.appendChild(td2);
	
	var tbody = document.createElement('tbody');
	tbody.appendChild(tr);
	
	var table = document.createElement('table');
	table.setAttribute('width', '100%');
	table.appendChild(tbody);
	
	return table;
}

function OptionsForm_OKClick(required)
{	
	if (required==false)
	{
		CalculatePrice(RVOption.OptionID, 1);
		CheckOption(RVOption.OptionID, true);
	}
	else 
	{
		CalculatePrice(RVOption.OptionID, -1);
		CheckOption(RVOption.OptionID, false);	
	}
	
	showHideCompatibilityWarningImage(RVOption.OptionID);
	
	for(var i=0; i<RVOption.Compatibilities.length; i++)
	{
	    if (RVOption.Compatibilities[i].CompatibilityType == "EXCLUSION")
	    {
	        if (!required)
	        {
	            if (isOptionChecked(RVOption.Compatibilities[i].OptionID))
	            {
	                CheckOption(RVOption.Compatibilities[i].OptionID, false);
    	            CalculatePrice(RVOption.Compatibilities[i].OptionID, -1);
	            }
	        }
	    }
	    else
	    {
		    if(!required)
		    {
			    CalculatePrice(RVOption.Compatibilities[i].OptionID, 1);
			    CheckOption(RVOption.Compatibilities[i].OptionID, true);
		    }
		    else
		    {
			    CalculatePrice(RVOption.Compatibilities[i].OptionID, -1);
			    CheckOption(RVOption.Compatibilities[i].OptionID, false);
		    }
		}

		showHideCompatibilityWarningImage(RVOption.Compatibilities[i].OptionID);
	}
	
	OptionsPopup_Close();		
}

function showHideCompatibilityWarningImage(optionID)
{
//	var hiddenOpt = GetElementById('OptionID-' + optionID);
//	
//	if (hiddenOpt != null)
//	{
//		var img = document.getElementById(hiddenOpt.value + 'imgCompatibilities');	

//		if (img != null)
//		{
//			if (img.src.indexOf('redstopsign.gif') == -1)
//			{
//				if (!GetCheckboxState(optionID))				
//				{
//					img.src = 'images/redyield.gif';
//				} 
//				else 
//				{
//					img.src = 'images/spacer.gif';						
//				}
//			}
//		}
//	}	
}

function OptionsForm_CancelClick()
{	
	OptionsPopup_Close();		
}

function CheckOption(optionID, checked)
{
	var chkField = GetElementById('OptionID-' + optionID);
	
	if (chkField != null)
	{
		var chk = document.getElementById(chkField.value + 'chkOption');
		
		if (chk != null)
		{
			chk.checked = checked;
		}
	}
}

function CalculatePrice(optionID, modifier)
{
	var chkField = GetElementById('OptionID-' + optionID);
	
	if (chkField != null)
	{
		var ttlField = document.getElementById('ctl00_mainContent_buildYourOwnSummary_lblMSRP');
		var optionsTtlField = document.getElementById('ctl00_mainContent_buildYourOwnSummary_lblOptionsPrice');
		var lbl = document.getElementById(chkField.value + 'lblPrice');
		
		if (lbl != null && optionsTtlField != null && ttlField != null)
		{	
			var totalPrice = parseFloat(ttlField.innerHTML.substring(1).replace(',', ''));
			var totalOptionsPrice = parseFloat(optionsTtlField.innerHTML.substring(1).replace(',', ''));
			var optionPrice = parseFloat(lbl.innerHTML.substring(1).replace(',', ''));
			
			
			if (isNaN(totalPrice)) { totalPrice = 0; }
			if (isNaN(totalOptionsPrice)) { totalOptionsPrice = 0; }
			
			if (isNaN(optionPrice) != true)
			{
				totalPrice += (optionPrice * modifier);
				totalOptionsPrice += (optionPrice * modifier);
				
				ttlField.innerHTML = '$' + formatThousands(totalPrice.toFixed(0));
				optionsTtlField.innerHTML = '$' + formatThousands(totalOptionsPrice.toFixed(0));
			}
		}		
	}	
}

function formatThousands(val)
{
	var pos;
	val = val.replace(',', '');
	
	var dot = val.indexOf('.'); 	
	if (dot<0) 
	{
		dot = val.length;
	}
	
	var r='';	
	for(pos=dot-3;pos>=1;pos-=3)
	{
		r = ',' + val.substr(pos,3) + r;
	}
	
	r = val.substring(0,pos+3) + r;
	dot = val.indexOf(".");          
	
	if (dot>0)
	{
		r += val.substring(dot);
	}
	
	return r;
}

function ReverseCheckOption(optionID)
{
	var chkField = GetElementById('OptionID-' + optionID);
	
	if (chkField != null)
	{
		var chk = document.getElementById(chkField.value + 'chkOption');
		
		if (chk != null)
		{
			if (chk.checked)
			{
				CalculatePrice(optionID, -1);				
			}
			else
			{
				CalculatePrice(optionID, 1);				
			}
			
			chk.checked = !chk.checked;
		}
	}
}


function GetCheckboxState(optionID)
{
	var chkField = GetElementById('OptionID-' + optionID);
	
	if (chkField != null)
	{
		var chk = document.getElementById(chkField.value + 'chkOption');
		
		if (chk != null)
		{
			return chk.checked;
		}
	}
	
	return false;
}

function ReverseCheck(chkBox)
{
	if (chkBox.checked)
	{
		 chkBox.checked = false;
	}
	else
	{
		chkBox.checked = true;
	}
}

function getMouseXY(e)
{ 
  if (!e) e = window.event;
 
  if (e)
  { 
    if (e.pageX || e.pageY)
    {
      mousex = e.pageX;
      mousey = e.pageY;
    }
    else if (e.clientX || e.clientY)
    { 
      mousex = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
      mousey = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
    }
    
    if (mousex < 0) { mousex = 0; }
	if (mousey < 0) { mousey = 0; }
  }
}

function CompatibilityDisplay(optionID)
{
	var msg = '';
	var option = GetRVOption(optionID);
	
	if (option != null && typeof(option) == "object")
	{	
		var div = document.getElementById('compatibilityDisplay');
		
		div.style.display = '';
		div.style.left = mousex + 10;
		div.style.top = mousey + 10;
		
		if (!IE)
		{
			div.style.height = 50 + (option.Compatibilities.length * 25);
		}
		
		BuildOptionsPopup(option, false);
	}
}

function hideCompatibilityDisplay()
{
	var div = document.getElementById('compatibilityDisplay');
	var form = document.getElementById('optionsPopupForm');
	
	if (form!=null)
	{
		div.removeChild(form);
	}
	
	div.style.display='none';
}

function GetElementById(val)
{
	if (IE)
	{
		return document.getElementById(val);
	}

	var elements = document.getElementsByTagName("input");

	for (var i=0; i<elements.length; i++)
	{
		if (elements[i].name == val)
		{
			return elements[i];
		}
	}
	
	return null;
}

function OpenLargeBYOImage(type, id)
{
	window.open('DisplayLargePhoto.aspx?type=' + type + '&imageid=' + id,'_blank','width=600,height=400,location=no,menubar=no,resizable=yes,scrollbars=no,status=no,titlebar=no,toolbar=no,top=0,left=0,alwaysRaised=yes');
}