
function modifyForIE6() {
	document.getElementById('email_president').style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + getRef('email_president').src + "')";

	document.getElementById('welcome').style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='welcome.png')";
	document.getElementById('result').style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='trans_3.png')";
}

function resize()
{
	myWidth = pageWidth();
	myHeight = pageHeight();

	if( getRef('college') ) {
		setStyle( "college", "left", "-100px" );  
		setStyle( "college", "top", ( myHeight - ( ( ( myWidth * 0.7) / 4 ) * 3) + 30 ) + "px" );
		setStyle( "college", "width", ( myWidth * 0.7 ) + "px" );
		setStyle( "college", "height", ( ( ( myWidth * 0.7 ) / 4 ) * 3) + "px" );
		setStyle( "college", "visibility", "visible" );
		setStyle( "college", "zIndex", "0" );
	}

	

	if( getSWF('college_background') ) {
		if( getSWF("college_background").resize500 ) {
			var obj = getSWF("college_background");
		}
		else {
			var obj = getRef("college_background");
		}

		var newWidth = ( myWidth * 1.4583 );
		var newHeight = ( ( ( myWidth * 1.4583 ) / 2500 * 1280 ) );

		if( newHeight < myHeight ) {
			newWidth = ( ( myHeight + 30 ) / 1280 * 2500 );
			newHeight = myHeight + 30;
		}

		obj.width = newWidth;
		obj.height = newHeight;

		setStyle( obj, "left", "-100px");
		setStyle( obj, "bottom", "-30px");

		var ratio = ( 2500 / newWidth );

		if( obj.resize500 ) {
			obj.resize500( ( myWidth * ratio ), ( myHeight * ratio ), ( 100 * ratio ), ( 30 * ratio ) );
		}
		else {
			var t=setTimeout("resize();",100);
		}
	}


	setStyle( 'mailing', 'visibility', 'visible' );
	setStyle( 'copyright', 'visibility', 'visible' );
	setStyle( 'email_president', 'visibility', 'visible' );
	setStyle( 'knocker', 'visibility', 'visible' );


//alert( myWidth );

//	setStyle( getSWF( "college_background" ), "width", ( myHeight * 2000 / 1280 ) + "px" );
//	setStyle( getSWF( "college_background" ), "height", ( myHeight + "px" ) );
//	setStyle( getSWF( "college_background" ), "visibility", "visible" );
//	setStyle( getSWF( "college_background" ), "zIndex", "0" );


	//resizeIntroductionTextThemes();

	//var docHeight = (document.height !== undefined) ? document.height : document.body.offsetHeight;
	//setStyle( "main_container", "height", docHeight + "px" );
}


function goHome() {
	if( getSWF('college_background') ) {
		if( getSWF("college_background").goHome ) {
			var obj = getSWF("college_background");
		}
		else {
			var obj = getRef("college_background");
		}

		obj.goHome();
	}

	return false;
}


var jsReady = false;

addEvent( window, "load", checkIE, false );
addEvent( window, "load", pageInit, false );
addEvent( window, "resize", resize, false );

function backgroundReady() {
	resize();
}

function isReady()
{
    return jsReady;
}

function pageInit()
{
    // Record that JavaScript is ready to go.
    jsReady = true;

	addEvent( getRef("knocker"), "click", goHome, false );
}


function showTicketSeatInfo( event ) {
    var e = event || window.event;
	var el = e.target || e.srcElement;

	var dataStore;

	if( seatDataExceptions[el.id] ) {
		dataStore = seatDataExceptions;
	}
	else {
		dataStore = seatData;
	}

	if( dataStore[el.id]["taken"] != true ) {
		el.className = "s_t_s_hover";
	}

    var pos = getRelativeCoordinates(event, document.getElementById('ticket_seat_container'));
    var m = document.getElementById('ticket_seat_select_seat_info');
    m.style.left = (pos.x + 15) +'px';
    m.style.top = (pos.y + 5) +'px';

	setStyle( m, 'visibility', 'visible' );

	m.innerHTML = "<b>" + dataStore[el.id]["info"] + "</b>";

}

function hideTicketSeatInfo( event ) {
    var e = event || window.event;
	var el = e.target || e.srcElement;

    var m = document.getElementById('ticket_seat_select_seat_info');
	setStyle( m, 'visibility', 'hidden' );

	if( seatDataExceptions[el.id] ) {
		el.className = seatDataExceptions[el.id]["class"];
	}
	else {
		el.className = seatData[el.id]["class"];
	}
}

var seatData = new Object();
var seatDataExceptions = new Object();
var seatDataExceptionsLength = 0;
var seatSelected = false;

var dataTimer;

function loadSeatData() {
	AJAXQueue.addGetInstruction( "?a=TicketSeatSelectData&_m", null, function( data ) {
			var newSeatData = data.parseJSON();
			for( var i in newSeatData ) {
				if( seatDataExceptions[i] ) {
					if( newSeatData[i]["taken"] == true && seatDataExceptions[i]["taken"] == true ) {
						if( seatDataExceptions[i]["guest_id"] == newSeatData[i]["guest_id"] ) {
							seatDataExceptions[i] = null;
							seatDataExceptionsLength = seatDataExceptionsLength - 1;
							getRef( i ).className = newSeatData[i]["class"];

							if( newSeatData[i]["guest_id"] == seat_select_guest_id ) {
								getRef("ticket_seat_id").value = newSeatData[i]["ticket_seat_id"];
								getRef("ticket_seat_name").value = i;
							}
						}
						else {
							if( seatDataExceptions[i]["guest_id"] == seat_select_guest_id ) {
								alert( "Your selected seat was chosen by another ticket-holder before you confirmed your choice. Please select another seat." );
								clearTicketSeat();
								return;
							}
							else {
								seatDataExceptions[i] = null;
								seatDataExceptionsLength = seatDataExceptionsLength - 1;
								getRef( i ).className = newSeatData[i]["class"];
							}
						}
					}
					else if( newSeatData[i]["taken"] == false && seatDataExceptions[i]["taken"] == false ) {
						seatDataExceptions[i] = null;
						seatDataExceptionsLength = seatDataExceptionsLength - 1;
						getRef( i ).className = newSeatData[i]["class"];
					}
					else {
						getRef( i ).className = seatDataExceptions[i]["class"];
						continue;
					}
				}
				else {
					if( newSeatData[i]["guest_id"] == seat_select_guest_id ) {
						getRef("ticket_seat_id").value = newSeatData[i]["ticket_seat_id"];
						getRef("ticket_seat_name").value = i;
					}

					getRef( i ).className = newSeatData[i]["class"];
				}
			}

			if( seatDataExceptionsLength > 0 ) {
				setStyle( "ticket_seat_select_button_save", "display", "inline" );
			}
			else {
				setStyle( "ticket_seat_select_button_save", "display", "none" );
			}

			seatData = newSeatData;

			if( dataTimer ) clearInterval( dataTimer );
			dataTimer = setTimeout("loadSeatData();",5000);
		}
	);
}

function selectTicketSeat( event ) {
    var e = event || window.event;
	var el = e.target || e.srcElement;

	if( seatData[el.id]["taken"] == true && seatData[el.id]["guest_id"] != seat_select_guest_id ) {
		el.className = "s_t_s_warning";
		var t=setTimeout("el.className = seatData[el.id]['class'];",200);
	}
	else {
		if( getRef("ticket_seat_id").value ) {
			if( seatDataExceptions[getRef("ticket_seat_name").value] ) {
				if(	seatDataExceptions[getRef("ticket_seat_name").value]["taken"] == true && seatData[getRef("ticket_seat_name").value]["taken"] == false ) {
					seatDataExceptions[getRef("ticket_seat_name").value] = null;
					seatDataExceptionsLength = seatDataExceptionsLength - 1;
				}
			}
			else {
				seatDataExceptions[getRef("ticket_seat_name").value] = new Object();
				seatDataExceptions[getRef("ticket_seat_name").value]["taken"] = false;
				seatDataExceptions[getRef("ticket_seat_name").value]["guest_id"] = 0;
				seatDataExceptions[getRef("ticket_seat_name").value]["class"] = "s_t_s";
				seatDataExceptions[getRef("ticket_seat_name").value]["info"] = "Available";

				seatDataExceptionsLength = seatDataExceptionsLength + 1;
			}
		}

		getRef("ticket_seat_id").value = seatData[el.id]["ticket_seat_id"];
		getRef("ticket_seat_name").value = el.id;

		if(	seatData[el.id]["taken"] != true ) {
			seatDataExceptions[el.id] = new Object();
			seatDataExceptions[el.id]["taken"] = true;
			seatDataExceptions[el.id]["guest_id"] = seat_select_guest_id;
			seatDataExceptions[el.id]["class"] = "s_t_s_taken_own";
			seatDataExceptions[el.id]["info"] = "To choose this seat, click 'Save' on the right.";

			var m = document.getElementById('ticket_seat_select_seat_info');
			m.innerHTML = "<b>" + seatDataExceptions[el.id]["info"] + "</b>";

			seatDataExceptionsLength = seatDataExceptionsLength + 1;

			getRef( 'ticket_seat_select_current_info' ).innerHTML = '<b>Now click Save to confirm your chosen seat:</b>';
		}
		else {
			if( seatDataExceptions[el.id] ) {
				seatDataExceptions[el.id] = null;
				seatDataExceptionsLength = seatDataExceptionsLength - 1;
			}

			AJAXQueue.addGetInstruction( "?a=TicketSeatSelectCurrentInfo&_m", "ticket_seat_select_current_info" );
		}

		loadSeatData();
	}
}

function clearTicketSeat() {
	getRef("ticket_seat_id").value = null;
	getRef("ticket_seat_name").value = null;

	seatDataExceptions = new Array();
	loadSeatData();
}









// ----------------------------------------------------------------------------------------
// Code from other places: ----------------------------------------------------------------
// ----------------------------------------------------------------------------------------

/**
 * Retrieve the absolute coordinates of an element.
 *
 * @param element
 *   A DOM element.
 * @return
 *   A hash containing keys 'x' and 'y'.
 */
function getAbsolutePosition(element) {
  var r = { x: element.offsetLeft, y: element.offsetTop };
  if (element.offsetParent) {
    var tmp = getAbsolutePosition(element.offsetParent);
    r.x += tmp.x;
    r.y += tmp.y;
  }
  return r;
};

/**
 * Retrieve the coordinates of the given event relative to the center
 * of the widget.
 *
 * @param event
 *   A mouse-related DOM event.
 * @param reference
 *   A DOM element whose position we want to transform the mouse coordinates to.
 * @return
 *    A hash containing keys 'x' and 'y'.
 */
function getRelativeCoordinates(event, reference) {
  var x, y;
  event = event || window.event;
  var el = event.target || event.srcElement;

  if (!window.opera && typeof event.offsetX != 'undefined') {
    // Use offset coordinates and find common offsetParent
    var pos = { x: event.offsetX, y: event.offsetY };

    // Send the coordinates upwards through the offsetParent chain.
    var e = el;
    while (e) {
      e.mouseX = pos.x;
      e.mouseY = pos.y;
      pos.x += e.offsetLeft;
      pos.y += e.offsetTop;
      e = e.offsetParent;
    }

    // Look for the coordinates starting from the reference element.
    var e = reference;
    var offset = { x: 0, y: 0 }
    while (e) {
      if (typeof e.mouseX != 'undefined') {
        x = e.mouseX - offset.x;
        y = e.mouseY - offset.y;
        break;
      }
      offset.x += e.offsetLeft;
      offset.y += e.offsetTop;
      e = e.offsetParent;
    }

    // Reset stored coordinates
    e = el;
    while (e) {
      e.mouseX = undefined;
      e.mouseY = undefined;
      e = e.offsetParent;
    }
  }
  else {
    // Use absolute coordinates
    var pos = getAbsolutePosition(reference);
    x = event.pageX  - pos.x + reference.scrollLeft;
    y = event.pageY - pos.y + reference.scrollTop;
  }
  // Subtract distance to middle
  return { x: x, y: y };
}


