function serverTime() { 
    var time = null; 
    $.ajax({url: '/public/server_time', 
        async: false, dataType: 'text', 
        success: function(text) { 
            time = new Date(text); 
        }, error: function(http, message, exc) { 
            time = new Date(); 
    }}); 
    return time; 
}


// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

/***********************************************
* Universal Countdown script- © Dynamic Drive (http://www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/

function cdLocalTime(servertimestring, offsetMinutes, targetdate){
	
	this.localtime=this.serverdate=new Date(servertimestring)
	this.targetdate=new Date(targetdate)
	this.debugmode=0
	this.timesup=false
	this.localtime.setTime(this.serverdate.getTime()+offsetMinutes*60*1000) //add user offset to server time
	this.updateTime()
}

cdLocalTime.prototype.updateTime=function(){
	var thisobj=this
	this.localtime.setSeconds(this.localtime.getSeconds()+1)
	setTimeout(function(){thisobj.updateTime()}, 1000) //update time every second
}

cdLocalTime.prototype.displaycountdown=function(baseunit, functionref){
	this.baseunit=baseunit
	this.callbackfunction=functionref
	this.showresults()
}

cdLocalTime.prototype.showresults=function(){

	var thisobj=this

	var timediff=(this.targetdate-this.localtime)/1000 //difference btw target date and current date, in seconds
	
	if (timediff < 0){ //if time is up
		this.timesup = true
		this.callbackfunction()
		return
	}

	var oneMinute=60 //minute unit in seconds
	var oneHour=60*60 //hour unit in seconds
	var oneDay=60*60*24 //day unit in seconds
	var dayfield=Math.floor(timediff/oneDay)
	var hourfield=Math.floor((timediff-dayfield*oneDay)/oneHour)
	var minutefield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour)/oneMinute)
	var secondfield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour-minutefield*oneMinute))
	
	if (this.baseunit == "days") {
		dayfield = dayfield
	} else if (this.baseunit=="hours"){ //if base unit is hours, set "hourfield" to be topmost level
		hourfield=dayfield*24+hourfield
		dayfield="n/a"
	}else if (this.baseunit=="minutes"){ //if base unit is minutes, set "minutefield" to be topmost level
		minutefield=dayfield*24*60+hourfield*60+minutefield
		dayfield=hourfield="n/a"
	}else if (this.baseunit=="seconds"){ //if base unit is seconds, set "secondfield" to be topmost level
		var secondfield=timediff
		dayfield=hourfield=minutefield="n/a"
	}
		
	document.getElementById('days').innerHTML = dayfield
	document.getElementById('hours').innerHTML = hourfield
	document.getElementById('minutes').innerHTML = minutefield
	document.getElementById('seconds').innerHTML = secondfield
	
	setTimeout(function(){thisobj.showresults()}, 1000) //update results every second
}

function launch(){
	if (this.timesup){//if target date/time not yet met
		window.location.reload();
	}
}

function expire() {
	
}

/// limit textarea input

// Original:  Ronnie T. Moore
//Web Site:  The JavaScript Source

// Dynamic 'fix' by: Nannette Thacker
// Web Site: http://www.shiningstar.net -->

function textCounter(field, countfield, maxlimit) {
	
	observed = document.getElementById(field);
	output = document.getElementById(countfield);
	
	if (observed.value.length > maxlimit) {
		observed.value = observed.value.substring(0, maxlimit);
	} else {
		output.innerHTML = maxlimit - observed.value.length;
	}
}



/// Sticking footer to bottom
function getWindowHeight() {
	var windowHeight = 0;
	if (typeof(window.innerHeight) == 'number') {
		windowHeight = window.innerHeight;
	}
	else {
		if (document.documentElement && document.documentElement.clientHeight) {
			windowHeight = document.documentElement.clientHeight;
		}
		else {
			if (document.body && document.body.clientHeight) {
				windowHeight = document.body.clientHeight;
			}
		}
	}
	return windowHeight;
}
function setFooter() {
	if (document.getElementById) {
		var windowHeight = getWindowHeight();
		if (windowHeight > 0) {
			var headerHeight = document.getElementById('header').offsetHeight;
			var contentHeight = document.getElementById('content').offsetHeight;
			var footerElement = document.getElementById('footer');
			var footerHeight  = footerElement.offsetHeight;
			if (windowHeight - (headerHeight + contentHeight + footerHeight) >= 0) {
				footerElement.style.top = (windowHeight - (headerHeight + contentHeight + footerHeight)) + 'px';
			}
			else {
				footerElement.style.top = '0px';
			}
		}
	}
}
window.onload = function() {
	setFooter();
}
window.onresize = function() {
	setFooter();
}

