var LiftsAmpPists = {
	sel : "liftsAmpPists",
	wrp: null,
	init : function(){
		// target with css
		$('liftsAmpPists').addClassName('js');
		
		if (this.exists()) {
			this.PistModal.init();
			this.printie();
			this.Digits.init();
			
			var lnksElmsHere = document.getElementsByTagName('link');
			for(var i=0,max=lnksElmsHere.length;i<max;i++){
				var elm = lnksElmsHere[i];
				if(elm.media && elm.media == 'all'){
				   elm.media = 'screen';
				}else if(elm.getAttribute('media')=='all'){
				   elm.setAttribute('media','screen');
				}
				if(elm.getAttribute('href').match(/article_print/)){
				   elm.setAttribute('href','/app/projects/common/style/liftpist_print.css');
				}
			}
			var symbolImages = this.wrp.getElementsByClassName('symbolimage');
			for(var i=0,max=symbolImages.length; i<max; i++){
				if(symbolImages[i].innerHTML.length==0){
					symbolImages[i].innerHTML = '<img src="/app/projects/common/images/system/liftpist/weathersymbols/met_ikoner.jpg" alt="">';
				}
			}
		}
	},
	exists: function(){
		this.wrp = $(this.sel);
		return this.wrp != null;
	},
	printie : function(){
		var c = this;
		if(this.wrp.className.match('modal')){
			var printThis = document.getElementsByClassName('printThis')[0];
			var print = $("printOptions");
			var btn = printThis.getElementsByTagName('button')[0];
			
			if(print){
				print.hide();
			
				var printies = print.getElementsByTagName('ul')[0];
				btn.onclick = function(){
					// fetch areas
					var areas = '';
					var isWeatherModal = false;
					
					h = c.wrp.getElementsBySelector('.eyecandynav span');
					if (h.length == 0) {
					    isWeatherModal = true;
					    h = c.wrp.getElementsBySelector('option');
					    
					}
					
					for(var i = 0, max=h.length; i < max; i++){
						var ch = '';
						var lclass = '';
						if (isWeatherModal) {
						    if (h[i].selected) {
						        ch = ' checked';
    							lclass = ' class="active"';
						    }
						} else {
						    if (h[i].up('.active')){
    							ch = ' checked';
    							lclass = ' class="active"';
    						}
						}
						areas += '<li'+lclass+'><input'+ch+' type="checkbox" id="printMe'+i+'" name="printME"><label for="printMe'+i+'">'+h[i].innerHTML+'</label></li>';
					}
					printies.innerHTML = areas;
					$('printOptions').toggle();
					return false;
				};
			
				$('printAllAreas').onclick = function(){
					var elms = print.getElementsBySelector('input');
					var newState = this.checked;
					for(var i=0, max=elms.length; i<max; i++){
						elms[i].checked = (elms[i].up('.active')) ? true : newState;
					}
				};
			
				var lnks = print.getElementsByTagName('a');
				lnks[0].onclick = function(){LiftsAmpPists.printLP(printies);};
				lnks[1].onclick = function(){ print.hide(); };
			}else{
				btn.onclick = function(){
					window.print();
				};
			}
		}
	},
	printLP : function(printies) {
		var hs = printies.getElementsByTagName('input');
		var areasToPrint = [];
		
		var opts = this.wrp.getElementsBySelector('option');
		var isWeather = opts.length > 0;
		
		for(var i = 0, max = hs.length; i < max; i++){
			if(hs[i].checked){
				areasToPrint[areasToPrint.length] = (isWeather) ? opts[i].getAttribute('value') : i;
			}
		}
		// window.print();
		var toPrintParamValue = areasToPrint.join(',');
		var toPrintParam = '&printAreas=' + toPrintParamValue;
		var apa = $('generateLPVPDFPrint').href.replace(/&printAreas\=.+$/, '') + toPrintParam;
		//window.open( apa, 'lpv print' );
		//$('printOptions').hide();
		$('generateLPVPDFPrint').href = apa;
		//~ return false;
	},
	PistModal : {
		sels : {},
		exists : function(){
			return LiftsAmpPists.wrp.hasClassName('pistliftmodal');
		},
		init : function(){
			this.wrp = LiftsAmpPists.wrp;
			if(!this.exists()) return;
			//this.tooltipize();
			this.navigize();
		},
		navigize : function(){
			
			//elms
			var pic = document.createElement('div');
			pic.id = "eyecandy-mapContainer";
			var pl = document.createElement('div');
			pl.className = "openedAmpClosed";
			var tsrUpper = document.createElement('div');
			tsrUpper.className = "teaser upper";
			var tsrLower = document.createElement('div');
			tsrLower.className = "teaser";

			// create nav
			var navUl = document.createElement('ul');
			navUl.className ='eyecandynav clearfix';
			var h = this.wrp.getElementsBySelector('div.openedAmpClosed h2 a');
			for(var i=0, max=h.length; i<max; i++){
				var elm = h[i];
				var lnk = document.createElement('a');
			 	 lnk.className = elm.id;
				 lnk.href = elm.href;
				 lnk.innerHTML = elm.innerHTML;
				var li = document.createElement('li');
				li.appendChild(lnk);
				var wrp = elm.up('.area');
				
				li.className = (i==0) ? "active" : "";
				li.id="rofl_shooter"+i;
				if(!wrp.className.match(/active/)){
					wrp.addClassName("onlyPrint");
				}
				navUl.appendChild(li);
				Element.extend(li);
				wrp.id="rofl_target"+i;
				elm.up('h2').remove();
				if (i === 0) {
					pic.innerHTML = wrp.getElementsBySelector(".map")[0].innerHTML;
					pic.className = wrp.className;
					var tsrs = wrp.getElementsBySelector(".teaser");
					tsrUpper.innerHTML = tsrs[0].innerHTML;
					tsrLower.innerHTML = tsrs[1].innerHTML;
					var clonedList = wrp.getElementsBySelector(".openedAmpClosed")[0].cloneNode(true);
					pl.appendChild(clonedList);
				}
				var c = this;
				Event.observe(li.getElementsBySelector('a')[0],'click',function(evt){
					var elmd = Event.element(evt).up('li');
					elmd.up('ul').getElementsBySelector('li.active')[0].className="";
					
					c.wrp.getElementsBySelector('.area').each(function(item){
						$('printOptions').hide();
						var tId = parseInt(item.id.replace('rofl_target',''), 10);
						if(tId == parseInt(elmd.id.replace('rofl_shooter',''), 10)){
							item.className += " active";
							var bjufs = $('rofl_target'+tId);
							pic.innerHTML = bjufs.getElementsBySelector('.map')[0].innerHTML;
							pic.className = bjufs.className;
							var tsrs = bjufs.getElementsBySelector(".teaser");
							tsrUpper.innerHTML = (tsrs[0] != null) ? tsrs[0].innerHTML : "";
							tsrLower.innerHTML = (tsrs[1] != null) ? tsrs[1].innerHTML : "";
							pl.removeChild(pl.firstChild);
							var clonedListSec = bjufs.getElementsBySelector('.openedAmpClosed')[0].cloneNode(true);
							pl.appendChild(clonedListSec);
						}else{
							item.className = item.className.replace(" active","");
						}
					});
					elmd.className = "active";
					Event.stop(evt);
				});
			}
			var formElm = this.wrp.getElementsBySelector('div.nav form')[0];
			var navElm = this.wrp.getElementsBySelector('div.nav')[0];
			
			navElm.parentNode.appendChild(tsrLower);
			navElm.parentNode.insertBefore(pic, navElm);
			navElm.parentNode.insertBefore(tsrUpper, navElm);
			navElm.parentNode.insertBefore(pl, navElm.nextSibling);
			navElm.insertBefore(navUl, formElm);
			
			// toggle closed/opened pists & lifts
			formElm.getElementsBySelector('input').each(function(item){
				item.onclick = function(){
					var isChecked = item.checked;
					var isOpened = item.id=="pl_opened";
					var pils = $('liftsAmpPists').getElementsBySelector('.lifts li','.pists li');
					for(var i=0, max=pils.length; i<max; i++){
						var yitem = pils[i];
						var hideIt;
						if(isOpened===true && yitem.className.match(/y/)!==null) {
							yitem.style.display = isChecked===true ? "" : "none";
						}
						if(isOpened===false && yitem.className.match(/n/)!==null) {
							yitem.style.display = isChecked===true ? "" : "none";
						}
					};
				};
			});
		},
		tooltipize : function(){
			var tt = document.createElement('div');
			tt.id = "LPVToolTip";
			this.wrp.appendChild(tt);
			
			Event.observe($$('body')[0],'mousemove',function(event){
				tt.style.left = Event.pointerX(event)+10 + "px";
				tt.style.top = Event.pointerY(event)+10/*@cc_on-90@*/ + "px";
			});
			this.wrp.getElementsBySelector('.map a').each(function(elm){
				var p = elm.up('li');
				p.appendChild(elm);
			});
			this.wrp.getElementsBySelector('.map')[0].observe('mouseover',function(event){
				var elm = Event.element(event);
				tt.style.display = (elm.nodeName == "SPAN" || elm.up().nodeName == 'A' || elm.nodeName == 'A') ? "block" : "";
				tt.innerHTML = elm.up('li').innerHTML;
				tt.className = elm.up('li').className;
			});
			this.wrp.getElementsBySelector('.map > ul')[0].addClassName('hidden');
		}
	},
	Digits: {
		sels: {
			digits: [".snow span", "div.weather strong", "div.open span", "div.map li li span", "div.map li strong", "div.forecasts li .temp span", "div.forecasts li .wind span", "div.skitrails span"]
		},
		sizes: [20, 24, 20, 24, 24, 24, 20, 20],
		size18: {},
		size20: {},
		size22: {},
		size24: {},
		init: function(){
			this.wrp = LiftsAmpPists.wrp;
			// size 18
			this.size18["/"] = new Array(0, 11);
			this.size18["-"] = new Array(-11, 8);
			this.size18["0"] = new Array(-19, 10);
			this.size18["1"] = new Array(-29, 5);
			this.size18["2"] = new Array(-34, 10);
			this.size18["3"] = new Array(-44, 9);
			this.size18["4"] = new Array(-53, 10);
			this.size18["5"] = new Array(-63, 10);
			this.size18["6"] = new Array(-73, 10);
			this.size18["7"] = new Array(-83, 9);
			this.size18["8"] = new Array(-92, 10);
			this.size18["9"] = new Array(-102, 10);
			this.size18["\u00B0"] = new Array(-112, 7);
			this.size18["C"] = new Array(-119, 9);
			this.size18["M"] = new Array(-128, 9);
			this.size18["c"] = new Array(-119, 9);
			this.size18["m"] = new Array(-128, 9);
			this.size18["."] = new Array(-136, 2);
			// size 20
			this.size20["/"] = new Array(0, 12);
			this.size20["-"] = new Array(-12, 9);
			this.size20["0"] = new Array(-21, 10);
			this.size20["1"] = new Array(-32, 6);
			this.size20["2"] = new Array(-38, 11);
			this.size20["3"] = new Array(-49, 10);
			this.size20["4"] = new Array(-59, 11);
			this.size20["5"] = new Array(-70, 11);
			this.size20["6"] = new Array(-81, 11);
			this.size20["7"] = new Array(-92, 10);
			this.size20["8"] = new Array(-101, 11);
			this.size20["9"] = new Array(-113, 10);
			this.size20["\u00B0"] = new Array(-124, 8);
			this.size20["C"] = new Array(-132, 10);
			this.size20["M"] = new Array(-142, 12);
			this.size20["c"] = new Array(-132, 10);
			this.size20["m"] = new Array(-142, 12);
			this.size20["."] = new Array(-154, 2);
			// size 22
			this.size22["/"] = new Array(0, 13);
			this.size22["-"] = new Array(-13, 10);
			this.size22["0"] = new Array(-23, 12);
			this.size22["1"] = new Array(-35, 6);
			this.size22["2"] = new Array(-41, 12);
			this.size22["3"] = new Array(-53, 11);
			this.size22["4"] = new Array(-64, 12);
			this.size22["5"] = new Array(-76, 12);
			this.size22["6"] = new Array(-88, 12);
			this.size22["7"] = new Array(-100, 11);
			this.size22["8"] = new Array(-111, 12);
			this.size22["9"] = new Array(-123, 12);
			this.size22["\u00B0"] = new Array(-135, 9);
			this.size22["C"] = new Array(-144, 11);
			this.size22["M"] = new Array(-155, 12);
			this.size22["c"] = new Array(-144, 11);
			this.size22["m"] = new Array(-155, 12);
			this.size22["."] = new Array(-167, 3);
			// size 24
			this.size24["/"] = new Array(0, 14);
			this.size24["-"] = new Array(-14, 11);
			this.size24["0"] = new Array(-25, 13);
			this.size24["1"] = new Array(-38, 7);
			this.size24["2"] = new Array(-45, 13);
			this.size24["3"] = new Array(-58, 12);
			this.size24["4"] = new Array(-70, 13);
			this.size24["5"] = new Array(-83, 13);
			this.size24["6"] = new Array(-96, 13);
			this.size24["7"] = new Array(-109, 12);
			this.size24["8"] = new Array(-121, 13);
			this.size24["9"] = new Array(-134, 13);
			this.size24["\u00B0"] = new Array(-147, 8);
			this.size24["C"] = new Array(-155, 12);
			this.size24["M"] = new Array(-167, 12);
			this.size24["c"] = new Array(-155, 12);
			this.size24["m"] = new Array(-167, 12);
			this.size24["."] = new Array(-181, 3);
			
			for (var elms, i = 0, max = this.sels.digits.length; i < max; i++) {
				elms = this.wrp.getElementsBySelector(this.sels.digits[i]);
				if (elms.length > 0) {
					this.txtToImages(elms, this.sizes[i]);
				}
			}
			
		},
		// modified version of the original snow site script.
		txtToImages: function(elms, size){
			for (var i = 0, max = elms.length; i < max; i++) {
				var e = elms[i];
				e.innerHTML.replace("&deg;","°");
				e.innerHTML.replace(" ","");
				e.addClassName('digits');
				var oldelem = e.lastChild.nodeValue;
				var newelem = document.createElement('div');
				newelem.className = "eyecandy-wrap";
				var wrapx = 0;
				var cool = oldelem.charAt(0) != "-" && oldelem.toLowerCase().match('c') ? "uncool" : "cool";
				for (var j = 0, maxJ = oldelem.length; j < maxJ; j++) {
						var chwrap = document.createElement('span');
						chwrap.className = "eyecandy";
						var character = document.createElement('img');
						var k = oldelem.charAt(j);
						var values;
						if (size == 18) {
							values = this.size18[k];
						}
						if (size == 20) {
							values = this.size20[k];
						}
						if (size == 22) {
							values = this.size22[k];
						}
						if (size == 24) {
							values = this.size24[k];
						}
						var xpos = values[0];
						var xdim = values[1];
						character.style.left = xpos + "px";
						chwrap.style.width = xdim + "px";
						wrapx += xdim;
						character.alt = k;
						character.src = "/app/projects/common/images/system/liftpist/b" + size + "_" + cool + ".png";
						chwrap.style.height = size + "px";
						chwrap.appendChild(character);
						newelem.appendChild(chwrap);
					}
					newelem.style.width = wrapx + "px";
					e.replaceChild(newelem, e.lastChild);
				
			}
		}
	}
};
/*===/Lift&Pist===*/