/* for Mozilla/Opera9 */
if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", domInit, false);
}
/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
    document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
    var script = document.getElementById("__ie_onload");
    script.onreadystatechange = function() {
        if (this.readyState == "complete") {
            domInit(); // call the onload handler
        }
    };
/*@end @*/

/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
    var _timer = setInterval(function() {
        if (/loaded|complete/.test(document.readyState)) {
            domInit(); // call the onload handler
        }
    }, 10)
}

/* for other browsers */
window.onload = domInit;


function domInit() {
	inputs = document.getElementsByTagName('input');
  for (i = 0; i < inputs.length; i++) {
    if ((inputs[i].getAttribute('value')) && (inputs[i].getAttribute('type') == 'text')) {
            inputs[i].setAttribute('default',inputs[i].getAttribute('value'));
            inputs[i].onfocus = function() {
				if (this.value == this.getAttribute('default')) {
					this.value = '' ;
				}
			}
			inputs[i].onblur = function() {
				if (this.value == '') {
					this.value = this.getAttribute('default');
				}
			}
    }
  }
}

function clearIt() {
	var value = this.getAttribute('value') ;
  if (this.getAttribute('type') == 'text') {
    if (this.value == value) {
			this.value = '' ;
		} else if (this.value == '') {
			this.value = value ;
		}
  }
}



function snap_menus()
{
	P7_Snap('services','divMenu1',0,19);
	P7_Snap('firm','divMenu2',0,19);
	P7_Snap('team','divMenu3',0,19);
	P7_Snap('newsroom','divMenu4',0,19);
	P7_Snap('recruitment','divMenu5',0,19);
	P7_Snap('resources','divMenu6',0,19);
	P7_Snap('community','divMenu7',0,19);
	P7_Snap('contact','divMenu8',0,19);
}

function open_window(sURL, iHeight, iWidth, iTop, iLeft, sWinName, sScrollbars)
{
	window.open (sURL, sWinName,'height=' + iHeight + ',width=' + iWidth + ',scrollbars=' + sScrollbars + ',toolbar=no,location=no,directories=no,status=no,menubar=no,titlebar=yes,alwaysRaised=yes,fullscreen=no,resize=no,top=' + iTop + ',left=' + iLeft);
}

function get_object_handle(iObjectID)
{
	return document.getElementById(iObjectID) ;
}

function go_close_window()
{
	window.close() ;
}

function change_class(sTheObjectID, sNewClassName)
{
	var oObject = get_object_handle(sTheObjectID) ;
		
	if (oObject)
		oObject.className = sNewClassName ;
}

function show_bindings(iWebsiteID)
{
	open_window("SiteBindings.asp?WebSiteID=" + iWebsiteID, 400, 450, 200, 200, "winBindings", "yes") ;
}

function go_menu()
{
	// Just an empty dummy function...because of the problem with the animated GIFs stopping.
}

/* Menu Functions */

var bAnimatingMainMenu = false ;

// Format: show transition, hide transition, etc...
var aMenuTransitions = [null, null, 6, 7, 6, 7, 6, 7, 6, 7, 12, null, 20, 17, 6, 7, null, null] ;

function main_menu_initialise()
{
	if (get_main_menu_state())
	{
		show_menu(1) ;
		set_menu_pos(1, 18, 9) ;
	}
	else
	{
		hide_menu(1) ;
		set_menu_pos(1, 140, 9) ;
	}
}

function go_phase(iObjectID, iSpeed, iCurrentPhase)
{
	var iPhase = 0 ;
	
	iPhase = (iCurrentPhase + 5) % 100 ;
		
	get_object_handle(iObjectID).filters[0].phase = iPhase ;
		
	setTimeout('go_phase("' + iObjectID + '", ' + iSpeed + ', ' + iPhase + ')', iSpeed, "javascript") ;
}	

function set_opacity(oObject, iOpacity)
{
	if (oObject.filters)
		oObject.filters[0].opacity = iOpacity ;
}

function set_menu_state(iMenuID, iMenuState)
{
	if (iMenuID == 1) // Only store state of Main Menu
		SetCookie("MenuState", iMenuState) ;
}

function set_welcome_message_state(iMenuState)
{
	SetCookie("WelcomeMessageState", iMenuState) ;
}

function get_main_menu_state()
{
	var iMenuState = GetCookie("MenuState") ;

	if (iMenuState != null)
	{
		if (iMenuState == "1")
			return 1 ;
		else
			return 0 ;
	}
	else // No Cookie...
		return 0 ;
}

function set_menu_pos(iMenuID, iXPos, iYPos)
{
	var oMenu = get_object_handle("divMenu" + iMenuID) ;

	if (oMenu != null)
	{
		iMainMenuXPos = iXPos ;
	
		if (oMenu.style.posLeft) // IE...
		{
			oMenu.style.posLeft = iXPos ;
			oMenu.style.posTop = iYPos ;
		}
		else // Netscape...
		{
			oMenu.style.left = iXPos + "px" ;
			oMenu.style.top = iYPos + "px" ;
		}
	}
}

function animate_menu(iMenuID, iDesiredState)
{
	var oMenu = get_object_handle("divMenu" + iMenuID) ;
	var iCurrentX = 0 ;
	var iIncrement = 0 ;
	var iNextXPos = 0 ;

	switch(iMenuID)
	{
		case 1: // Only animate Main Menu...
		
			iCurrentX = parseInt(oMenu.style.left) ;
		
			if (iDesiredState == 1) // Wanted Open...
				iIncrement = -5 ;
			else // Closed...
				iIncrement = 5 ;
				
			if ((iCurrentX <= 18)&&(iDesiredState == 1)) // Fully open, so stop...
				bAnimatingMainMenu = false ;
			else if ((iCurrentX >= 140)&&(iDesiredState == 0)) // Fully closed, so stop...
				bAnimatingMainMenu = false ;
			else
			{
				bAnimatingMainMenu = true ;
					
				iNextXPos = iCurrentX + (iIncrement) ;
											
				if ((iDesiredState == 1)&&(iNextXPos < 18))
					iNextXPos = 18 ;
				else if ((iDesiredState == 0)&&(iNextXPos > 140))
					iNextXPos = 140 ;

				set_menu_pos(iMenuID, iNextXPos, 9) ;
					
				setTimeout("animate_menu(" + iMenuID + ", " + iDesiredState + ");", 5) ;
			}
			
		break ;	
	}
}

function show_menu(iMenuID)
{
	var oMenu = get_object_handle("divMenu" + iMenuID) ;
	
	if (oMenu != null)
	{
		switch(iMenuID)
		{
			case 1: // Main Menu...
			
				//if (!bAnimatingMainMenu)
				//	animate_menu(1, 1) ;
			
				set_menu_state(iMenuID, 1) ;
	
			break ;
			case 2: case 3: case 4: case 5: case 6:
				hide_menu_set(iMenuID, 2) ;
				reset_menu_class() ;
			break ;
		}

		if ((iMenuID == 1)||(iMenuID == 9)) // Just make menu visible...
			oMenu.style.visibility = "visible" ;
		else
		{
			if (oMenu.style.visibility == "hidden") // Only show if currently hidden...
			{
				//if ((oMenu.filters)&&(aMenuTransitions[2 * (iMenuID - 1)] != null)) // If browser supports filters and there is a valid transition...
				//{
				//	oMenu.filters[0].Apply() ;
				//	oMenu.style.visibility = "visible" ;
				//	oMenu.filters.revealTrans.transition = aMenuTransitions[2 * (iMenuID - 1)] ; // Box in...
				//	oMenu.filters[0].Play() ;
				//}
				//else
					oMenu.style.visibility = "visible" ;
			}
		}
	}
}

function hide_all()
{
	hide_menu(1);
	hide_menu(2);
	hide_menu(3);
	hide_menu(4);
	hide_menu(5);
	hide_menu(6);
	hide_menu(7);
	hide_menu(8);
	hide_menu(9);
	hide_menu(10);

}

function hide_menu(iMenuID)
{
	var oMenu = get_object_handle("divMenu" + iMenuID) ;

	if (oMenu != null)
	{
		set_menu_state(iMenuID, 0) ;
		
			if (oMenu.style.visibility == "visible") // Only hide if currently visible...
			{
				//if ((oMenu.filters)&&(aMenuTransitions[(2 * (iMenuID - 1)) + 1] != null)) // If browser supports filters and there is a valid transition...
				//{
				//	oMenu.filters[0].Apply() ;
				//	oMenu.style.visibility = "hidden" ;
				//	oMenu.filters.revealTrans.transition = aMenuTransitions[(2 * (iMenuID - 1)) + 1] ; // Box out...
				//	oMenu.filters[0].Play() ;
				//}
				//else
					oMenu.style.visibility = "hidden" ;
			}
			
	}
}

function reset_menu_class()
{
	change_class("oMenuItem1", "TextStyle2") ;
	change_class("oMenuItem2", "TextStyle2") ;
	change_class("oMenuItem3", "TextStyle2") ;
	change_class("oMenuItem4", "TextStyle2") ;
	change_class("oMenuItem5", "TextStyle2") ;
}

function hide_menu_set(iCurrentMenuID, iMenuSetID)
{
	switch(iMenuSetID)
	{
		case 2: // Sub Menus...
			if (iCurrentMenuID != 2) hide_menu(2) ;
			if (iCurrentMenuID != 3) hide_menu(3) ;
			if (iCurrentMenuID != 4) hide_menu(4) ;
			if (iCurrentMenuID != 5) hide_menu(5) ;
			if (iCurrentMenuID != 6) hide_menu(6) ;
			if (iCurrentMenuID != 8) hide_menu(8) ; // Case Studies Menu
		break ;	
	}
}

/* Cookie Functions */

function getCookieVal (offset)
{  
	var endstr = document.cookie.indexOf (";", offset);  
	
	if (endstr == -1)    
		endstr = document.cookie.length;  

	return unescape(document.cookie.substring(offset, endstr));
}

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;
}

function SetCookie (name, value)
{  
	var argv = SetCookie.arguments;  
	var argc = SetCookie.arguments.length;  
	var expires = (argc > 2) ? argv[2] : null;  
	var path = (argc > 3) ? argv[3] : null;  
	var domain = (argc > 4) ? argv[4] : null;  
	var secure = (argc > 5) ? argv[5] : false;  
	
	document.cookie = name + "=" + escape (value) + 
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
	((path == null) ? "" : ("; path=" + path)) +  
	((domain == null) ? "" : ("; domain=" + domain)) +    
	((secure == true) ? "; secure" : "");
}

function DeleteCookie (name)
{  
	var exp = new Date();  
	exp.setTime (exp.getTime() - 1);  
	var cval = GetCookie (name);  
	document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}

/* Validation... */

var oNonEmptyRegex = new RegExp("^[\\w]") ;

function is_not_empty(sTheString)
{
	return (oNonEmptyRegex.test(sTheString)) ;
}

function validate_email(sEMailAddress)
{
	//var sEmailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]+[\.]+[\\w]+[\\w]$" ;
	var sEmailReg = "^([\.a-zA-Z0-9_-])+@([a-zA-Z0-9_\-])+[\.]+(\.[a-zA-Z0-9])+" ;
	var oRegex = new RegExp(sEmailReg) ;
     
	return (oRegex.test(sEMailAddress)) ;
}

