function collapse(intCatId,e,on)
{
	var oldState = e.states;
	var myImage = e.childNodes[0];	
	var o = GetMyObjectByID('cat_' + intCatId + '_on');
	
	if(oldState == "shown")
	{
		GetMyObjectByID('cat_' + intCatId + '_on').style.display= 'none';
		e.states = "hidden";
		if(on == "on")
		{
			myImage.src = "/images/i_plus_on.gif";
		}
		else
		{
			myImage.src = "/images/i_plus.gif";
		}	
	}
	else
	{

		o.style.display= 'block';
		e.states = "shown";
		if(on == "on")
		{
			myImage.src = "/images/i_minus_on.gif";
		}
		else
		{
			myImage.src = "/images/i_minus.gif";
		}	
		

	}
}

/*

Accesible Pop Up Code

This file contains only functions necessary for the article features
The full library code and enhanced versions of the functions present
here can be found at http://v2studio.com/k/code/lib/

MISC CLEANING-AFTER-MICROSOFT STUFF

isUndefined(v)
    returns true if [v] is not defined, false otherwise

    IE 5.0 does not support the undefined keyword, so we cannot do a direct
    comparison such as v===undefined.
*/

// MISC CLEANING-AFTER-MICROSOFT STUFF

function isUndefined(v) {
    var undef;
    return v===undef;
}

function SetSearchIndicator(type)
{
	var indicator = GetMyObjectByID("hdnSearchFlag");
	if(indicator != null)
		indicator.value = type;
}

// These defaults should be changed the way it best fits your site
var _POPUP_FEATURES = '';

function raw_popup(url, target, features) {
    // pops up a window containing url optionally named target, optionally having features
    if (isUndefined(features)) features = _POPUP_FEATURES;
    if (isUndefined(target  )) target   = '_blank';
    var theWindow = window.open(url, target, features);
    theWindow.focus();
    return theWindow;
}

function link_popup(src, features) {
    // to be used in an html event handler as in: <a href="..." onclick="link_popup(this,...)" ...
    // pops up a window grabbing the url from the event source's href
    return raw_popup(src.getAttribute('href'), src.getAttribute('target') || '_blank', features);
}

var defaultButton=null;

function SetFocus(id){
	defaultButton = GetMyObjectByID(id);
	if (null == defaultButton || window.event.keyCode!=13) 
		return;
	defaultButton.focus();
	defaultButton.click();
  //window.event.returnValue = false;
  return false;
}


function openWebSite(url, target, features) {
    // pops up a window containing url optionally named target, optionally having features
    
    if(url == 'launchDemo')
    {
			launchDemo('3');
    }
    else
    {
			if (isUndefined(features)) features = _POPUP_FEATURES;
			if (isUndefined(target  )) target   = '_blank';
			var theWindow = window.open(url, target, features);
			theWindow.focus();
			return theWindow;
		}
			
}

function openSpecialListings(specialID)
{
	window.location = 'specialListings.aspx?specialID=' + specialID;
}

function openSpecialListingsAdmin(specialID)
{
	window.open('../specialListings.aspx?specialID=' + specialID);
}


function openSpecialBB(specialID)
{
	window.open('specialBillBoard.aspx?specialID=' + specialID, 'BillBoard', 'height=600, width=500, scrollbars=auto');
}

function openSpecialBBPreview(specialID)
{
	window.open('../specialBillBoard.aspx?specialID=' + specialID, 'BillBoard', 'height=600, width=500, scrollbars=auto');
}

function openSpecialBBAdmin(specialID)
{
	window.open('adminSpecialBillBoard.aspx?specialID=' + specialID, 'BillBoard', 'height=600, width=500, scrollbar=yes');
}

function viewSpecial(specialID)
{
	window.open('viewSpecial.aspx?specialID=' + specialID, 'ViewSpecial', 'height=100, width=185');
}


function Trim(s) 
{
	// Remove leading spaces and carriage returns
	while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
	{ s = s.substring(1,s.length); }

	// Remove trailing spaces and carriage returns
	while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
	{ s = s.substring(0,s.length-1); }

	return s;
} 


function validateImage(controlToVal, errorControl, errorText)
{
	var imgObj = GetMyObjectByID(controlToVal);
	var errObj = GetMyObjectByID(errorControl);
	if (Trim(imgObj.value) != "")
	{
		//if (controlToVal.value.length
		var intStart = (imgObj.value.length - 4)
		var ext = imgObj.value.substr(intStart,4);
		ext = ext.toLowerCase();
		if ((ext != ".jpg") && (ext != ".gif")) 
		{
			errCount += 1;
			errObj.innerHTML = errorText;
		}
	}
}

function validateCompare(controlToVal, controlToCompare, errorControl, errorText)
{
	var ctrlToObj = GetMyObjectByID(controlToVal);
	var ctrlCompObj = GetMyObjectByID(controlToCompare);
	var errObj = GetMyObjectByID(errorControl);
	
	if (ctrlToObj.value != ctrlCompObj.value )
	{
		errCount += 1;
		errObj.innerHTML = errorText;
	}
	
}

function validateEmailAddress(controlToVal, errorControl, errorText)
{
	
	var ctrlToObj = GetMyObjectByID(controlToVal);
	var errObj = GetMyObjectByID(errorControl);
	
	email = ctrlToObj.value
	
	AtPos = email.indexOf("@")
	StopPos = email.lastIndexOf(".")
	
	if (Trim(email) == "") {
		errCount += 1;
		errObj.innerHTML = errorText;
	}

	if (AtPos == -1 || StopPos == -1) {
		errCount += 1;
		errObj.innerHTML = errorText;
	}

	if (StopPos < AtPos) {
		errCount += 1;
		errObj.innerHTML = errorText;
	}

	if (StopPos - AtPos == 1) {
		errCount += 1;
		errObj.innerHTML = errorText;
	} 
}

function validateRequired(controlToVal, errorControl, errorText)
{
	var ctrlToObj = GetMyObjectByID(controlToVal);
	var errObj = GetMyObjectByID(errorControl);
	if (ctrlToObj.value.length == 0)
	{
		errCount += 1;
		errObj.innerHTML = errorText;
	}
}

function validateChecked(controlToVal, errorControl, errorText)
{
	var ctrlToObj = GetMyObjectByID(controlToVal);
	var errObj = GetMyObjectByID(errorControl);
	if (ctrlToObj.checked == false)
	{
		errCount += 1;
		errObj.innerHTML = errorText;
	}
}

function validateNumbers(controlToVal, errorControl, errorText)
{
	var ctrlToObj = GetMyObjectByID(controlToVal);
	ctrlToObj.value = Trim(ctrlToObj.value);
	
	var errObj = GetMyObjectByID(errorControl);
	
	var ValidChars = "0123456789.";
  var IsNumber=true;
  var Char;
  
  for (i = 0; i < ctrlToObj.value.length && IsNumber == true; i++) 
  { 
		Char = ctrlToObj.value.charAt(i); 
    if (ValidChars.indexOf(Char) == -1) 
    {
			errCount += 1;
			errObj.innerHTML = errorText;
    }
  }
  
}


function validateRequiredBaseOnControlValue(controlToVal, controlToCheck, checkValue, errorControl, errorText)
{
	var ctrlToObj = GetMyObjectByID(controlToVal);
	var ctrlToCheckObj = GetMyObjectByID(controlToCheck);
	var errObj = GetMyObjectByID(errorControl);
	
	if (ctrlToCheckObj.value == checkValue)
	{
		if (ctrlToObj.value.length == 0)
		{
			errCount += 1;
			errObj.innerHTML = errorText;
		}
	}
}


function validateRequiredDropDownSelected(controlToVal, errorControl, errorText)
{
	var ctrlToObj = GetMyObjectByID(controlToVal);
	var errObj = GetMyObjectByID(errorControl);
	
	if (ctrlToObj.selectedIndex == 0)
	{
		errCount += 1;
		errObj.innerHTML = errorText;
	}
}


function validateSelections(errorControl, errorText)
{
	var errObj = GetMyObjectByID(errorControl);
	var checkedCount = 0;
	
	for (var i=0; i < document.forms[0].elements.length; i++) 
	{ 
		//make sure we don't modify the element that called the function 
		if (document.forms[0].elements.elements[i].checked) 
		{ 
			checkedCount += 1;		
		} 
	} 
	
	if (checkedCount == 0)
	{
		errCount += 1;
		errObj.innerHTML = errorText;	
	}
}

function validateTextLength(controlToVal, errorControl, errorText)
{
	var ctrlToObj = GetMyObjectByID(controlToVal);
	var errObj = GetMyObjectByID(errorControl);
	
	if (ctrlToObj.value.length > 120)
	{
		errCount += 1;
		errObj.innerHTML = errorText;
	}
	
}

function setNextButtonOliveLockedState(controlToLock)
{
	var ctrlToObj = GetMyObjectByID(controlToLock);
	//alert(ctrlToObj.className);
	ctrlToObj.className = "clickedOliveNext";
}

function setPublishButtonOliveLockedState(controlToLock)
{
	var ctrlToObj = GetMyObjectByID(controlToLock);
	//alert(ctrlToObj.className);
	ctrlToObj.className = "clickedOlivePublish";
}

function setUpdateButtonOliveLockedState(controlToLock)
{
	var ctrlToObj = GetMyObjectByID(controlToLock);
	//alert(ctrlToObj.className);
	ctrlToObj.className = "clickedOliveUpdate";
}

function setLoginButtonOliveLockedState(controlToLock)
{
	var ctrlToObj = GetMyObjectByID(controlToLock);
	//alert(ctrlToObj.className);
	ctrlToObj.className = "clickedOliveUpdate";
}

function setRegisterButtonOliveLockedState(controlToLock)
{
	var ctrlToObj = GetMyObjectByID(controlToLock);
	//alert(ctrlToObj.className);
	ctrlToObj.className = "clickedOliveRegister";
}

function cancelMouseOut(controlToLock)
{
	var ctrlToObj = GetMyObjectByID(controlToLock);
	ctrlToObj.onmouseout = '';
}

function clearAllErrorMessages()
{
	var divs = document.getElementsByTagName("div");
	for(var i=0; i < divs.length; i++)
	{
		var div = divs[i];
		var id = div.id;
		if ((id.indexOf("err") != -1) && (div.innerHTML != ""))
		{
			div.innerHTML = "";
		}
	}
}

function GetMyObjectByID(itemID)
{
	// In the future will need to build in the ability to handle v4 netscape browsers.
  if (document.getElementById) // Good browsers
		return document.getElementById(itemID)
	else if (document.all) // medium browsers
    return document.all[itemID];
}

function launchDemo(tourID)
{
	var win
	
	switch(tourID)
	{
		case '1':
			win = window.open('tour1.html', 'DemoTour', 'width=617, height=565, scrollbars=yes, menubar=no, resizable=no, toolbar=no');
			break;
		case '2':
			win = window.open('tour2.html', 'DemoTour', 'width=617, height=565, scrollbars=yes, menubar=no, resizable=no, toolbar=no');
			break;
		case '3':
			win = window.open('tour3.html', 'DemoTour', 'width=617, height=565, scrollbars=yes, menubar=no, resizable=no, toolbar=no');
			break;
		default:
			win = window.open('tour1.html', 'DemoTour', 'width=617, height=565, scrollbars=yes, menubar=no, resizable=no, toolbar=no');
			break;
	}
}

function viewMemberDetails(memberID)
{
	var win;
	win = window.open('viewMemberDetailsPopup.aspx?mID=' + memberID, 'DemoTour', 'width=600, height=600, scrollbars=auto, menubar=no, resizable=no, toolbar=no');
}

function closewindow()
{
	this.close();
}

function gotoregister()
{
	window.opener.location = "monkey_registration.aspx";
	setTimeout('closewindow()', 500);
}

function gotolistspecial()
{
	window.opener.location = "dealer/listSpecialStep1.aspx";
	setTimeout('closewindow()', 500);
}


function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}


function sendUserEmail(memberID, listingID)
{
	var win;
	win = window.open('contactMember.aspx?mID=' + memberID + '&lID=' + listingID, 'SendUserEmail', 'width=600, height=421, scrollbars=auto, menubar=no, resizable=no, toolbar=no');

}


