HW.List = {
	convertClass:'jsVerticalAlignList',
	/*initStyleClass:'octoListStyle09',
	styleClass:'octoListStyle09',*/
	// adjust the number of column per row here
	numberOfColumn:4,
	convertList:function(list){
		// get all the list items before clearing the container
		var items = list.getElementsByTagName("li") || [];		
		// a placeholder to keep the content
		var content = '';
		// rebuild the original list into multiple lists		
		for(var i=0,j=items.length; i<j; i++){

			// first item in a row
			if( (i+1) % this.numberOfColumn === 1) {
				content = content + '<ul><li>' + items[i].innerHTML + '</li>';	
			} 
			// last item in a row
			else if ( (i+1) % this.numberOfColumn === 0) {
				content = content + '<li>' + items[i].innerHTML + '</li></ul>';	
			}
			// other items in a row
			else {
				content = content + '<li>' + items[i].innerHTML + '</li>';
			}
		}
		// if the list end tag is not in the content due to the number of column in the last row 
		// is less than our desired one, we need to add the end tag back.
		if( content.substring( content.length - 5 ) != '</ul>' ){
			content = content + '</ul>';	
		}
		// put those lists as a list item
		content = '<li>' + content + '</li>';
		// clear the container
		HW.empty(list);
		// setup a new list
		HW.createNode("ul",list,content,null);		
		// at the end, update the content style as JS version
		/*if(HW.hasClass(list,this.initStyleClass) ) {
			HW.removeClass(list,this.initStyleClass);
			HW.addClass(list,this.styleClass);
		}*/
	},	
	init:function(){
		var lists = $$(this.convertClass,document.body,'div');
		if(lists.length>0){
			for(var i=0,list; list = lists[i]; i++) {
				this.convertList(list);	
			}						
		}		
	}
};

HW.Footer = {
	generateRandomFooter:function(){
		if ($('jstRandomFooterWrapper')){
			var obj = this;
			var fileLocation = ($('jsFooterPath')) ? $('jsFooterPath').value : '';

			new HW.Ajax(fileLocation,function(response){																														
				var footerNumber = response.xml.getElementsByTagName("footer");
				//var randomnumber = Math.floor(Math.random()*41);
				var randomnumber = Math.floor(Math.random()*footerNumber.length);				
				var xml = response.xml.getElementsByTagName("footers")[0];
				if(HW.isIE != true)randomnumber = randomnumber*2+1;
				HW.addClass($('jstRandomFooterWrapper'), xml.childNodes[randomnumber].getElementsByTagName("style01")[0].childNodes[0].nodeValue);
				$('jstRandomFooterHeader').innerHTML = "<img src='"+xml.childNodes[randomnumber].getElementsByTagName("headerImg")[0].childNodes[0].nodeValue+"' alt='"+xml.childNodes[randomnumber].getElementsByTagName("header")[0].childNodes[0].nodeValue+"' />"
				$('jstRandomFooterParagraph').innerHTML = xml.childNodes[randomnumber].getElementsByTagName("p")[0].childNodes[0].nodeValue;
				$('jstRandomFooterParagraph').parentNode.parentNode.style.backgroundImage = "url("+xml.childNodes[randomnumber].getElementsByTagName("img01")[0].childNodes[0].nodeValue+")";
																				
				if ((xml.childNodes[randomnumber].getElementsByTagName("link")[0].childNodes[0].nodeValue != "null") && (xml.childNodes[randomnumber].getElementsByTagName("url")[0].childNodes[0].nodeValue != "null"))				if ((xml.childNodes[randomnumber].getElementsByTagName("link")[0].childNodes[0].nodeValue != "null") && (xml.childNodes[randomnumber].getElementsByTagName("url")[0].childNodes[0].nodeValue != "null"))
					$('jstRandomFooterLink').innerHTML = "<a href=\""+xml.childNodes[randomnumber].getElementsByTagName("url")[0].childNodes[0].nodeValue+"\">"+xml.childNodes[randomnumber].getElementsByTagName("link")[0].childNodes[0].nodeValue+"</a>"; 

				else if ((xml.childNodes[randomnumber].getElementsByTagName("link")[0].childNodes[0].nodeValue != "null") && (xml.childNodes[randomnumber].getElementsByTagName("url")[0].childNodes[0].nodeValue == "null")){
					
					$('jstRandomFooterLink').innerHTML = xml.childNodes[randomnumber].getElementsByTagName("link")[0].childNodes[0].nodeValue.replace(" (", "<br /> (");
					HW.addClass($('jstRandomFooterLink'), "octoPageFooterStyle01ca");
				}
			});
		}
	}
};
HW.Utils = {};
HW.Utils.contains = function(obj,target){
	return(obj.indexOf(target) > -1);
};

HW.Milestone = {
	init:function(){
			this.butttonYear = $$('jstMilestoneYear',document.body,'A');
			this.contentYear = $$('jstMilestoneContent',document.body,'DIV');
			var yearWidth = 0;
			
			// initPos represents the predefined selection, '2' represents 1997
			var initPos = 2; 
			var hpi = location.href.indexOf("#_");			
			if(hpi > -1) {
				var hpy = location.href.substring(hpi + 2);
				for(var i=0,j=this.contentYear.length; i<j ;i++) {	
					if(this.contentYear[i].id == hpy){
						initPos = i;
						break;
					}
				}			
			}

			var leftPos = 0;			
			for(var i=0;i < this.contentYear.length;i++) {
				yearWidth += this.butttonYear[i].parentNode.offsetWidth;
				if (i === initPos) {
					leftPos = (yearWidth > 740) ? 1 : 0;
				}				
			}
			
			var yearOffset = $('jstMilestoneUL').parentNode.offsetWidth - yearWidth;
			
			HW.setStyle($('jstMilestoneUL').parentNode, {overflow: 'hidden'});
			
			if(leftPos > 0) {
				HW.setStyle($('jstMilestoneUL'), {width: '10000px', left: yearOffset+'px'});						
			} else {
				HW.setStyle($('jstMilestoneUL'), {width: '10000px', left: '0px'});						
			}
						
			var obj = this;
			for(var i=0;i < this.contentYear.length;i++) {
			// default year is 1997, the second element				
				if(i != initPos) {
					this.contentYear[i].style.display = 'none';					
				}
				else {
					HW.addClass(this.butttonYear[i].parentNode, 'selected');					
				}
			}
			
			for(var i=0;i < this.butttonYear.length;i++) {
				HW.attachEvent(this.butttonYear[i],'click',function(e){
					HW.preventDefault(e);					
					e=e||window.event;
					trg = e.srcElement||e.target;
					for(var i=0;i < obj.butttonYear.length;i++) {
						if( HW.hasClass(obj.butttonYear[i].parentNode, 'selected')) HW.removeClass(obj.butttonYear[i].parentNode, 'selected');
						if( obj.contentYear[i].style.display != 'none') obj.contentYear[i].style.display = 'none';
					}
					HW.addClass(trg.parentNode, 'selected');
					var contentID = trg.href.substr(trg.href.lastIndexOf("#")+1);
					var hp = location.href.indexOf("#");
					location = (hp > -1) ? location.href.substring(0,hp) + "#_" + contentID : location.href + "#_" + contentID;
					// always display content as the last step of procedure
					HW.setFade($(contentID), 20);
					$(contentID).style.display = '';
					HW.Animate.fade($(contentID), 100, 500);
				});
			}
			HW.attachEvent($('jstMilestoneLeft'),'click',function(e){
				HW.preventDefault(e);
				HW.Animate.move($('jstMilestoneUL'), {x:0,y:0}, 1000);
			});
			HW.attachEvent($('jstMilestoneRight'),'click',function(e){
				HW.preventDefault(e);
				HW.Animate.move($('jstMilestoneUL'), {x:yearOffset,y:0}, 1000);
			});
		}
}
HW.listTransform = {
	init:function(){
		var divListTransform = $('jsListTransform');
		var arrUL = $$('jstList',divListTransform,'UL');
		var content = $('jsListSelectText')?'<option value="" selected="selected">'+$('jsListSelectText').value+'</option>':'';
		var newPDM = HW.createNode('SELECT',divListTransform,'',null);
		for (var j=0; j<arrUL.length; j++) {
			var catClass = 'jvsCat';
			var subContent = '';
			var arrA = $$('', arrUL[j], 'A');
			for (var i=0; i<arrA.length; i++) {
				var strAnchor = arrA[i].href;
				if (strAnchor.indexOf('#')>-1) {strAnchor = strAnchor.split('#')[1]};
				$(strAnchor).style.display = 'none';
				strAnchor = '#'+strAnchor;
				subContent += '<option value="'+strAnchor+'">'+arrA[i].innerHTML+'</option>';
			}
			if (arrUL[j].className.indexOf(catClass)>-1) {
				var reg = new RegExp("(^|\\w*)"+catClass+"(\\d*|([\\w* ]))");
				var cls = reg.exec(arrUL[j].className)[0];
				var catName = $$(cls,divListTransform,'h2');
				if (catName.length>0) {
					subContent = '<optgroup label="'+catName[0].innerHTML+'">'+subContent+'</optgroup>';
				}
			}
			content += subContent;
		}
		content = '<select id="jstTransformedPDM">'+content+'</select>';
		divListTransform.innerHTML = content;
		this.hideAll();
		this.attachEventToOptions();
		this.showDefault();
	},
	hideAll:function(){
		var arrContent = $$('jsListTransformContent', null, 'DIV');
		for (var i=0; i<arrContent.length; i++) {
			arrContent[i].style.display = 'none';
		}
	},
	showOneSection:function(optionID){
		optionID = optionID==null?0:optionID;
		var arrContent = $$('jsListTransformContent', null, 'DIV');
		var selectedItem = $('jstTransformedPDM').options[optionID];
		selectedItem.selected = true;
		if (selectedItem.value!="") {
			var contentID = selectedItem.value.split('#')[1];
			$(contentID).style.display = 'block';
		}
	},
	showDefault:function(){
		var showDefaultClass = 'jsShowDefault';
		if ($('jsListTransform').className.indexOf(showDefaultClass)>-1) {
			var reg = new RegExp("(^|\\w*)"+showDefaultClass+"(\\d*|([\\w* ]))");
			var cls = reg.exec($('jsListTransform').className)[0];
			var optionID = parseInt(cls.split(showDefaultClass)[1]);
			HW.listTransform.showOneSection(optionID);
		}
		if (location.href.indexOf("#")>-1) {
			var sectionID = location.href.split("#")[1];
			if (sectionID=="octoTop") {
				location.href = location.href.split("#")[0];
			}
			else if ($(sectionID)) {
				HW.listTransform.hideAll();
				$(sectionID).style.display = 'block';
				scroll(0,0);
				var showDiv = $(sectionID);
				while (!HW.hasClass(showDiv,"jsListTransformContent")) {
					showDiv = showDiv.parentNode;
				}
				showDiv.style.display = 'block';
				var arrOption = $$('', $('jstTransformedPDM'), 'OPTION');
				for (var i=0; i<arrOption.length; i++) {
					if ($('jstTransformedPDM').options[i].value.split('#')[1]==showDiv.id) {
						$('jstTransformedPDM').options[i].selected = true;
					}
				}
			}
		}
	},
	attachEventToOptions:function(){
		$('jstTransformedPDM').onchange = function() {
			if (location.href.indexOf("#")>-1) {
				url = location.href.split('#')[0]+this.value;
			}else
				url = location.href+this.value;
			window.location = url;
			HW.listTransform.hideAll();
			HW.listTransform.showOneSection(this.selectedIndex);
		}
	}
}
HW.listCareers = {
	init:function(){
		var divListCareers = $('jsListCareers');
		var arrA = $('jsListOption').getElementsByTagName("a");
		var content = $('jsListSelectText')?'<option value="-" selected="selected">'+$('jsListSelectText').value+'</option>':'';
		this.viewAllText = $('jsListSelectText02').value;
		this.notAvailableText = $('jsListSelectText03').value;
		var newPDM = HW.createNode('SELECT',divListCareers,'',null);
		for (var i=0; i<arrA.length; i++) {
			var strAnchor = arrA[i].href;
			if (strAnchor.indexOf('#')>0) {strAnchor = strAnchor.split('#')[1]};
			content += '<option value="'+strAnchor+'">'+arrA[i].innerHTML+'</option>';
		}
		content = '<select id="jstTransformedPDM">'+content+'</select>';
		divListCareers.innerHTML = content;
		
		var resultTR = $('jstCareersTableBody').getElementsByTagName("tr");
		var tempID;
		for (var i=0; i<resultTR.length; i++) {
			if (resultTR[i].id != ""){
				tempID = resultTR[i].id;
			}
			HW.addClass(resultTR[i], "jst"+tempID);
			HW.addClass(resultTR[i], "jstOriginal");
		}
		this.allPost = $('jstCareersTableBody').innerHTML;
		//this.hideAll();
		this.attachEventToOptions();
		//this.showDefault();
	},
	attachEventToOptions:function(){
		var obj = this;
		this.tempTR = null;
		$('jstTransformedPDM').onchange = function() {
			
			if (this.value != "-"){
				this.options[0].text = obj.viewAllText;

				var resultTR = $('jstCareersTableBody').getElementsByTagName("tr");
				var tempCount = 0;
				for (var i=0; i<resultTR.length; i++) {
						if( HW.hasClass(resultTR[i], "jst"+this.value)) {resultTR[i].style.display = ''; tempCount += 1; }
						else resultTR[i].style.display = 'none';
				}
				if(tempCount == 0) {
					if (obj.tempTR == null)
					{
						obj.tempTR = HW.createNode('TR',$('jstCareersTableBody') );
						HW.createNode('TD', obj.tempTR, this.options[this.selectedIndex].text, {className:'octoContentStyle66a octoContentStyle66d'} );
						HW.createNode('TD', obj.tempTR );
						HW.createNode('TD', obj.tempTR, obj.notAvailableText, {className:'octoContentStyle66b'} );
					}else
					{
						HW.setStyle(obj.tempTR, {display:''});
						obj.tempTR.getElementsByTagName("td")[0].innerHTML = this.options[this.selectedIndex].text;
					}
				}
			} else {
				var resultTR = $('jstCareersTableBody').getElementsByTagName("tr");
				for (var i=0; i<resultTR.length; i++) {
					if (HW.hasClass(resultTR[i], "jstOriginal"))
						HW.setStyle(resultTR[i], {display:''});
					else {
						HW.setStyle(resultTR[i], {display:'none'});
					}
				}
			}
		}
	}
}
HW.redeemInfoLink = {
	divShowing: null,
	init:function(){
		var aInfo = $$('jstInfoLink', document.body,'a');
		var aClose = $$('octoContentStyle39InfoA', document.body,'a');
		var divTarget = $$('jstInfoTarget', document.body,'div');
		var obj = this;
		for (i=0; i<aInfo.length; i++){
			
			//HW.setStyle(divTarget[i], {display:'none'});
			HW.setStyle(divTarget[i],{position:'absolute',top:'-9999em'});
			HW.attachEvent(aInfo[i],'click',function(e){
				HW.preventDefault(e);
				e=e||window.event;
				trg = e.srcElement||e.target;
				if (obj.divShowing != null) { 
				//	HW.setStyle(obj.divShowing, {display:'none'}); 
				HW.setStyle(obj.divShowing,{top:'-9999em'});			
				}
				var offsetTop = -10;
				var offsetLeft = -10;
				$(trg.href.split('#')[1]).style.display = 'block';
				obj.divShowing = $(trg.href.split('#')[1]);
				HW.setStyle($(trg.href.split('#')[1]), {display:'block', position:'absolute', top: (obj.findPos(trg)[1]-offsetTop)+'px', left: (obj.findPos(trg)[0]-offsetLeft)+'px'});
				HW.setStyle($$('octoContentStyle39InfoA', $(trg.href.split('#')[1]),'a')[0], {display:'block'});
			});
			HW.attachEvent(aClose[i],'click',function(e){
				HW.preventDefault(e);
				e=e||window.event;
				trg = e.srcElement||e.target;
				//HW.setStyle(trg.parentNode, {display:'none'});
				HW.setStyle(trg.parentNode, {top:'-9999em'});
			});
		}
	},
	findPos:function(o) {
		var curleft = curtop = 0;
		while (HW.hasClass(o, "octoContentStyle39") == false) {
			curleft += o.offsetLeft;
			curtop += o.offsetTop;
			o = o.offsetParent;
		} 
		return [curleft,curtop];
	}
}
HW.AlignBottom = function() {
	var alignItems = $$('jstAlignBottom', document.body, null);
	if (alignItems.length > 1){
		var highestHeight = 0;
		for (var i = 0; i<alignItems.length; i++){
			highestHeight = Math.max(highestHeight,alignItems[i].offsetHeight) 
		}
		for (var i = 0; i<alignItems.length; i++){
			if (HW.isIE){
				alignItems[i].style.height = highestHeight+'px';
				alignItems[i].style.height = alignItems[i].offsetHeight-16+'px';
			}
			else{
				alignItems[i].style.minHeight = highestHeight+'px';
			}
		}
	}
}

HW.Filter = {
	
	init:function(){
		// no result message
		var message = ($('jsFilterNotAvailable').value) ? $('jsFilterNotAvailable').value : '';
		var outerContainer = $('jsFilter');
		// create filter groups for show/hide
		var group1 = HW.createNode('DIV',outerContainer,null,{id:'jsFilterType1Content',className:'jsFilterRespondent'}).setStyle({display:'none'});
		var group2 = HW.createNode('DIV',outerContainer,null,{id:'jsFilterType2Content',className:'jsFilterRespondent'}).setStyle({display:'none'});
		var group3 = HW.createNode('DIV',outerContainer,null,{id:'jsFilterType3Content',className:'jsFilterRespondent'}).setStyle({display:'none'});
		var group4 = HW.createNode('DIV',outerContainer,null,{id:'jsFilterType4Content',className:'jsFilterRespondent'}).setStyle({display:'none'});
		// gather group information
		var group1Content = $$('jsFilterType1',outerContainer,'div');
		var group2Content = $$('jsFilterType2',outerContainer,'div');
		var group3Content = $$('jsFilterType3',outerContainer,'div');
		var group4Content = $$('jsFilterType4',outerContainer,'div');
		

		// generate group content
		// first group
		if(group1Content.length > 0) {
			var temp = null;		
			for(var i=0,j=group1Content.length; i<j; i++) {
				if(i%4 === 0){
					temp = document.createElement('div');
					temp.className = 'row row00';
					HW.createNode('div',temp,group1Content[i].innerHTML,{className:'jsFilterContent jsFilterType1'});
				} else if(i%4 === 3) {
					HW.createNode('div',temp,group1Content[i].innerHTML,{className:'jsFilterContent jsFilterType1'});
					group1.appendChild(temp);
				} else {
					HW.createNode('div',temp,group1Content[i].innerHTML,{className:'jsFilterContent jsFilterType1'});					
				}			
			}
			// for the case if the current row has less than 4 elements, we will add that manually
			group1.appendChild(temp);
			temp = null;			
		} else {
			HW.createNode('p',group1,message).setStyle({margin:'21px 0 0 20px'});
		}

		// second group
		if(group2Content.length > 0) {
			var temp = null;		
			for(var i=0,j=group2Content.length; i<j; i++) {
				if(i%4 === 0){
					temp = document.createElement('div');
					temp.className = 'row row00';
					HW.createNode('div',temp,group2Content[i].innerHTML,{className:'jsFilterContent jsFilterType2'});
				} else if(i%4 === 3) {
					HW.createNode('div',temp,group2Content[i].innerHTML,{className:'jsFilterContent jsFilterType2'});
					group2.appendChild(temp);
				} else {
					HW.createNode('div',temp,group2Content[i].innerHTML,{className:'jsFilterContent jsFilterType2'});					
				}			
			}
			// for the case if the current row has less than 4 elements, we will add that manually
			group2.appendChild(temp);
			temp = null;			
		} else {
			HW.createNode('p',group2,message).setStyle({margin:'21px 0 0 20px'});
		}

		// third group
		if(group3Content.length > 0) {
			var temp = null;		
			for(var i=0,j=group3Content.length; i<j; i++) {
				if(i%4 === 0){
					temp = document.createElement('div');
					temp.className = 'row row00';
					HW.createNode('div',temp,group3Content[i].innerHTML,{className:'jsFilterContent jsFilterType3'});
				} else if(i%4 === 3) {
					HW.createNode('div',temp,group3Content[i].innerHTML,{className:'jsFilterContent jsFilterType3'});
					group2.appendChild(temp);
				} else {
					HW.createNode('div',temp,group3Content[i].innerHTML,{className:'jsFilterContent jsFilterType3'});					
				}			
			}
			// for the case if the row has less than 4 elements, we will add that explicitly
			group3.appendChild(temp);
			temp = null;			
		} else {
			HW.createNode('p',group3,message).setStyle({margin:'21px 0 0 20px'});
		}
		
		// fourth group
		if(group4Content.length > 0) {
			var temp = null;		
			for(var i=0,j=group4Content.length; i<j; i++) {
				if(i%4 === 0){
					temp = document.createElement('div');
					temp.className = 'row row00';
					HW.createNode('div',temp,group4Content[i].innerHTML,{className:'jsFilterContent jsFilterType4'});
				} else if(i%4 === 3) {
					HW.createNode('div',temp,group4Content[i].innerHTML,{className:'jsFilterContent jsFilterType4'});
					group4.appendChild(temp);
				} else {
					HW.createNode('div',temp,group4Content[i].innerHTML,{className:'jsFilterContent jsFilterType4'});					
				}			
			}
			// for the case if the current row has less than 4 elements, we will add that manually
			group4.appendChild(temp);
			temp = null;			
		}	else {
			HW.createNode('p',group4,message).setStyle({margin:'21px 0 0 20px'});
		}	

		var respondents = $$('jsFilterRespondent',outerContainer,'div');
		// handle events of triggers
		var triggers = $$('jsFilterTrigger',outerContainer,'a');
		for(var i=0,j=triggers.length;i<j;i++) {
			HW.attachEvent(triggers[i],'click',function(e){
				HW.preventDefault(e);
				e=e||window.event;
				var trg = e.srcElement||e.target;
				// target should be one of the inner element of the anchor, so move up back to the anchor				
				while(!HW.hasClass(trg,'jsFilterTrigger')){
					trg = trg.parentNode;
				}
				// we are at the anchor, perform any action if the latest selection is not in current mode
				if(!HW.hasClass(trg.parentNode,'current')){
					// set a marker to indicate the current selection, then clear the previous selection
					HW.addClass(trg.parentNode,'jsCurrent');
					for(var m=0,n=triggers.length;m<n;m++){
						if(HW.hasClass(triggers[m].parentNode,'current')){
							HW.removeClass(triggers[m].parentNode,'current');
						} else if(HW.hasClass(triggers[m].parentNode,'jsCurrent')) {
							HW.removeClass(triggers[m].parentNode,'jsCurrent');
							HW.addClass(triggers[m].parentNode,'current');
							HW.setStyle(triggers[m],{textDecoration:'none'});
						}
					}
					// reflect corresponding respondent
					if(respondents.length > 0) {
						// clear all respondents
						for(var m=0,n=respondents.length;m<n;m++) {
							HW.setStyle(respondents[m],{display:'none'});
						}
						if(HW.hasClass(trg,'jsFilterType1')){
							$('jsFilterType1Content').setStyle({display:'block'});
						} else if(HW.hasClass(trg,'jsFilterType2')){
							$('jsFilterType2Content').setStyle({display:'block'});
						} else if(HW.hasClass(trg,'jsFilterType3')){
							$('jsFilterType3Content').setStyle({display:'block'});
						} else if(HW.hasClass(trg,'jsFilterType4')){
							$('jsFilterType4Content').setStyle({display:'block'});
						} else {
							$('jsFilterTypeClearContent').setStyle({display:'block'});							
						}
					}

				}				
			});
		}
		
	}
	
};
/*
HW.Language = {
	init:function(){
		var lsl = $$('jsLanguageSwitch', document.body,'a');
		if(lsl.length > 0){
			for(var i=0,j=lsl.length;i<j;i++){
				HW.attachEvent(lsl[i],'click',
					function(e){
						if(HW.Utils.contains(location.href,'#')){
							e=e||window.event;
							trg = e.srcElement||e.target;
							trg.href = trg.href + location.href.substring(location.href.indexOf('#'));							
						}
					}				
				);
			}
		}
	}
};*/
/*
HW.Language = {
	init:function(){
		var lsl = $$('jsLanguageSwitch', document.body,'a');		
		if(lsl.length > 0){
			for(var i=0,j=lsl.length;i<j;i++){

				HW.attachEvent(lsl[i],'click',
					function(e){
						var protocol = location.href.indexOf("ht"+"tps://") >=0 ?  "ht"+"tps://" :  "ht"+"tp://";
						var hanwebhost = "sc.octopuscards.com";
						var trg = e.srcElement||e.target;
						var targetLanguage = trg.attributes['language'].value;
						var ntarget = trg.href;

						var anchor = "#";
						if (location.href.indexOf(anchor)>=0) {
							ntarget = ntarget + location.href.substring(location.href.indexOf(anchor));
						} else {
							var param = "?";
							if (location.href.indexOf(param)>=0) {
								ntarget = ntarget + location.href.substring(location.href.indexOf(param));
							}
						}

						var index_page = "index.html";
						if (location.href.indexOf(index_page)<0) {
							var current_filename;

							if (location.href.indexOf("/en/")>=0) {
								current_filename = location.href.substring(location.href.indexOf("/en/")+4);
							} else 
								if (location.href.indexOf("/tc/")>=0) {
									current_filename = location.href.substring(location.href.indexOf("/tc/")+4);
								} else 
									if (location.href.indexOf("/sc/")>=0) {
										current_filename = location.href.substring(location.href.indexOf("/sc/")+4);
									}
							ntarget = ntarget.replace(index_page,current_filename);
						}

						if (ntarget.indexOf(protocol+hanwebhost+"/gb/")>=0){ // break down string to avoid hanweb translation
							ntarget = ntarget.replace(hanwebhost+"/gb/","");

							if (targetLanguage == "/en/"){
								ntarget = ntarget.replace("/tc/","/en/");
							}
						} else {
							if (targetLanguage == "/sc/"){
								if (ntarget.indexOf("/en/")>=0) {
						            ntarget = ntarget.href.replace("/en/","/tc/");
					            }
					            ntarget = ntarget.replace(protocol,"");
					            ntarget = protocol+hanwebhost+"/gb/"+ntarget;
					        }
					    }
						trg.href = ntarget;
					}
				);
			}
		}
	}
}

HW.ChineseLabel = {
	init:function(){
		var protocol = location.href.indexOf("ht"+"tps://") >=0 ?  "ht"+"tps://" :  "ht"+"tp://";
		var hanwebhost = "sc.octopuscards.com";
		var ntarget = location.href;
		var tc = $$('jsLanguageTC', document.body,'a');
		var sc = $$('jsLanguageSC', document.body,'span');

		if (ntarget.indexOf(protocol+hanwebhost+"/gb/")<0) {
			if(tc.length > 0){
				for(var i=0,j=tc.length;i<j;i++) {
					if(sc.length > 0){
						for(var x=0,y=sc.length;x<y;x++) {
							tc[i].attributes['language'].value = sc[x].attributes['language'].value;
							tc[i].innerHTML = sc[x].innerHTML;
						}
					}
				}
			}
		}
	}
}*/

HW.Language = {
	init:function(){
		var toEN = $$('jsLanguageEN', document.body,'a');
		if(toEN.length > 0){	// target lancuage is English
			for(var i=0,j=toEN.length;i<j;i++){
				HW.attachEvent(toEN[i],'click',
					function(e) {
						var protocol = location.href.indexOf("ht"+"tps://") >=0 ?  "ht"+"tps://" :  "ht"+"tp://";
						var hanwebhost = "sc.octopuscards.com";
						// var hanwebhost = "192.168.11.30:9090";
						var trg = e.srcElement||e.target;
						var ntarget = location.href;

						if (ntarget.indexOf(protocol+hanwebhost+"/gb/")>=0){ // break down string to avoid hanweb translation
							ntarget = ntarget.replace(hanwebhost+"/gb/","");
						}
														
						if (ntarget.indexOf("/tc/")>=0){  // if current language is Translation Chinese
							ntarget = ntarget.replace("/tc/","/en/");
						}
									
						trg.href = ntarget;
					}
				);
			}
		}

		var toTC = $$('jsLanguageTC', document.body,'a');
		if(toTC.length > 0){	// target lancuage is Translation Chinese
			for(var i=0,j=toTC.length;i<j;i++){
				HW.attachEvent(toTC[i],'click',
					function(e) {
						var protocol = location.href.indexOf("ht"+"tps://") >=0 ?  "ht"+"tps://" :  "ht"+"tp://";
						var hanwebhost = "sc.octopuscards.com";
						// var hanwebhost = "192.168.11.30:9090";
						var trg = e.srcElement||e.target;
						var ntarget = location.href;

						if (ntarget.indexOf(protocol+hanwebhost+"/gb/")>=0){ // break down string to avoid hanweb translation
							ntarget = ntarget.replace(hanwebhost+"/gb/","");
						}
														
						if (ntarget.indexOf("/en/")>=0){  // if current language is English
							ntarget = ntarget.replace("/en/","/tc/");
						}
									
						trg.href = ntarget;
					}
				);
			}
		}

		var toSC = $$('jsLanguageSC', document.body,'a');
		if(toSC.length > 0){	// target lancuage is Simplified Chinese
			for(var i=0,j=toSC.length;i<j;i++){
				HW.attachEvent(toSC[i],'click',
					function(e) {
						var protocol = location.href.indexOf("ht"+"tps://") >=0 ?  "ht"+"tps://" :  "ht"+"tp://";
						var hanwebhost = "sc.octopuscards.com";
						// var hanwebhost = "192.168.11.30:9090";
						var trg = e.srcElement||e.target;
						var ntarget = location.href;

						if (ntarget.indexOf("/en/")>=0){ // if current language is English
							ntarget = ntarget.replace("/en/","/tc/");
						}
						if (ntarget.indexOf(protocol+hanwebhost+"/gb/")<0){  // add hanweb translation server
							ntarget = protocol + hanwebhost + "/gb/" + ntarget.replace(protocol,"");
						}
								
						trg.href = ntarget;
					}
				);
			}
		}
	}
}

HW.ChineseLabel = {
	init:function(){
		var protocol = location.href.indexOf("ht"+"tps://") >=0 ?  "ht"+"tps://" :  "ht"+"tp://";
		var hanwebhost = "sc.octopuscards.com";
		// var hanwebhost = "192.168.11.30:9090";
		var ntarget = location.href;
			
		if (ntarget.indexOf(protocol+hanwebhost+"/gb/") < 0){  // if no translation
			if (ntarget.indexOf("/en/")>=0){ // if current language is English
				var en = $$('jsLanguageEN', document.body,'a');
				if(en.length > 0){
					for(var i=0;i<en.length;i++) {
						var parent = en[i].parentNode;
						parent.removeChild(en[i]);
						break;
					}
				}
			}
			if (ntarget.indexOf("/tc/")>=0){ // if current language is Translation Chinese
				var tc = $$('jsLanguageTC', document.body,'a');
				if(tc.length > 0){
					for(var i=0;i<tc.length;i++) {
						var parent = tc[i].parentNode;
						parent.removeChild(tc[i]);
						break;
					}
				}
			}
		} else {
			// current language is Simplified Chinese
			var sc = $$('jsLanguageSC', document.body,'a');
			if(sc.length > 0){
				for(var i=0;i<sc.length;i++) {
					var parent = sc[i].parentNode;
					parent.removeChild(sc[i]);
					break;
				}
			}
		}
	}
}

HW.SearchBox = {
	init:function(){
		var lsl = $$('jsSearchBox', document.body,'input');
		if(lsl.length > 0){
			for(var i=0,j=lsl.length;i<j;i++){
				lsl[i].style.textTransform="none";
				lsl[i].style.color="black";
				HW.attachEvent(lsl[i],'focus',
					function(e){
						var trg = e.srcElement||e.target;
						trg.value="";
					}
				);
			}
		}
	}
}

HW.Criteria = {
		init:function(){
			var hanwebhost = "sc.octopuscards.com";
			var lsl = $$('jsNotForSC', document.body,'div');
			if(lsl.length > 0 && location.href.indexOf(hanwebhost) >=0){
				for(var i=0,j=lsl.length;i<j;i++){
					var parent = lsl[i].parentNode;
					parent.removeChild(lsl[i]);
				}
			}

			lsl = $$('jsNotForTC', document.body,'div');
			if(lsl.length > 0 && location.href.indexOf(hanwebhost) < 0){
				for(var i=0,j=lsl.length;i<j;i++){
					var parent = lsl[i].parentNode;
					parent.removeChild(lsl[i]);
				}
			}

			// For case of no SC for AAVS form
			lsl = $$('jsNoSC4AAVS', document.body,'li');
			if(lsl.length > 0){
				for(var i=0,j=lsl.length;i<j;i++){
					var parent = lsl[i].parentNode;
					if (location.href.indexOf("aavsApply.do") > 0 ||
					    location.href.indexOf("consumer/payment/reload/aavs/") > 0) {
						parent.removeChild(lsl[i]);
						break;
					}
				}
			}
		}
}

HW.onload(function() {
	HW.List.init();
	HW.Footer.generateRandomFooter();
	if ($('jstMilestoneLeft')){HW.Milestone.init();}
	if ($('jsListTransform')){HW.listTransform.init();}
	if ($('jsListCareers')){HW.listCareers.init();}
	if ($('jstRedeem')){HW.redeemInfoLink.init();}
	HW.AlignBottom();
	if($('jsFilter')){HW.Filter.init();}
	HW.Language.init();
	HW.ChineseLabel.init();
	HW.SearchBox.init();
	HW.Criteria.init();
});	



/* TECH Department : modified by Ming */
//var hanwebhost = "sc.octopuscards.com";
/*
var hanwebhost = "192.168.11.30:9090";

function isHanWeb() {
	return (location.href.indexOf("ht"+"tp://"+hanwebhost+"/gb/")>=0);
}

function toChinese(tc,sc) {
	if (isHanWeb()) {
		document.write("<a href=\"javascript:switchLang('/sc/','/tc/')\">"+tc+"</a>");
	} else {
		document.write("<a href=\"javascript:switchLang('/tc/','/sc/')\">"+sc+"</a>");
	}
	return (location.href.indexOf("ht"+"tp://"+hanwebhost+"/gb/")>=0);
}

function switchLang(current, target){    
    var ntarget;
    
    if (location.href.indexOf("ht"+"tp://"+hanwebhost+"/gb/")>=0){ // break down string to avoid hanweb translation
        ntarget = location.href.replace(hanwebhost+"/gb/","");
        
        if (target == "/en/"){
            ntarget = ntarget.replace("/tc/","/en/");
        }
    } else {
        if (target == "/sc/"){
            ntarget = location.href.replace(current,"/tc/");
            ntarget = ntarget.replace("http://","");
            ntarget = "http://"+hanwebhost+"/gb/"+ntarget;
        } else {
            ntarget = location.href.replace(current,target);
        }
    }
    location.href = ntarget;
}*/
