function isBlank(s) {
	var re = /^\s+$/;
	if (re.test(s))
	   return true;
	return false;
}

function validateFrm(){
	var errors="";
	var fields=document.forms['pageControlFrm'];
	var indexNumber=1;
	for (var i=0; i < fields.length; i++){
		var field=fields.elements[i];
		if(field.type=="radio"){
			var group = fields.elements[field.name];
			var groupChecked="false";
			for (var j=0; j<group.length; j++){
				if(group[j].checked) groupChecked="true";
				i++;
			}
			if(groupChecked=="false"){
			 	errors += "\n    "+indexNumber+". " + field.name;
			 	indexNumber++;
			}
			
		}
		else if( (field.value == null) || (field.value == "") || isBlank(field.value) ){
			errors += "\n    "+indexNumber+". "+ field.name;
			indexNumber++;
		}
	}
										
	if(!errors){
		return true;
	}else{
		alert ("Please enter / select value for "+errors);
		return false;
	}
}

function getFieldValue(fieldName){
	var fields=document.forms['pageControlFrm'].elements[fieldName];
	var fieldValue = "";
	if(fields.length > 1){
	 	var type=fields[0].type;
	 	
	 	if(type=="radio"){
	 		for(var j=0; j<fields.length; j++){
				if(fields[j].checked){
					fieldValue = fields[j].value;
				}
			}
		}else {
			fieldValue = document.getElementById(fieldName).value;
		}
		
	}else{
		fieldValue = document.getElementById(fieldName).value;
	}
	return fieldValue;
}

/**
 * Cookie functions
 */
function getCookie(Name){
	var search = Name + "="
	var returnvalue = "";
	if (document.cookie.length > 0) {
		offset = document.cookie.indexOf(search)
		// if cookie exists
		if (offset != -1) {
			offset += search.length
			// set index of beginning of value
			end = document.cookie.indexOf(";", offset);
			// set index of end of cookie value
			if (end == -1) end = document.cookie.length;
			returnvalue=unescape(document.cookie.substring(offset, end))
		}
	}
	return returnvalue;
}

function setCookie(name, value){
	document.cookie = name + "=" +value + 
	";path=/";
}

function gotoNotificationURL(notificationURL){
	setCookie('accessible', 'No');
	Redirect(notificationURL);
}

function gotoRequestURL(requestURL){
	setCookie('accessible', 'Yes');
	Redirect(requestURL);
}

function Redirect(urlAddress){

	if (urlAddress.length != ''){
		location.href = urlAddress;
	}
}	
				
function filter(splashPageUrl, notificationPageUrl){
	var accessible=getCookie('accessible');
	setCookie("requestURL", escape(document.URL));
	
	if (accessible!=null && accessible!=''){
		if(accessible=='Yes'){
			
		}else if(accessible=='No'){
			Redirect(notificationPageUrl);
		}else{
			Redirect(splashPageUrl);
		}
	}else{
		Redirect(splashPageUrl);
	}
}			

	
				
/**
 * Splash page function
 */

function toggleDisclaimer() {
	var maskObj = document.getElementById("popup-mask");
	var disclaimerObj = document.getElementById("popup-disclaimer");
	
	maskResize();
	
	if ( maskObj.style.display == "none" ) {
		maskObj.style.display = "block";
		disclaimerObj.style.display = "block";
	} else {
		disclaimerObj.style.display = "none";
		maskObj.style.display = "none";
	}
}

function maskResize() {
	var maskObj = document.getElementById("popup-mask");
	
	var viewportwidth;
	var viewportheight;
	
	viewportwidth = document.body.scrollWidth+"px";
	
	var h1 = document.body.scrollHeight;
	var h2 = document.documentElement.clientHeight;
	
	if ( h1 > h2 ) {
		viewportheight = h1+"px";
	} else {
		viewportheight = h2+"px";
	}
	
	maskObj.style.width = viewportwidth;
	maskObj.style.height = viewportheight;
}

function scrollMonitor() {
	var h1;
	var disclaimerObj = document.getElementById("popup-disclaimer");
	
	if ( document.all ) {
		h1 = document.documentElement.scrollTop;
	} else {
		h1 = window.pageYOffset;
	}
	
	//disclaimerObj.style.top = h1+50+"px";
}

/**
 * Mouse over function
 */
var imgPath = "/static/BarCap/template/images/"

function changeBtImage(id, image){
	var goObj=document.getElementById(id);
	goObj.src = imgPath+image;
}

function goHover(hover) {
	var goObj = document.getElementById("goBtn");
	if ( hover > 0 ) {
		goObj.src = imgPath+"button-go2.gif";
	} else {
		goObj.src = imgPath+"button-go.gif";
	}
}

function hoverOut(obj) {
	var stylename = obj.className;
	obj.className = stylename;
}

function navIn(obj) {
	var stylename = obj.className;
	obj.className = stylename+"-hover";
}

function navOut(obj) {
	var stylename = obj.className;
	stylename = stylename.replace(/-hover/gi,"");
	obj.className = stylename;
}

/**
 * Open barclays group link
 */
function openBarclaysGroupLink(){
	var listBarcapGroups = document.getElementById("listBarcapGroups");
	if(listBarcapGroups!=null){
		if(listBarcapGroups.selectedIndex!=0){
			var url=listBarcapGroups.value;
			window.open(url);
		}
	}
}	

/**
 * Open new window
 */
function openNewWindow(uri){
	window.open(uri);
}

/**
 * Change introduction image
 */
function changeImage(){
	if(imageArray!=null){	
		var nodeCount = imageArray.length;
		var lookupId = "emptyImage";
		var image = document.getElementById(lookupId);
		if(image!=null){
			var random = Math.floor(Math.random()* nodeCount);
			var imageDetails = imageArray[random];
			var maxWidth = 571;
			var path = imageDetails["Path"];
			var width = imageDetails["Width"];
			var height = imageDetails["Height"];
			var altText = imageDetails["AltText"];
			var isPreview = imageDetails["IsPreview"];
			image.src = path;			
			image.title = altText;				
			image.alt = altText;
			if(width > maxWidth && isPreview == 'true'){
				image.className = "imageOversize";
				image.width = 569;
			}
		}
	}
}

/**
 * Change introduction two column image
 */
function changeIntroductionImageTwoColumn(){
	if(typeof imageArray != 'undefined'){	
		var nodeCount = imageArray.length;
		var lookupId = "emptyImage";
		var image = document.getElementById(lookupId);
		if(typeof image != 'undefined'){
			var random = Math.floor(Math.random()* nodeCount);
			var imageDetails = imageArray[random];
			var maxWidth = 797;
			var path = imageDetails["Path"];
			var width = imageDetails["Width"];
			var height = imageDetails["Height"];
			var altText = imageDetails["AltText"];
			var isPreview = imageDetails["IsPreview"];
			image.src = path;			
			image.title = altText;				
			image.alt = altText;
			image.width = width;
			image.height = height;
			if(width > maxWidth ){
				if(isPreview == 'true'){
					image.className = "imageOversize";
					image.width = 791;
				}else{
					image.width = 797;
				}
			}else{
				if(isPreview == 'true'){
					document.getElementById('introductionImageCaption').style.display = 'none'; 
				}
			}
		}
	}
}

/**
 * Change introduction image
 */
function changeIntroductionImageThreeColumn(){
	if(typeof imageArray != 'undefined'){	
		var nodeCount = imageArray.length;
		var lookupId = "emptyImage";
		var image = document.getElementById(lookupId);
		if(typeof image != 'undefined'){
			var random = Math.floor(Math.random()* nodeCount);
			var imageDetails = imageArray[random];
			var maxWidth = 584;
			var path = imageDetails["Path"];
			var width = imageDetails["Width"];
			var height = imageDetails["Height"];
			var altText = imageDetails["AltText"];
			var isPreview = imageDetails["IsPreview"];
			image.src = path;			
			image.title = altText;				
			image.alt = altText;
			image.width = width;
			image.height = height;
			if(width > maxWidth){
				if(isPreview == 'true'){
					image.className = "imageOversize";
					image.width = 578;
				}else{
					image.width = 584;
				}
			}else{
				if(isPreview == 'true'){
					document.getElementById('introductionImageCaption').style.display = 'none';
				} 
			}
		}
	}
}

/**
 * Change introduction image
 */
function changeIntroductionSplashImage(){
	if(typeof imageArray != 'undefined'){	
		var nodeCount = imageArray.length;
		var lookupId = "emptyImage";
		var image = document.getElementById(lookupId);
		if(typeof image != 'undefined'){
			var random = Math.floor(Math.random()* nodeCount);
			var imageDetails = imageArray[random];
			var maxWidth = 777;
			var path = imageDetails["Path"];
			var width = imageDetails["Width"];
			var height = imageDetails["Height"];
			var altText = imageDetails["AltText"];
			var isPreview = imageDetails["IsPreview"];
			image.src = path;			
			image.title = altText;				
			image.alt = altText;
			image.width = width;
			image.height = height;
			if(width > maxWidth){
				if(isPreview == 'true'){
					image.className = "imageOversize";
					image.width = 771;
				}else{
					image.width = 777;
				}
			}else{
				if(isPreview == 'true'){
					document.getElementById('introductionImageCaption').style.display = 'none';
				} 
			}
		}
	}
}


/**
 * Change introduction image
 */
function changeIntroductionImage(){
	if(imageArray!=null){	
		var nodeCount = imageArray.length;		
		if(nodeCount > 0){
			var lookupId = "introductionImage";
			var div = document.getElementById(lookupId);
			if(div!=null){	
				var random = Math.floor(Math.random()* nodeCount);
				var imageDetails = imageArray[random];
				var path = imageDetails["Path"];
				div.style.backgroundImage = "url('" + path + "')";
			}
		}
	}
}

/*
 * Check tab strip
 */ 
function checkTabStrip(){
	var selectedItem = document.getElementById("selectedItemVCMId");	
	if(selectedItem!=null){
		var selectItemId = selectedItem.value;
		if(selectItemId!=""){
			var link = document.getElementById(selectItemId);	
			if(link!=null){
				link.href= "javascript:void(0)";
				link.className = "tabStripDisabled";
				link.style.color = "#000000";
				link.style.textDecoration = "none";
			}
		}
	}	
}

/**
 * GetElementByClassName
 */				 
document.getElementsByClassName = function(clsName){
	var retVal = new Array();
	var elements = document.getElementsByTagName("*");
	for(var i = 0;i < elements.length;i++){
		if(elements[i].className.indexOf(" ") >= 0){
			var classes = elements[i].className.split(" ");
			for(var j = 0;j < classes.length;j++){
				if(classes[j] == clsName)
					retVal.push(elements[i]);
			}
		}
		else if(elements[i].className == clsName)
			retVal.push(elements[i]);
	}
	return retVal;
}

/**
 * Toggle menu
 */
function toggleMenu(id, useId, path){
	var acStretchers = document.getElementsByClassName('acStretchOut');  
	var acTogglers = document.getElementsByClassName('acToggle');
	var selectedItem = null;
	var selectedH2 = null;	
	if(useId){
		selectedItem = document.getElementById(id);
		selectedH2 = document.getElementById(id + "_h2");
	}
	else{
		selectedItem = acStretchers[id];
		selectedH2 = acTogglers[id];
	}
	if(selectedItem!=null && selectedH2!=null){
		//Store item style for later use
		var currentItemStyle = selectedItem.style.display;		
		//Only collapse menu when we can retrieve the selected item menu so that in case of errors, user will still
		//be able to navigate via all expanded menu.
		collapseMenu(acStretchers, acTogglers, path);
		if(currentItemStyle.toUpperCase()== "NONE" || currentItemStyle.toUpperCase() == ""){
			selectedItem.style.display = "INLINE";						
			selectedH2.style.backgroundImage = "url(" + path + "images/L1_arrow_selected.gif)";
		}
		else{
			selectedItem.style.display = "NONE";						
			selectedH2.style.backgroundImage = "url(" + path + "images/L1_arrow.gif)";
		}	
	}
}

/**
 * Close all menu
 */
function collapseMenu(acStretchers, acTogglers, path){
	for(var i=0; i< acStretchers.length; i++){
		acStretchers[i].style["display"] = "NONE";						
	}
	for(var i=0; i< acTogglers.length; i++){
		acTogglers[i].style.backgroundImage = "url(" + path + "images/L1_arrow.gif)";
	}
}

/**
 * Mega Flyout Dropdown Menu
 */
var CompatMode = 1;
var version = 0;
var megaStatus = 0;

if ( document.all ) {	
	version = parseFloat(navigator.appVersion.split("MSIE")[1]);
}

function IEVersion(){
	var _n=navigator,_w=window,_d=document;
	var version="NA";
	var na=_n.userAgent;
	var ieDocMode="NA";
	var ie8BrowserMode="NA";
	// Look for msie and make sure its not opera in disguise
	if(/msie/i.test(na) && (!_w.opera)){
		// also check for spoofers by checking known IE objects
		if(_w.attachEvent && _w.ActiveXObject){		
			// Get version displayed in UA although if its IE 8 running in 7 or compat mode it will appear as 7
			version = (na.match( /.+ie\s([\d.]+)/i ) || [])[1];
			// Its IE 8 pretending to be IE 7 or in compat mode		
			if(parseInt(version)==7){				
				// documentMode is only supported in IE 8 so we know if its here its really IE 8
				if(_d.documentMode){
					version = 8; //reset? change if you need to
					// IE in Compat mode will mention Trident in the useragent
					if(/trident\/\d/i.test(na)){
						ie8BrowserMode = "Compat Mode";
					// if it doesn't then its running in IE 7 mode
					}else{
						ie8BrowserMode = "IE 7 Mode";
					}
				}
			}else if(parseInt(version)==8){
				// IE 8 will always have documentMode available
				if(_d.documentMode){ ie8BrowserMode = "IE 8 Mode";}
			}
			// If we are in IE 8 (any mode) or previous versions of IE we check for the documentMode or compatMode for pre 8 versions			
			ieDocMode = (_d.documentMode) ? _d.documentMode : (_d.compatMode && _d.compatMode=="CSS1Compat") ? 7 : 5;//default to quirks mode IE5				   			
		}
	}
				 
	return {
		"UserAgent" : na,
		"Version" : version,
		"BrowserMode" : ie8BrowserMode,
		"DocMode": ieDocMode
	}			
}

if ( document.all ) {
	var browserObj = IEVersion();
	if ( browserObj.BrowserMode == "IE 8 Mode" ) {
		CompatMode = 0;
	}
}

function renderShadow() {
	if ( version == 6 ) {
		if ( document.getElementById("menu").children.length > 0 ) {
			DD_belatedPNG.fix('div.menu-shadow');
		} else {
			setTimeout("renderShadow()",500);
		}
	} else {
		setTimeout("megaStatus++",200);
	}
}

function megaHoverIn(id) {
	try {
		var navObj = document.getElementById("nav_"+id);
		try {
			var menuObj = document.getElementById("mm_"+id);
		} catch(E) {}
		
		if ( !navArray[id] ) {
			navArray[id] = [];
			navArray[id]["className"] = navObj.className;
		}
		navArray[id]["state"] = 1;
		
		var mainOffset = navBarObj.offsetLeft;
		var max = (navBarObj.clientWidth/2);
		var offsetLeft = navObj.offsetLeft;

		try {
			if ( jsonMenu[id].length > 0 ) {
				if ( megaStatus > 0 ) {
					menuObj.style.display = "block";
					navObj.className = "topNav-hover";
					
					if ( document.all && CompatMode > 0 ) {
						if ( offsetLeft-1 < max ) {
							menuObj.style.marginLeft = offsetLeft+"px";
						} else {
							menuObj.style.marginLeft = (offsetLeft-menuObj.offsetWidth+navObj.offsetWidth-2+8)+"px";
						}
					} else {
						if ( offsetLeft-mainOffset+1 < max ) {
							menuObj.style.left = offsetLeft+"px";
						} else {
							menuObj.style.left = (offsetLeft-menuObj.offsetWidth+navObj.offsetWidth-2+8)+"px";
						}
					}
				}
				
			} else {
				navObj.className = "topNav-hover-empty";
			}
		} catch(E) {
			navObj.className = "topNav-hover-empty";
		}

	} catch(E) {}
}

function megaHoverOut(id) {
	try {
		navArray[id]["state"] = 0;
		
		try {
			if ( jsonMenu[id].length > 0 ) {
				setTimeout("megaHoverCheck('"+id+"')",50);
			} else {
				var navObj = document.getElementById("nav_"+id);
				navObj.className = navArray[id]["className"];
			}
		} catch(E) {
			var navObj = document.getElementById("nav_"+id);
			navObj.className = navArray[id]["className"];
		}
	} catch(E) {}
}

function megaHoverCheck(id) {
	try {
		var navObj = document.getElementById("nav_"+id);
		var menuObj = document.getElementById("mm_"+id);
		
		if ( navArray[id]["state"] < 1 ) {
			navObj.className = navArray[id]["className"];
			menuObj.style.display = "none";
		}
	} catch(E) {}
}

/**
 * New Landing Page Mouse Over Function
 */
function landingPageHover(obj,className) {
	obj.className = className;

		var headerObj = obj.getElementsByTagName("div");
		for ( var i=0; i<headerObj.length; i++ ) {
			if ( headerObj[i].className == "content-landing-header" || headerObj[i].className == "content-landing-header-hover" ) {
				if ( className.indexOf("-hover") >= 0 ) {
					headerObj[i].className = "content-landing-header-hover";
				} else {
					headerObj[i].className = "content-landing-header";
				}
			}
		}
}

function gotoURL(urkString) {
	document.location = urkString;
}
/**
 * New Left Navigation Mouse Over Function
 */

function navNewHover(obj,stylestring) {
	obj.className = stylestring;
}


function validateList(fieldValue, listName){ 
	var xmlhttp; 
	var resultStr=""; 
	if (window.XMLHttpRequest){ 
	  xmlhttp=new XMLHttpRequest(); 
	}else { 
	  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
	} 
	var xmlhttpurl = "/vgn-ext-templating/listValidator.jsp?fieldValue="+fieldValue+"&listName="+listName; 
	xmlhttp.open("GET",xmlhttpurl,false); 
	xmlhttp.send(); 
	resultStr=xmlhttp.responseText; 
	return resultStr; 
} 

function disclaimerFilter(cookieRequired, refURLRequired, refURL, redirectURL, referenceURLCookie){
	
	var accessible=getCookie('accepted'); 
	var requestURL=getCookie('requestURL'); 
	
	cookieRequired = cookieRequired.toLowerCase();
	refURLRequired = refURLRequired.toLowerCase();
	
	var doRedirect = 'false';
	
	//when accepted cookie is not already set, set it to "No"
	if (accessible==null || accessible=='')
	{
		accessible='No';
		setCookie('accepted', 'No');
	}
	
	//request is being redirected only under these conditions
	//1. user has not accepted the disclaimer pages and tries to directly access the india documents list page
	//2. user has not accepted the disclaimer pages and tries to directly access any of the india documents
	//3. user directly tries to access the disclaimers pages 2 - postal code validation or 3 - disclaimer acceptance page
	if(	!(cookieRequired=='yes' && accessible=='Yes') && 
			(refURLRequired=='yes' && referenceURLCookie.indexOf('/indiadisclaimer')==-1 && referenceURLCookie.indexOf(refURL)==-1) )
	{	
		doRedirect = 'true';
	}
	
	//if the user has accepted the disclaimer acceptance page then the cookie accepted is set as yes
	if (cookieRequired=='yes' && refURLRequired=='yes' && referenceURLCookie.indexOf(refURL) != -1)
	{
		setCookie('accepted', 'Yes');
		accessible='Yes';
	
		//if the user directly tries to access any of the india documents and then accepts all the disclaimer pages; request
		//is being redirected to the static page document URL
		if(requestURL != null && requestURL != '')
		{
			setCookie('requestURL','');
			Redirect(requestURL);
		}
	
	}
	else if(doRedirect == 'true')
	{
		Redirect(redirectURL);
	}
}			
