var jqreadyfired = false;
(function($) {
	$.fn.openOverlay = function(options) {
		debug(this);
		if (options === 'close'){
			$.fn.openOverlay.closeOverlay();
			return
		}
		var opts = $.extend({}, $.fn.openOverlay.defaults, options);
		if (!$('#overlayLayer').length){
			var w = $(window);
			var h = w.height();
			var w = w.width();
			var docbody = $(document.body);  
			if (!h) h=10000;
			docbody.append(
				'<div id="overlayLayer" style="'+
				'text-align:center; z-index:1000; position:absolute; top:0px; bottom:0px; left:0px; right:0px;'+
				'opacity: 0.'+opts.iOpacity+';'+
				'-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity='+opts.iOpacity+');'+ 
				'filter: alpha(opacity='+opts.iOpacity+');'+
				'background:'+opts.sColor+';'+
				'height:'+h+'px"></div>'); 
			fillrUp();
			$(window)
				.scroll(fillrUp)
				.resize(fillrUp);
			docbody.append('<div id="overlayContentContainer" style="float:left;  position:absolute; top:0; left:0;"></div>');
 
		}
		var occ = $('#overlayContentContainer');
		// append each matched element to the overlayContentContainer
		var iLength = this.length;
		return this.each(function(i) {
			occ.append(this);
			if (i===iLength-1) positionOverlayContent();
 
		});
	};
	function positionOverlayContent(){
		var o = $('#overlayContentContainer');
		var h = $(window).height();
		var w = $(window).width();
		//alert(h);
		if(!h) h=300;
		o.css({
			marginTop: h/2 - o.outerHeight()/2 + $(window).scrollTop() + 'px',
			marginLeft: w/2  - o.outerWidth()/2 + $(window).scrollLeft()+'px',
			left:'0',
			position:'absolute',
			zIndex:'1001'
		})
	}
	function fillrUp(){
		var h = $(window).height();
		var w = $(window).width();
		if (h){
			$('#overlayLayer').height(h + $(window).scrollTop());
			$('#overlayLayer').width(w+$(window).scrollLeft());
		}else{
			window.$('#overlayLayer').css({
				top:$(window).scrollTop()+'px',
				left:$(window).scrollLeft()+'px'
			});
		}
		positionOverlayContent()
	}
 
	function debug($obj) {
		if (window.console && window.console.log)
			window.console.log('openoverlay selection count: ' + $obj.size());
	};
	$.fn.openOverlay.closeOverlay = function(){
		$(window)
			.unbind('scroll',fillrUp)
			.unbind('resize',fillrUp);
			$('#overlayLayer,#overlayContentContainer').fadeOut('slow',function(){
				$(this).remove();
			});
	}
 
	$.fn.openOverlay.defaults = {
			iOpacity:60,
			sColor:'#444444'
	};
	//end of closure
})(jQuery);
 

;(function($) { 

var style = document.createElement('div').style;
var moz = style['MozBorderRadius'] !== undefined;
var webkit = style['WebkitBorderRadius'] !== undefined;
var radius = style['borderRadius'] !== undefined || style['BorderRadius'] !== undefined;
var mode = document.documentMode || 0;
var noBottomFold = $.browser.msie && (($.browser.version < 8 && !mode) || mode < 8);

var expr = $.browser.msie && (function() {
    var div = document.createElement('div');
    try { div.style.setExpression('width','0+0'); div.style.removeExpression('width'); }
    catch(e) { return false; }
    return true;
})();
    
function sz(el, p) { 
    return parseInt($.css(el,p))||0; 
};
function hex2(s) {
    var s = parseInt(s).toString(16);
    return ( s.length < 2 ) ? '0'+s : s;
};
function gpc(node) {
    while(node) {
        var v = $.css(node,'backgroundColor');
        if (v && v != 'transparent' && v != 'rgba(0, 0, 0, 0)') {
	        if (v.indexOf('rgb') >= 0) { 
	            var rgb = v.match(/\d+/g); 
	            return '#'+ hex2(rgb[0]) + hex2(rgb[1]) + hex2(rgb[2]);
	        }
            return v;
		}
		node = node.parentNode; // keep walking if transparent
    }
    return '#ffffff';
};

function getWidth(fx, i, width) {
    switch(fx) {
    case 'round':  return Math.round(width*(1-Math.cos(Math.asin(i/width))));
    case 'cool':   return Math.round(width*(1+Math.cos(Math.asin(i/width))));
    case 'sharp':  return Math.round(width*(1-Math.cos(Math.acos(i/width))));
    case 'bite':   return Math.round(width*(Math.cos(Math.asin((width-i-1)/width))));
    case 'slide':  return Math.round(width*(Math.atan2(i,width/i)));
    case 'jut':    return Math.round(width*(Math.atan2(width,(width-i-1))));
    case 'curl':   return Math.round(width*(Math.atan(i)));
    case 'tear':   return Math.round(width*(Math.cos(i)));
    case 'wicked': return Math.round(width*(Math.tan(i)));
    case 'long':   return Math.round(width*(Math.sqrt(i)));
    case 'sculpt': return Math.round(width*(Math.log((width-i-1),width)));
		case 'dogfold':
    case 'dog':    return (i&1) ? (i+1) : width;
    case 'dog2':   return (i&2) ? (i+1) : width;
    case 'dog3':   return (i&3) ? (i+1) : width;
    case 'fray':   return (i%2)*width;
    case 'notch':  return width; 
		case 'bevelfold':
    case 'bevel':  return i+1;
    }
};

$.fn.corner = function(options) {
    // in 1.3+ we can fix mistakes with the ready state
	if (this.length == 0) {
        if (!$.isReady && this.selector) {
            var s = this.selector, c = this.context;
            $(function() {
                $(s,c).corner(options);
            });
        }
        return this;
	}

    return this.each(function(index){
		var $this = $(this);
		// meta values override options
		var o = [$this.attr($.fn.corner.defaults.metaAttr) || '', options || ''].join(' ').toLowerCase();
		var keep = /keep/.test(o);                       // keep borders?
		var cc = ((o.match(/cc:(#[0-9a-f]+)/)||[])[1]);  // corner color
		var sc = ((o.match(/sc:(#[0-9a-f]+)/)||[])[1]);  // strip color
		var width = parseInt((o.match(/(\d+)px/)||[])[1]) || 10; // corner width
		var re = /round|bevelfold|bevel|notch|bite|cool|sharp|slide|jut|curl|tear|fray|wicked|sculpt|long|dog3|dog2|dogfold|dog/;
		var fx = ((o.match(re)||['round'])[0]);
		var fold = /dogfold|bevelfold/.test(o);
		var edges = { T:0, B:1 };
		var opts = {
			TL:  /top|tl|left/.test(o),       TR:  /top|tr|right/.test(o),
			BL:  /bottom|bl|left/.test(o),    BR:  /bottom|br|right/.test(o)
		};
		if ( !opts.TL && !opts.TR && !opts.BL && !opts.BR )
			opts = { TL:1, TR:1, BL:1, BR:1 };
			
		// support native rounding
		if ($.fn.corner.defaults.useNative && fx == 'round' && (radius || moz || webkit) && !cc && !sc) {
			if (opts.TL)
				$this.css(radius ? 'border-top-left-radius' : moz ? '-moz-border-radius-topleft' : '-webkit-border-top-left-radius', width + 'px');
			if (opts.TR)
				$this.css(radius ? 'border-top-right-radius' : moz ? '-moz-border-radius-topright' : '-webkit-border-top-right-radius', width + 'px');
			if (opts.BL)
				$this.css(radius ? 'border-bottom-left-radius' : moz ? '-moz-border-radius-bottomleft' : '-webkit-border-bottom-left-radius', width + 'px');
			if (opts.BR)
				$this.css(radius ? 'border-bottom-right-radius' : moz ? '-moz-border-radius-bottomright' : '-webkit-border-bottom-right-radius', width + 'px');
			return;
		}
			
		var strip = document.createElement('div');
		$(strip).css({
			overflow: 'hidden',
			height: '1px',
			minHeight: '1px',
			fontSize: '1px',
			backgroundColor: sc || 'transparent',
			borderStyle: 'solid'
		});
	
        var pad = {
            T: parseInt($.css(this,'paddingTop'))||0,     R: parseInt($.css(this,'paddingRight'))||0,
            B: parseInt($.css(this,'paddingBottom'))||0,  L: parseInt($.css(this,'paddingLeft'))||0
        };

        if (typeof this.style.zoom != undefined) this.style.zoom = 1; // force 'hasLayout' in IE
        if (!keep) this.style.border = 'none';
        strip.style.borderColor = cc || gpc(this.parentNode);
        var cssHeight = $(this).outerHeight();

        for (var j in edges) {
            var bot = edges[j];
            // only add stips if needed
            if ((bot && (opts.BL || opts.BR)) || (!bot && (opts.TL || opts.TR))) {
                strip.style.borderStyle = 'none '+(opts[j+'R']?'solid':'none')+' none '+(opts[j+'L']?'solid':'none');
                var d = document.createElement('div');
                $(d).addClass('jquery-corner');
                var ds = d.style;

                bot ? this.appendChild(d) : this.insertBefore(d, this.firstChild);

                if (bot && cssHeight != 'auto') {
                    if ($.css(this,'position') == 'static')
                        this.style.position = 'relative';
                    ds.position = 'absolute';
                    ds.bottom = ds.left = ds.padding = ds.margin = '0';
                    if (expr)
                        ds.setExpression('width', 'this.parentNode.offsetWidth');
                    else
                        ds.width = '100%';
                }
                else if (!bot && $.browser.msie) {
                    if ($.css(this,'position') == 'static')
                        this.style.position = 'relative';
                    ds.position = 'absolute';
                    ds.top = ds.left = ds.right = ds.padding = ds.margin = '0';
                    
                    // fix ie6 problem when blocked element has a border width
                    if (expr) {
                        var bw = sz(this,'borderLeftWidth') + sz(this,'borderRightWidth');
                        ds.setExpression('width', 'this.parentNode.offsetWidth - '+bw+'+ "px"');
                    }
                    else
                        ds.width = '100%';
                }
                else {
                	ds.position = 'relative';
                    ds.margin = !bot ? '-'+pad.T+'px -'+pad.R+'px '+(pad.T-width)+'px -'+pad.L+'px' : 
                                        (pad.B-width)+'px -'+pad.R+'px -'+pad.B+'px -'+pad.L+'px';                
                }

                for (var i=0; i < width; i++) {
                    var w = Math.max(0,getWidth(fx,i, width));
                    var e = strip.cloneNode(false);
                    e.style.borderWidth = '0 '+(opts[j+'R']?w:0)+'px 0 '+(opts[j+'L']?w:0)+'px';
                    bot ? d.appendChild(e) : d.insertBefore(e, d.firstChild);
                }
				
				if (fold && $.support.boxModel) {
					if (bot && noBottomFold) continue;
					for (var c in opts) {
						if (!opts[c]) continue;
						if (bot && (c == 'TL' || c == 'TR')) continue;
						if (!bot && (c == 'BL' || c == 'BR')) continue;
						
						var common = { position: 'absolute', border: 'none', margin: 0, padding: 0, overflow: 'hidden', backgroundColor: strip.style.borderColor };
						var $horz = $('<div/>').css(common).css({ width: width + 'px', height: '1px' });
						switch(c) {
						case 'TL': $horz.css({ bottom: 0, left: 0 }); break;
						case 'TR': $horz.css({ bottom: 0, right: 0 }); break;
						case 'BL': $horz.css({ top: 0, left: 0 }); break;
						case 'BR': $horz.css({ top: 0, right: 0 }); break;
						}
						d.appendChild($horz[0]);
						
						var $vert = $('<div/>').css(common).css({ top: 0, bottom: 0, width: '1px', height: width + 'px' });
						switch(c) {
						case 'TL': $vert.css({ left: width }); break;
						case 'TR': $vert.css({ right: width }); break;
						case 'BL': $vert.css({ left: width }); break;
						case 'BR': $vert.css({ right: width }); break;
						}
						d.appendChild($vert[0]);
					}
				}
            }
        }
    });
};

$.fn.uncorner = function() { 
	if (radius || moz || webkit)
		this.css(radius ? 'border-radius' : moz ? '-moz-border-radius' : '-webkit-border-radius', 0);
	$('div.jquery-corner', this).remove();
	return this;
};

// expose options
$.fn.corner.defaults = {
	useNative: true, // true if plugin should attempt to use native browser support for border radius rounding
	metaAttr:  'data-corner' // name of meta attribute to use for options
};
    
})(jQuery);


(function ($) {
$.fn.vAlign = function() {
	return this.each(function(i){
		var ah = $(this).height();
		var ph = $(this).parent().height();
		var mh = (ph - ah) / 2;
	$(this).css('margin-top', mh);
	});
};

$.fn.inlineVAlign = function() {
  return this.each(function(i) {
      var h = $(this).height();
      var oh = $(this).outerHeight();
      var mt = (h + (oh - h)) / 2;
      $(this).css("margin-top", "-" + mt + "px");
      $(this).css("top", "50%");
      $(this).css("position", "absolute");
  });
};

})(jQuery);

var aemenu = (function(){
	var headitems = [];
	var submenuLists = {};
	var menuItem;
	var pub = {}; 
	var activeTimeout=0,topmenutimeout=0,quickTimeout=0;
	var quickf;
	var leftsubmenuoffset = 10;
	var topsubmenuoffset = 22;
	var $body = []; 

	menuHandlerRelay = function () {
		var spec = this.id.split('_');
		if(!aeGuest){
			switch(spec[0]){
				case "menuBox":
				case "topBox":
					top.frames[0].menuHandler(this.id.replace(/menuBox|topBox/,'menu'));
				break;
				case"sub":
					top.frames[0].menuHandler(this.id.replace('sub','submenu'));
				break;
			}
		}else if(aeGuest){
			switch(spec[0]){
				case "menuBox":
				case "topBox":
					top.location = $('#men_'+spec[1]).attr('href');
				break;
				case"sub":
					return true
				break;
			}
		}else{
			location.href='/';
		}
		return false
	}
		
	setActive = function(menuId){
		$('.men').removeClass('active');
		$('#'+menuId).addClass('active'); 
	}
		
	setCurrentActive = function(){
		setActive('men_'+infradoxApp.men.split('_')[1]);
	}
	
	pub.searchMenuDraw =function(){
		quickf = $('#quickFilterContainer');
		filterboxes=[];
		filterSectionsCurname=''; 

		// the api/source filters must be added dynamically
		var e=gete("ulSourceFilters"), s='';
		for(var i=0; i<apis.length; i++) {
			s=s+'<li id="faux_source_'+apis[i].index+'" class="fauxfilter fauxcheckbox image linked">'+apis[i].displayname+'</li>';
		}
		if(e) e.innerHTML=s;

		for (var i = 0; i < filters.settings.length; i++){
			for (var j = 0; j < filters.settings[i].options.length; j++){
				if (filterSectionsCurname != filters.settings[i].name){
					if (filterSectionsCurname !=''){
						filterboxes.push('</div>');
					}
					filterSectionsCurname = filters.settings[i].name
					filterboxes.push('<div id="_toolsection_'+ filters.settings[i].name+'"><img id="toolsection_'+filters.settings[i].name+'_2" src="/images/css/options-expanded.gif" />');		
				}
				filterboxes.push('<input type="checkbox" id="'+filters.settings[i].name+'_'+j+'" name="'+filters.settings[i].name+'_'+j+'">'+filters.settings[i].name+' - '+j+' - '+filters.settings[i].options[j]);
			}
		}
		filterboxes.push('</div>');
		var r = $('#realBoxContainer');
		r.append(filterboxes.join("\n"));
		
		infradoxFilters.initialize(filters, document.powersearchForm);
		r.find('input[type=checkbox]').each(function(){
			if (!this.checked){
				$('#mfaux_'+this.id+',#faux_'+this.id).addClass('deselected');
			}
		})
		
		quickf
			.mouseleave(function(){
				pub.searchMenuHide();
			})
			.mouseenter(function(){
				if (quickTimeout) clearTimeout(quickTimeout);
			});
			
		$('#quickSearchContainer')			
			.mouseleave(function(){
				pub.searchMenuHide();
			})
			.mouseenter(function(){
				if (quickTimeout) clearTimeout(quickTimeout);
			});

			pub.excludeFilters();
				
	}
	
	pub.searchMenuHide = function(timeout){
		timer = timeout || 1500;
		quickTimeout = setTimeout(function(){$('#powersearchButton_2').css('display','none'); quickf.fadeOut('slow')},timer);
	}
	
	pub.searchMenuShow = function(){
		if (!$body.length)$body = $('body');
		
		if(quickf.parent() != $body) $body.append(quickf); // some templates have stuff after the footer 
		var offst = $("#moreSearchOptions").offset();		
		quickf.css({"top":(offst.top-3)+'px',"left":(offst.left-6)+'px'}).fadeIn('fast',function(){
			$('#powersearchButton_2').css('display','block');
		});
		
		if (oSuggestionsBox) oSuggestionsBox.hide();
	}
	
	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;
		}
	}
	
	pub.draw = function(){
		for (var i=0; i<menu.main.length; i++){
			headitems.push('<li class="topMenuItem" 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>');
					}
				}
			}
		}
		$('#menuItemsList').append(headitems.join(" ")); 
		for (var x in submenuLists){
			menuItem = $('#men_'+	x);
			$('body').append('<div class="submenuBox" id="submenuBox_'+x+'"><div class="topBox" id="topBox_'+x+'" style="width:'+(20+menuItem.outerWidth())+'px"><span class="topBoxLeft"></span><span class="topBoxRight"></span></div><ul>'+submenuLists[x].join("\n")+'</ul></div>')
		}
		var topBox = $('.topBox');
		var submen = $('.submenuBox'); 
		if ($.browser.msie){
			submen.append('<img class="iebottomcorner" src="/images/banner/bottomcorners.gif" />')
		}else{
			submen.corner("round bottom");
			topBox.corner("round top");
		}

		topBox.click(menuHandlerRelay);
		
		submen
			.mouseover(function(){
				clearTimeout(topmenutimeout);
			})
			.mouseleave(function(){
				submenuhide(this)
				activeTimeout = setTimeout(setCurrentActive,cfg.menutimeout);
			})
			.find('li').click(menuHandlerRelay);
		
		$('.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-leftsubmenuoffset)+'px',"top":(topsubmenuoffset+offset.top)+'px'});	

				$('#sub'+this.id).css('display','block').find('ul').slideDown('fast');
				setActive('men_'+this.id.split('_')[1]);
				quickf.fadeOut('fast');
			}).mouseleave(function(){
					var el = this; 
					topmenutimeout = setTimeout(function(){
						submenuhide(el);
					},1000);
			})
			.click(menuHandlerRelay);
			setCurrentActive();
	};
	pub.excludeFilters = function (){
		
		var imageSpecific = '#rights_1,#rights_0';
		var footageSpecific = '#motion_1,#motiondefinition_0,#motiondefinition_1,#motionspeed_0,#motionspeed_1,#motionspeed_2';
		
		if ($('#motion_0').attr('checked')){ // selected image filter
			$(footageSpecific).attr('checked', false);
			$('.fauxfilter.footage').addClass('disabled');
			$(footageSpecific.replace(/#/g,'#faux_')).addClass('deselected');
		}else{
			$('.fauxfilter.footage').removeClass('disabled');
		}
		
		if ($('#motion_1').attr('checked')) {//footage
			$(imageSpecific).attr('checked', false);
			$('.fauxfilter.image').addClass('disabled')
			$(imageSpecific.replace(/#/g,'#faux_')).addClass('deselected');
		}	else{
			$('.fauxfilter.image').removeClass('disabled');
		}
		/*			
				if(window.console){
					$('#realBoxContainer').css('display','block');
					$('#realBoxContainer div').css('display','block');
				}
		*/		
	}
	return pub;
})();


var aeFeatureIndex = function(){
	return pub;
};

aePaginationButtons = (function(){//these are used only for the editorial features pagination.
	var paginationOptions= [10,20,30];
	var curOptionIndex = 0; 
	var pub = {}
	var topContainer;
	var curPage = 0;
	var pages =0  
	
	pub.paginate  = function(){
		var $indexImageBoxGroup = $('.indexImageBoxGroup'); 
		var cook = getCookie("selectedPagination"); 
		curOptionIndex = cook?cook:0; 
		var thumbsPerPage = paginationOptions[curOptionIndex]; 
		pages = Math.ceil($indexImageBoxGroup.length/thumbsPerPage);
		
		var groupElements = $indexImageBoxGroup.get();
		for (var i = 0; i<pages; i++){
			var pageElements = groupElements.slice((i)*thumbsPerPage,(i+1)*thumbsPerPage); 
			$(".indexThumbnailsBody").append("<div id='page_"+curOptionIndex+"_"+i+"' class='page'></div>");
			$("#page_"+curOptionIndex+"_"+i).append(pageElements);
		}
		$('.page').append('<div style="clear:both"></div>')
		pub.openpage(0)
	}
	
	pub.openNextPage = function(){
		var nextPage = (curPage+1)
		if (nextPage < pages){
				pub.openpage(nextPage)
		}else{
			pub.openpage(0)	
		}
	}
	
	pub.openPreviousPage = function(){
		var nextPage = (curPage-1)
		if (nextPage > -1){
				pub.openpage(nextPage)
		}else{
			pub.openpage(pages-1)	
		}
	}
	
	pub.openpage = function(pageno){
		curPage	= pageno; 
		$('.page').css('display','none')
		$('.page').eq(curPage).fadeIn('slow');
	}
	
	pub.giIndexButtonsDraw= function(){
		var cook = getCookie("selectedPagination"); 
		curOptionIndex = cook ? cook : 0; 
		topContainer = $('#paginationButtons');
		for (var i = 0; i <  paginationOptions.length; i++){
			topContainer.append('<a href="#" id="paginationButton_'+i+'" class="linked'+(i!=curOptionIndex? '' : ' selected' )+'"><span class="paginationSpan">'+paginationOptions[i]+'</span></a>');
		}
		topContainer.find('.paginationSpan').vAlign();
	}
	return pub;
})();

viewOptions = (function(){
	var $fauxView;
	var opts = {'gridView':0,'listView':1}

	function clickHandler(){
		var $this = $(this); 
		$fauxView.removeClass('selected')
		var chosen = opts[this.className];
		$this.addClass('selected');
		dropdownHandler('dropdownViewstyle',chosen);
	}
	
	return {
		init:function(currentOption){
			$fauxView = $('.fauxViewOptions li');
			$fauxView.eq(currentOption).addClass('selected')
			$fauxView.click(clickHandler);
		}
	}
})()

displayOptions = (function(){// previews on/off
	var pub = {}
	var $fauxPreview = {}
	
	function showOption(optionValue){  
		if (optionValue == 0){
			$fauxPreview.find('.box').addClass('check');
		}else{
			$fauxPreview.find('.box').removeClass('check');
		}
	}
	
	pub.init = function(optionValue){
		$fauxPreview = $('#fauxPreviewOptions');
		showOption(optionValue); 
		$fauxPreview.click(function(){
			$fauxPreview.find('.box').toggleClass('check');
			infradoxState.toggleSetting('_hints'); 	
		})
	}
	return pub 
})()

function ajaxLoaderOpen(){
	if (!$('#ajaxLoaderImage').length) $('body').append('<div id="ajaxLoaderImage"><img src="/images/infradox/24-1.gif" /></div>');
	$('#ajaxLoaderImage').openOverlay();
}

function ajaxLoaderClose(){
	$.fn.openOverlay('close')
}

function repositionInfradoxDropdown(dropdownId,containerId){
	var cId = containerId.substring(0,1);
	if (cId !='.' && cId !='#')	containerId = '#'+containerId;
	
	$('#'+dropdownId).click(function(){
		var ofs = $(this).offset();
		var ctOfs = $(containerId).offset(); 
		
		$('#'+dropdownId+'_').css({top:(ofs.top-ctOfs.top+17)+'px',left:(ofs.left-ctOfs.left)+'px'});
		for (var i = 0; i < infradoxDropdown._dropdowns.length; i++){
				if (infradoxDropdown._dropdowns[i].id == this.id){ 
					infradoxDropdown._dropdowns[i].settings['fixoffsetleft'] = -1*ctOfs.left 
					infradoxDropdown._dropdowns[i].settings['fixoffsettop'] = -1*ctOfs.top
				}
		}
	})
}

function aeGetBackgroundImage($el){
	var bg = $el.css('backgroundImage');
	if(bg.length && bg != 'none'){
		return	bg.split(/\(|\)/)[1].replace(/\"/g,"");
	}
}

function setCookie(c_name,value,expiredays){
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : "; expires="+exdate.toGMTString())+ "; path=/";
}
 
function getCookie(c_name){
if (document.cookie.length>0){
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1){ 
    c_start=c_start + c_name.length+1; 
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
	return false;
}

aeSearchPaginationButtons = function(){
	var $container =	$('#paginationButtons');
	$('#dropdownItemsPerPage__').find('li').each(function(i){
		$container.append('<a href="#" class="linked '+this.className+'" id="paginationButton_'+this.id+'" ><span class="paginationSpan">'+$(this).text()+'</span></a>'); 	
	})
	$container.find('.paginationSpan').vAlign();
	$('.searchresults').css('visibility','visible');
}

/*
*	 	global dom ready handler 
*/

function jqready(){
	jqreadyfired = true;	
	
	if (parent == self || this.window === parent.frames[1]){//frameless or centerframe
		aemenu.draw()
		aemenu.searchMenuDraw();
		
		var sdirEYDiv = document.getElementById('sdirEY');
		var scirEYDiv = document.getElementById('scirEY');
		if (sdirEYDiv && scirEYDiv){
			try {
				var seirEY=document.createElement("script");
				seirEY.type="text/javascript";
				var seirEYs=(location.protocol.indexOf("https")==0?"https":"http")+"://image.providesupport.com/js/arabianeye/safe-standard.js?ps_h=irEY\u0026ps_t="+new Date().getTime();
				setTimeout(function() {
					seirEY.src=seirEYs;
					sdirEYDiv.appendChild(seirEY)
				},1);
			}catch(err){}
		}
	}

	//attach link handlers
	$('.linked').live('click',function(){
		if (linksHandler[this.id]){
			linksHandler[this.id].apply(this); return false;
		}else if(linksHandler[this.id.split("_")[0]]){
			linksHandler[this.id.split("_")[0]].apply(this); return false;
		}else if(linksHandler[this.className.split(" ")[0]]){
			linksHandler[this.className.split(" ")[0]].apply(this); return false;
		}else {
			alert('error - no handlers for '+this.id + ' ' + this.className);
		}
		return false
	});
	
	// linkhandler lookup table:
	var linksHandler = {
		"busy":false,
		"key3":function(){$('#key1').val('').data('wascleared',1)},
		"key2":function(){$('#key1').val('').data('wascleared',1)},
		"key1":function(){
			if (!$('#key1').data('wascleared')){
				$('#key1').css('cursor','text').val('').data('wascleared',1)
			}else{
				$(this).css('cursor','text');
			}
			linksHandler.moreSearchOptions()
		},
		"socialIcons":function(){
			var links= {"facebook":"http://www.facebook.com/arabianEye?ref=ts","twitter":"http://twitter.com/arabianeye","youtube":"http://www.youtube.com/user/arabianEye12","linkedin":"http://www.linkedin.com/groups?viewMembers=&gid=44644&sik=1277009559136&goback=.anh_44644"}
			var newWindow = window.open(links[this.id], '_blank');
			newWindow.focus();
		},
		"asklive":function(){
			if (psirEYow) psirEYow();
		},
		"linkAccount" : function(){
			if(top.frames[0] && top.frames[0].menuHandler){
				top.frames[0].menuHandler('menu_3');
			}else{return true}
		},
		"previewtoptab":function(){
			$('.previewtoptab, .preview_leaf').removeClass('selected')
			$(this).addClass('selected');
			$('#'+this.id.replace('tab','leaf')).addClass('selected')
		},
		"moreOptionsPulldownButton":function(){
			$('#divToolBox_1').slideDown('fast');
		},
		"panelproxy":function(){
				lightboxToolsHandler(this.id.split('_')[0]);
		},
		"fauxGoButtonGrey":function(){
			switch (document.body.id){
				case 'lightboxPage':
						lightboxToolsHandler('linkLightboxCopyMove');
					break;
					case 'searchResults':
						$('#powersearchButton').click();
					break; 
			}
		},
		"roundToolsbottomClose":function(){
			switch (document.body.id){
				case 'lightboxPage':	
					$('#divToolBox_1').slideUp('fast');
				break; 
				case 'searchResults': 
					$('#searchToolsContainer').slideUp('fast',function(){
						$('#moreSearchPulldownButton').css('display','block');	
					});
				break; 
			}
			if (oSuggestionsBox) oSuggestionsBox.hide();
		},
		"moreSearchPulldownButton":function(){
			$('#quickFilterContainer').css('display','none');
			$(this).css('display','none');
			
			$('#searchToolsContainer').slideDown('fast');
			if (oSuggestionsBox) oSuggestionsBox.hide();
		},
		"thumbswitch":function(){
			$('.viewStyle').each(function(){
				var $this = $(this);
				if ($this.css('display')=='none'){
					$this.css('display','block')
					setCookie("galleryViewStyle",this.id.split('_')[1]); 
				}else{
					$this.css('display','none')
				}
			})
		},
		"registerLink":function(){
			if (aeGuest){
				top.location.href= '/register/';
			}else{
				parent.toppanel.menuHandler(ms.register)
			}
		},		
		"loginLink":function(){
			if (aeGuest){
				top.location.href= '/login/';
			}else{
				top.frames[0].menuHandler(ms.login);
			}
		},
		"buttonContainer":function(){
			var a = $(this).find('a') 
			if (a.attr('target') == '_blank'){
				var newWindow = window.open(a.attr('href'), '_blank');
				newWindow.focus();
			}else{
				top.location.href= a.attr('href');
			}
		},
		"linkLightboxPanelContainer":function(){
			infradoxAction.panelUp('lightbox');
		},
		"orderhilitelinked":function(){
			infradoxAction.panelDown();			
		},
		"lightboxPanelLink":function(){
			infradoxAction.panelDown();			
		},
		"backToFeatures":function(){
			top.frames[0].menuHandler('submenu_1_0')
		},
		"sideButton":function(){
			switch(document.body.id){
				case 'lightboxPage':
				case 'searchResults':
					if($(this).hasClass("right")){
						if ($('#topNav a.next').length) infradoxState.next();
					}else{				
						if ($('#topNav a.previous').length) infradoxState.previous();
					}	
				break; 
				default:
					if($(this).hasClass("right")){
						aePaginationButtons.openNextPage()	
					}else{
						aePaginationButtons.openPreviousPage()	
					}	
			}
		},
		"paginationButton":function(){
			switch(document.body.id){
				case 'lightboxPage':
				case 'searchResults':
					$('#paginationButtons').find('a.selected').removeClass('selected');
					$(this).addClass('selected');
					var itemId = this.id.split('_')[1];
					infradoxState.changeViewStyleOption(itemId);
				break; 
				default:
					ajaxLoaderOpen();
					specs = this.id.split('_');
					setCookie("selectedPagination",specs[1],1); 
					setTimeout(function(){
						ajaxLoaderClose();
						location.reload(true);
					},1000)

			}
		},
		"lightboxLink":function(){
				if (aeGuest){
					top.location.href='/login/';
				}else{
					top.frames[0].menuHandler(ms.lightbox)
				}
		},
		"orderLink":function(){
			if (aeGuest){
					top.location.href='/login/';
				}else{
					top.frames[0].menuHandler(ms.order)
				}
		},

/*		"bigimg" : function(){ alert('x');
			var a = $('#thumbnail_'+this.src.match(/[0-9]+\.jpg/).toString().replace('.jpg',''));
			if (typeof(a.attr("onclick"))==='function') {
				a.attr("onclick")();
			}else{
				location = a.find('.previewImageLink').attr('href');
			}
		},
*/
		
		"verySmallBox":function () {
			$('.verySmallBox').removeClass('selected');
			$(this).addClass('selected');
			var a=this.id.split('_');
			aeLoadBigImage(aeGetBackgroundImage($(this)).replace('scache','pcache'),a[2]+'_'+a[3]);
		}, 
		
		"topcompimg" : function(){
			top.location.href="/";
		},
		"powersearchButton":function(){
			srbodylinkHandler('powersearchButton');
		},
		"moreSearchOptions":function(){
			linksHandler["roundToolsbottomClose"]();
			aemenu.searchMenuShow(); 
		},
		"moreSearchOptionsOpen":function(){
			aemenu.searchMenuHide(1);
		},
		"fauxfilter":function(){
			var $this = $(this);
			if(linksHandler.busy || $this.hasClass('disabled')) return; 
			linksHandler.busy = true; 
			var specs = this.id.split('_');
			var realboxid = specs.slice(1).join('_');
			var realbox = $('#'+realboxid);
			realbox.attr("checked",!realbox.attr("checked"));
			$this.toggleClass('deselected'); 
			if (!$this.hasClass('categoryhead')){
				if (specs[0].substr(0,1)!='m'){
					$('#m'+this.id).toggleClass('deselected'); 
				}else{
					$('#faux_'+realboxid).toggleClass('deselected'); 
				}
			}else{
				aemenu.excludeFilters();
			}		
			linksHandler.busy = false; 
		}
	}

}

function modelreleaseIcons(){
	var $ind = $('.indicators'); 
	var dat = false; 
	if($ind.length){
		if  (typeof(content) != 'undefined' && content.media){
			dat  = content.media; 
		} else {
			dat = data.details;
		}
		if (dat){ 
			$ind.each(function(i){
				$(this).addClass(dat[i].mr ? 'release' : 'norelease').append('<span alt="model release" title="model release" class="releaseIcon"></span>');
			});
		}
	}
};

function enForceFrames(){
	if(!aeGuest && parent && parent !== top) top.location ='/'; //prevent multiple nestings when errors happen
	
	if (aeGuest || top !== self ) return false; //happens only when user is not 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};
	if (!jqreadyfired){
		jqready();
	}
})




