var home_featured_items = [];
var home_featured_item_active = -1;
var TIME_ROTATE_DELAY_1 = 1000;
var TIME_ROTATE_DELAY_2 = 10000;

function home_rotate_featureditems() {
  // init featured items list
  if (!home_featured_items.length) {
    var items = $('div.featured-item');
    if (!items.length)
      return;

    for (var i = 0; i < items.length; i++) {
      home_featured_items[i] = items[i];
      items[i].style.display = 'none';
    }
  }//if

  var currentItem, nextItem, active2;

  // get currently show item, get next item to be shown
  active2 = (home_featured_item_active+1 < home_featured_items.length) ? home_featured_item_active+1 : 0;
  currentItem = home_featured_items[home_featured_item_active];
  nextItem = home_featured_items[active2];
  home_featured_item_active = active2;
  if (currentItem) {
    $(currentItem).fadeOut(TIME_ROTATE_DELAY_1, function(){
      $(nextItem).fadeIn(TIME_ROTATE_DELAY_1);
    });
  }
  else {
    $(nextItem).fadeIn(TIME_ROTATE_DELAY_1);
  }

  setTimeout("home_rotate_featureditems()", TIME_ROTATE_DELAY_2);
};

// Google Analytics tracking event: outbound banners click
// params: el - <A> html element
function ga_track_click(el) {
  if (!pageTracker || !el)
    return;

  var ga_event_category = 'Banner';
  var ga_event_action = 'Clicks';
  var ga_event_label = el.href;

  pageTracker._trackEvent(ga_event_category, ga_event_action, ga_event_label);

  return;
};

// for equipment details page only
var last_active_equipment_image = 0;
function toggle_active_image(el) {
  var n1 = last_active_equipment_image;
  var n2 = parseInt(el.id.replace(/eqimg_thumb_/, ''));
  var img, img_thumb;

  // switch styles for last active image
  img = $('#eqimg_'+n1)[0];
  img_thumb = $('#eqimg_thumb_'+n1)[0];
  if (img && img_thumb) {
    img.className = img_thumb.className = 'inactive';
  }

  // switch styles for current active image
  img = $('#eqimg_'+n2)[0];
  img_thumb = $('#eqimg_thumb_'+n2)[0];
  if (img && img_thumb) {
    img.className = img_thumb.className = 'active';
  }

  last_active_equipment_image = n2;

  return;
};

//here you place the ids of every element you want.
/*var ids=new Array('details','features','seller_info');*/
var ids=new Array('details','seller_info');

function switchid(id)
{
	hideallids();
	showdiv(id);
}

function hideallids()
{
	//loop through the array and hide each element by id
	for (var i=0;i<ids.length;i++){
		hidediv(ids[i]);
	}		  
}

function hidediv(id)
{
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'none';
	} else {
		if (document.layers) { // Netscape 4
			document.id.display = 'none';
		} else { // IE 4
			document.all.id.style.display = 'none';
		}
	}
}

function showdiv(id)
{
	//safe function to show an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'block';
	} else {
		if (document.layers) { // Netscape 4
			document.id.display = 'block';
		} else { // IE 4
			document.all.id.style.display = 'block';
		}
	}
}


// declare a global  XMLHTTP Request object
var XmlHttpObj;

// create an instance of XMLHTTPRequest Object, varies with browser type, try for IE first then Mozilla
function CreateXmlHttpObj()
{
	// try creating for IE (note: we don't know the user's browser type here, just attempting IE first.)
	try
	{
		XmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			XmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch(oc)
		{
			XmlHttpObj = null;
		}
	}
	// if unable to create using IE specific code then try creating for Mozilla (FireFox) 
	if(!XmlHttpObj && typeof XMLHttpRequest != "undefined") {
		XmlHttpObj = new XMLHttpRequest();
	}
}

function getModel(makeListId)
{
	makeListFormId = makeListId;
	var makeList = document.getElementById(makeListId);
	var selectedMake = makeList.options[makeList.selectedIndex].value;
	var requestUrl;
	requestUrl = "xml_data_provider.php" + "?filter=" + encodeURIComponent(selectedMake);

	CreateXmlHttpObj();
	if(XmlHttpObj) {
        // assign the StateChangeHandler function ( defined below in this file)
        // to be called when the state of the XmlHttpObj changes
        // receiving data back from the server is one such change
		XmlHttpObj.onreadystatechange = StateChangeHandler;
		
		// define the iteraction with the server -- true for as asynchronous.
		XmlHttpObj.open("GET", requestUrl, true);
		
		// send request to server, null arg  when using "GET"
		XmlHttpObj.send(null);		
	}
}

// this function called when state of  XmlHttpObj changes
// we're interested in the state that indicates data has been
// received from the server
function StateChangeHandler()
{
	// state ==4 indicates receiving response data from server is completed
	if(XmlHttpObj.readyState == 4) {
		// To make sure valid response is received from the server, 200 means response received is OK
		if(XmlHttpObj.status == 200) {
			populateModelList(XmlHttpObj.responseXML.documentElement);
		} else {
			alert("problem retrieving data from the server, status code: "  + XmlHttpObj.status);
		}
	}
}

// populate the contents of the dropdown list
function populateModelList(modelNode)
{
	if(makeListFormId == 'makeSideList') {
		var modelFormId = 'modelList';
	} else if(makeListFormId == 'make') {
		var modelFormId = 'model';
	}	

    var modelList = document.getElementById(modelFormId);
	// clear the list 
	for (var count = modelList.options.length-1; count >-1; count--) {
		modelList.options[count] = null;
	}

	var modelNode = modelNode.getElementsByTagName('model');
	var idValue;
	var textValue; 
	var optionItem;
	// populate the dropdown list with data from the xml doc
	for (var count = 0; count < modelNode.length; count++) {
   		textValue = GetInnerText(modelNode[count]);
		idValue = modelNode[count].getAttribute("id");
		optionItem = new Option( textValue, idValue,  false, false);
		modelList.options[modelList.length] = optionItem;
	}
}

// returns the node text value 
function GetInnerText (node)
{
	 return (node.textContent || node.innerText || node.text) ;
}

function popup(url) {
  window.open(url,'','scrollbars=yes,menubar=yes,resizable=yes,toolbar=yes,location=no,status=no');
  return true;
}

function perPage(limit)
{
document.listingPerpage.submit();
}
function next_prev_page(val)
{
document.listingPerpage.page.value=val;
document.listingPerpage.submit();
}


var VIDEO_PLAYER = null;
function playerReady(obj) {
	VIDEO_PLAYER = document.getElementById(obj.id);
}

function changeDemo(id) {
  var vid = PREVIEW_SLIDER_IMAGES[id];
  if (!vid) {
    alert('Can not fetch video data!');
    return;
  }

  // STOP VIDEO
  VIDEO_PLAYER.sendEvent("STOP");

  // UPDATE CONTENT
  $('#pd_title').html(vid.title);
  $('#pd_desc').html(vid.desc);
  $('#pd_company_url').html(vid.url);
  $('#pd_company_url')[0].href = vid.url;

  var id1 = 'li#_thumb_'+PS_INSTANCE.currentImageNumber;
  var id2 = 'li#_thumb_'+id;
  $(id1).removeClass('ps-current');
  $(id2).addClass('ps-current');
  PS_INSTANCE.currentImageNumber = id;

  // LOAD NEW VIDEO
  VIDEO_PLAYER.sendEvent("LOAD", vid.s_u);
};

function changeImage(id) {
  var img = PREVIEW_SLIDER_IMAGES[id];
  if (!img) {
    alert('Can not fetch image data!');
    return;
  }

  // UPDATE CONTENT
  $('#pd_title').html(img.title);
  $('#pd_desc').html(img.desc);
  $('#big-image')[0].src = img.s_u;
  $('#big-image')[0].height = img.bh;
  $('#big-image')[0].width = img.bw;

  var id1 = 'li#_thumb_'+PS_INSTANCE.currentImageNumber;
  var id2 = 'li#_thumb_'+id;
  $(id1).removeClass('ps-current');
  $(id2).addClass('ps-current');
  PS_INSTANCE.currentImageNumber = id;
};


function bookmark_link(el) {
  if (window.external && window.external.AddFavorite) {
    //IE6+
    window.external.AddFavorite(window.location.href, document.title);
    return false;
  }

  if (window.opera && window.print) {
    // Opera
    return true;
  }

  alert('Press CTRL + D to add page into your browser bookmarks');

  return false;
};


function setElementOpacity(sElemId, nOpacity) {
	var opacityProp = getOpacityProperty();
	var elem = document.getElementById(sElemId);

	if (!elem || !opacityProp) return; 

	if (opacityProp=="filter"){
		nOpacity *= 100;
		var oAlpha = elem.filters['DXImageTransform.Microsoft.alpha'] || elem.filters.alpha;
		if (oAlpha) oAlpha.opacity = nOpacity;
		else elem.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+nOpacity+")"; 
	}else
		elem.style[opacityProp] = nOpacity;
}

function getOpacityProperty() {
	if (typeof document.body.style.opacity == 'string') 
		return 'opacity';
	else if (typeof document.body.style.MozOpacity == 'string')  
		return 'MozOpacity';
	else if (typeof document.body.style.KhtmlOpacity == 'string') 
		return 'KhtmlOpacity';
	else if (document.body.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1]>=5.5) 
		return 'filter';
	return false; 
}

