/*Usage:

	var hasher = new hashChanger();
	hasher.set('hash');
	window.addEvent('load', function(){
		hasher.addEvent('change', function(hash){ myFunction(hash); });
	});
*/

var hashChanger = new Class({
	
	Implements: Events,
	
	hash: '',
	
	delay: 500,
	
    initialize: function() {
        this.hashCheck.periodical(this.delay, this);
    },
    
    set: function(value) {
    	this.hash = value;
    	document.location.hash = value; 
    },
    
    hashCheck: function() {
    	var hashTmp = document.location.hash.replace('#', ''); 
    	
        if (hashTmp != this.hash)
        {
        	this.hash = hashTmp;
        	this.fireEvent('change', this.hash);
        }
    }
	
});

function initOpacity(place)
{
	if (!Browser.Engine.trident)
	{		
		$$(place+'a img').each(function(el){ 
			el.addEvent('mouseenter', function(){ if (el.getStyle('opacity') == 1) { new Fx.Tween(el, { duration: 500 }).start('opacity', 0.5); } });
			el.addEvent('mouseleave', function(){ new Fx.Tween(el, { duration: 500 }).start('opacity', 1); });
		});
		$$('div.main-menu-about-pic a img').removeEvents();
		$$('div.article-list-pic a img').removeEvents();
		$$('div.main-menu-gallery-tab a img').removeEvents();
	}	
}

function topMenuSetActive(id, id2)
{	
	$$('a.mainMenuParentBtnFocused').each(function(el){
		el.removeClass('mainMenuParentBtnFocused');
		});	
	$('menu-top-'+id).addClass('mainMenuParentBtnFocused');

	
	$$('a.subMenuParentBtnFocused').each(function(el){
		el.removeClass('subMenuParentBtnFocused');	
		});	
	
	if ($('menu-sub-'+id2)) $('menu-sub-'+id2).addClass('subMenuParentBtnFocused');
	
}

/*
function topMenuSetActive(id, id2)
{	
	$$('a.menu-top-a').each(function(el){
		el.removeClass('menu-top-a');
		el.addClass('menu-top-i');		
		});	
	$('menu-top-'+id).removeClass('menu-top-i');
	$('menu-top-'+id).addClass('menu-top-a');

	$$('a.menu-sub-a').each(function(el){
		el.removeClass('menu-sub-a');	
		});	
	
	if ($('menu-sub-'+id2)) $('menu-sub-'+id2).addClass('menu-sub-a');
}
*/
function linksHandle()
{
	isIE = (window.ActiveXObject) ? true : false;
	
	var arr = new Array();
	//var arr1 = $$('div.menu-top a');
	var arr1 = $$('ul#nav a');
	var arr2 = $$('div#subMenusContainer a');
	var arr3 = $$('div.menu-nav a');
	var arr4 = $$('div.main-menu-accordion a');
		
	arr.extend(arr1);
	arr.extend(arr2);
	arr.extend(arr3);
	arr.extend(arr4);
	
	arr.each(function(item){		
				
		if (item.href.indexOf(host_url) >= 0 && item.href.indexOf('/upload/') == -1 && item.href.indexOf('#') == -1)
		{		
			item.addEvent('click', function(event){ 
				ret = linksHandleItem(item); 
				if( !isIE && !ret ) event.preventDefault(); 
				return ret; 
				});
		}
		
	});
}

function linksHandleContent()
{
	isIE = (window.ActiveXObject) ? true : false;
	
	var arr = $$('div.content a');
	
	arr.each(function(item){		
				
		if (item.href.indexOf(host_url) >= 0 && item.href.indexOf('/upload/') == -1 && item.href.indexOf('#') == -1)
		{		
			item.addEvent('click', function(event){ 
				ret = linksHandleItem(item); 
				if( !isIE && !ret ) event.preventDefault(); 
				return ret; 
				});
		}
		
	});
}

function setSiteTitle(title)
{
	var tmp = $$('title');
	tmp[0].text = title + ' : Medical Prestige';
}

function linksHandleItem(item, href)
{		
	if (href)
	{
		if (href.indexOf('.html') == -1) return;
		base_url = href;
	}
	else		
		base_url = item.href.replace(host_url, '');
	
	sliderContentOpened = false;	
	contentShow();
	
	var req = new Request.HTML({
		url: host_url + '/www/page.php', 
		evalResponse: false,
		evalScripts: false,
		method: 'get',
		data: 'uri='+base_url,
		onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) 
		{
			$('content-ajax').set('html', responseHTML);
			$exec(responseJavaScript);			 
			Cufon.refresh();				
			linksHandleContent();
			
			if (!Browser.Engine.trident)
			{
				new Fx.Tween('content-ajax', { transition: 'quad:out', duration: 1000, onComplete: function() { CSBfleXcroll('article-content'); } }).start('opacity', 0, 1);
			}
			else
			{
				CSBfleXcroll('article-content');
			}
			
			$('content-header').removeClass('ajax-loader');
			swapText('div.contact input.input-text');
			swapText('div.contact textarea');
			swapText('div.contact2 input.input-text');
			swapText('div.contact2 textarea');			
			initOpacity('div.content-ajax ');
			hasher.set(base_url);
		}
	});	
	
	$('content-header').addClass('ajax-loader');
	
	if (!Browser.Engine.trident)
	{	
		new Fx.Tween('content-ajax', { transition: 'quad:out', duration: 500,		
				onComplete: function(){
					req.send();
				}
		}).start('opacity', 1, 0);
	}
	else
	{
		req.send();
	}
	
	return false;
}

function initPage(home)
{
	window.addEvent('load', function(){				
		initContent(home);
		//initMenuTop();
		initLangs();
		initGallery();
		swapText('input.input-text');		
		linksHandle();
		initOpacity('');
		
		initMainMenu();
		mainMenuShow(2);
	});
}

var sliderLangs;

function initLangs()
{
	if($('languages-list-slider')){
		sliderLangs = new Fx.Slide('languages-list-slider');
		sliderLangs.hide();	
	}
}

var sliderMenuTop;
var menuSubs;
var menuLevel2;

function initMenuTop()
{
	sliderMenuTop = new Fx.Slide('menu-top-level2', { link: 'cancel' });
	sliderMenuTop.hide();
	
	menuSubs = $$('div.menu-top-level2 div.menu-top-sub');
	menuLevel2 = $('menu-top-level2');
	
	$('menu-top').addEvent('mouseleave', function(){
		sliderMenuTop.slideOut();
		});
	
	$$('div.menu-top-level1 a').each(function(el, i)
		{		
			el.addEvent('mouseenter', function(){
													
					var subMenu = $('menu-top-sub-'+i);
				
					if (subMenu)
					{
						var active = el.hasClass('menu-top-a');
						menuSubs.setStyle('display', 'none');						
						subMenu.setStyle('display', '');	
						
						menuLevel2.removeEvents();
						
						if (!active)
						{							
							menuLevel2.addEvent('mouseenter', function(){
								el.removeClass('menu-top-i');
								el.addClass('menu-top-a');
								Cufon.replace('a.menu-top-a', { fontFamily: 'Calibri', hover: { color: '#FFFFFF' } });
							});							
							
							menuLevel2.addEvent('mouseleave', function(){
									el.removeClass('menu-top-a');
									el.addClass('menu-top-i');
									Cufon.replace('a.menu-top-i', { fontFamily: 'Calibri', hover: { color: '#FFFFFF' } });
								});
						}
						
						sliderMenuTop.cancel();
						
						sliderMenuTop.slideIn();						
					}
					else
					{
						sliderMenuTop.slideOut();
					}
					
				});
		});
}

var sliderContent;
var sliderContentOpened = false;

function initContent(home)
{	
	if (!Browser.Engine.trident)
	{
		sliderContent = new Fx.Tween('content', { transition: 'quad:in:out', duration: 1000,
			onStart: function(){
				if (!sliderContentOpened)
				{
					$('main-menu').fade('out');
					if($('languages-list')) $('languages-list').fade('out');
				}
			},
			onComplete: function(){
				if (sliderContentOpened)
				{
					$('main-menu').fade('in');
					if($('languages-list')) $('languages-list').fade('in');
					sliderContentOpened = false;
				}
				else
				{
					sliderContentOpened = true;
				}
			}
		});
	}
	else
	{
		sliderContent = new Fx.Tween('content', { transition: 'quad:in', duration: 1000,
			onStart: function(){
				if (!sliderContentOpened)
				{
					$('main-menu').setStyle('display', 'none');
					if($('languages-list')) $('languages-list').setStyle('display', 'none');
				}
			},
			onComplete: function(){
				if (sliderContentOpened)
				{
					$('main-menu').setStyle('display', '');
					if($('languages-list')) $('languages-list').setStyle('display', '');
					sliderContentOpened = false;
				}
				else
				{
					sliderContentOpened = true;
				}
			}		
		});
	}
	
	if (!home) contentShow();
}

function contentShow()
{
	if (galleryActive)
	{
		$('flash-main').setImg('start_photo');
		galleryActive = false;
	}	

	sliderContent.start('height', 565);
}

function contentHide()
{	
	if (!sliderContentOpened) return;

	hasher.set('');
	
	if (galleryActive)
	{
		$('flash-main').setImg('start_photo');
		galleryActive = false;
	}	
	
	sliderContent.start('height', 0);
}

function swapText(objs)
{
	$$(objs).each(function(el){
		
		var field = 'value';
		
		if (el.tagName == 'TEXTAREA')
			field = 'html';
		
		if (el.title != '')
		{		
			if (el.get(field) == '') el.set(field, el.title);
			
			el.addEvent('focus', function(){
				if (el.get(field) == el.title) el.set(field, ''); 		
			});
			
			el.addEvent('blur', function(){
				if (el.get(field) == '') el.set(field, el.title); 		
			});
		}
		
	});
}

var mainMenuFxWidth, mainMenuFxHeight, mainMenuFxHide;
var mainMenuItems;
var mainMenuItemsContent;
var mainMenuItemsContentActive;

function initMainMenu()
{
	mainMenuItemsContentActive = 0;	
	mainMenuItemsContent = $$('div.main-menu-accordion-entry div.main-menu-accordion-content');	
	mainMenuItems = $$('div.main-menu-accordion-entry'); 
	
	mainMenuFxWidth = new Fx.Elements(mainMenuItems, { 
		link: 'cancel', 
		duration: 500, 
		transition: 'cubic:out',
		onStart: function(){
			mainMenuShowHeight();
			if (Browser.Engine.trident)
				$$('div.main-menu-gallery-arrow').setStyle('display', 'none');
		},
		onComplete: function(){
			mainMenuChangeContent();
			if (Browser.Engine.trident)
				$$('div.main-menu-gallery-arrow').setStyle('display', '');			
		}
	});
	
	mainMenuFxHeight = new Fx.Elements(mainMenuItems, { 
		link: 'cancel', 
		duration: 300, 
		transition: 'quad:out'
	});	
	
	mainMenuFxHide = new Fx.Elements(mainMenuItems, { 
		link: 'cancel', 
		duration: 100, 
		transition: 'quad:out',
		onComplete: function(){
			if (mainMenuItemsContentActive != -1)
				$('main-menu-accordion-content-'+mainMenuItemsContentActive).setStyle('display', '');
			mainMenuShowWidth();
		}
	});		
	
	mainMenuItems.each(function(el, i){
		el.addEvent('click', function(){			
			if (i == 3)
				var id = 2;
			else
				var id = i;
			
			mainMenuItemsContentActive = id;			
			mainMenuHideHeight();
			});	
		});
	
	//$('main-menu-accordion').addEvent('mouseleave', function(){
	//	mainMenuHideAll();
	//	});
}

function mainMenuShow( i ){
	if (i == 3)
		var id = 2;
	else
		var id = i;
			
	mainMenuItemsContentActive = id;			
	mainMenuHideHeight();	
}

function mainMenuChangeContent()
{
	mainMenuItemsContent.setStyle('display', 'none');
	if (mainMenuItemsContentActive != -1)
		$('main-menu-accordion-content-'+mainMenuItemsContentActive).setStyle('display', '');
}

function mainMenuHideHeight()
{
	mainMenuFxSetings = {};
	
	mainMenuFxSetings[0] = { 'height': [173], 'margin-top': [172] };
	mainMenuFxSetings[1] = { 'height': [173], 'margin-top': [172] };
	mainMenuFxSetings[2] = { };
	
	mainMenuFxHide.start(mainMenuFxSetings);	
}

function mainMenuShowWidth()
{		
	mainMenuFxSetings = {};
	
	mainMenuFxSetings[0] = { 'width': [43] };
	mainMenuFxSetings[1] = { 'width': [43] };	
	mainMenuFxSetings[2] = { 'width': [0] };
	
	if (mainMenuItemsContentActive == 0)
	{
		mainMenuFxSetings[0] = { 'width': [430] };
		mainMenuFxSetings[1] = { 'width': [43] };
	}
	else if (mainMenuItemsContentActive == 1)
	{
		mainMenuFxSetings[0] = { 'width': [43] };
		mainMenuFxSetings[1] = { 'width': [430] };
	}
	else if (mainMenuItemsContentActive == 2)
	{
		mainMenuFxSetings[0] = { 'width': [43] };
		mainMenuFxSetings[1] = { 'width': [43] };
		mainMenuFxSetings[2] = { 'width': [678] };
	}
		
	mainMenuFxWidth.start(mainMenuFxSetings);
}

function mainMenuShowHeight()
{	
	mainMenuFxSetings = {};	
	mainMenuFxSetings[0] = { };
	mainMenuFxSetings[1] = { };
	mainMenuFxSetings[2] = { };
	
	if (mainMenuItemsContentActive == 0)
	{
		mainMenuFxSetings[0] = { 'height': [345], 'margin-top': [0] };	
		mainMenuFxSetings[1] = { };
	}
	else if (mainMenuItemsContentActive == 1)
	{
		mainMenuFxSetings[0] = { };
		mainMenuFxSetings[1] = { 'height': [345], 'margin-top': [0] };
	}
	
	mainMenuFxHeight.start(mainMenuFxSetings);
}

function mainMenuHideAll()
{
	if (galleryActive)
	{
		$('flash-main').setImg('start_photo');
		galleryActive = false;
	}
	
	mainMenuItemsContentActive = -1;
	mainMenuHideHeight();
}

function mainMenuShowPicture(obj, id)
{
	galleryActive = true;
	$('flash-main').setImg($('main-menu-gallery-entry-'+id).title);
}

var gallery;
var galleryCounter = 0;
var galleryItems = 3;
var galleryCount = 0;
var galleryActive = false;

function initGallery()
{
    if ( $('main-menu-gallery') == null ) return;    
    if ( $('main-menu-gallery-container') == null ) return;

    galleryCount = $$('div.main-menu-gallery-entry').length;
    $('main-menu-gallery-container').setStyle('width', (210 * galleryCount)+'px')

    gallery = new Fx.Scroll('main-menu-gallery', { transition: 'cubic:out' });
}

function galleryNext()
{
	galleryCounter++;
    
	if ( galleryCounter > galleryCount - galleryItems)
        galleryCounter = 0;

	gallery.toElement('main-menu-gallery-entry-'+galleryCounter);
}

function galleryPrev()
{
    galleryCounter--;
    
	if ( galleryCounter < 0 )
        galleryCounter = galleryCount - galleryItems;

    if ( galleryCounter < 0 )
        galleryCounter = 0;
    
	gallery.toElement('main-menu-gallery-entry-'+galleryCounter);
}

var menuScroll;
var menuCounter;
var menuItems;
var menuCount;

function menuScroll(items, height, active)
{
	menuItems = items;
	menuCounter = 0;
	menuCount = 0;
	menuScroll = null;
	
    if ( $('menu-scroll') == null ) return;    
    if ( $('menu-scroll-container') == null ) return;

    menuCount = $$('a.menu-scroll-entry').length;
    $('menu-scroll-container').setStyle('height', (height * menuCount)+'px')

    menuScroll = new Fx.Scroll('menu-scroll', { transition: 'cubic:out' });
    
    if (active > menuItems)
    {
    	menuCounter = active - menuItems + 1;
    	
    	menuScroll.toElement('menu-scroll-'+menuCounter);
    	
    	if (menuCounter == menuCount - menuItems)
    	{
    		$('menu-scroll-arrowup').setStyle('display', '');
    		$('menu-scroll-arrowdown').setStyle('display', 'none');
    	}
    	else
    	{
    		$('menu-scroll-arrowup').setStyle('display', '');
    		$('menu-scroll-arrowdown').setStyle('display', '');		
    	}	    	
    }
}

function menuNext()
{
	menuCounter++;
    
	if ( menuCounter > menuCount - menuItems)
		menuCounter = 0;

	menuScroll.toElement('menu-scroll-'+menuCounter);
	
	if (menuCounter == menuCount - menuItems)
	{
		$('menu-scroll-arrowup').setStyle('display', '');
		$('menu-scroll-arrowdown').setStyle('display', 'none');
	}
	else
	{
		$('menu-scroll-arrowup').setStyle('display', '');
		$('menu-scroll-arrowdown').setStyle('display', '');		
	}	
}

function menuPrev()
{
	menuCounter--;
    
	if ( menuCounter < 0 )
		menuCounter = menuCount - menuItems;

    if ( menuCounter < 0 )
    	menuCounter = 0;

	if (menuCounter == 0)
	{
		$('menu-scroll-arrowup').setStyle('display', 'none');
		$('menu-scroll-arrowdown').setStyle('display', '');
	}
	else
	{
		$('menu-scroll-arrowup').setStyle('display', '');
		$('menu-scroll-arrowdown').setStyle('display', '');		
	}
    
    menuScroll.toElement('menu-scroll-'+menuCounter);
}

function initMenuNews()
{
	$$('div.menu_news_i').each(function(el){
		el.addEvent('mouseenter', function(){
			el.removeClass('menu_news_i');
			el.addClass('menu_news_a');
			});
		el.addEvent('mouseleave', function(){
			el.removeClass('menu_news_a');
			el.addClass('menu_news_i');			
			});		
		});
}

var articleScroll;
var articleCounter = 0;
var articleItems = 3;
var articleCount = 0;
var articleDouble;
var articlePeriodical = true;

function initArticleScroll(double)
{
	articleDouble = double;
	
    if ( $('article-scroll') == null ) return;    
    if ( $('article-scroll-container') == null ) return;

    articleCount = $$('div.article-scroll-entry').length;
    $('article-scroll-container').setStyle('width', (300 * articleCount)+'px')

    articleScroll = new Fx.Scroll('article-scroll', { transition: 'cubic:out' });
        
    if (articleDouble)
    	(function(){ if (articlePeriodical) articleNextPeriod(); }).periodical(6000);
}

function articlePagesSet()
{
	if (articleDouble)
	{
		$('article-list-pages-from').set('html', (articleCounter * 2) + 1);
		$('article-list-pages-to').set('html', (articleCounter * 2) + 6);
	}
	else
	{
		$('article-list-pages-from').set('html', articleCounter + 1);
		$('article-list-pages-to').set('html', articleCounter + 3);		
	}
	
	Cufon.replace('div.article-list-pages', { fontFamily: 'Helvetica' });
}

function articleNextPeriod()
{
	articleCounter++;
    
	if ( articleCounter > articleCount - articleItems)
		articleCounter = 0;

	articleScroll.toElement('article-scroll-'+articleCounter);
	articlePagesSet();
	
	if (articleCounter == articleCount - articleItems)
	{
		$('article-scroll-arrowleft').setStyle('display', '');
		$('article-scroll-arrowright').setStyle('display', 'none');
	}
	else
	{
		$('article-scroll-arrowleft').setStyle('display', '');
		$('article-scroll-arrowright').setStyle('display', '');		
	}	
}

function articleNext()
{
	articlePeriodical = false;
	articleCounter++;
    
	if ( articleCounter > articleCount - articleItems)
		articleCounter = 0;

	articleScroll.toElement('article-scroll-'+articleCounter);
	articlePagesSet();
	
	if (articleCounter == articleCount - articleItems)
	{
		$('article-scroll-arrowleft').setStyle('display', '');
		$('article-scroll-arrowright').setStyle('display', 'none');
	}
	else
	{
		$('article-scroll-arrowleft').setStyle('display', '');
		$('article-scroll-arrowright').setStyle('display', '');		
	}	
}

function articlePrev()
{
	articlePeriodical = false;
	articleCounter--;
    
	if ( articleCounter < 0 )
		articleCounter = articleCount - articleItems;

    if ( articleCounter < 0 )
    	articleCounter = 0;

    articleScroll.toElement('article-scroll-'+articleCounter);
    articlePagesSet();    
    
	if (articleCounter == 0)
	{
		$('article-scroll-arrowleft').setStyle('display', 'none');
		$('article-scroll-arrowright').setStyle('display', '');
	}
	else
	{
		$('article-scroll-arrowleft').setStyle('display', '');
		$('article-scroll-arrowright').setStyle('display', '');		
	}
}

function contactValidate(fields)
{
	var form = document.forms.formContact;
	
	form.name.setStyle('color', '');
	form.email.setStyle('color', '');
	form.message.setStyle('color', '');
	
	fields.each(function(el){
		form[el].setStyle('color', '#FF7777');
		});
}

function contactValidate2(fields)
{
	var form = document.forms.formContact;
	
	form.name.setStyle('color', '');
	form.email.setStyle('color', '');
	form.city.setStyle('color', '');
	form.phone.setStyle('color', '');
	
	fields.each(function(el){
		form[el].setStyle('color', '#FF7777');
		});
}
