function swapimg(id,img) {	$(id).src = img; }
function util_link(id,state,type,url)
{
	var pre = '';
	var img = '';
	if( type == 'top' )
	{
		pre = 'tu_';
		imgdir = 'toputils' + (state == 'over' ? '/over' : '');		
	}
	else
	{
		pre = 'bu_';
		imgdir = 'bottomutils' + (state == 'over' ? '/over' : '');		
	}
	img = url + '/images/' + imgdir + '/' + id.replace(pre,'') + '.gif';
	swapimg(id, img);
}
function mainover(type,id,imgdir)
{
	for(var t=0; t < hometypes[type].length; t++)
	{
		if( id == hometypes[type][t] )
			swapimg(hometypes[type][t] + '_left', imgdir + '/over/'+ hometypes[type][t] +'.gif');
		else
			swapimg(hometypes[type][t] + '_left', imgdir + '/'+ hometypes[type][t] +'.gif');
	}
	
	$('landing_center_container').innerHTML = $(id + '_center').innerHTML;
	$('landing_right_container').innerHTML = $(id + '_right').innerHTML;
}
function mainout(type,id,imgdir)
{
	if( hometypes[type])
		for(var t=0; t < hometypes[type].length; t++)
			swapimg(hometypes[type][t] + '_left', imgdir + '/'+ hometypes[type][t] +'.gif');
	$('landing_center_container').innerHTML = $('landing_center').innerHTML;
	$('landing_right_container').innerHTML = $('landing_right').innerHTML;
}
function storemainover(type,id,imgdir)
{
	
	for(var t=0; t < hometypes[type].length; t++)
	{
		if( id == hometypes[type][t] )
			swapimg(hometypes[type][t], imgdir + '/over/'+ hometypes[type][t] +'.gif');
		else
			swapimg(hometypes[type][t], imgdir + '/'+ hometypes[type][t] +'.gif');
	}
	
	$('store_main_content').innerHTML = $(id + '_rollover_content').innerHTML;
}
function storemainout(type,id,imgdir)
{
	if( hometypes[type])
		for(var t=0; t < hometypes[type].length; t++)
			swapimg(hometypes[type][t], imgdir + '/'+ hometypes[type][t] +'.gif');
	
	$('store_main_content').innerHTML = $('store_initial_content').innerHTML;
}
function showhide_event(eid)
{
	var button = $(eid + '_more_button');
	var content = $(eid + '_more_content');
	var more = $(eid + '_more_closed');
	if( content.style.display == 'none' )
	{
		content.style.display = '';
		button.src = '/images/buttons/event_expanded.gif'
		more.style.display = 'none';
	}
	else
	{
		content.style.display = 'none';
		button.src = '/images/buttons/event_collapsed.gif'
		more.style.display = '';
	}
}
function show_event_rollover(id)
{
	if( $(id) )
		$('event_rollover_container').innerHTML = $(id).innerHTML;
}
function hide_event_rollover()
{
	$('event_rollover_container').innerHTML = '';
	show_event_rollover_default()
}
function show_event_rollover_default()
{
	
}
function showhide_order(id)
{
	var button = $(id + '_more_button');
	var content = $(id + '_more_content');
	if( content.style.display == 'none' )
	{
		content.style.display = '';
		button.src = '/images/buttons/event_expanded.gif'
	}
	else
	{
		content.style.display = 'none';
		button.src = '/images/buttons/event_collapsed.gif'
	}
}
function closeLightWindow()
{
	if(typeof parent != "undefined" && typeof parent.parent != "undefined")
		parent.parent.myLightWindow.deactivate();
}
function go_checkout()
{
	if(typeof parent != "undefined" && typeof parent.parent != "undefined")
		parent.parent.location = '/mycart.php';
}
function resizeLightWindow()
{
	parent.parent.myLightWindow._resizeLightWindowIFrame(0,parent.parent.myLightWindow._getIFrameContentHeight());	
}
function modal_link_external(href)
{
	if(typeof parent != "undefined" && typeof parent.parent != "undefined")
		parent.parent.location = href;	
}
/*
function make_reservation(data)
{
	var salt = Math.random();
	new Ajax.Request('/cart.php', {
	  method: 'get',
	  parameters: {eid: $('eid').value, qty: $('ticket_qty').value, salt: salt}
	  });
	$('reservation').innerHTML = 'Test';
	//document.location = '/events/';
//	window.parent.location = '/programs/';
}
*/
function get_radio_checked(rad) {
	if(!rad)
		return "";
	var radlen = rad.length;
	
	if(radlen == undefined)
		if(rad.checked)
			return rad.value;
		else
			return "";
	for(var i = 0; i < radlen; i++) {
		if(rad[i].checked) {
			return rad[i].value;
		}
	}
	return "";
}
function uncheck_radio(rad) 
{
	if(!rad)
		return;
	var radlen = rad.length;
	
	if(radlen == undefined)
	{
		rad.checked = false;
		return;
	}
	for(var i=0; i<radlen; i++) 
		rad[i].checked = false;
	return;
}

function base64_encode(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}

function base64_decode(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);

   return output;
}
/**
*
*  Base64 encode / decode
*  http://www.webtoolkit.info/
*
**/
 
var Base64 = {
 
	// private property
	_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
 
	// public method for encoding
	encode : function (input) {
		var output = "";
		var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
		var i = 0;
 
		input = Base64._utf8_encode(input);
 
		while (i < input.length) {
 
			chr1 = input.charCodeAt(i++);
			chr2 = input.charCodeAt(i++);
			chr3 = input.charCodeAt(i++);
 
			enc1 = chr1 >> 2;
			enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
			enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
			enc4 = chr3 & 63;
 
			if (isNaN(chr2)) {
				enc3 = enc4 = 64;
			} else if (isNaN(chr3)) {
				enc4 = 64;
			}
 
			output = output +
			this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
			this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
 
		}
 
		return output;
	},
 
	// public method for decoding
	decode : function (input) {
		var output = "";
		var chr1, chr2, chr3;
		var enc1, enc2, enc3, enc4;
		var i = 0;
 
		input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
 
		while (i < input.length) {
 
			enc1 = this._keyStr.indexOf(input.charAt(i++));
			enc2 = this._keyStr.indexOf(input.charAt(i++));
			enc3 = this._keyStr.indexOf(input.charAt(i++));
			enc4 = this._keyStr.indexOf(input.charAt(i++));
 
			chr1 = (enc1 << 2) | (enc2 >> 4);
			chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
			chr3 = ((enc3 & 3) << 6) | enc4;
 
			output = output + String.fromCharCode(chr1);
 
			if (enc3 != 64) {
				output = output + String.fromCharCode(chr2);
			}
			if (enc4 != 64) {
				output = output + String.fromCharCode(chr3);
			}
 
		}
 
		output = Base64._utf8_decode(output);
 
		return output;
 
	},
 
	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	},
 
	// private method for UTF-8 decoding
	_utf8_decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;
 
		while ( i < utftext.length ) {
 
			c = utftext.charCodeAt(i);
 
			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
 
		}
 
		return string;
	}
 
}
function is_valid_email(email)
{
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(email))
		return true;
	else
		return false;
}