var ie6 = !!(window.XMLHttpRequest && document.expando);
var ie7 = (!window.XMLHttpRequest);


/*
http://robertnyman.com/2008/05/27/the-ultimate-getelementsbyclassname-anno-2008/
className
    One or several class names, separated by space. Multiple class names demands that each match have all of the classes specified. Mandatory.
tag
    Specifies the tag name of the elements to match. Optional.
elm
    Reference to a DOM element to look amongst its children for matches. Recommended for better performance in larger documents. Optional. 
*/
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

function isDescendant(parent, child) {
     var node = child.parentNode;
     while (node != null) {
         if (node == parent) {
             return true;
         }
         node = node.parentNode;
     }
     return false;
}

var exclusions = getElementsByClassName('gallery-thumbs-items','img');

if(gte_ie_8) {
	var imgSizer = {
		Config : {
			imgCache : []
			,spacer : "/utlandes/public_html/media/images/blank.gif"
		},
		excluded: function(img) {
			if(exclusions) {
				for (var i = 0; i < exclusions.length; i++) {
					if(isDescendant(exclusions[i],img)) return true;			
				}
				return false;
			}
		},collate : function(aScope) {
			var isOldIE = (document.all && !window.opera && !window.XDomainRequest) ? 1 : 0;
			if (isOldIE && document.getElementsByTagName) {
				//alert('ImageResizer: IE Compatibility Mode');
				var c = imgSizer;
				var imgCache = c.Config.imgCache;
				var images = (aScope && aScope.length) ? aScope : document.getElementsByTagName("img");
				for (var i = 0; i < images.length; i++) {
					if(exclusions && !imgSizer.excluded(images[i])) {
						images[i].origWidth = images[i].offsetWidth;
						images[i].origHeight = images[i].offsetHeight;
						imgCache.push(images[i]);
						c.ieAlpha(images[i]);
						images[i].style.width = "100%";
					}
				}
	
				if (imgCache.length) {
					c.resize(function() {
						for (var i = 0; i < imgCache.length; i++) {
							//don't bother with small images
							if(imgCache[i].origWidth > 1) {
								var ratio = (imgCache[i].offsetWidth / imgCache[i].origWidth);
								imgCache[i].style.height = (imgCache[i].origHeight * ratio) + "px";
							}
						}
					});
				}
			}
		}
	
		,ieAlpha : function(img) {
			var c = imgSizer;
			if (img.oldSrc) {
				img.src = img.oldSrc;
			}
			var src = img.src;
			img.style.width = img.offsetWidth + "px";
			img.style.height = img.offsetHeight + "px";
			img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')"
			img.oldSrc = src;
			img.src = c.Config.spacer;
		}
		
		,resize : function(func) {
			var oldonresize = window.onresize;
			if (typeof window.onresize != 'function') {
				window.onresize = func;
			} else {
				window.onresize = function() {
					if (oldonresize) {
						oldonresize();
					}
					func();
				}
			}
		}
	}
	
	Cufon.replace('.mp_r', { fontFamily: 'Myriad Pro Regular', hover: false }); 
	Cufon.replace('.mp_b', { fontFamily: 'Myriad Pro Bold', hover: false });
	
	jQuery(document).ready( function() {
		var $body = jQuery('body'); //Cache this for performance
		var setBodyScale = function() {
			var scaleSource = $body.width(),
				scaleFactor = 0.075,                     
				maxScale = 300,
				minScale = 30; //Tweak these values to taste
			var fontSize = scaleSource * scaleFactor; //Multiply the width of the body by the scaling factor:
			if (fontSize > maxScale) fontSize = maxScale;
			if (fontSize < minScale) fontSize = minScale; //Enforce the minimum and maximums
			jQuery('body').css('font-size', fontSize + '%');
			//alert('Font-size: '+fontSize+'%');
		}
		jQuery(window).smartresize(function(){
			//imgSizer.collate();
			setBodyScale();
			Cufon.replace('.mp_r', { fontFamily: 'Myriad Pro Regular', hover: false }); 
			Cufon.replace('.mp_b', { fontFamily: 'Myriad Pro Bold', hover: false });
		});
		setBodyScale();
		if(is_iphone) {
			jQuery('#topNav li:nth-child(4)').append(" ");
		}
		jQuery("#moreless").toggle(function() {
			jQuery('#copyLimited').css('height', 'auto').css('overflow', 'visible');
			jQuery(this).text('..[less]');
		}, function() {
			jQuery('#copyLimited').css('height', '85px').css('overflow', 'hidden');
			jQuery(this).text("..[more]");
		});
		setBodyScale();
	});
// end if gte_ie_8
}

