//-----------------------------------------------------------------------------
//
//  $Header: /Projects/SiteTemplate-V2.7.1/SITETEMPLATE-V271/SiteTemplate_Web/js/global.js 1     1/07/03 8:59a Brendant $
//
//-----------------------------------------------------------------------------
 

// START: rotator funcs
var imgNum=-1;
var rotatorTimer;
var rotatorInterval = 7; //default value
var sTimerFunc;
var rotatorImgName;
var bSlidesRunning = false;

function changeAddRotator( sImgName, nDuration ) {
	rotatorInterval = nDuration;
	rotatorImgName = sImgName;
	bSlidesRunning = true;
	if (nDuration < 1) nDuration = 7;
	sTimerFunc = "changeSlide()";
	changeSlide( );
}

function changeSlide(){
	if (pageLoaded) {
		imgNum++;
		imgNum = (imgNum < aRotateImg.length) ? imgNum : 0;
		if(document.images){
			var img = new Image();
			img.src = aRotateImg[imgNum][0];
			document.images[rotatorImgName].src = eval("img.src");
		}
		rotatorTimer = setTimeout( sTimerFunc, rotatorInterval*1000 );
	} else {
		// keep checking to see if the page is loaded
		rotatorTimer = setTimeout( sTimerFunc, 500 );
	}
}

function stopRotator( ) {
	bSlidesRunning = false;
	window.clearTimeout( rotatorTimer );
}

function startRotator( ) {
	if (!bSlidesRunning) {
		bSlidesRunning = true;
		changeSlide();
	}
}

function goAddRotator(){
	var aImg = aRotateImg;
	if(aImg[imgNum][2]=="_blank")window.open(aImg[imgNum][1],"_blank")
	else location = aImg[imgNum][1];
}
// END: rotator funcs


function util_GetURL(index){
	var sLink = arUtil0[index][1];
    if (sLink.indexOf("javascript:")!=-1) eval(sLink)
    else location.href = sLink;
}

function misc_GetURL(index){
	var sLink = arMisc0[index][1];
    if (sLink.indexOf("javascript:")!=-1) eval(sLink)
    else location.href = sLink;
}

function goSearch( currForm )
{
	currForm.action = sAppRoot + "scripts/utilities/search.asp";//arMisc0[4][1];
	currForm.submit();
}

function setReadability() {
	var w = window.open( sAppRoot + "gui-scripts/set-readability-choice.asp", "_READ", "width=400,height=100" );
	w.focus();
}

function bMoveLayer( sLayer, nOffset ) {
	// move a layer by the given offset
	return document.layers ? document.layers[sLayer].top += nOffset : document.all[sLayer].style.pixelTop += nOffset;
}

function img_Over(imgName,imgSrc){
	var imgDir = ""; // sAppRoot + "themes/default/components/";
	MM_swapImage(imgName,'',imgDir + imgSrc,1);
}

function img_Out(){
	MM_swapImgRestore();
}

function menu_Over(index,event,x,y,imgName,imgSrc){
	if(pageLoaded && bMenuScriptLoaded) {
		if ( imgName.length > 0 )img_Over(imgName, imgSrc);
		HM_f_HideAll();
		HM_f_PopUp('elMenu'+index, event, x, y);
		
		vHideItemsFromMenu(true);
	}
}


function menu_Out(index){
	if(pageLoaded && bMenuScriptLoaded) 	{
		img_Out();
		HM_f_MenuOut(); // get the menu timer to commence
	}
}

/* -- END MENU FUNCTIONS -- */

function goLink(url,target){
    location = url;
}

function checkField(e) {
    if (bw.bw) {

        var curr_img="img" + e.name,empty=false;
         if((e.type.indexOf("text")!=-1 || e.type.indexOf("file")!=-1 || e.type.indexOf("password")!=-1) && trim(e.value)=='') empty = true;
        if(e.type.indexOf("select")!=-1 && e.selectedIndex==0) empty = true;
        var imgName = (empty) ? 'forms/required-alert.gif':'forms/required.gif';
        document.images[curr_img].src = sAppImagesRoot + imgName;
    }
}

function checkLen(e,nMax) {
	if (e.value.length > nMax) e.value=e.value.substring(0,nMax);
}

function confirmSubmit(confirmMessage) {
    return confirm(confirmMessage);
}

function openNewWindow(targetURL, windowTitle, bShowWinMenus) {
	var sWinFeatures = "";

	if ((openNewWindow.arguments.length == 3) && (bShowWinMenus))
	{
		sWinFeatures = 'toolbar=yes,menubar=yes,width=755,height=600,scrollbars=yes,resizable=yes'
	}
	else
	{
		sWinFeatures = "toolbar=no,menubar=no,width=755,height=600,scrollbars=yes,resizable=yes";
	}
	
	var oWin = window.open(targetURL, windowTitle, sWinFeatures );
	oWin.focus();
}

// start macromedia functions
function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_jumpMenu(targ,selObj,restore){
	var sURL = selObj.options[selObj.selectedIndex].value;
	if (selObj.selectedIndex>0) eval(targ+".location='"+sURL+"'");
	if (restore) selObj.selectedIndex=0;
}
// end macromedia functions

var bItemsHidden = false; // toggle to show hidden/visible state of available objects
function vHideItemsFromMenu(bHideItems) {
	if(bHideItems) {
		if (!bItemsHidden && bHideSelectLists) {
			bItemsHidden = true;
			hideSelBoxes();
		}
	} else {
		if (bHideSelectLists) {
			setTimeout("showSelBoxes()",500);
			bItemsHidden = false;
		}
	}
}

function hideSelBoxes() {
	if (document.getElementsByTagName) {
		var aSels = document.getElementsByTagName("select");
		for (var i=0;i<aSels.length;i++) {
			aSels[i].style.visibility = "hidden"; // hide - don't remove...
		}
	}
}

function showSelBoxes() {
	if (document.getElementsByTagName) {
		var aSels = document.getElementsByTagName("select");
		for (var i=0;i<aSels.length;i++) {
			aSels[i].style.visibility = "visible";
		}
	}
}


function showSearchForm() { //show the search + logon popups
	if (typeof(document.layers['Lsearch']) == "object") showLayer('Lsearch',1);
	if (typeof(document.layers['Llogon']) == "object") showLayer('Llogon',1);
}

function hideSearchForm() { //hide the search + logon popups
	if (typeof(document.layers['Lsearch']) == "object") showLayer('Lsearch',0);
	if (typeof(document.layers['Llogon']) == "object") showLayer('Llogon',0);
}

var bBusUnitsOn = false;
function showBusinessUnits() {
    bBusUnitsOn = !bBusUnitsOn;
    showLayer('LBusUnitsMask',bBusUnitsOn);
    showLayer('LBusUnits',bBusUnitsOn);
}

function showLayer(strPanelName, boolView) { // show/hide a layer
    var sAction = boolView ? "visible" : "hidden";
    var oLayer = (bw.ns4) ? document.layers[strPanelName] : document.all[strPanelName].style;
    if (strPanelName != '') oLayer.visibility = sAction;
}

function showUtility( sURL ) { // opens the util window elegantly
    var sWinFeatures = "menubar,resizable,WIDTH=700,HEIGHT=400,left=10,top=10,scrollbars";
    var oWin = window.open( sURL, "UTILWIN", sWinFeatures);
    oWin.focus();
}

function closePopupWin() { // closes the popup window and shows the master window
    if (!window.parent.opener.closed) window.parent.opener.focus();
    window.close();
}

function SubmitForm(frmName,fieldName){
    var f=document.forms[frmName];
    if (!f.elements[fieldName].value.length>0) {
        alert('Enter a keyword for searching');
        return;
    }
    if (f.elements[fieldName].value.length==1) {
        alert('Please enter a valid keyword');
        return;
    }

    f.submit();
}

function showOrgChart( sURL ) { // opens the util window elegantly
    var sChartWinFeatures = "WIDTH=640,HEIGHT=450,left=5,top=5";
    var oChartWin = window.open( sURL, "CHARTWIN", sChartWinFeatures);
    oChartWin.focus();
}

function getScreenMid(w,h){
        var x,y,hor,ver,winPos;
        hor = screen.width/2;
        ver = screen.height/2;
        x = hor-(w/2);
        y = ver-(h/2);
        winPos = (document.all) ? "left="+x+",top="+y : "screenX="+x+",screenY="+y ;
        return "width="+w+",height="+h+","+winPos
}

function popupWindowCenter(url,target,w,h) {
	window.open( url , target, getScreenMid(w,h));	
}

function fieldValidation(myForm,Fields,action) {
    var ret=true,pval;
    if (Fields != ""){
        pval = Fields.split(';');
        LOOP:for(var i=0; i<pval.length; i+=3){
            var obj = myForm[pval[i]];
         
            switch(pval[i+1]){
                case 'empty':
                    if(obj.type.indexOf("text")!=-1 || obj.type.indexOf("file") != -1 || obj.type.indexOf("password") != -1){
                        if(trim(obj.value)==""){
                            alert(pval[i+2]);
                            obj.focus();
                            ret = false;break LOOP;
                        }
                    }else if(obj.type.indexOf("select")!=-1){
                        if(obj.selectedIndex==0){
                            alert(pval[i+2]);
                            obj.focus();
                            ret = false;break LOOP;
                        }
                    }break;
                case 'email':
                    if (!isEmailValid(obj)){
                        alert(ERR_EMAIL_MSG);
                        obj.focus();
                        ret = false;break LOOP;
                    }break;
                case 'forceEmail':
                    if(trim(obj.value)=="") {alert(ERR_FMAIL_MSG+pval[i+2]); obj.focus(); ret=false;break LOOP;}
                    else if (!isEmailValid(obj)){alert(ERR_EMAIL_MSG); obj.focus(); ret = false;break LOOP;}
                    break;
            }
        }
    }
    // if(ret) myForm.submit(); // NOTE - removed because fieldValidation() now returns to the onsubmit EVENT.
    return ret;
}

function trim(s){
    return s.replace(/\s/g,"");
}
function isEmailValid(e){
    var ret=true,s=e.value;
    if(s!=""){
        var pat = /^[\w\.-]+@[\w\.-]+\.[a-zA-Z]+$/;
        ret=(s.match(pat)!=null)?true:false;
    }
    return ret;
}
function checkQry(str,qry){
    var start   =   (str.indexOf(qry)!=-1)?str.substring(str.indexOf(qry)+qry.length):"";
    var end     =   (start.indexOf("&")!=-1)?start.indexOf("&"):start.length;
    return start.substring(1,end);
}
function populate(form, dbday, sYear, sMonth, sDay) {
    var theYear         = eval(form + "." + sYear);
    var theMonth        = eval(form + "." + sMonth);
    var theDay          = eval(form + "." + sDay);
    var monthIndex      = theMonth.selectedIndex;
    var currDay         = theDay.selectedIndex;
    var timeA           = new Date(theYear.options[theYear.selectedIndex].text, theMonth.options[monthIndex].value,1);
    var timeDifference  = timeA - 86400000;
    var timeB           = new Date(timeDifference);
    var daysInMonth     = timeB.getDate();
    if (monthIndex == 0) return;
    for (var i = 0; i < theDay.length; i++)theDay.options[0] = null;
    if (monthIndex > 0) for (var i = 0; i < daysInMonth; i++) theDay.options[i] = new Option(i+1);
    if (dbday > 0) theDay.options[dbday-1].selected = true;
    else {
        currDay = (daysInMonth > (currDay+1))?currDay:daysInMonth-1;
        theDay.options[currDay].selected = true;
    }
}
function setPopulate(sYr,nMn,nDy){
    var fDate=document.frmGetDate
    for (var i=0;i<fDate.SYr.options.length;i++) if(fDate.SYr.options[i].value==sYr) fDate.SYr.options[i].selected=true;
    fDate.SMn.selectedIndex=nMn;
    populate('document.frmGetDate', nDy, 'SYr', 'SMn','SDy');
}

function submitSearchForm(vForm) {
	var vKey = vForm.Key.value;

	if (vKey.length>0 && vKey.indexOf('*')==-1 && vKey.indexOf('#')==-1 && vKey.indexOf('@')==-1 && vKey.indexOf('|')==-1 && vKey.indexOf('!')==-1 && vKey.indexOf('%')==-1 && vKey.indexOf('$')==-1 && vKey.indexOf('^')==-1 && vKey.indexOf('(')==-1 && vKey.indexOf(')')==-1) {
		vForm.submit();
	}
	//else if (!(vKey.length>0)) {
	else if (vKey=='') {
		alert('Please enter a keyword');
		return false;
	}
	else {
		alert('Please enter a valid keyword');
		return false;
	}
}

//------------------------------------------------
//Start : Custom JS functions
//------------------------------------------------

function downloadWindow(sDownloadFile) {
	if (confirm("Do you want to open the contact file?"))
		window.open(sDownloadFile);
}

function clearForm(item){
	var form = item.form;
	for(var i=0;i<form.length;i++) {
		var type = form[i].type.toLowerCase();
		switch(type){
			case "text"		: form[i].value="";break;
			case "textarea"	: form[i].value="";break;
			case "radio"	: form[i].checked=false;break;
			case "checkbox"	: form[i].checked=false;break;
			case "select-one":form[i].options[0].selected=true;break;
		}
	}
}
function cookiesOK(){
	// Set a cookie value
	document.cookie = "AW_AcceptCookies="+'123';
	// Read back the value
	return (document.cookie.indexOf("AW_AcceptCookies=") >= 0)
}


//------------------------------------------------
//End : Custom JS functions
//------------------------------------------------

