// v2.0 browser interface

var loadCount = 0;

function load() {
	resizeFrame(null);
    Event.observe(window, 'resize', resizeFrame); 

	initMarques();

	$('marques').observe('change', marqueChangeHandler);
	$('prevlink').observe('click', prevLinkHandler);
	$('nextlink').observe('click', nextLinkHandler);
}

function resizeFrame(event) {
	var h = document.viewport.getHeight();
	if (navigator.userAgent.indexOf('IE') != -1) {
		h = h - 135;
	} else {
		h = h - 145;
	}
	document.getElementById("fggFrame").height = h;
	document.getElementById("fggFrame").style.height = h.toString() + "px";
}

function initMarques() {
	var m = getURLParam('m');
	if(m.length > 0) {
		var children = $('marques').childElements();
		children[parseInt(m)].selected = true;
		marqueChangeHandler(null);
	} else {
		window.frames.fggFrame.location.href = "start.html";
	}
}

function initListings() {
	var l = getURLParam('l');
	if(l.length > 0) {
		var children = $('listings').childElements();
		children[parseInt(l)].selected = true;
		fggPageLoader(null);
	}
}

// from http://www.11tmr.com/11tmr.nsf/D6Plinks/MWHE-695L9Z
function getURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if ( aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return unescape(strReturn);
} 

// pass NULL is called manually
function marqueChangeHandler(event) {
	var selection = $('marques').value;
	if(selection != null && selection.length > 0) {
		var url = '/fgg2/m/' + selection + '.html';
		new Ajax.Request(url, {
			method: 'get',
			onSuccess: function(transport) {
				$('listings_div').update(transport.responseText);
				$('listings').observe('change', fggPageLoader);
				$('listingscontrols').show();
				if(event == null) {
					initListings();
				}
			}
		});
	}
}

function fggPageLoader(event) {
	var url = $('listings').value;
	// force page to reload every X number of views
	if(loadCount > 10) {
		window.location = "/fgg2/index.html?m=" + $('marques').selectedIndex +
			"&l=" + $('listings').selectedIndex;
	}
	else if(url != null && url.length > 0) {
		window.frames.fggFrame.location.href = url;
		loadCount++;
	}
}

function prevLinkHandler(event) {
	var i = $('listings').selectedIndex;
	var children = $('listings').childElements();
	if(i != -1 && i > 0) {
		children[i-1].selected = true;
		fggPageLoader(null);
	}
}

function nextLinkHandler(event) {
	var i = $('listings').selectedIndex;
	var children = $('listings').childElements();
	if(i != -1 && i < children.length-1) {
		children[i+1].selected = true;
		fggPageLoader(null);
	}
}
