/* ==========================================================
© V Group
http://www.vgroup.com/

Type:				Global JS file
Build by:			VGROUP
Document Authors:	Mark Perkins
Creation Date:		21/08/07
-------------------------------------------------------------
Version number: 	1.0
Last edited:		t
========================================================== */



// requires use of base2dom (base2.js)
base2.DOM.bind(document);

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

var vgroup = {
	
	nav : {},
	
	init : function( division, level1, level2, level3, flashlink, casestudy ) {
		vgroup.setUpLinkBoxes();
		vgroup.nav = { division: division, level1: level1, level2: level2, level3: level3, flashlink: flashlink, casestudy: casestudy };
		vgroup.setUpFlash();
		vgroup.checkFormPlacement();
		// vgroup.checkFooterPlacement();
		// vgroup.footer = document.matchSingle( 'footer' );
		window.onresize = vgroup.checkFormPlacement;
		// window.addEventListener( 'resize', vgroup.checkFooterPlacement, false );
		vgroup.createExternalLinks();
		if ( vgroup.nav.division == "con" ) {
			vgroup.insertGoogleMap();
		}
	},
	
	showart : function( link ) {
		
		$(".hideme").each(function(){
			var art = "art"+$(this).attr("rel");
			var sum = "sum"+$(this).attr("rel");
			$("#"+art).hide();
			$("#"+sum).show();
		
			var showlink = $("<a href=\"#\" class=\"showme\" rel=\""+$(this).attr("rel")+"\">read more &gt;</a>").click(function(){
				vgroup.showart( this );
				return false;
			});
			$(this).after(showlink);
			$(this).remove();
		});
		
		var art = "art"+$(link).attr("rel");
		var sum = "sum"+$(link).attr("rel");
		$("#"+art).show();
		$("#"+sum).hide();
		
		var hidelink = $("<a href=\"#\"  class=\"hideme\" rel=\""+$(link).attr("rel")+"\"> &lt; Hide</a>").click(function(){
			$("#"+art).hide();
			$("#"+sum).show();
			var showlink = $("<a href=\"#\" class=\"showme\" rel=\""+$(link).attr("rel")+"\">read more &gt;</a>").click(function(){
				vgroup.showart( this );
				return false;
			});
			$(this).after(showlink);
			$(this).remove();
			return false;
		});
		$(link).after(hidelink);
		$(link).remove();
		return false;
	},
	
	setUpFlash : function() {
		// main flash detection script
		UFO.getFlashVersion();
		//test for flash 6 - showreels
		vgroup.showreelFlash = UFO.hasFlashVersion( 6, 0 );
		//  test for flash 8 - background movie
		if ( UFO.hasFlashVersion( 8, 0 ) ) {
			// client browser has flash version > 8 
			// and is on the homepage
			// document.body.className = "stillsOk";
			if ( (vgroup.nav.level1 == 1 && !vgroup.nav.level2 ) ) {
				// hide navigation, masthead, sub navigation
				document.body.id = "flashOk";
				// insert flash movie
				vgroup.insertBgFilm();
			} else {
				vgroup.insertMainNav();
				vgroup.insertSidebarNav();
			}
		} else if ( vgroup.showreelFlash ) {
			document.body.className = "stillsOk";
			// has flash 6 but not flash 8 - insert main nav not full movie
			vgroup.insertMainNav();
			vgroup.insertSidebarNav();
		}
	},
	
	insertMainNav : function() {
		if ( vgroup.nav.division == "blog") {
			var FO1 = { movie:"http://blog.vgroup.com/swf/navigation-wht.swf", width:"525", height:"110", majorversion:"6", build:"0", bgcolor:"#FFF", flashvars:"division="+vgroup.nav.division+"&level1="+vgroup.nav.level1+"&level2="+vgroup.nav.level2+"&level3="+vgroup.nav.level3 };
		}
		else if ( vgroup.nav.division == "survey") {
			var FO1 = { movie:"http://www.vgroup.com/swf/navigation-wht.swf", width:"525", height:"110", majorversion:"6", build:"0", bgcolor:"#FFF", flashvars:"division="+vgroup.nav.division+"&level1="+vgroup.nav.level1+"&level2="+vgroup.nav.level2+"&level3="+vgroup.nav.level3 };
		}
		 else {
			var FO1 = { movie:"http://www.vgroup.com/swf/navigation-blk.swf", width:"525", height:"110", majorversion:"6", build:"0", bgcolor:"#2F2D2E", flashvars:"division="+vgroup.nav.division+"&level1="+vgroup.nav.level1+"&level2="+vgroup.nav.level2+"&level3="+vgroup.nav.level3 };	
		}
		UFO.create(FO1, "main-nav");
	},
	
	insertBgFilm : function() {
		var FO2 = { movie:"http://www.vgroup.com/swf/homeVideo.swf", width:"100%", height:"100%", majorversion:"8", build:"0", bgcolor:"#2F2D2E"};
		UFO.create( FO2, "bgfilm" );
	},
	
	insertSidebarNav : function() {
		if ( vgroup.nav.division == "blog" || vgroup.nav.division == "news") {
			var FO0 = { movie:"http://blog.vgroup.com/swf/bottomSideNav_wht.swf", width:"140", height:"100%", majorversion:"6", build:"0", wmode:"transparent", flashvars:"division=news" };
		}
		else if ( vgroup.nav.division == "survey" ) {

			var FO0 = { movie:"http://www.vgroup.com/swf/sideNavFlash/bottomSideNav_wht.swf", width:"140", height:"100%", majorversion:"6", build:"0", wmode:"transparent", flashvars:"division=survey" };
		} 
		else {
			var FO0 = { movie:"http://www.vgroup.com/swf/sideNavFlash/bottomSideNav.swf", width:"140", height:"100%", majorversion:"6", build:"0", wmode:"transparent", flashvars:"division="+vgroup.nav.division };
		}
		UFO.create( FO0, "sub-nav" );
		
		if ( vgroup.nav.division == 'bra' ) var side = 'brandingSide.swf';
		else if ( vgroup.nav.division == 'mar' ) var side = 'marketingSide.swf';
		else if ( vgroup.nav.division == 'des' ) var side = 'designSide.swf';
		else if ( vgroup.nav.division == 'int' ) var side = 'interactiveSide.swf';
		else if ( vgroup.nav.division == 'survey' ) var side = 'mainSide_wht.swf';
		else  var side = 'mainSide.swf';
		
		if ( vgroup.nav.division != "blog") {
			var FO4 = { movie:"http://www.vgroup.com/swf/sideNavFlash/"+side, wmode:"transparent", width:"182", height:"120", majorversion:"6", build:"0", bgcolor:"#2F2D2E", flashvars:"division="+vgroup.nav.division+"&level1="+vgroup.nav.level1+"&level2="+vgroup.nav.level2+"&level3="+vgroup.nav.level3};
		}
		else
		{
			var FO4 = { movie:"http://blog.vgroup.com/swf/mainside_white.swf", wmode:"transparent", width:"182", height:"120", majorversion:"6", build:"0", bgcolor:"#FFF", flashvars:"level1=0&level2=0&level3=0"};
		}
		UFO.create(FO4, "masthead");
		
	 	if ( vgroup.nav.division == 'bra' && !vgroup.nav.level3 ) var mov = 'branding/base.swf';
		if ( vgroup.nav.division == 'mar' && !vgroup.nav.level3 ) var mov = 'marketing/base.swf';
		if ( vgroup.nav.division == 'des' && !vgroup.nav.level3 ) var mov = 'design/base.swf';
		if ( vgroup.nav.division == 'int' && !vgroup.nav.level3 ) var mov = 'interactive/base.swf';
		if ( vgroup.nav.division == 'vgp' && vgroup.nav.level1 == 5 ) var mov = 'home/base.swf';
		
		if ( vgroup.nav.casestudy == 'evo' ) var mov = 'branding/branding_pm.swf';
		if ( vgroup.nav.casestudy == 'mxc' ) var mov = 'branding/branding_mxc.swf';
		if ( vgroup.nav.casestudy == 'shl' ) var mov = 'branding/branding_shl.swf';
		if ( vgroup.nav.casestudy == 'sam' ) var mov = 'branding/branding_samsung.swf';
		if ( vgroup.nav.casestudy == 'cid' ) var mov = 'branding/cid.swf';
		
		if (mov != "") {
			var FO3 = { movie:"http://www.vgroup.com/swf/"+mov, wmode:"transparent", width:"526", height:"340", majorversion:"6", build:"0", bgcolor:"#2F2D2E", flashvars:"flashLinkVar="+vgroup.nav.flashlink };
			UFO.create(FO3, "movie");			
		}

	},
	
	insertOther : function() {
		// if vgroup.nav.division = ""
	},
	
	checkFormPlacement : function() {
		var newsForm = document.matchSingle( "#newsletter-signup" );
		if ( newsForm ) {
			var par = base2.DOM.bind(newsForm.parentNode);
			var foot = document.matchSingle('#footer');
			if ( !par.hasClass( "perma" )  ) {
				docwindow.getSize();
				if ( ( docwindow.width < 980 ) ) { 
					par.addClass( "pushLeft" );
				} else {
					par.removeClass( "pushLeft" );
				} 	
			}			
		}
	},
	
	setUpLinkBoxes : function() {
		var linkboxes = getElementsByClass("link_box");
		if ( linkboxes.length ) {
			for ( var i = 0; i < linkboxes.length; i++ ) {
				linkboxes[i].onclick = function(){
					var paras = this.getElementsByTagName("p");
					window.location.href = paras[1].getElementsByTagName("a")[0].href;
				}
				linkboxes[i].onmouseover = function(  ) {
					this.className = 'hoverOver';
				}
				linkboxes[i].onmouseout = function (  ) {
					this.className = 'link_box';
				}
			}
		}
	},
	
	createExternalLinks : function() {
		var thelinks = document.getElementsByTagName("a");
		for ( var i = 0; i < thelinks.length; i++ ) {
			if (thelinks[i].rel == "external") {
				thelinks[i].onclick = function() {
					window.open( this.href, "newWindow" );
					return false;
				}
			}
		}
	},
	
	insertGoogleMap : function()
	{
		if (GBrowserIsCompatible()) {
							
			var vgroupMarker = new GIcon(G_DEFAULT_ICON);
			vgroupMarker.image = "img/global/google_map_marker.png";
			markerOptions = { icon:vgroupMarker };
			
	        var mapB = new GMap2(document.getElementById("map_brighton"));
	        mapB.setCenter(new GLatLng(50.8247319349126,-0.14300811294356), 15);
			mapB.addControl(new GSmallMapControl());
			// var pointBrighton = new GLatLng(50.8247319349126,-0.14280811294356);
			var pointBrighton = new GLatLng(50.8248619349126,-0.14280811294356);
			mapB.addOverlay(new GMarker(pointBrighton, markerOptions));
			
			var mapL = new GMap2(document.getElementById("map_london"));
	        mapL.setCenter(new GLatLng(51.5148303429886,-0.134988990610289), 15);
			mapL.addControl(new GSmallMapControl());
			var pointLondon = new GLatLng(51.5148303429886,-0.134988990610289);

			mapL.addOverlay(new GMarker(pointLondon, markerOptions));
	      }
	}

}

var docwindow = {
	
	width : "",
	height : "",
	
	getSize : function() {
		var w = 0;
		var h = 0;
		if(!window.innerWidth) {
			if(!(document.documentElement.clientWidth == 0)) {
				w = document.documentElement.clientWidth;
				h = document.documentElement.clientHeight;
			} else {
				w = document.body.clientWidth;
				h = document.body.clientHeight;
			}
		} else {
			w = window.innerWidth;
			h = window.innerHeight;
		}
		docwindow.height = h;
		docwindow.width = w;
	}
}
		