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



setInterval("settime()", 1000);

function settime () {
  var curtime = new Date();
  var curhour = curtime.getHours();
  var curmin = curtime.getMinutes();
  var cursec = curtime.getSeconds();
  var time = "";
  if(curhour == 0) curhour = 12;
  time = "TIME: " + (curhour > 12 ? curhour - 12 : curhour) + ":" +
         (curmin < 10 ? "0" : "") + curmin + ":" +
         (cursec < 10 ? "0" : "") + cursec + " " +
         (curhour > 12 ? "PM" : "AM");

  var clock= document.getElementById("clock");

  if (clock)
    clock.innerHTML=time;
      
  

}



/* Code to show the first tag found wit the given tag name and tag*/

function show_next(tag_class, html_tag) 
{ 
    
    var found=false;
    tags = document.getElementsByTagName(html_tag); 
    
    for( var i = 0; i < tags.length && found == false; i++ ) 
        { 
            if( tags[i].className == tag_class ) 
                { 
                    tags[i].style.display = "";
                    tags[i].className = "";
                    found=true;
                    tags[i].focus();
                }
                
            }
        }
        
   function disableDate(elmt_id){

    var obj = document.getElementById(elmt_id);
    obj.value = "1900/01/01";

}     
        
        function option_disabled(elmt, option_id) {
            
            var to_change = document.getElementById("amount_" + option_id)
            to_change.disabled = elmt.checked;
            
            to_change = document.getElementsByName("option_name_" + option_id + "[]");
            var i = 0;
            while (to_change[i])
                {
                    to_change[i].disabled = elmt.checked;
                    i++;
                }
                to_change = document.getElementById("option_type_name_" +option_id);
                to_change.disabled = elmt.checked;
            }
            
            
            function showdiv(name, name2){
                var obj = (document.getElementById)? document.getElementById(name) : eval("document.all[name]");
                if (obj.style.display=="none"){
                    obj.style.display="";
                }else{
                obj.style.display="none";
            }
            var obj2 = (document.getElementById)? document.getElementById(name2) : eval("document.all[name2]");
            if (obj2.style.display=="none"){
                obj2.style.display="";
            }else{
            obj2.style.display="none";
        }
    }
    
    
    /*The following function displays/hides the div containing a list of privileges related to the selected Group. If the group is unselected, it also unselects all privileges that belong to this group*/
    function toggle_div(id)
    { 
        /* 1. Retrieve the checkbox that was just (un)checked */
        var chk = document.getElementById("group["+id+"]");
        var table = document.getElementById("table-"+id);
        var priv_boxes= document.getElementsByName("priv["+id+"][]");
        if (chk.checked) {
            table.style.display="";
            var i = 0;
            while (priv_boxes[i]){
                priv_boxes[i].checked=true;
                i++;
            }
        }else{
        var i = 0;
        while (priv_boxes[i]){
            priv_boxes[i].checked=false;
            i++;
        }
        table.style.display="none";
    }
    
}

function update_schedule(id)
{ 
    
    var default_value=document.getElementById("default[" + id + "]")
    
    var i=1;
    while (i<8)
        {
            var chk=document.getElementById(i+"_edit");
            var chk_closed=document.getElementById(i+"_closed");
            if (!chk.checked && !chk_closed.checked)
                {
                    
                    var elmt=document.getElementById(i+"["+id +"]");
                    elmt.value = default_value.value
                }
                i++;
            }
            
        }
        
        function special_availability_clicked(chk){
            if (chk.checked){
                
                var elmt = document.getElementById("all_day_av_"+chk.value);
                elmt.disabled=false
                elmt.checked=true
            }else{
            var elmt = document.getElementById("from_"+chk.value);
            elmt.disabled=true
            
            var elmt = document.getElementById("to_"+chk.value);
            elmt.disabled=true
            var elmt = document.getElementById("all_day_av_"+chk.value);
            elmt.disabled=true
            elmt.checked=false
        }
    }
    
    function all_day_availability_clicked(chk){
        if (chk.checked){
            var elmt = document.getElementById("from_"+chk.value);
            elmt.disabled=true
            elmt.style.display = "none"
            
            
            var elmt = document.getElementById("to_"+chk.value);
            elmt.disabled=true
            elmt.style.display = "none"
        }else{
        var elmt = document.getElementById("from_"+chk.value);
        elmt.disabled=false
        elmt.style.display = ""
        
        var elmt = document.getElementById("to_"+chk.value);
        elmt.disabled=false
        elmt.style.display = ""
        
        
    }
}


function enabled_chk(chk)
{ 
    
    
    if (chk.checked)
        {
            
            var elmt=document.getElementById(chk.id.substring(0,1)+"[from1]");
            elmt.disabled=false
            var elmt=document.getElementById(chk.id.substring(0,1)+"[to1]");
            elmt.disabled=false
            var elmt=document.getElementById(chk.id.substring(0,1)+"[from2]");
            elmt.disabled=false
            var elmt=document.getElementById(chk.id.substring(0,1)+"[to2]");
            elmt.disabled=false            
        }
        else
            {
                var elmt=document.getElementById(chk.id.substring(0,1)+"[from1]");
                elmt.disabled=true
                var elmt=document.getElementById(chk.id.substring(0,1)+"[to1]");
                elmt.disabled=true
                var elmt=document.getElementById(chk.id.substring(0,1)+"[from2]");
                elmt.disabled=true
                var elmt=document.getElementById(chk.id.substring(0,1)+"[to2]");
                elmt.disabled=true              
            }
            
            
        }
        
        function closed_chk(chk)
        { 
            
            
            if (chk.checked)
                {
                    
                    var elmt=document.getElementById(chk.id.substring(0,1)+"[from1]");
                    elmt.value=""
                    var elmt=document.getElementById(chk.id.substring(0,1)+"[to1]");
                    elmt.value=""
                    var elmt=document.getElementById(chk.id.substring(0,1)+"[from2]");
                    elmt.value=""
                    var elmt=document.getElementById(chk.id.substring(0,1)+"[to2]");
                    elmt.value=""            
                }
                
                
                
            }
            
            
            function uncheck_chkboxes(value, checked){
                if (checked == false){
                    var chkboxes = getElementsByValue(value);
                }
            }
            
            
            
            /**
            * @function getElementsByValue
            * Finds elements in FORMs whose value property matches
            * the given value.
            *
            * @param val (string, required)
            * The value to search for.
            *
            * @param src (variable, optional)
            * Node reference or Id to an HTML tag to start searching in.
            *
            * @return array
            * An array of all matching elements.
            */
            function getElementsByValue(val, src) {
                
                var tags;
                var matches = [];
                var i = end = 0;
                if (document.getElementsByTagName) {
                    if (!src) {
                        src = document;
                        
                    } else if (typeof(src) === 'string') {
                    src = document.getElementById(src);
                }
                
                tags = src.getElementsByTagName('*');
                
                end = tags.length
                while (i < end)
                    {
                        if (tags[i].value && tags[i].value == val) {
                            tags[i].checked = false
                            tags[i] = null;
                        }
                        i++;}
                }
                
                return matches;
            }
            
            function update_flash(notice, warning, error){
                
                var elmt = document.getElementById('flash notice');
                if (notice){
                    elmt.innerHTML = notice
                    elmt.style.display = ''
                }else{
                elmt.style.display = 'none'
            }
            
            
            
            
            elmt = document.getElementById('flash warning');
            if (warning){
                elmt.innerHTML = warning
                elmt.style.display = ''
            }else{
            elmt.style.display = 'none'
        }
        
        elmt = document.getElementById('flash error');
        if (error){
            elmt.innerHTML = error
            elmt.style.display = ''
        }else{
        elmt.style.display = 'none'
    }
    
    
    
    
}



function hide_help_box(id) 
{
    Effect.DropOut(id);
}

function show_help_box(id) 
{
    Effect.BlindDown(id);
}

function hide_popup() 
{
    Effect.Fade("popup_fg");
    Effect.Fade("popup_bg");
}


/* Top menu functions (display on onmousehover, hide otherwise)*/

function expand(s)
{
    var td = s;
    var d = td.getElementsByTagName("div").item(0);
    
    td.className = "menuHover";
    d.className = "menuHover";
}

function collapse(s)
{
    var td = s;
    var d = td.getElementsByTagName("div").item(0);
    
    td.className = "menuNormal";
    d.className = "menuNormal";
}

/* function to empty field get string with comma as separtor  */

function empty_fields(str)
{

    var tab= str.split(",")
    for (var i=0; i<tab.length; i++) {
         var elmt=document.getElementById(tab[i]);
         elmt.value='';
     }
    
}

function clear_if(elmt ,str)
{
if (elmt.value == str)
    {
        elmt.value = ""
    }
 }
 
 function set_if_empty(elmt, str)
 {
if (elmt.value == "")
    {
        elmt.value = str
    }
 }
    

// original code by Stuart Langridge 2003-11
// with additions to the code by other good people
// http://www.kryogenix.org/code/browser/nicetitle/
// thank you, sir
 
// modified by Peter Janes 2003-03-25
// http://peterjanes.ca/blog/archives/2003/03/25/nicetitles-for-ins-and-del
// added in ins and del tags
 
// modified by Dunstan Orchard 2003-11-18
// http://1976design.com/blog/
// added in accesskey information
// tried ever-so-hard, but couldn't work out how to do what Ethan did
 
// final genius touch by by Ethan Marcotte 2003-11-18
// http://www.sidesh0w.com/
// worked out how to delay showing the popups to make them more like the browser's own
 
 
// set the namespace
var XHTMLNS = 'http://www.w3.org/1999/xhtml';
var CURRENT_NICE_TITLE;
 
// browser sniff
var browser = new Browser();
 
 
 
// determine browser and version.
function Browser()
	{
	var ua, s, i;
 
	this.isIE = false;
	this.isNS = false;
	this.version = null;
 
	ua = navigator.userAgent;
 
	s = 'MSIE';
	if ((i = ua.indexOf(s)) >= 0)
		{
		this.isIE = true;
		this.version = parseFloat(ua.substr(i + s.length));
		return;
		}
 
	s = 'Netscape6/';
	if ((i = ua.indexOf(s)) >= 0)
		{
		this.isNS = true;
		this.version = parseFloat(ua.substr(i + s.length));
		return;
		}
 
	// treat any other 'Gecko' browser as NS 6.1.
	s = 'Gecko';
	if ((i = ua.indexOf(s)) >= 0)
		{
		this.isNS = true;
		this.version = 6.1;
		return;
		}
	}
 
 
 
// 2003-11-19 sidesh0w
// set delay vars to emulate normal hover delay
var delay;
var interval = 0;
 
 
 
// this function runs on window load
// it runs through all the links on the page as starts listening for actions
function makeNiceTitles()
	{
        
	if (!document.createElement || !document.getElementsByTagName) return;
	if (!document.createElementNS)
		{
		document.createElementNS = function(ns, elt)
			{
			return document.createElement(elt);
			}
		}
 
	// do regular links

// 2008-10-01 Francois Gaspard - Custom version that handles ONLY titles on tr tags. (removed lots of code....and changed some)
	// do tr tags
	var tags = new Array(1);
	tags[0] = document.getElementsByTagName('tr');
	for (var tt=0; tt<tags.length; tt++)
		{
		if (tags[tt])
			{
			for (var ti=0; ti<tags[tt].length; ti++)
				{
				var tag = tags[tt][ti];
                                
                                 if (tag.title)
					{
                                            
                                        
					tag.setAttribute('nicetitle', tag.title);
                                        tag.removeAttribute('title');
					addEvent(tag, 'mouseover', showDelay);
					addEvent(tag, 'mouseout', hideNiceTitle);
					addEvent(tag, 'focus', showDelay);
					addEvent(tag, 'blur', hideNiceTitle);
                                        addEvent(tag, 'click', hideNiceTitle);
					}
				}
			}
		}     
                 
	var tagimg = new Array(1);
	tagimg[0] = document.getElementsByTagName('img');
	for (var tt=0; tt<tags.length; tt++)
		{
		if (tagimg[tt])
			{
			for (var ti=0; ti<tagimg[tt].length; ti++)
				{
				var tag = tagimg[tt][ti];
                                
                                 if (tag.title)
					{
                                            
                                        
					tag.setAttribute('nicetitle', tag.title);
                                        tag.removeAttribute('title');
					addEvent(tag, 'mouseover', showDelayimg);
					addEvent(tag, 'mouseout', hideNiceTitle);
					addEvent(tag, 'focus', showDelayimg);
					addEvent(tag, 'blur', hideNiceTitle);
                                         addEvent(tag, 'click', hideNiceTitle);
					}
				}
			}
		}                   
                
                
	}
 
 
 
 
 
 
// by Scott Andrew
// add an eventlistener to browsers that can do it somehow.
function addEvent(obj, evType, fn)
	{
	if (obj.addEventListener)
		{
		obj.addEventListener(evType, fn, true);
		return true;
		}
	else if (obj.attachEvent)
		{
		var r = obj.attachEvent('on'+evType, fn);
		return r;
		}
	else
		{
		return false;
		}
	}
 
 
 
function findPosition(oLink)
	{
	if (oLink.offsetParent)
		{
		for (var posX = 0, posY = 0; oLink.offsetParent; oLink = oLink.offsetParent)
			{
			posX += oLink.offsetLeft;
			posY += oLink.offsetTop;
			}
		return [posX, posY];
		}
	else
		{
		return [oLink.x, oLink.y];
		}
	}
 
 
 
function getParent(el, pTagName)
	{
	if (el == null)
		{
		return null;
		}
	// gecko bug, supposed to be uppercase
	else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase())
		{
		return el;
		}
	else
		{
		return getParent(el.parentNode, pTagName);
		}
	}
 
 
 
// 2003-11-19 sidesh0w
// trailerpark wrapper function
function showDelay(e)
	{
    if (window.event && window.event.srcElement)
		{
        lnk = window.event.srcElement
		}
	else if (e && e.target)
		{
        lnk = e.target
		}
    if (!lnk) return;
 
	// lnk is a textnode or an elementnode that's not ins/del
    if (lnk.nodeType == 3 || (lnk.nodeType == 1 && lnk.tagName.toLowerCase() != 'ins' && lnk.tagName.toLowerCase() != 'del' ))
		{
		// ascend parents until we hit a link
		lnk = getParent(lnk, 'tr');
		}
	
	delay = setTimeout("showNiceTitle(lnk)", interval * 1000);
	}
 
 
 function showDelayimg(e)
	{
    if (window.event && window.event.srcElement)
		{
        lnk = window.event.srcElement
		}
	else if (e && e.target)
		{
        lnk = e.target
		}
    if (!lnk) return;
 
	// lnk is a textnode or an elementnode that's not ins/del
    if (lnk.nodeType == 3 || (lnk.nodeType == 1 && lnk.tagName.toLowerCase() != 'ins' && lnk.tagName.toLowerCase() != 'del' ))
		{
		// ascend parents until we hit a link
		lnk = getParent(lnk, 'img');
		}
	
	delay = setTimeout("showNiceTitle(lnk)", interval * 1000);
	}
 
 
 
 
 
// build and show the nice titles
function showNiceTitle(link)
	{
    if (CURRENT_NICE_TITLE) hideNiceTitle(CURRENT_NICE_TITLE);
    if (!document.getElementsByTagName) return;
 
    nicetitle = lnk.getAttribute('nicetitle');
    
    var d = document.createElementNS(XHTMLNS, 'div');
    d.className = 'nicetitle';
    tnt = document.createTextNode(nicetitle);
    pat = document.createElementNS(XHTMLNS, 'p');
    pat.className = 'titletext';
    pat.appendChild(tnt);
 
	// 2003-11-18 Dunstan Orchard
	// added in accesskey info
	if (lnk.accessKey)
		{
        axs = document.createTextNode(' [' + lnk.accessKey + ']');
		axsk = document.createElementNS(XHTMLNS, 'span');
        axsk.className = 'accesskey';
        axsk.appendChild(axs);
		pat.appendChild(axsk);
		}
    d.appendChild(pat);
 
    if (lnk.href)
		{
//        tnd = document.createTextNode(lnk.href);
//        pad = document.createElementNS(XHTMLNS, 'p');
//        pad.className = 'destination';
//        pad.appendChild(tnd);
//        d.appendChild(pad);
		}
    
    STD_WIDTH = 300;
 
//	if (lnk.href)
//		{
//                    h = lnk.href.length;
//		}
//	else
//		{
                    h = nicetitle.length;
//		}
	
    if (nicetitle.length)
		{
                    t = nicetitle.length;
		}
	
    h_pixels = h*6;
	t_pixels = t*10;
    
    if (h_pixels > STD_WIDTH)
		{
        w = h_pixels;
		}
	else if ((STD_WIDTH>t_pixels) && (t_pixels>h_pixels))
		{
        w = t_pixels;
		}
	else if ((STD_WIDTH>t_pixels) && (h_pixels>t_pixels))
		{
        w = h_pixels;
		}
	else
		{
        w = STD_WIDTH;
		}
    
    oldpos= findPosition(lnk);
    
    d.style.width = w + 'px';  
    if (w>600)
    {
        w=600
        d.style.width = '600px'; 
    }
 
    mpos = findPosition(lnk);
    mx = mpos[0];
    my = mpos[1];
    
    leftpos=(mx+15);

    d.style.top = (my+35) + 'px';
    
    if (lnk.src)
    {
        
      pos_nicetitle=lnk.getAttribute("pos_nicetitle");
      if (pos_nicetitle && pos_nicetitle=="1")
        {
            d.style.top = (my+95) + 'px';  
        }
        else
        {
            d.style.top = (my+55) + 'px';
        }
    }
 
    if (window.innerWidth && ((mx+w) > window.innerWidth))
		{
                     leftpos=(window.innerWidth - w - 25);
        
		}
    if (document.body.scrollWidth && ((mx+w) > document.body.scrollWidth))
		{
                     leftpos = (document.body.scrollWidth - w - 25);
		}
   
   
//  //  if (leftpos<5)
//  //  {
//        leftpos=oldpos[0]-(w/2);
////    }
    d.style.left = leftpos + 'px';
    document.getElementsByTagName('body')[0].appendChild(d);
 
    CURRENT_NICE_TITLE = d;
	}
 
 
 
 
function hideNiceTitle(e)
	{
	// 2003-11-19 sidesh0w
	// clearTimeout 
	if (delay) clearTimeout(delay);
	if (!document.getElementsByTagName) return;
	if (CURRENT_NICE_TITLE)
		{
		document.getElementsByTagName('body')[0].removeChild(CURRENT_NICE_TITLE);
		CURRENT_NICE_TITLE = null;
		}
	}
 
window.onload = function(e) {
 
makeNiceTitles();
}



            function go_to_field (field){
                
                var elmt = document.getElementById(field);
                    elmt.value = '';
                    elmt.focus();

            }  

function go_to_top()
{
    window.scrollTo(document.body.scrollHeight,0);
}

function form_default_value(elmt ,str)
{

if (elmt.value == str)
   {
       elmt.value = ""
   }else if (elmt.value == "")
  {
       elmt.value = str
   }
} 
