// Business Catalyst 2008
function catSetSelectedCSSItemFix(menuid) {
    var _host = document.location.host;
	var _fullUrl = document.location.href;
	var _url = document.location.href.substring(document.location.href.indexOf(_host)+_host.length).toLowerCase();
	var _anchor;
    var _parent;
    var _class;
    var _image;
    var _anchors = document.getElementById(menuid).getElementsByTagName('a');

	var ie = false;
	var _detect = navigator.userAgent.toLowerCase();	
	if (_detect.indexOf('msie') > 0) ie = true;
	    
	if (_url.indexOf('?') != -1) _url = _url.substring(0,_url.indexOf('?')); // must remove query variables
	
	// preparation of comparison array
	var _url_elems = _url.split("/"); // defines the menu path to current url (page)
	var priorityUrls = new Array();
	priorityUrls[0] = _url;
	var cnt = 1;
	for(var j=_url_elems.length-1; j>=0; j--){
		if(_url_elems[j]!=""){
			var rs = "/"+_url_elems[j];
			var arrElm = priorityUrls[cnt-1].replace(rs,"");
			if(arrElm!=""){
				priorityUrls[cnt] = arrElm;
				cnt++;
			}
		}
	}
	
	// seek for menu element that has the best variant
	var bestAnchor = null;
	for (var i=0;i<_anchors.length;i++) {
		for(var j=0; j<priorityUrls.length;j++){
			_anchor = _anchors[i].href.substring(document.location.href.indexOf(_host)+_host.length).toLowerCase();
			if(_anchor == priorityUrls[j]){
				/*bestAnchor = _anchors[i];
				break;*/
				_image = _anchors[i].getAttribute('selimg'); // sel img is on anchor
				if (_image)
					_anchors[i].style.background = "url("+_image+")";					
				_parent = _anchors[i].parentNode; // get li node
				while (_parent) {
					if (_parent.id == menuid) break; // don't go up infinitely
					if (_parent.tagName == "LI") {
						_class = _parent.getAttribute('selcss'); // sel css is on li
						if (_class)				
							_parent.className = _class; 
						else { // logic below as per partner req't
							if (ie){
									var ver = getInternetExplorerVersion();
									if (ver > -1) {
										if (ver >= 8.0)
											_class = _parent.getAttribute('class'); 
										else
											_class = _parent.getAttribute('className'); 
									}
								} 				            
							else
								_class = _parent.getAttribute('class'); 
								
							if (_class)
								_parent.className = _class+" selected";	
							else
								_parent.className = "selected";	
							//when you mouse over the selected class get removed. fix..
							_parent.onmouseout = function(val) {
								return function() {
									if (val)
										this.className = val + " selected";
									else
										this.className = "selected";
								}
							} (_class);					            
							
						}
					}
					_parent = _parent.parentNode;
				}
				break;
			}
		}
	}
}

function updateWrapperClass(){
	var _wrapper = $('.wrapper');
	
	var _host = document.location.host;
	var _fullUrl = document.location.href;
	var _url = document.location.href.substring(document.location.href.indexOf(_host)+_host.length).toLowerCase();
	var _url_elems = _url.split("/"); // defines the menu path to current url (page)
	if(_wrapper!=null){
		var additionalClassNames = ""
		for (var i=0;i<_url_elems.length;i++) {
			if(_url_elems[i].indexOf(".")>0){
				_url_elems[i] = _url_elems[i].substr(0, _url_elems[i].indexOf("."))
			}
			if(trim(_url_elems[i])!=""){
				additionalClassNames = additionalClassNames + " " + _url_elems[i]; 
			}
		}
		_wrapper.addClass(additionalClassNames);
	}
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
