/**
 * Main JS Script
 * @author Bogumil Wrona
 * @copyright Cre8 New Media
 */

document.observe('dom:loaded', initMainScript);

function initMainScript()
{
//	ROLL OVER IMAGES:
	$$('.rollover').each(function(e) 
	{
		e.identify();
		if (e.hasClassName('selected')) selectedIMG(e);
		else {
			e.observe('mouseover', rollOver);
			e.observe('mouseout', rollOut);
		}
	});
//	LIVE CLOCK:
//	Try.these( function() { var clock = new Clock('timer') } );
	
}

function selectedIMG(objID)
{
	obj = $(objID);
	if(obj.src.match("_1.gif")) {
		newSrc = obj.src.replace(new RegExp("_1.gif\\b"), "_2.gif");
	}
	else if($obj.src.match(".jpg")) {
		newSrc = obj.src.replace(new RegExp("_1.jpg\\b"), "_2.jpg");
	}
	else {
		newSrc = obj.src.replace(new RegExp("_1.png\\b"), "_2.png");
	}
	obj.src = newSrc;
	obj.up('a').replace(obj);
}

function rollOver(evt) {
	rollOverImage = Event.element(evt);		
	if(rollOverImage.src.match("_1.gif")) {
		newSrc = rollOverImage.src.replace(new RegExp("_1.gif\\b"), "_2.gif");
	}
	else if(rollOverImage.src.match("_1.jpg")) {
		newSrc = rollOverImage.src.replace(new RegExp("_1.jpg\\b"), "_2.jpg");
	}
	else {
		newSrc = rollOverImage.src.replace(new RegExp("_1.png\\b"), "_2.png");
	}
	rollOverImage.src = newSrc;
}

function rollOut(evt) {
	rollOutImage = Event.element(evt);
	if(rollOutImage.src.match("_2.gif")) {
		newSrc = rollOutImage.src.replace(new RegExp("_2.gif\\b"), "_1.gif");
	}
	else if(rollOverImage.src.match("_2.jpg")) {
		newSrc = rollOutImage.src.replace(new RegExp("_2.jpg\\b"), "_1.jpg");
	}
	else {
		newSrc = rollOutImage.src.replace(new RegExp("_2.png\\b"), "_1.png");
	}
	rollOutImage.src = newSrc;
}

var DefVal = Class.create(
{
	initialize: function(fieldID, defaultVal) 
	{
		this.field = $(fieldID);
		this.fieldID = fieldID;
		this.defaultVal = defaultVal;
		
		this.isPasswordType = (this.field.type == 'password') ? true : false;
		if(Prototype.Browser.IE) this.isPasswordType = false;
		
		if(this.field.value == '') this.setDefVal();
		
		this.startObserving();
		
	},
	clear: function() 
	{
		this.field.value = '';		
		if(this.isPasswordType) this.field.type = 'password';
	},
	setDefVal: function() 
	{
		this.field.value = this.defaultVal;
		if(this.isPasswordType) this.field.type = 'text';
	},
	isDefVal: function(){
		return (this.field.value.strip() == this.defaultVal);
	},
	fieldOnFocus: function()
	{
		if(this.isDefVal()) this.clear();
	},
	fieldOnBlur: function()
	{
		if(this.field.value.strip() == '') this.setDefVal();
	},
	stopObserving: function()
	{
		Event.stopObserving(this.field, 'focus');
		Event.stopObserving(this.field, 'blur');
	},
	startObserving: function()
	{
		Event.observe(this.field, 'focus', this.fieldOnFocus.bindAsEventListener(this, true));
		Event.observe(this.field, 'blur', this.fieldOnBlur.bindAsEventListener(this, true));
	}
});

var Clock = Class.create(
{
	initialize: function(objID){
		this.obj = $(objID);		
		new PeriodicalExecuter(this.displayTime.bind(this), 1);
	},
	getTime: function()
	{
		var currentTime = new Date();
		return (currentTime.getHours().toPaddedString(2) + ":" + currentTime.getMinutes().toPaddedString(2) + ":" +currentTime.getSeconds().toPaddedString(2));
	},
	displayTime: function()
	{
		this.obj.update(this.getTime());
	}
});