// Copyright(c) 2004-2010, Second Phase, LLC, All rights reserved worldwide. www.secondphase.net
// JavaScript Document

// browser related utility functions
function getIEVersionNumber()
{
    var ua = navigator.userAgent;
    var MSIEOffset = ua.indexOf("MSIE ");
    if (MSIEOffset == -1) {
        return 0;
    } else {
        return parseFloat(ua.substring(MSIEOffset + 5, ua.indexOf(";", MSIEOffset)));
    }
}
function showBrowserInfo()
{
    alert("Brower: "+navigator.appName+", Version: "+navigator.appVersion+", Agent: "+navigator.userAgent);
}
var isIE5Min = getIEVersionNumber() >= 5;
var isIE7Min = getIEVersionNumber() >= 7;
var isIE = (navigator.appName == "Microsoft Internet Explorer");
var isNav = (navigator.appName == "Netscape");
var isOpera = (navigator.userAgent.indexOf("Opera") != -1);
var isFirefox = (navigator.userAgent.indexOf("Firefox") != -1);


// secondphase utility functions utilizing the dojo toolkit
// usage:
//var result = loadFromQuery("script.jsp");
//dojo.query("#title p").forEach(result);
//dojo.query("#section .subsection").forEach(result);  
function loadFromQuery(url){
  var get = dojo.xhrGet({ url: url });
  return function(node){
    get.addCallback(function(data){
      node.innerHTML = data;
      return data;
    });
  }
}
function loadFromQuerySync(url){
  var get = dojo.xhrGet({ url: url, sync: true });
  return function(node){
    get.addCallback(function(data){
      node.innerHTML = data;
      return data;
    });
  }
}


// form related utility functions
var submitcount=0;
function doOnce(form)
{	
        if (submitcount==0)
        {
		submitcount++;
                form.submit();
                return true;
	}
        else
        {
		alert("This form has already been submitted. Thanks!");
		return false;
	}
            
}

function focusNext(form, elemName, evt) 
{	
	evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode : 
		((evt.which) ? evt.which : evt.keyCode);
	if (charCode == 13 || charCode == 3 || charCode == 9) {
		form.elements[elemName].focus();
		return false;
	}
	return true;
}


// Display current page in 'printable' format in new window
// requires a div with id='printready' surrounding code to be displayed in print ready window
var autoPrint = false; // print page automatically
function disableLinks() {
    var elems = document.getElementsByTagName('a'); 
    for (var i=2; i<elems.length; i++) // skip over print page and close window links
        elems[i].removeAttribute('href');
    elems = document.getElementsByTagName('form');
    for (var i=0; i<elems.length; i++) { // disable forms
        elems[i].setAttribute('action', 'javascript:;');
        elems[i].setAttribute('onsubmit', 'return false;');
    }
}
function printablePage() {
  if (document.getElementById != null) var html = "<html>\n<head>\n";
  if (document.getElementsByTagName != null) var headTags = document.getElementsByTagName("head");
  if (headTags.length > 0) html += headTags[0].innerHTML;
  html += "\n</head>\n<body onload='disableLinks();' style='background-color:white; background-image: url(images/site/spacer.gif);'>\n<div style='position:absolute; width:620px; left:30px;'>\n";
  var printReadyElem = document.getElementById("printready");
  if (printReadyElem != null) {
        html += "<div style='postion:absolute; left:0px; text-align:right;'><a href='javascript:window.print()'>print page</a>&nbsp;|&nbsp;<a href='javascript:window.close()'>close window</a></div>";
        html += "<div align='left'><img src='images/site/logo_printready.gif'></div><br>";
        html += printReadyElem.innerHTML;
  } else {
    alert("Could not find the printReady function");
    return;
  }
  html += "<br><br>";
  html += "\n</div>\n</body>\n</html>";

  var printWin = window.open("","","width=700,toolbar=no,location=no,directories=no,menubar=yes,status=no,scrollbars=yes");
  printWin.document.open();
  printWin.document.write(html);
  printWin.document.close();
  if (autoPrint) printWin.print();
}


/* cookies.js */
/*
     Example File From "JavaScript and DHTML Cookbook"
     Published by O'Reilly & Associates
     Copyright 2003 Danny Goodman
*/
// utility function to retrieve a future expiration date in proper format;
// pass three integer parameters for the number of days, hours,
// and minutes from now you want the cookie to expire; all three
// parameters required, so use zeros where appropriate
function getExpDate(days, hours, minutes) {
    var expDate = new Date();
    if (typeof days == "number" && typeof hours == "number" && typeof hours == "number") {
        expDate.setDate(expDate.getDate() + parseInt(days));
        expDate.setHours(expDate.getHours() + parseInt(hours));
        expDate.setMinutes(expDate.getMinutes() + parseInt(minutes));
        return expDate.toGMTString();
    }
}

// utility function called by getCookie()
function getCookieVal(offset) {
    var endstr = document.cookie.indexOf (";", offset);
    if (endstr == -1) {
        endstr = document.cookie.length;
    }
    return unescape(document.cookie.substring(offset, endstr));
}

// primary function to retrieve cookie by name
function getCookie(name) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg) {
            return getCookieVal(j);
        }
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break; 
    }
    return null;
}

// store cookie value with optional details as needed
function setCookie(name, value, expires, path, domain, secure) {
    document.cookie = name + "=" + escape (value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

// remove the cookie by setting ancient expiration date
function deleteCookie(name,path,domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}


// Collect macromedia JS functions here
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

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.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}

function MM_setImage() { //v3.0
  var i,j=0,x,a=MM_setImage.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; x.src=a[i+2]; x.oSrc=x.src;}
}

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_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_nbGroup(event, grpName) { //v6.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
      img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    nbArr = document[grpName];
    if (nbArr)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
      nbArr[nbArr.length] = img;
  } }
}

function openUp(href)
{
  window.open(href,"","height=400,width=450,scrollbars=yes,resizable");
}

function makeNewWindow(url) {
    window.open(url,'subwindow','resizable,scrollbars,status,titlebar,height=600,width=800');
}

