var grabbed = null;

Native.implement([Document, Element], {
  
  clone: function(contents, keepid){
		switch ($type(this)){
			case 'element':
				var attributes = {};
				for (var j = 0, l = this.attributes.length; j < l; j++){
					var attribute = this.attributes[j], key = attribute.nodeName.toLowerCase();
					if (Browser.Engine.trident && (/input/i).test(this.tagName) && (/width|height/).test(key)) continue;
					var value = (key == 'style' && this.style) ? this.style.cssText : attribute.nodeValue;
					if (!$chk(value) || key == 'uid' || (key == 'id' && !keepid)) continue;
					if (value != 'inherit' && ['string', 'number'].contains($type(value))) attributes[key] = value;
				}
				var element = new Element(this.nodeName.toLowerCase(), attributes);
				if (contents !== false){
					for (var i = 0, k = this.childNodes.length; i < k; i++){
						var child = Element.clone(this.childNodes[i], true, keepid);
						if (child) element.grab(child);
					}
				}
				return element;
			case 'textnode': return document.newTextNode(this.nodeValue);
			case 'whitespace': return document.newTextNode(this.nodeValue);
		}
		return null;
	}
  
});

function printLink(){
	var pl = $('printLink');
	if(pl == null) return;
	
	pl.setProperty('href', 'javascript:preparePrint();');
	pl.setProperty('target', '');
}

function preparePrint(){
	if(grabbed == null){
		grabbed = $('contentRight').clone();
		grabbed.setProperty('id', 'contentRightPrint');
		grabbed.addClass('notOnScreen');
		grabbed.injectAfter('breadcrumb');
	}
	
	$$( '.rgaccord1-nest' ).each(function(item){
		if(item.slider){
			item.slider.show();
			item.getElement( '.rgaccord1-toggle' ).addClass('act');
		}
	});
	
	
	if(Browser.Engine.trident && $('clientList')){
		var BrowserDetect = {
			init: function () {
				this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
				this.version = this.searchVersion(navigator.userAgent)
					|| this.searchVersion(navigator.appVersion)
					|| "an unknown version";
				this.OS = this.searchString(this.dataOS) || "an unknown OS";
			},
			searchString: function (data) {
				for (var i=0;i<data.length;i++)	{
					var dataString = data[i].string;
					var dataProp = data[i].prop;
					this.versionSearchString = data[i].versionSearch || data[i].identity;
					if (dataString) {
						if (dataString.indexOf(data[i].subString) != -1)
							return data[i].identity;
					}
					else if (dataProp)
						return data[i].identity;
				}
			},
			searchVersion: function (dataString) {
				var index = dataString.indexOf(this.versionSearchString);
				if (index == -1) return;
				return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
			},
			dataBrowser: [
				{
					string: navigator.userAgent,
					subString: "Chrome",
					identity: "Chrome"
				},
				{ 	string: navigator.userAgent,
					subString: "OmniWeb",
					versionSearch: "OmniWeb/",
					identity: "OmniWeb"
				},
				{
					string: navigator.vendor,
					subString: "Apple",
					identity: "Safari",
					versionSearch: "Version"
				},
				{
					prop: window.opera,
					identity: "Opera"
				},
				{
					string: navigator.vendor,
					subString: "iCab",
					identity: "iCab"
				},
				{
					string: navigator.vendor,
					subString: "KDE",
					identity: "Konqueror"
				},
				{
					string: navigator.userAgent,
					subString: "Firefox",
					identity: "Firefox"
				},
				{
					string: navigator.vendor,
					subString: "Camino",
					identity: "Camino"
				},
				{		// for newer Netscapes (6+)
					string: navigator.userAgent,
					subString: "Netscape",
					identity: "Netscape"
				},
				{
					string: navigator.userAgent,
					subString: "MSIE",
					identity: "Explorer",
					versionSearch: "MSIE"
				},
				{
					string: navigator.userAgent,
					subString: "Gecko",
					identity: "Mozilla",
					versionSearch: "rv"
				},
				{ 		// for older Netscapes (4-)
					string: navigator.userAgent,
					subString: "Mozilla",
					identity: "Netscape",
					versionSearch: "Mozilla"
				}
			],
			dataOS : [
				{
					string: navigator.platform,
					subString: "Win",
					identity: "Windows"
				},
				{
					string: navigator.platform,
					subString: "Mac",
					identity: "Mac"
				},
				{
					   string: navigator.userAgent,
					   subString: "iPhone",
					   identity: "iPhone/iPod"
			    },
				{
					string: navigator.platform,
					subString: "Linux",
					identity: "Linux"
				}
			]
		
		};
		BrowserDetect.init();
		if(BrowserDetect.version <= 7){
			$nuhtml = '<table cellspacing="0" cellpadding="0" id="clientMFIEfix">';
			$nuhtml+= '<tr>';
			$nuhtml+= '<td id="clientColumnLeft" style="float: none; width:260px;">';
			$nuhtml+= $('clientColumnLeft').get('html');
			$nuhtml+= '</td>';
			$nuhtml+= '<td id="clientColumnRight" style="float: none; width:250px;">';
			$nuhtml+= $('clientColumnRight').get('html');
			$nuhtml+= '</td>';
			$nuhtml+= '</tr>';
			$nuhtml+= '</table>';
			
			$('clientList').set('html', $nuhtml);
		}
	}
	
	window.print();
}

window.addEvent( 'domready', printLink);

function loadFallback(){
	if( window.accordionToggle){
		accordionToggle();
	}
	if(window.clientToggle){
		clientToggle();
	}
	if( window.clientInfoToggle){
		clientInfoToggle();
	}
}

window.onload = loadFallback;
