/*
 * COMMON JAVASCRIPT FUNCTION
 * Common functions used on a web page
 * many of these may be accomplishable in available Javascript libraries too
 * 
 * @author	Tony Harvey 
*/


/*
 * Using JQuery Lib
*/
function oo_FadeOut(e,s){$("#"+e).fadeOut(s);}
function oo_FadeIn(e,s){$("#"+e).fadeIn(s);}
function oo_Show(e){$("#"+e).show();}
function oo_Hide(e){$("#"+e).hide();}
function oo_Slide(e,s){$("#"+e).slideToggle(s);}
	function oo_SlideD(e,s){$("#"+e).slideDown(s);}
	function oo_SlideU(e,s){$("#"+e).slideUp(s);}

/*
 * Using scriptaculous Lib
*/
function displayOnAppear(e){Effect.toggle(e);}
function displayOnSlide(e){Effect.toggle(e,'slide');}
function displayOnBlind(e){Effect.toggle(e,'blind');}


/*
 * Using No library
*/
function displayOnBlock(e){document.getElementById(e).style.display="Block";}
function displayOnHide(e){document.getElementById(e).style.display="None";}
function displayOnToggle(e){if(getStyle(e, "display")=="block"){displayOnHide(e);}	else{displayOnBlock(e);}}
function displayOnToggleOne(estr,eid,etot){i=1; while (i<=etot){displayOnHide(estr+i); i++;}displayOnBlock(estr+eid);}





/*
 * Misc... 
*/

function zero_preffix(i){if (i<10){ i="0" + i; }return i;}

function oo_displayExtraField(e, imax)
{
	i=document.getElementById(e+"_count").value;
	i++;
	oo_Show(e+'_'+i);
	document.getElementById(e+"_count").value=i;
	
	if(imax==i)
	{
		document.getElementById("oo_displayExtraField").innerHTML = '<br/><strong>Max number of fields achieved.</strong><br/> You can only use ' + imax + ' fields at one time<br/><br/>';
	}	
}

function oo_ToggleDisplay(e)
{
	if(getStyle(e+'_container', "display")=="block")
	{
		oo_SlideU(e+'_container');
		oo_SwapImage(e+'_image','../images/app/casc_o.gif');
	}	
	else
	{
		oo_SlideD(e+'_container');
		oo_SwapImage(e+'_image','../images/app/casc_c.gif');
	}
}


/* Include javascript file */
function include(file) {
   if (document.createElement && document.getElementsByTagName) {
     var head = document.getElementsByTagName('head')[0];

     var script = document.createElement('script');
     script.setAttribute('type', 'text/javascript');
     script.setAttribute('src', file);

     head.appendChild(script);
   } else {
     /*alert('Your browser can\'t deal with the DOM standard. That means it\'s old. Go fix it!');*/
   }
 }

/*
 * JUMP MENU
 * Changes window location as a new option is selected from drop down menu
*/
function MM_jumpMenu(targ,selObj,restore)
{ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

/*
 * SELECTED OPTION FROM MENU
 * Returns the value of a selected option in a drop down menu
*/
function getSelectedOption(e)
{
  var option_val = document.getElementById(e).options[document.getElementById(e).selectedIndex].value;
  return option_val;
}

/*
 * ELEMENT SCREEN X-POSITION
 * returns the x-position location of a given element using offsetLeft - The distance from
 * the left of the screen
*/
function elePosX(e){return document.getElementById(e).offsetLeft;}

/*
 * ELEMENT SCREEN Y-POSITION
 * returns the y-position location of a given element using offsetTop - The distance from
 * the top of the screen
*/
function elePosY(e){return document.getElementById(e).offsetTop;}

/*
 * Create Cookie
 * Creates a new cookie based on the values parsed into function
*/
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

/*
 * Read Cookie
 * Reads a cookie based on the values parsed into function
*/
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

/*
 * Erase Cookie
 * Deletes a cookie based on the values parsed into function
*/
function eraseCookie(name) {createCookie(name,"",-1);}

/*
 * Swap Element
 * 
*/
function swapElement(v,s,t)	// Swap source with target based on version
{
	if(v==0)
	{
	// Swap HTML source element with target HTML source
	document.getElementById(t).innerHTML = document.getElementById(s).innerHTML;
	}
}

/*
 * Swap Image Source (Basic)
*/
function oo_SwapImage(e,s){document.getElementById(e).src = s;}

/*
 * Get Style
 * Returns value of a given style for a given element
*/
function getStyle(e, CSSRule){
	var strValue = "";
	if(document.defaultView && document.defaultView.getComputedStyle){
		strValue = document.defaultView.getComputedStyle(document.getElementById(e), "").getPropertyValue(CSSRule);
	}
	else if(document.getElementById(e).currentStyle){
		CSSRule = CSSRule.replace(/\-(\w)/g, function (strMatch, p1){
			return p1.toUpperCase();
		});
		strValue = document.getElementById(e).currentStyle[CSSRule];
	}
	return strValue;
}

/*
 * submit ajax form
 * Submits a form to display the loading bar
*/
function submitFormAj(e)
{
	displayOnBlock(e + '_loader');
	displayOnHide(e);
}


/*
 * Creates a ticking clock with date etc
*/
function ticking_clock()
{
var today=new Date();
var d=today.getDate(); 			// as no 1-31
var w=today.getDay();			// as day sun-sat
var m=(today.getMonth())+1;		// as 1-12
var y=today.getFullYear();		// as YYYY
var h=today.getHours();	
var i=today.getMinutes();   
var s=today.getSeconds();

if((d==1)||(d==21)||(d==31)){S="st";}else if ((d==2)||(d==22)){S="nd";}else if ((d==3)||(d==23)){S="rd";}else{S="th";}switch(m){case 1:  F = "January";  break; case 2:  F = "February";  break;case 3:  F = "March";  break;case 4:  F = "April";  break;case 5:  F = "May";  break;case 6:  F = "June";  break;case 7:  F = "July";  break;case 8:  F = "August";  break;case 9:  F = "September";  break;case 10:  F = "October";  break;case 11:  F = "November";  break;case 12:  F = "December";  break;}switch(w){case 0:  l = "Sunday";  break;case 1:  l = "Monday";  break;case 2:  l = "Tuesday";  break;case 3:  l = "Wednesday";  break;case 4:  l = "Thursday";  break;	case 5:  l = "Friday";  break;	case 6:  l = "Saturday";  break;} 

// add a zero in front of numbers<10
i=zero_preffix(i);
s=zero_preffix(s);
d=zero_preffix(d);

document.getElementById('ticking_clock').innerHTML=l+" "+d+S+" "+F+" "+y+" <strong>"+h+":"+i+"</strong>";
t=setTimeout('ticking_clock()',500);
}


function oo_fcbx_group(e)
{
	c=(document.getElementById(e+'_count').value);
	if(document.getElementById(e+'_all').checked)
	{for(i=1;i<=c;i++){document.getElementById(e+'_'+i).checked=true;}}
	else{for(i=1;i<=c;i++){document.getElementById(e+'_'+i).checked=false;}}
}

function oo_fcbx_master(e,ii)
{
	if(!document.getElementById(e+'_'+ii).checked){document.getElementById(e+'_all').checked=false;}
	c=(document.getElementById(e+'_count').value); chk=0;
	for(i=1;i<=c;i++){if(document.getElementById(e+'_'+i).checked){chk++;}}
	if(chk==c){document.getElementById(e+'_all').checked=true;}
}

