/*==============================================================================
 Global JS
 @author Bruce Thomas
==============================================================================*/

// IE6 background flicker fix - see: http://www.mister-pixel.com/#Content__state=is_that_simple
try { document.execCommand("BackgroundImageCache", false, true); } catch(err) {}

// rollover pre-loader ...
MM_preloadImages('/'+ language() +'/nav/travesia_o.png','/'+ language() +'/nav/reservas_o.png','/'+ language() +'/nav/skyrunner_o.png','/'+ language() +'/nav/tienda_o.png');

// initialize jQuery
jQuery.noConflict();

function getBanner( ) {
	// placerholder function
	// this needs to record impression and click through, via HTTPrequest.
	// return '<a href="http://www.marmotaran.com/#carrosdefoc.com" target="_blank"><img src="/images/banner/banner-marmot.gif" width="468" height="90" /></a>';
	// return "<a href='http://carrosdefoc.com/adsvr/adclick.php?n=a42a594d' target='_blank'><img src='http://carrosdefoc.com/adsvr/adview.php?what=zone:1&amp;n=a42a594d' border='0' alt=''></a>";
	return '<iframe width="468" height="100" frameborder="0" src="/ad-rotate.html" style="background-color:#000;"></iframe>';
}

// on Dom ready
jQuery(function($){
	// insert banner advert into div
	$('#adverts').html( getBanner() );
	
	// random page footer ...
	var rand_no = Math.ceil(5*Math.random())-1;
	$('.main').css('background-image', 'url(/images/bg'+ rand_no +'.jpg)');
	
	// higlight current lang
	$('.lang a').each(function() { var lang = ($(this).html()); if (lang == language()) { $(this).addClass('current'); return; } });
	
	// highlight active utility nav item
	$('.util ul li a:path').each(function() { $(this).addClass('selected'); });
	
	// handle the display of tab content
	var h = -1;
	var showdiv =0;
	$('.tabs ul li a').each(function(){
		h++;

		$(this).click( function(e) {
			//e.preventDefault();
			$(this).parent('ul li').siblings().removeClass();
			$(this).parent('li').addClass('current');
			var showdiv = $('.tabs ul li a').index(this);
			
			
	
			//alert('disply this div: ' + showdiv);
			//alert( $('.tab_content').siblings('.inner').get(0).length );
			$('.tab_content .inner').hide().eq(showdiv).show();
			//alert($('.inner').html() );
			// exception for homepage content.
			if( $('#poster') && ($(this).attr('href') == '#aniversario') ){
				$('#playVideo').hide();
				$('#poster').show();
			} else {
				$('#playVideo').show();
				$('#poster').hide();
			}
		});


		// check the hash to find a content match
		if ( $(this).attr('href').toLowerCase() == location.hash.toLowerCase()) {
			showdiv = h;
		}

		

	});


	$('.tabs ul li').eq(showdiv).addClass('current');
	$('.tab_content .inner').hide().eq(showdiv).show();
	
	// populate the refugios scroller with content from the page.
	if ($('.refugios.scroller')) {
		var cat = '';
		var itm = 0;
		// loop the refugios and cat the scroller content.
		$('.refugios .ref').each(function(e){
			//cat += 'item ' + (++itm);
			cat += '<span class="srcl">';
			cat += '<a href="#">';
			cat += '<span class="scrl image">' + $(this).children('.refimg').children('.mainimg').html() + '</span>';
			cat += '<span class="scrl title">' + $(this).children('h2').html() + '</span>';
			cat += '</a>';
			cat += '</span>';
			itm ++;
		});
		
		// scroller content width
		var scrlw = (105*itm) + 172;
		$('.refugios.scroller').html( '<div class="scrlcontent">'+cat+"</div>");
		
		// wire up the click trigger
		
		$('.refugios.scroller .scrlcontent .srcl a').each(function(){
		var refidx = 0;
			$(this).click( function(e) {
				e.preventDefault();

				$('.refugios.intro').hide();
				$('.refugios.data').show();
				$('.refugios.data .ref').hide().eq( $('.refugios.scroller .scrlcontent .srcl a').index(this) ).show();
				$('.refugios.scroller .scrlcontent .srcl').find('img').css('border','4px solid #fff');
				$(this).find('img').css('border','4px solid red');
			});
		refidx++;
		});
	}
	
	// enlarge refugio thumb
	$('.listimg ul li a').each( function() {
		$(this).click( function(e){
			e.preventDefault();
			var newsrc = $(this).children('img').attr('src');
			$(this).parents('.refimg').find('.mainimg img').attr('src', newsrc);
		});
	});
	
	// product list functions
	$('.products tr').each(function(e) { 
		// alert(e); // e is the index of each row
		$(this).children('td').children('a').click( function(id) {
			id.preventDefault();
			//alert(e);
			var p_parent = $(this).parents('tr'); 
			var heading = p_parent.find('h3').html();
			var pimage = p_parent.find('.prodimg').html();
			var p_price = p_parent.find('td.price strong').html();
			//alert(heading);
			$('.orderlist').append('<div class="prod_itm" id="pid_'+ parseFloat(e) +'"><div class="prod_img"></div><div class="prod_name">'+heading+'</div><div class="prod_qty">'+ getQuantity( e, p_price, heading ) +'</div><div class="prod_del"><a href="#" class="icon del"><span>del</span></a></div><div class="prod_price">'+p_price+' EUR</div></div>');
			p_parent.hide().attr("id", "lid_"+e);


		// auto update the total in the order list.
			$(".prod_itm .prod_qty select").change(function subtotal() {
				//alert('trigger');
				var i =0;
				var o_total = 0;
				$('.prod_itm').each( function(o) {
					
					if(o>0) {
						var order = $(this);
						var o_qty = order.find('.prod_qty select option:selected').val();
						var o_price = order.find('.prod_price').html();
						o_total += parseFloat(o_qty);
						order.find('.prod_price').html( o_qty + ' EUR' );
						
					}
					$('#order_total').text( o_total + ' EUR' );
				});
				
			}).trigger('change');

		// auto update the total in the order list.
			$(".orderlist .prod_itm .prod_del a").click(function (d) {
				d.preventDefault();
				var pid = parseFloat(e);
				//alert('restore id: ' + pid );
				$('#pid_'+pid).remove();
				$('.products tr').eq(pid).toggle();
				
				//alert('trigger');
				var i =0;
				var o_total = 0;
				$('.prod_itm').each( function(o) {
					
					if(o>0) {
						var order = $(this);
						var o_qty = order.find('.prod_qty select option:selected').val();
						var o_price = order.find('.prod_price').html();
						o_total += parseFloat(o_qty);
						order.find('.prod_price').html( o_qty + ' EUR' );
						
					}
					$('#order_total').text( o_total + ' EUR' );
				});
				
				
			});


		});
	 });
	
	// handle the click on the image map.
	$('#refugiomap #Map').each( function() {
		var imidx = 0;
		$(this).children('area').click( function(e) {
			imidx = $('area').index(this);
			if (imidx>0) { trigger( imidx ); }
			
		});
		$(this).children('area').eq(0).click( function(e) {
			e.preventDefault();
			$('.timetable .timing').toggleClass('swap'); 
			var thisimg = $('#refugiomap').children('img');
			thisimg.attr('src', iif( thisimg.attr('src') =='/images/refugios-ccw.png', '/images/refugios-cw.png', '/images/refugios-ccw.png'  ));
		});
	 });
	
	// insert youtube videos into content area.
	$('.media .clip a').each( function (s) {
		$(this).click( function(){
			var href =  $(this).attr('href');
			var media_id = Right(href, href.length-1);
			$('#viewer').html( '<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/'+media_id+'&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/'+media_id+'&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>' );
		});
	} );
	
	// insert foto into content area.
	$('.media.fotos .foto a').each( function (s) {
		$(this).click( function(e) {
			e.preventDefault();
			var imgsrc = $(this).find('img').attr('src').replace('/tn/','/');
			$('#viewer').html( '<a href="'+imgsrc+'" target="_blank"><img src="'+ imgsrc +'"/></a>' );
		});
	});
	
	// submit the form.
	$("#contactus_form .button").click( function() {
		// alert('validate the form....');

		URL = "/php/contact.php";
		form_data = '';
		$('#contactus_form :input').each( function() {
			// collect the  form value and cat into form_data
			var name = $(this).attr('name');
			var value = $(this).attr('value');
			form_data += name + '=' + value + '&';
		});
		form_data += "lang=" + language();
		$.post( URL, form_data, function(data) {
			$('#contactus_form').html(data);
			
		}, "html" );
		
		return false;
	});
});

function getQuantity( product_id, product_price, product_name ) {
	var max_orders = 5;
	var id = product_id.toString();
	var rtn = '<select name="product_total_'+id+'">';
	for (var i=1; i<= max_orders; i++){ rtn += '<option value="'+(i*product_price)+'">'+i+'</option>'; }
	rtn += '</select>';
	rtn += '<input type="hidden" name="product_price_'+id+'" value="'+ product_price +'" />';
	rtn += '<input type="hidden" name="product_name_'+id+'" value="'+ product_name +'" />';
	rtn += '<input type="hidden" name="product_id_'+id+'" value="'+ id +'" />';
	return rtn;
}








function insertFlash( videoFolder, iW, iH ) {
	// NOTE: absolute folder paths!
	// Refering page MUST contain a div id 'playVideo'
	var flashVideo = new SWFObject('/js/flvplayer.swf','flashVideo',iW,iH,'8');
	flashVideo.useExpressInstall('/js/expressInstall.swf');
	flashVideo.addVariable('file',videoFolder+'clip.flv');
	flashVideo.addVariable('image',videoFolder+'static-image.jpg');
	flashVideo.addVariable('width',iW);
	flashVideo.addVariable('height',iH);
	flashVideo.addVariable('displayheight',(iH));
	flashVideo.addVariable('repeat','false');
	flashVideo.addParam('wmode', 'opaque');
	flashVideo.write('playVideo');
}

function trigger( indx) { 
	// open the tab and setup the refugio
	//alert ('tester' + str_hash);
	//alert( indx )
	jQuery(document).ready(function(){
    	//jQuery('.inner').hide();
		jQuery('.inner').hide().parent().find('#refugio_info').show().find('.refugios.intro').hide();
		jQuery('.tabs ul li').removeClass('current').eq(3).addClass('current');
		jQuery('.refugios.data').css('display','block').find('.ref').hide().eq(indx-1).show();
		jQuery('.refugios.scroller .scrlcontent .srcl img').css('border-color','#fff').eq(indx-1).css('border-color','red');
		jQuery('.refugios.scroller').animate( {scrollLeft: (117 * (indx-1))-45} );
	});
}

function ranking(str_lang) {
	// wrapper pop-up
	popUp('/'+ language() +'/ranking.html',520,555);
	return false;
}

function language () {
	// find the language from the URL
	loc = document.location.toString().split('/')[3];
	return loc;
}

function popUp(URL,iw,ih) {
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=0,resizable=0,width="+iw+",height="+ih+"');");
}


function view( str_id ) {
	// toggles the divs for the reserve page
	for (var i = 1; i <=3; i++ ) {
		getElem( 'frm_' + i ).style.display = "none";
	}

	getElem( str_id ).style.display = "block";
	return false;

}
function putDatesFor( str_name ) {

	// modified to insert language.
	var x = 0;
	var formlang = new Array();
	formlang[0] = ['Pension','Media','Completa']; // esp
	formlang[1] = ['Pensi&oacute;','Mitja','Completa']; // cat 
	formlang[2] = ['Pension','Demi','Compl&egrave;te']; // fre
	formlang[3] = ['Pension','Media','Completa']; // eng


	switch ( language() ) {
		case 'cat':
			x = 1;
			break;
		case 'fre':
			x = 2;
			break;
		case 'eng':
			x = 3;
			break;
	}

	var l = formlang[x];
	var sPension = l[0];
	var sMedia =  l[1];
	var sCompleta =  l[2];
	
	document.write('<span><select  name="'+ str_name +'_personas" class="reg">');
	document.write('<option value="-">#</option>');
	for ( var i = 1; i <21; i++) { document.write('<option value="'+i+'">'+i+'</option>'); }
	document.write('</select></span>');
	document.write('<span><input type="text" class="date" name="'+ str_name +'_fecha" value="dd/mm/aaaa" maxlength="10" /></span>');
	document.write('<span><select  name="'+ str_name +'_regimen" class="reg"><option value="-">'+sPension+'</option><option value="MP">'+sMedia+'</option><option value="PC">'+sCompleta+'</option></select></span>');

}



function showRefugio( rid) {
	alert('this is refigio: ' + rid );
}

function getHash() {
	// returns the location hash minus the #
	var tmp = location.hash.toLowerCase();
	return Right(tmp, tmp.length-1);
}

function default_tab() {
	// some global nav buttons goto sub pages
	// this function returns the tab id of the sub-pages i.e. tab index
	// returns -1 (default) of tab index
	var rtn = -1;
	var hash = location.hash.toLowerCase();
	//alert(hash);
	switch( hash )
	{
		case '#reglamento': rtn = 2; break;
		case '#skyrunner': rtn = 1; break;
		default: rtn = 0;
	}
	return rtn;
}


function script_name() {
	// just the script name!!!!
	var l = document.location.href.split('/');
	var i = l.length;
	return l[i-1];
	
}


function validate( obj ) {
/*
var frmVal = obj.value; 
	var name = obj.name;
*/	
	var bConfirmed = false;
	var err = 0;


	for(var r=0; r<notNulls.length;r++) {
		var name = notNulls[r][0];


		if (obj.elements[ name ]) {
			// alert(obj.elements[ frmelename ].type);
			var frmVal = obj.elements[ name ].value;

			var FieldType = notNulls[r][1] 
			switch (FieldType) {
					case "text" : 
						bConfirmed = (frmVal.length>0);
						break; 

					case "email" :
						// this does not take into account CCed emails i.e. contains ";"
						var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
						bConfirmed = filter.test(frmVal);
						break;
			}
			
			if (!bConfirmed) { 
				getElem( name ).style.color = "#cc0000";
				notNulls[r][2]=false;
				err ++;
			} else {
				getElem( name ).style.color = "#666666";
			}
		}
	}
	if (err >0) return false;
	
	// form valid ...
	obj.submit();
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function iif( condition, val1, val2 ) {
	if (condition) return val1; return val2;
}

function getElem( strLayerID ) {
	// returns the style element
	var whichLayer = strLayerID;
	if( document.getElementById ) // this is the way the standards work
		elem = document.getElementById( whichLayer );
	else if( document.all ) // this is the way old msie versions work
		elem = document.all[whichLayer];
	else if( document.layers ) // this is the way nn4 works
		elem = document.layers[whichLayer];
	return elem;
}



function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function IsNumeric(sText)

{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }

