var iL = {
	initLinks:function(){
		$('.linked').live('click',function(){
			
			if ($(this).hasClass('truelink')) top.location.href = this.href
			
			switch(this.id){
				case 'linkLogin': if (hC.guest) {top.location.href = this.href;	} else {menuHandler(ms.login)};	break;
				case 'linkLogout': if (hC.guest) {top.location.href = this.href;} else {menuHandler(ms.login)}; break;
				case 'linkRegister': if (hC.guest) {top.location.href = this.href;} else {menuHandler(ms.register)}; break;
				case 'linkTerritory': if (hC.guest) {top.location.href = this.href;} else { menuHandler(ms.territory)}; break;
				case 'linkAccount':if (hC.guest) {top.location.href = this.href;} else {menuHandler(ms.account)}; break;
				case 'linkQuickSearch': 
					hC.searchModule.doSearch()
				break; 
			}
			return false; 
		})
	},	
	fakeTopFrame:function(){
		
		var d = document.createElement('div');
		var sHTML = '<a href="/"><img alt="Illudirect" src="/images/banner/logo.gif" id="topcompimg" /></a>'+
		'<div id="flags">'+
		  '<a onclick="changeLanguage(1)" title=\'ENGLISH\' class="EN'+iL.locale+'" >EN</a>&nbsp;|&nbsp;'+
		  '<a onclick="changeLanguage(3)" title=\'FRENCH\' class="FR'+iL.locale+'">FR</a>&nbsp;|&nbsp;'+
		  '<a onclick="changeLanguage(5)" title=\'GERMAN\' class="DE'+iL.locale+'">DE</a>&nbsp;|&nbsp;'+
			'<a onclick="changeLanguage(4)" title=\'SPANISH\'class="ES'+iL.locale+'">ES</a>'+		
		'</div>'
		
		if (hC.guest){			
			sHTML+='<div id="userInfo"><a id="linkLogin" class="linked" href="/login/">'+this.login+'</a> |	<a id="linkRegister" class="linked" href="/register/">'+this.register+'</a></div>';
		} else {
			sHTML+='<div id="userInfo"><a id="linkAccount" class="linked" href="/">'+hC.username+'</a> |	<a id="linkLogin" class="linked" href="/">'+this.logout+'</a></div>';
		}
		
		d.className="masthead";
		$(d).append(sHTML);	
		var bd = $('body .masthead'); 
		if (!bd.length){
			document.body.appendChild(d); 	
		}	else{
			bd.replaceWith(d);
		}

		
		
		return d; 

	},
	moreFakeTopFrame:function(){
		var searchF = $('form[name=searchForm]').get(0)
		infradoxEnterKeyHandler.relay(searchF.quicksearchtext, 'linkQuickSearch', function(){$('#linkQuickSearch').trigger('click')}); 

		oSearch = new infradoxSearch(cfg.blankfilters);

		infradoxApp.putInnerHtml('territoryName', '<#CUSTOMPERSISTENT TAG=IDCCUSTOM_COUNTRYNAME DEFAULT=Unknown>', false);

		oSuggest = new infradoxSuggest(searchF.quicksearchtext, new infradoxSuggestionProvider('autosuggest.ajax'));
		oSuggest.methods.onneedsuggestionbox = onSuggestionsBox;
		oSuggest.methods.onclicksuggestion = onSuggestionClicked;
		var oSet=oSuggest.settings;
		oSet.title = sConst_QuickSearchSuggestions;
		oSet.maximumsuggestions = 40;
		oSet.minimumlength = 3;

		// v1.3
		oSet.multiselect=1;
		oSet.nosuggestionshide=1;

		oSet.enabled = 1//(<#CUSTOMPERSISTENT TAG=IDCCUSTOM_SIS DEFAULT=1>==1?true:false);

		var chkSug =searchF.showsuggestions;
		chkSug.checked=oSuggest.settings.enabled;
		chkSug.onclick=function() {oSuggest.settings.enabled=this.checked};

	//	infradoxState.updateOrderMenuItemCount({count:<#SERVER TAG=CARTCOUNT>,action:"put"}); // switch on/off in cfg!
	}
}
iL.settings = function(){
	for (var x in arguments[0]) this[x] = arguments[0][x];
}

/* BOF FUNCTIONS TAKEN FROM MAINMENUTOP */

function onSuggestionClicked(suggestionText, oControl, oBox, oSuggest, multiple) {
	var suggestions;
	if(multiple) {
		suggestions = oSuggest.getSelected(1);
		if(!suggestions.length) {
			alert(iL.noWords);
			return;
		} else {
			if(suggestions.length>15) {
				alert(iL.tooManyWords);
				return;	
			} else suggestionText = suggestions.join(' OR ');
		}
	}
	oControl.value = suggestionText;

	// must do this to fix IE bug
	oSuggest.suggestionsBox=null;
	oSuggestionsBox=null;
	//

	oBox.close();
	hC.searchModule.doSearch();
}

function onSuggestionsBox(oControl) {
	var e=(parent !== self ?parent.resultspanel.infradoxApp.getElement(parent.resultspanel.document.body.id):document.body)
	if(!e) return null;

	oSuggestionsBox =	parent.resultspanel ? new parent.resultspanel.infradoxBox(e) : new infradoxBox(e);
	oSuggestionsBox.classes('suggestionsBoxContainer','suggestionsBoxBar','suggestionsBoxPanel','closeButton','suggestionsBoxFooterPanel');
	oSuggestionsBox.settings.width = 250;
	oSuggestionsBox.settings.offsetX = 450;
	oSuggestionsBox.settings.offsetY = 100;
	oSuggestionsBox.settings.title = sConst_KeywordSuggestions;
	oSuggestionsBox.settings.multilabel="Refine search"; 
	oSuggestionsBox.settings.golabel=" go "; // you can use a button instead by changing the css (background image)
	oSuggestionsBox.methods.onclose = function(){oSuggestionsBox.hide()}
	oSuggestionsBox.create();

	return oSuggestionsBox;
}

function changeLanguage(locale){
	top.location.href="/bin/ild.dll/go?a=disp&t=gi-loader.html&_tlid=1065&homepage=1&_tlid=1065&_yp1=0&_yp2=0&_yp8=0&_men=menu_0&_m=0&_s=0&si="+hC.session+"&locale="+locale;
}

/* EOF FUNCTIONS TAKEN FROM MAINMENUTOP */

var hC = {

	"domReadyFired":false,
	"quickSearch" : function(){

		var that = this;
		var searchForm = '<div id="searchFormContainer">'+
				'<form name="searchForm" id="searchForm" method="post">'+
					'<div id="searchBoxHolder">'+
						'<input class="search" type="text" onfocus="this.value=\'\'"  name="quicksearchtext" id="quicksearchtext" value="SEARCH" autocomplete="off"  />'+
						'<a id="linkQuickSearch" class="gobutton linked">GO</a>'+
						'<div style="display:none" id="showsuggestionsHolder"><input type="checkbox" name="showsuggestions" id="showsuggestions"><label for="showsuggestions" >Suggestions</label></div>'+
						'<div style="display:none"><a id="linkSearchHelp" class="mastheadhelp" href="/help"><#SERVER TAG=CONSTANT NAME=cHelpLink></a></div>'+
					'</div>'+
				'</form>'+
			'</div>';

		$('.masthead').append(searchForm); 

		var search = function() {
			oSearch = infradoxObjectManager.getInstance('infradoxSearch');
			oSearch.settings.territory = {required:cfg.reqterr ,set:(that.terr?1:0)};
			oSearch.settings.filterstring = oSearch.settings.filterresetstring;
			var tp = true;
			if(!hC.guest) {
				if(iA.pagetype==1) tp=false;
			}
			oSearch.settings.targetparent = tp; 
			oSearch.settings.within = false; 
			
			oSearch.settings.auxparameters = '&_sis='+(oSuggest.settings.enabled?'1':'0');
			oSearch.settings.words = [document.forms['searchForm'].quicksearchtext.value];
			oSearch.settings.disablefastphrase = !cfg.search.fastphrase.quickenabled; // ignore on quick search?
									
			document.forms['searchForm'].quicksearchtext.blur(); // remove focus
			oSearch.search(false); 
		}

		return {
			doSearch:function(){
				search();	 
			} 
		}

	},
	"domReady":function(){
		if (this.domReadyFired) return; 
		this.domReadyFired=true; 
		iL.initLinks()
		if ($(document.body).hasClass('menuPage')){
			this.menu.draw(iL.fakeTopFrame());
			this.searchModule = this.quickSearch();
			iL.moreFakeTopFrame();

		}
	}
}

hC.setSettings = function(infradoxApp){
	this.dll = infradoxApp.dll;
	this.session = infradoxApp.session;
	this.template = infradoxApp.template;
	this.pagetype = infradoxApp.pagetype;
	this.mid = infradoxApp.mid;
	this.sid = infradoxApp.sid;
	this.men = infradoxApp.men;
	this.ml = infradoxApp._mainmenulabel,
	this.sl = infradoxApp._submenulabel
	this.guest = arguments[1].guest;
	this.terr = arguments[1].terr;
	this.username = arguments[1].username?arguments[1].username:'';
}

hC.cleanUrl = function(sWord){
	return sWord.replace(/[^a-z|A-Z|0-9]+/g,'-')
}

hC.isNumeric = function(nr){
	return ( (typeof (nr) === typeof(1)) && (null !== nr) && isFinite(nr));
}


hC.menu = (function(){
	var headitems = [],submenuLists = {},menuItem,pub = {},activeTimeout=0,topmenutimeout=0,quickTimeout=0,topsubmenuoffset;
	var submenuhide = function(el){
		switch(el.id.substr(0,4)){
			case 'subm':
				$(el).css('display','none').find('ul').css('display','none');
			break; 
			case 'menu':
				$('#submenuBox_'+el.id.split('_')[1]).eq(0).css('display','none').find('ul').css('display','none');
			break;
		}
	}

	var setActive = function(menuId,submenuId){
		$('.topMenuItem').removeClass('active');
		$('#menuBox_'+menuId).addClass('active'); 
		if(submenuId) $('#sub_'+menuId+'_'+submenuId).addClass('active'); 
	}
		
	var setCurrentActive = function(){
		var menArr = infradoxApp.men.split('_'); 
		setActive(menArr[1],menArr[2]);
	}	

	var menuHandlerRelay = function() {
		var spec = this.id.split('_');
		
		if(!hC.guest){
			switch(spec[0]){
				case "menuBox":
				
					top.frames[0].menuHandler(this.id.replace(/menuBox/,'menu'));
				break;
				case"sub":
					top.frames[0].menuHandler(this.id.toString().replace('sub','submenu'));
					
				break;
			}
		}else if(hC.guest){
			switch(spec[0]){
				case "menuBox":
				
					top.location = $('#men_'+spec[1]).attr('href');
				break;
				case"sub":
					return true
				break;
			}
		}else{
			location.href='/';
		}
		
		return false
	}

	return {
		draw:function(parentEl){
			var topBox, submen
			if (!parentEl){
				var parentEl = document.createElement('div'); 
				parentEl.id = 'menuContainer';
				document.body.appendChild(parentEl);
			}
			for (var i=0; i<menu.main.length; i++){
				headitems.push('<li class="topMenuItem menuBox" id="menuBox_'+menu.main[i].id+'"><a class="men" id="men_'+menu.main[i].id+'" href="'+(menu.main[i].u || '#')+'">'+menu.main[i].item+'</a></li>');
				if (menu.main[i].submenu.length){
					if (typeof(submenuLists[menu.main[i].id])=='undefined') submenuLists[menu.main[i].id] = [];
					for (var j = 0; j<menu.main[i].submenu.length; j++){
						if (!menu.main[i].submenu[j].hide){
								submenuLists[menu.main[i].id].push('<li id="sub_'+menu.main[i].id+'_'+menu.main[i].submenu[j].id+'"><a target="_top" href="'+(menu.main[i].submenu[j]['u'] || '#')+'">'+menu.main[i].submenu[j].item+'</a></li>');
						}
					}
				}
			}
			
			$(parentEl).append('<div class="mainMenuContainer"><ul class="mmenu">'+headitems.join("\n")+'</ul></div>'); 
			
			for (var x in submenuLists){
				menuItem = $('#men_'+	x);
				$('body').append('<div class="submenuBox" id="submenuBox_'+x+'"><ul>'+submenuLists[x].join("\n")+'</ul></div>')
			}
			topBox = $('.menuBox');
			submen = $('.submenuBox'); 
			topBox.click(menuHandlerRelay)
			.mouseover(function(){
				$(this).addClass('over');	
			}).mouseout(function(){
				$(this).removeClass('over')	
			});

			submen
			.mouseover(function(){
				clearTimeout(topmenutimeout);
			})
			.mouseleave(function(){
				submenuhide(this)
				activeTimeout = setTimeout(setCurrentActive,cfg.menutimeout);
			})
			.find('li')
				.click(menuHandlerRelay)
				.mouseover(function(){
					var $this = $(this); 
					var clName = $this.hasClass('active')?'activeover':'over'; 
					$this.addClass(clName);
				})
				.mouseout(function(){
					var $this = $(this); 
					$this.removeClass('over activeover');
				})
			
			topsubmenuoffset=$('.mainMenuContainer').outerHeight();;
			$('.topMenuItem')
				.mouseenter(function(){
					clearTimeout(activeTimeout);
					submen.css('display','none');
					var x = this.id.split('_')[1];
					var menuItem = $('#men_'+	x);
					var offset = menuItem.offset();
					$('#submenuBox_'+x).css({"left":(offset.left)+'px',"top":(topsubmenuoffset+offset.top)+'px'});	
				
					$('#sub'+this.id).css('display','block').find('ul').css('display','block');
					//setActive('men_'+this.id.split('_')[1]);
				})
				.mouseleave(function(){
						var el = this; 
						topmenutimeout = setTimeout(function(){
							submenuhide(el);
						},100);
				})
				.click(menuHandlerRelay);
				setCurrentActive();
		}
	}
})()

function enForceFrames(){
	if(!hC.guest && parent && parent !== top) top.location ='/'; //prevent multiple nestings when errors happen
	
	
	if (hC.guest || top !== self ) return false; //everything below happens only when user is  a guest and if this is a frameless page 
	var ud= 'go?a=disp&_yp1=0&_yp2=0&_yp8=0';
	var u = '',cp;
	var iA = infradoxApp; 
	switch(document.body.id){
		case 'searchResults': u = ud + '&t=sr-loader.html&_max=2'; break;
		case 'previewPage': u = ud + '&t=preview-loader.html&nr='+(previewParams.totalpag > 1 ? previewParams.pagnr : 1  )+'&ir='+previewParams.ref; break; 
		case 'homePage': u = ud + '&t=home-loader.html&_max=0&_maxlb=0&si=';	break;
		
		case 'gl-images': u+='&t=gl-loader.html&groupid='+infradoxGallery._parentid+'&galleryid='+infradoxGallery._id+'&glbid='+infradoxGallery._glbid+'&page='+ixSt.props.data.page.no+'&_max=2'; break;
		case 'lightbox': u+='&t=lb-loader.html&_maxlb=2'; break;
	}
	if (u.length > ud.length)	{ iA.loadParent(iA.completeURL(u), false)
		return true;
	}
	 return false;
}



$(function(){
	if (enForceFrames()){return};
	hC.domReady(); 
})

