/*
 * This file is part of the cppf package.
 * (c) 2005-2009 Coronaria Oy <devel@coronaria.fi>
 */
/**
 * Basic script collection
 * @version $Id: site.js 5093 2009-10-23 06:23:40Z thanhiro $
 */
//DOM ready block starts
window.addEvent('domready', function() {
	$$('a.questionSubmitSqueeze').addEvent('click',function(e) {
		e.stop();
		var category = $('selectCategory').get('value');
		var title = $('questionHeader').get('value');
		var details = $('questionDetails').get('value');

		if (categoryCookie != null) {
			categoryCookie.dispose('category');
		}
		if (titleCookie != null) {
			titleCookie.dispose('title');
		}
		if (detailsCookie != null) {
			detailsCookie.dispose('details');
		}
		
		var categoryCookie = Cookie.write('category',category);
		var titleCookie = Cookie.write('title',title);
		var detailsCookie = Cookie.write('details',details);
	
		if (category != 0 && title != '') {
		    SqueezeBox.open(this,{size: {x: 340, y: 280}});	
		}
		else
		{
			alert('Kategoria ja/tai otsikko puuttuu!');
		}
	});
	
	
	/**
	 * External link direction
	 * @author TH
	 */
	$$('a[rel=external]').each(function(link) {
		link.addEvent('click', function(event){
			window.open(this.href);
			return false;
		});
	});
	
	/**
	 * Inputs with disappearing default values
	 * @author TH
	 */
	$$('input.defaultvalue').each(function(el) {
		el.addEvent('focus', function(event){
			this.set('value','');
			this.setStyle('color','#000');
			this.store('isChanged',true);
			this.removeEvents('focus');
		});
	});
	
	/**
	 * Disappearing values must be ignored if they aren't changed
	 * @author TH
	 */
	$$('form.defaultvalued').each(function(el) {
		el.addEvent('submit', function(event){
			els = this.getElements('input.defaultvalue');
			for (i=0; i < els.length; i++) {
				if ( els[i].retrieve('isChanged')!=true) {
					els[i].set('value','');
				}
			}
		});
	});
	
	/**
	 * Stateful form save during writing period
	 * @author TH
	 */
	//ATTENTION: $$ will be document.search in MooTools 2.0
	tmp = $$('form.stateful');
	if (tmp != '') {
		var counter = 0;
		var timer;
		
		var autosave = function(){
						
			var log = $$('div.stateful-info')[0].set('html','tallennetaan...');
	        var form = $$('form.stateful')[0];
	        var formId = (form.get('id') != undefined) ? form.get('id') : '';
	        cloneForm = form.clone();
	        
	        cloneForm.set('action','/xhr/'+statefulConf.module+'/autosave/'+statefulConf.action+'/'+formId);
	        
	        //We must make sure that default values aren't saved in autosave, 
	        //so we use cloned form and previously stored isChanged data to remove them 
        	els = form.getElements('input.defaultvalue');
        	els2 = cloneForm.getElements('input.defaultvalue');
			for (i=0; i < els.length; i++) {
				if ( els[i].retrieve('isChanged')!=true) {
					els2[i].dispose();
				}
			}
			//there's nosave indicators in form
			els3 = cloneForm.getElements('input.nosave');
			for (i=0; i < els3.length; i++) {
				els3[i].dispose();
			}
			
	        cloneForm.set('send', {
	        	onComplete: function(response) {
		            if(response == 1) {
		                var date = new Date();
		                var hours = date.getHours().toString();
		                var minutes = date.getMinutes().toString();
		                var seconds = date.getSeconds().toString();
		                if (hours.length == 1)
		                	hours = '0'+hours;
		                if (minutes.length == 1)
		                	minutes = '0'+minutes;
		                if (seconds.length == 1)
		                	seconds = '0'+seconds;
		                var now = hours + ":" + minutes + ":" + seconds;
		                
		                log.setStyle('display','block');
		                log.set('class','success-msg stateful-info');
		                log.set('html', 'Luonnos tallennettu viimeksi: ' + now);
		            } else {
		            	log.setStyle('display','block');
		
		                log.set('class','error-msg stateful-info');
		            	log.set('html', 'Automaattitallennus epäonnistui.');
		            }
	        }});
	        counter++;
	        cloneForm.send();
	        
		    if (counter > 20) {
		    	autosave = $clear(timer);
		    }
	    };
	    timer = autosave.periodical(20000);   
	}
});
//DOM ready block ends

function doQuestionSubmit() {
	var category = Cookie.read('category');
	var title = Cookie.read('title');
	var details = Cookie.read('details');
	
	$('hCategory').set('value',category);
	$('hTitle').set('value',title);
	$('hDetails').set('value',details);	
	
	Cookie.dispose('category');
	Cookie.dispose('title');
	Cookie.dispose('details');
}


/**
 * Resizer of text
 * @param string method Action to do to text
 */
function resize(method) {
	if(method=="larger") {
		$$('#cppfArticleContent').each(function(el) {
			el.setStyle('font-size',(el.getStyle('font-size').toInt()+1)+'px');
		});
		$$('#cppfArticleContent a').each(function(el) {
			el.setStyle('font-size',(el.getStyle('font-size').toInt()+1)+'px');
		});
		$$('#cppfArticleContent h1').each(function(el) {
			el.setStyle('font-size',(el.getStyle('font-size').toInt()+1)+'px');
		});
		$$('#cppfArticleContent h2').each(function(el) {
			el.setStyle('font-size',(el.getStyle('font-size').toInt()+1)+'px');
		});
		$$('#cppfArticleContent h3').each(function(el) {
			el.setStyle('font-size',(el.getStyle('font-size').toInt()+1)+'px');
		});
		$$('#cppfArticleContent h4').each(function(el) {
			el.setStyle('font-size',(el.getStyle('font-size').toInt()+1)+'px');
		});
		$$('#cppfArticleContent p').each(function(el) {
			el.setStyle('font-size',(el.getStyle('font-size').toInt()+1)+'px');
		});
	}
	if(method=="smaller") {
		$$('#cppfArticleContent').each(function(el) {
			el.setStyle('font-size',(el.getStyle('font-size').toInt()-1)+'px');
		});
		$$('#cppfArticleContent a').each(function(el) {
			el.setStyle('font-size',(el.getStyle('font-size').toInt()-1)+'px');
		});
		$$('#cppfArticleContent h1').each(function(el) {
			el.setStyle('font-size',(el.getStyle('font-size').toInt()-1)+'px');
		});
		$$('#cppfArticleContent h2').each(function(el) {
			el.setStyle('font-size',(el.getStyle('font-size').toInt()-1)+'px');
		});
		$$('#cppfArticleContent h3').each(function(el) {
			el.setStyle('font-size',(el.getStyle('font-size').toInt()-1)+'px');
		});
		$$('#cppfArticleContent h4').each(function(el) {
			el.setStyle('font-size',(el.getStyle('font-size').toInt()-1)+'px');
		});
		$$('#cppfArticleContent p').each(function(el) {
			el.setStyle('font-size',(el.getStyle('font-size').toInt()-1)+'px');
		});
	}
};

/**
 * Alert-like easy message box with SqueezeBox
 * @author TH
 * @extends SqueezeBox
 * @param string Text to print in box
 * @param int w Width
 * @param int h Height
 */ 
SqueezeBox.msg = 	 
	function(responseText,w,h) {
		if (!$defined(w))
			w = 300;
		if (!$defined(h))
			h= 75;
		 this.initialize({
			handler:'string',
		size:{
			x:w,
			y:h
		}}
	);
	this.setContent('string', '<div style=\"margin-top:22px;text-align:center\"><strong>'+responseText)+'</strong></div>';
	this.showContent();
};

/**
 * instance LoadBox
 * Lays loading msg box over given element
 * @author TH
 */
var LoadBox = {
	presets: {
		opacity: 0.4,
		loadingText: 'ladataan'
	},
	render: function(el, conf) {
		conf = (conf != undefined && typeof(conf)=='object')?$merge(this.presets,conf):this.presets;
		if (Browser.Engine.trident) {
			elb = el;
			for (var posX = 0, posY = 0; el; el = el.offsetParent ) {
			      posX += el.offsetLeft;
			      posY += el.offsetTop;
			}
			el = elb;
			posY = posY + (el.getSize().y/2-13);
			posX = posX + (el.getSize().x/2-39);
		} else {
			coords = el.getCoordinates(document.body);
			posY = coords.top + (coords.height/2-13);
			posX = coords.left + (coords.width/2-39);
		}
		//If argument conf is defined, we merge it with presets. If not, let's revert to presets
		el.getChildren().set('opacity',conf.opacity);
		
		box = new Element('div', {
			'class': 'load-box',
			'styles':{
				'top': posY,
				'left': posX 
			},
			'html':'<img src=\"http://images.coronaria.fi/?id=4188303\" alt=\"\" /> '+conf.loadingText
		});
		box.inject(el,'top');
		
	}
};

window.addEvent('domready', function() {  
	SqueezeBox.assign($$('a.admin'), {
		size: {x: 640, y: 330},
		parse: 'rel'
	});
	
});

/**
 * Image selection in avatar change
 * @param string
 */
function selectImage(name) {				
	while( window.opener.document.getElementById('avatarImg').hasChildNodes() ) { 
		window.opener.document.getElementById('avatarImg').removeChild( window.opener.document.getElementById('avatarImg').firstChild ); 
	}
	
	img = document.createElement('img');
	var now = new Date();
	img.src = 'http://images.coronaria.fi/tmp/'+name+'?'+now.getTime();
	window.opener.document.getElementById('avatarImg').appendChild(img);
	window.opener.document.getElementById('avatarImg').appendChild(field);
	window.opener.document.getElementById('avatarLink').innerHTML = 'Vaihda avatar';
	
	//window.opener.reload();
	window.close();
}

/**
 * Image deletion in tervetunnus avatar scheme
 */
function deleteImage() {
	if (confirm("Haluatko poistaa kuvan? Huomaa, että poisto tulee voimaan tallennuksen yhteydessä.")) {
		document.getElementById('image').value = '';
		document.getElementById('deletedImage').value = '1';
		document.getElementById('selectedImageHidden').value = 'http://images.coronaria.fi/4881014.png';
		document.getElementById('selectedImage').src = 'http://images.coronaria.fi/4881014.png';
	} else {
		return false;
	}
}

/**
 * mediakorttiPlayer
 */
window.addEvent('domready',function(){
	var mediakorttiPlayer=$('mediakortti-player');
	if(mediakorttiPlayer) {
		mediakorttiPlayer.empty();
		var mediakorttiPlayerContainer=new Element('div',{id:'mediakortti-player-container'});
		var mediakorttiPlayerSelector=new Element('select',{id:'mediakortti-player-selector'});
		var mediakorttiPlayerSelectorTxt=new Element('div',{html:'Katso video:',id:'mediakortti-player-selector-txt'});
		var mediakorttiPlayerSelectorOption1=new Element('option',{text:'Terve.fi:n esittely',value:'http://media.coronaria.fi/terve.fi/tervefi/terveonline/terveonline.flv'});
		var mediakorttiPlayerSelectorOption2=new Element('option',{text:'Marika Eklund, Asiakaspalvelujohtaja, Darwin Media',value:'http://media.coronaria.fi/terve.fi/tervefi/marika.flv'});
		var mediakorttiPlayerSelectorOption3=new Element('option',{text:'Mika Nevalainen, Toimitusjohtaja, Darwin Media',value:'http://media.coronaria.fi/terve.fi/tervefi/mika.flv'});
		var mediakorttiPlayerSelectorOption4=new Element('option',{text:'Seija Vesala, Tuottaja, Darwin Media',value:'http://media.coronaria.fi/terve.fi/tervefi/seija.flv'});
		var mediakorttiPlayerSelectorOption5=new Element('option',{text:'Teemu Puhakka, Päätoimittaja, Darwin Media',value:'http://media.coronaria.fi/terve.fi/tervefi/teemu.flv'});
		mediakorttiPlayerContainer.inject(mediakorttiPlayer);
		mediakorttiPlayerSelectorTxt.inject(mediakorttiPlayer);
		mediakorttiPlayerSelector.inject(mediakorttiPlayer);
		mediakorttiPlayerSelectorOption1.inject(mediakorttiPlayerSelector);
		mediakorttiPlayerSelectorOption2.inject(mediakorttiPlayerSelector);
		mediakorttiPlayerSelectorOption3.inject(mediakorttiPlayerSelector);
		mediakorttiPlayerSelectorOption4.inject(mediakorttiPlayerSelector);
		mediakorttiPlayerSelectorOption5.inject(mediakorttiPlayerSelector);
		function drawWebcast(webcast)
		{
			mediakorttiPlayerContainer.empty();
			mediakorttiPlayerContainer.set('html','<object data="http://media.coronaria.fi/flow/flowplayer-3.1.5.swf" height="239" type="application/x-shockwave-flash" width="424"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://media.coronaria.fi/flow/flowplayer-3.1.5.swf" /><param name="flashvars" value=\'config={"clip":{"autoBuffering":true,"autoPlay":false,"provider":"pseudo","start":0,"url":"'+webcast+'"},"plugins":{"pseudo":{"url":"flowplayer.pseudostreaming-3.1.3.swf"}},"playlist":[{"autoBuffering":true,"autoPlay":false,"provider":"pseudo","start":0,"url":"'+webcast+'"}]}\' /></object>');
		}
		mediakorttiPlayerSelector.addEvent('change',function(){
			drawWebcast(this.options[this.selectedIndex].value);
		});
		drawWebcast('http://media.coronaria.fi/terve.fi/tervefi/terveonline/terveonline.flv');
	}
});
