﻿// JavaScript Document
function trim( stringToTrim )
{
 return stringToTrim.replace( /^\s+|\s+$/g, "" );
}

//  ---------------------------------------

var persisteduls = new Object()
var ddtreemenu = new Object()

ddtreemenu.closefolder = "closed.gif" // set image path to "closed" folder image
ddtreemenu.openfolder = "open.gif" // set image path to "open" folder image
ddtreemenu.createTree = function( treeid, enablepersist, persistdays )
{
 var ultags = document.getElementById( treeid ).getElementsByTagName( "ul" )
 if ( typeof persisteduls[treeid] == "undefined" )
 persisteduls[treeid] = ( enablepersist == true && ddtreemenu.getCookie( treeid ) != "" ) ? ddtreemenu.getCookie( treeid ).split( "," ) : ""
 for ( var i = 0; i < ultags.length; i ++ )
 ddtreemenu.buildSubTree( treeid, ultags[i], i )
 if ( enablepersist == true )
 {
  // if enable persist feature
  var durationdays = ( typeof persistdays == "undefined" ) ? 1 : parseInt( persistdays )
  ddtreemenu.dotask( window, function()
  {
   ddtreemenu.rememberstate( treeid, durationdays )
  }
  , "unload" ) // save opened UL indexes on body unload
 }
}

//  ---------------------------------------

ddtreemenu.buildSubTree = function( treeid, ulelement, index )
{
 ulelement.parentNode.className = "submenu"
 if ( typeof persisteduls[treeid] == "object" )
 {
  // if cookie exists ( persisteduls[treeid] is an array versus "" string )
  if ( ddtreemenu.searcharray( persisteduls[treeid], index ) )
  {
   ulelement.setAttribute( "rel", "open" )
   ulelement.style.display = "block"
   ulelement.parentNode.style.backgroundImage = "url(" + ddtreemenu.openfolder + ")"
  }
  else
  ulelement.setAttribute( "rel", "closed" )
 }
 // end cookie persist code
 else if ( ulelement.getAttribute( "rel" ) == null || ulelement.getAttribute( "rel" ) == false ) // if no cookie and UL has NO rel attribute explicted added by user
 ulelement.setAttribute( "rel", "closed" )
 else if ( ulelement.getAttribute( "rel" ) == "open" ) // else if no cookie and this UL has an explicit rel value of "open"
 ddtreemenu.expandSubTree( treeid, ulelement ) // expand this UL plus all parent ULs ( so the most inner UL is revealed ! )
 ulelement.parentNode.onclick = function( e )
 {
  var submenu = this.getElementsByTagName( "ul" )[0]
  if ( submenu.getAttribute( "rel" ) == "closed" )
  {
   submenu.style.display = "block"
   submenu.setAttribute( "rel", "open" )
   ulelement.parentNode.style.backgroundImage = "url(" + ddtreemenu.openfolder + ")"
  }
  else if ( submenu.getAttribute( "rel" ) == "open" )
  {
   submenu.style.display = "none"
   submenu.setAttribute( "rel", "closed" )
   ulelement.parentNode.style.backgroundImage = "url(" + ddtreemenu.closefolder + ")"
  }
  ddtreemenu.preventpropagate( e )
 }
 ulelement.onclick = function( e )
 {
  ddtreemenu.preventpropagate( e )
 }
}

//  ---------------------------------------

ddtreemenu.expandSubTree = function( treeid, ulelement )
{
 // expand a UL element and any of its parent ULs
 var rootnode = document.getElementById( treeid )
 var currentnode = ulelement
 currentnode.style.display = "block"
 currentnode.parentNode.style.backgroundImage = "url(" + ddtreemenu.openfolder + ")"
 while ( currentnode != rootnode )
 {
  if ( currentnode.tagName == "UL" )
  {
   // if parent node is a UL, expand it too
   currentnode.style.display = "block"
   currentnode.setAttribute( "rel", "open" ) // indicate it's open
   currentnode.parentNode.style.backgroundImage = "url(" + ddtreemenu.openfolder + ")"
  }
  currentnode = currentnode.parentNode
 }
}

//  ---------------------------------------

ddtreemenu.flatten = function( treeid, action )
{
 // expand or contract all UL elements
 var ultags = document.getElementById( treeid ).getElementsByTagName( "ul" )
 for ( var i = 0; i < ultags.length; i ++ )
 {
  ultags[i].style.display = ( action == "expand" ) ? "block" : "none"
  var relvalue = ( action == "expand" ) ? "open" : "closed"
  ultags[i].setAttribute( "rel", relvalue )
  ultags[i].parentNode.style.backgroundImage = ( action == "expand" ) ? "url(" + ddtreemenu.openfolder + ")" : "url(" + ddtreemenu.closefolder + ")"
 }
}

//  ---------------------------------------

ddtreemenu.rememberstate = function( treeid, durationdays )
{
 // store index of opened ULs relative to other ULs in Tree into cookie
 var ultags = document.getElementById( treeid ).getElementsByTagName( "ul" )
 var openuls = new Array()
 for ( var i = 0; i < ultags.length; i ++ )
 {
  if ( ultags[i].getAttribute( "rel" ) == "open" )
  openuls[openuls.length] = i // save the index of the opened UL ( relative to the entire list of ULs ) as an array element
 }
 if ( openuls.length == 0 ) // if there are no opened ULs to save / persist
 openuls[0] = "none open" // set array value to string to simply indicate all ULs should persist with state being closed
 ddtreemenu.setCookie( treeid, openuls.join( "," ), durationdays ) // populate cookie with value treeid = 1, 2, 3 etc ( where 1, 2... are the indexes of the opened ULs )
}

//  ---------------------------------------

//// A few utility functions below//////////////////////

ddtreemenu.getCookie = function( Name )
{
 // get cookie value
 var re = new RegExp( Name + "=[^;]+", "i" );
 // construct RE to search for target name / value pair
 if ( document.cookie.match( re ) ) // if cookie found
 return document.cookie.match( re )[0].split( "=" )[1] // return its value
 return ""
}

//  ---------------------------------------

ddtreemenu.setCookie = function( name, value, days )
{
 // set cookei value
 var expireDate = new Date()
 // set "expstring" to either future or past date, to set or delete cookie, respectively
 var expstring = expireDate.setDate( expireDate.getDate() + parseInt( days ) )
 document.cookie = name + "=" + value + "; expires=" + expireDate.toGMTString() + "; path=/";
}

//  ---------------------------------------

ddtreemenu.searcharray = function( thearray, value )
{
 // searches an array for the entered value. If found, delete value from array
 var isfound = false
 for ( var i = 0; i < thearray.length; i ++ )
 {
  if ( thearray[i] == value )
  {
   isfound = true
   thearray.shift() // delete this element from array for efficiency sake
   break
  }
 }
 return isfound
}

//  ---------------------------------------

ddtreemenu.preventpropagate = function( e )
{
 // prevent action from bubbling upwards
 if ( typeof e != "undefined" )
 e.stopPropagation()
 else
 event.cancelBubble = true
}

//  ---------------------------------------

ddtreemenu.dotask = function( target, functionref, tasktype )
{
 // assign a function to execute to an event handler ( ie : onunload )
 var tasktype = ( window.addEventListener ) ? tasktype : "on" + tasktype
 if ( target.addEventListener )
 target.addEventListener( tasktype, functionref, false )
 else if ( target.attachEvent )
 target.attachEvent( tasktype, functionref )
}

//  ---------------------------------------

function Iconize()
{
 var NavArrayText = [];
 var NavArrayIcon = [];

 NavArrayIcon [0] = '1';
 NavArrayIcon [1] = '2';
 NavArrayIcon [2] = '3';
 NavArrayIcon [3] = '4';
 NavArrayIcon [4] = '7';
 NavArrayIcon [5] = '8';
 NavArrayIcon [6] = '5';
 NavArrayIcon [7] = '6';
 NavArrayIcon [8] = '9';
 NavArrayIcon [9] = '10';
 NavArrayIcon [10] = '11';
 NavArrayIcon [11] = '12';
 NavArrayIcon [12] = '13';
 NavArrayIcon [13] = 'blank';
 NavArrayIcon [14] = 'blank';
 NavArrayIcon [15] = 'blank';
 NavArrayIcon [16] = 'blank';
 NavArrayIcon [17] = 'blank';
 NavArrayIcon [18] = 'blank';
 NavArrayIcon [19] = 'blank';


//------------------- FIREFOX ----------- FIREFOX ----------- FIREFOX ----------- FIREFOX -----------

 if ( /Firefox[\/\s](\d+\.\d+)/.test( navigator.userAgent ) )
 {

  // test for Firefox / x.x or Firefox x.x ( ignoring remaining digits );
  mytbl = document.getElementById( 'zz2_CurrentNav' );
  for( i = 0; i < mytbl.rows.length; i ++ )
  {
   var myCells = mytbl.rows[ i].cells;
   for( e = 0; e < myCells.length; e ++ )
   {
    var temp;
    temp =  myCells[e].textContent;

    NavArrayText [i] = trim( temp );
   }
  }


  for( i = 0; i < mytbl.rows.length; i ++ )
  {
   var myCells = mytbl.rows[i].cells;
   for( j = 0; j < myCells.length; j ++ )
   {
    if ( trim( myCells[j].textContent ) == NavArrayText[i] )
    {
     var myText = myCells[j].innerHTML ;
     // myText  = myText.replace( trim( NavArrayText[i] ) + '</a' , '<span style=display:block><img src="http://www.yu.edu.sa/sites/en/images/'+NavArrayIcon[i]+'.gif" border=0/>' + trim( NavArrayText[i] ) + '</span></a' );

     // myText  = myText.replace( trim( NavArrayText[i] ) + '</a' , '<img src="http://www.yu.edu.sa/sites/en/images/'+NavArrayIcon[i]+'.gif" border=0/>' + trim( NavArrayText[i] ) + '</a' );
     myText  = myText.replace( trim( NavArrayText[i] ) + '</a' , '<img src="http://www.yu.edu.sa/sites/en/images/'+NavArrayIcon[i]+'.gif" border=0/>' + trim( NavArrayText[i] ) + '</a' );

     myCells[j].innerHTML = myText;

    }
   }
  }
 RegScript("Firefox");
 }
 else
 {

//------------------- INTERNET EXPLORER ----------- INTERNET EXPLORER -----------
  mytbl = document.getElementById( 'zz2_CurrentNav' );

  for( i = 0; i < mytbl.rows.length; i ++ )
  {
   var myCells = mytbl.rows( i ).cells;
   for( e = 0; e < myCells.length; e ++ )
   {
    var temp;
    temp =  myCells( e ).innerText;

    NavArrayText [i] = temp;
   }
  }


  for( i = 0; i < mytbl.rows.length; i ++ )
  {
   var myCells = mytbl.rows( i ).cells;
   for( j = 0; j < myCells.length; j ++ )
   {
    if ( myCells( j ).innerText == NavArrayText[i] )
    {
     var myText = myCells( j ).innerHTML;
     myText  = myText.replace( '>' + NavArrayText[i] + '<' , '><img src="http://www.yu.edu.sa/sites/en/images/'+NavArrayIcon[i]+'.gif" border=0/>' + NavArrayText[i] + '<' );
     myCells( j ).innerHTML = myText;

    }
   }
  }
RegScript("IE");
 }

//------------------- CHROME ----------- CHROME ----------- CHROME ----------- CHROME -----------
 if ( /Chrome[\/\s](\d+\.\d+)/.test( navigator.userAgent ) )
 {

  mytbl = document.getElementById( 'zz2_CurrentNav' );
  for( i = 0; i < mytbl.rows.length; i ++ )
  {
   var myCells = mytbl.rows[ i].cells;
   for( e = 0; e < myCells.length; e ++ )
   {
    var temp;
    temp =  myCells[e].textContent;
    NavArrayText [i] = temp;
   }
  }


  for( i = 0; i < mytbl.rows.length; i ++ )
  {
   var myCells = mytbl.rows[i].cells;
   for( j = 0; j < myCells.length; j ++ )
   {
    if ( trim( myCells[j].textContent ) == trim( NavArrayText[i] ) )
    {
     var myText = myCells[j].innerHTML ;
     myText  = myText.replace( trim( NavArrayText[i] ) + '</a' , '<img src="http://www.yu.edu.sa/sites/en/images/'+NavArrayIcon[i]+'.gif" border=0/>' + trim( NavArrayText[i] ) + '</a' );
     myCells[j].innerHTML = myText;

    }
   }
  }
  RegScript("Chrome");
 }

//------------------- SAFARI ----------- SAFARI ----------- SAFARI ----------- SAFARI -----------
 else if ( /Safari[\/\s](\d+\.\d+)/.test( navigator.userAgent ) )
 {
  mytbl = document.getElementById( 'zz2_CurrentNav' );
  for( i = 0; i < mytbl.rows.length; i ++ )
  {
   var myCells = mytbl.rows[ i].cells;
   for( e = 0; e < myCells.length; e ++ )
   {
    var temp;
    temp =  myCells[e].textContent;
    NavArrayText [i] = temp;
   }
  }


  for( i = 0; i < mytbl.rows.length; i ++ )
  {
   var myCells = mytbl.rows[i].cells;
   for( j = 0; j < myCells.length; j ++ )
   {
    if ( trim( myCells[j].textContent ) == trim( NavArrayText[i] ) )
    {

     var myText = myCells[j].innerHTML ;
     myText  = myText.replace( trim( NavArrayText[i] ) + '</a' , '<img src="http://www.yu.edu.sa/sites/en/images/'+NavArrayIcon[i]+'.gif" border=0/>' + trim( NavArrayText[i] ) + '</a' );
     myCells[j].innerHTML = myText;

    }
   }
  }
 RegScript("Safari");

 }


}

//  ---------------------------------------

// yu life flash header
function showFlashYULife()
{
 AC_FL_RunContent(
 'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
 'width', '942',
 'height', '209',
 'src', '../../flash/life',
 'quality', 'high',
 'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
 'align', 'middle',
 'play', 'true',
 'loop', 'true',
 'scale', 'showall',
 'wmode', 'window',
 'devicefont', 'false',
 'id', 'life',
 'bgcolor', '#ffffff',
 'name', 'life',
 'menu', 'true',
 'allowFullScreen', 'false',
 'allowScriptAccess', 'sameDomain',
 'movie', '../../flash/life',
 'transparent', 'wmode',
 'class', 'topMostHeader'
 );
 // end AC code
}

//  ---------------------------------------

// show news
function showFlashNews()
{
 AC_FL_RunContent(
 'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
 'width', '942',
 'height', '209',
 'src', '../../flash/news',
 'quality', 'high',
 'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
 'align', 'middle',
 'play', 'true',
 'loop', 'true',
 'scale', 'showall',
 'wmode', 'window',
 'devicefont', 'false',
 'id', 'life',
 'bgcolor', '#ffffff',
 'name', 'life',
 'menu', 'true',
 'allowFullScreen', 'false',
 'allowScriptAccess', 'sameDomain',
 'movie', '../../flash/news',
 'transparent', 'wmode',
 'class', 'topMostHeader'
 );
 // end AC code
}
//  ---------------------------------------

function RegScript(browserName)
{
//alert(browserName)
var CSSFileName;
CSSFileName =  browserName + ".css"
var cssNode = document.createElement('link');
cssNode.type = 'text/css';

var csslink;
csslink = 'http://www.yu.edu.sa/sites/en/Style%20Library/en-US/Core%20Styles/'+CSSFileName ;
//alert(csslink);
cssNode.rel = 'stylesheet';cssNode.href = csslink ;
cssNode.media = 'screen';
cssNode.title = 'dynamicLoadedSheet';document.getElementsByTagName("head")[0].appendChild(cssNode);

}
