// globally useful scripts
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

function filterNum( str )
{
	re = /^\$|,/g;
	// remove "$" and ","
	return str.replace(re, "");
}

function dom_getElements( node, elt )
{
	var list = node.getElementsByTagName(elt);
	return (list.length) ? list : node.getElementsByTagNameNS("*", elt);
}

function formatCurrency( num )
{
	var sign, cents;
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function insertAfter(newElement,targetElement) {
	var parent = targetElement.parentNode;
	if (parent.lastChild == targetElement) {
		parent.appendChild(newElement);
	} else {
		parent.insertBefore(newElement,targetElement.nextSibling);
	}
}

function addClass(element,value) {
	if (!element.className) {
		element.className = value;
	} else {
		newClassName = element.className;
		newClassName+= " ";
		newClassName+= value;
		element.className = newClassName;
	}
}

// Newsletter signup form
function switchStudent()
{
	if(!document.getElementById) return false;
	if(!document.getElementById('NewsletterStudent')) return false;
	if(!document.getElementById('RowStudentLable')) return false;
	if(!document.getElementById('RowNonStudentLable')) return false;
	if(!document.getElementById('RowStudentSelect')) return false;
	if(!document.getElementById('RowNonStudentSelect')) return false;



	if(document.getElementById('NewsletterStudent').value == 'yes')
	{
		document.getElementById('RowStudentLable').style.display = 'block';
		document.getElementById('RowStudentSelect').style.display = 'block';
		document.getElementById('RowNonStudentSelect').style.display = 'none'; // make sure you disable the element before hiding it
		document.getElementById('RowNonStudentLable').style.display = 'none';
	}
	else if(document.getElementById('NewsletterStudent').value == 'no')
	{
		document.getElementById('RowNonStudentLable').style.display = 'block';
		document.getElementById('RowNonStudentSelect').style.display = 'block';
		document.getElementById('RowStudentSelect').style.display = 'none'; // make sure you disable the element before hiding it
		document.getElementById('RowStudentLable').style.display = 'none';
	}
	else
	{
		document.getElementById('RowStudentLable').style.display = 'none';
		document.getElementById('RowStudentSelect').style.display = 'none';
		document.getElementById('RowNonStudentSelect').style.display = 'none';
		document.getElementById('RowNonStudentLable').style.display = 'none';
	}
}

addLoadEvent(switchStudent);

function setAllDay()
{
	if(!document.getElementById) return false;
	if(!document.getElementById('events_allday')) return false;

	document.getElementById('events_allday').onclick = function() {
		checkAllDay();
	}
}

function checkAllDay()
{
	if(!document.getElementById) return false;
	if(!document.getElementById('events_allday')) return false;
	if(!document.getElementById('addEvent')) return false;
	form = document.getElementById('addEvent');

	if(document.getElementById('events_allday').checked) {
		form.elements['events[start_time][h]'].disabled = true;
		form.elements['events[start_time][i]'].disabled = true;
		form.elements['events[start_time][A]'].disabled = true;
		form.elements['events[end_time][h]'].disabled = true;
		form.elements['events[end_time][i]'].disabled = true;
		form.elements['events[end_time][A]'].disabled = true;
	}
	else
	{
		form.elements['events[start_time][h]'].disabled = false;
		form.elements['events[start_time][i]'].disabled = false;
		form.elements['events[start_time][A]'].disabled = false;
		form.elements['events[end_time][h]'].disabled = false;
		form.elements['events[end_time][i]'].disabled = false;
		form.elements['events[end_time][A]'].disabled = false;
	}
}

addLoadEvent(setAllDay);
addLoadEvent(checkAllDay);

function setRepeats()
{
	if(!document.getElementById) return false;
	if(!document.getElementById('events_recurring_type')) return false;

	document.getElementById('events_recurring_type').onchange = function() {
		checkRepeats();
	}
}

function checkRepeats()
{
	if(!document.getElementById) return false;

	if(!document.getElementById('events_recurring_type')) return false;
	if(!document.getElementById('addEvent')) return false;
	form = document.getElementById('addEvent');

	if(document.getElementById('events_recurring_type').value != 'monthly') {

		form.elements['events[recurring_options][monthly]'].disabled = true;
	}
	else
	{
		form.elements['events[recurring_options][monthly]'].disabled = false;
	}
}

addLoadEvent(setRepeats);
addLoadEvent(checkRepeats);

function setEndDate() {
	if(!document.getElementById) return false;
	if(!document.getElementById('addEvent')) return false;
	form = document.getElementById('addEvent');

	form.elements['events[start_time][F]'].onchange = function() {
		form.elements['events[end_time][F]'].value = form.elements['events[start_time][F]'].value;
	}
	form.elements['events[start_time][d]'].onchange = function() {
		form.elements['events[end_time][d]'].value = form.elements['events[start_time][d]'].value;
	}
	form.elements['events[start_time][Y]'].onchange = function() {
		form.elements['events[end_time][Y]'].value = form.elements['events[start_time][Y]'].value;
	}
}

addLoadEvent(setEndDate);

function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}



function wopen(url, name, w, h)
{
  // Fudge factors for window decoration space.
  // In my tests these work well on all platforms & browsers.
  w += 32;
  h += 96;
  wleft = (screen.width - w) / 2;
  wtop = (screen.height - h) / 2;
  // IE5 and other old browsers might allow a window that is
  // partially offscreen or wider than the screen. Fix that.
  // (Newer browsers fix this for us, but let's be thorough.)
  if (wleft < 0) {
    w = screen.width;
    wleft = 0;
  }
  if (wtop < 0) {
    h = screen.height;
    wtop = 0;
  }
  var win = window.open(url,
    name,
    'width=' + w + ', height=' + h + ', ' +
    'left=' + wleft + ', top=' + wtop + ', ' +
    'location=no, menubar=no, ' +
    'status=yes, toolbar=no, scrollbars=yes, resizable=yes');
  // Just in case width and height are ignored
  win.resizeTo(w, h);
  // Just in case left and top are ignored
  win.moveTo(wleft, wtop);
  win.focus();
}

function hideShareLink()
{
	/*hide this link on the addEvent form pages*/	
	if(document.URL.match("page=tellafriend"))
		document.getElementById('tellafriend').style.display = "none";	
}

addLoadEvent(hideShareLink);

//scrolling text class
$(document).ready(function() {
  $('.vertical_scroller').SetScroller({	velocity: 30, direction: 'vertical', cursor: 'default'   });
});
