/**
 * @author shebita
 */
 if (typeof console == 'undefined') {
console = {};
    console.trace   = function() {};
    console.log     = function() {};
    console.debug   = function() {};
    console.info    = function() {};
    console.warn    = function() {};
    console.error   = function() {};
    console.time    = function() {};
    console.timeEnd = function() {};
    console.count   = function() {};
};

function URLDecode(psEncodeString)
{
  // Create a regular expression to search all +s in the string
  var lsRegExp = /\+/g;
  // Return the decoded string
  return unescape(String(psEncodeString).replace(lsRegExp, " "));
}
 
var _currentDiv = "_main";
var _currentSlide = null;
var fxScroll = null;
var mainWidth = screen.availWidth;
var mainHeight = screen.availHeight;
var loaded = [];
loaded['_main'] = loaded['_agency'] = loaded['_hunting'] = loaded['_design'] = loaded['_web'] = loaded['_adv'] = loaded['_events'] = false;
var xPos=0;
var yPos=0;
slides = [];
clickedMe = {};
var even = false;
window.addEvent('domready', function() {
	$("mainContainer").setStyles({ width: (mainWidth*3)*1.34, height:(mainHeight*3)*1.1, padding:0 });
	fxScroll = new Fx.Scroll(window, {duration: 1100, wait: false, transition: Fx.Transitions.Quint.easeInOut});	
	setSizesAndPos();
	$$("sectionContainer").set('load', {evalScripts:true});		
	$('_main').set('load', {onSuccess: function(responseText, responseXML) { onLoaded('_main')}});
	$('_agency').set('load', {onSuccess: function(responseText, responseXML) { onLoaded('_agency')}});
	$('_hunting').set('load', {onSuccess: function(responseText, responseXML) { onLoaded('_hunting')}});
	$('_design').set('load', {onSuccess: function(responseText, responseXML) { onLoaded('_design')}});
	$('_web').set('load', {onSuccess: function(responseText, responseXML) { onLoaded('_web')}});
	$('_adv').set('load', {onSuccess: function(responseText, responseXML) { onLoaded('_adv')}});
	$('_events').set('load', {onSuccess: function(responseText, responseXML) { onLoaded('_events')}});
	$('_contact').set('load', {onSuccess: function(responseText, responseXML) { onLoaded('_contact')}});
		
	$('_main').load('home.php');
        adjustWidth('_main');
	/*$('_agency').load('agency.php');
	$('_hunting').load('cool_hunting.php');
	$('_design').load('design.php');
	$('_web').load('web.php');
	$('_adv').load('advertisement.php');
	$('_events').load('events.php');
	$('_contact').load('contact.php');*/
});

setSizesAndPos = function(div) {
	$('mainContainer').getElements('div.sectionContainer').each(function(item, index){
		$(item.id).setStyles({left:xPos, top:yPos});
		adjustWidth(item.id);
		xPos += mainWidth;
		if (xPos > (mainWidth*2)) {
			xPos = 0;
			yPos += mainHeight;
		}
	});	
}

onLoaded = function(div) {
	loaded[div] = true;

	/*if (loaded['_main'] && loaded['_agency'] && loaded['_hunting'] && loaded['_design'] && loaded['_web'] && loaded['_adv'] && loaded['_events'] && loaded['_contact'])
	{*/
		setClickEvents();
                fxScroll.toElement(div); 	
                _currentDiv = div;
	//}
}

adjustWidth = function(div, restore) {
		var effect = new Fx.Morph(div, {duration: 'short', transition: Fx.Transitions.Linear});
		effect.start({
			'width': mainWidth,   //Morphs the width from the current to 300px.
			'height': mainHeight
		});
}

gotoDivId = function(toDiv) {        
        if (!loaded[toDiv]) {
           $(toDiv).load(toDiv+'.php'); 
        } else {
            fxScroll.toElement(toDiv); 	
            _currentDiv = toDiv;
        }
}
	
setClickEvents = function() {
	// *************** SCROLLING NAVIGATION	
	var _currentDiv = '_main';	
	$$('.gotoHome').addEvent('click', function(event){ e = new Event(event); gotoDivId('_main'); e.stop(); });
	$$('.gotoAgency').addEvent('click', function(event){ e = new Event(event); gotoDivId('_agency'); e.stop(); });
	$$('.gotoHunting').addEvent('click', function(event){ e = new Event(event); gotoDivId('_hunting'); e.stop(); });
	$$('.gotoDesign').addEvent('click', function(event){ e = new Event(event); gotoDivId('_design'); e.stop(); });
	$$('.gotoWeb').addEvent('click', function(event){ e = new Event(event); gotoDivId('_web'); e.stop(); });
	$$('.gotoAdv').addEvent('click', function(event){ e = new Event(event); gotoDivId('_adv'); e.stop(); });
	$$('.gotoEvents').addEvent('click', function(event){ e = new Event(event); gotoDivId('_events'); e.stop(); });
	$$('.gotoContact').addEvent('click', function(event){ e = new Event(event); gotoDivId('_contact'); e.stop(); });	
}
/**
 *Function to show the slider of a category
 **/
placeSlider = function(divID) {
	if (divID) {
                if (document.getElementById(divID+'_outer')) {
                        showSlider(divID);				
                        addSliderClickEvents(divID, divID);
                }
	}
}

showSlider = function(divID) {	
	new SlideItMoo({
		overallContainer: divID+'_outer',
		elementScrolled: divID+'_inner',
		thumbsContainer: divID+'_items',		
		itemsVisible:5,
		itemsSelector: '._element',
		itemWidth: 170,
		showControls:true,
		mouseWheelNav: true});	
}

addSliderClickEvents = function(container, divID) {
	$(container).getElements('a.'+divID+'slideHref').each(function(item, index){
		addEmptySlide(divID, item.id+"_slide");
		slides[item.id] = {"id": item.id, "fx":new Fx.Slide(item.id+"_slide", {duration: 400, wait: true, transition: Fx.Transitions.quadInOut}), imageLoaded: false};
		slides[item.id].fx.hide();		
	});
        //now Add the slide effect to the main slide
        slides[divID+"_main_content"] = {"id": divID+"_main_content", "fx":new Fx.Slide(divID+"_main_content", {duration: 400, wait: true, transition: Fx.Transitions.quadInOut}), imageLoaded: false};
        
}

setNewSlideDivs = function(newSlide) {
    newSlide.empty();

    /*- Then insert the IMG DIV -*/
    newImgDiv = new Element('div').injectInside(newSlide.id);
    newImgDiv.addClass('img_slide');


    /*- First insert the text DIV of the IMG -*/
    newTextDiv = new Element('div').injectInside(newSlide.id);
    newTextDiv.addClass("txt_slide");
}

addEmptySlide = function(divID, imgID) {
	newSlide = $(divID+'_main_content').clone(true, true).injectAfter(divID+"_main_content");	
	newSlide.id = imgID;
	newSlide.addClass(divID+"OddBackColor");
	if (even) {
		even = false;
		newSlide.removeClass(divID+"OddBackColor");
		newSlide.addClass(divID+"EvenBackColor");
	} else {
		even = true;
	}
	newSlide.addClass("borderLess");
        newSlide.setStyle("z-index", "100");
        setNewSlideDivs(newSlide);
}

loadImage = function(src, divID, target) {
    var images = [src];
	var myImages = new Asset.images(images, {
    onComplete: function(){
        $(target+"_slide").getElement("div.img_slide").empty();
        images.each(function(im) {
            new Element('img',{ src:im, style:'width: 100%; height: 100%;' }).inject($(target+"_slide").getElement("div.img_slide"));
        });
    }});
}

loadImageText = function(title, description, target) {
    targetEl = $(target+"_slide").getElement("div.txt_slide");
    targetEl.empty();    
    targetEl.set("html","<div class='txt_slide_title'>"+title+"</div>","<div class='txt_slide_description'>"+URLDecode(description)+"</div>");
}

loadImageDiv = function(src, divID, imgID, me, title, description, effect) {
        if (effect == null) effect = true;
        if (_currentSlide !== me) {
            _currentSlide = me;
            clickedMe = me;
            if (effect) {
                slides[divID+"_main_content"].fx.slideOut();
                slides[me.id].fx.toggle();            
                $(divID+"_items").getElements("."+divID+"slideHref").each(function(item, index){
                        if (slides[item.id].id != clickedMe.id) {
                                slides[item.id].fx.slideOut();				
                        }
                });
            
                if (!slides[me.id].imageLoaded) {
                    loadImage(src, divID, imgID);
                    loadImageText(title, description, imgID);                    
                    slides[me.id].imageLoaded = true;
                }
            } else {
                if ($(imgID+"_slide") === null) addEmptySlide(divID, imgID+"_slide");
                $(divID+"_main_content").hide();
                $(imgID+"_slide").show();
                loadImage(src, divID, imgID);
                loadImageText(title, description, imgID);
            }
        } else {
            if (effect) {
                //Show the main slide.            
               slides[divID+"_main_content"].fx.toggle();
                slides[me.id].fx.slideOut();                
            } else {
                $(imgID+"_slide").hide();
                $(divID+"_main_content").show();                
            }
            _currentSlide = null; //Indicates no photo slide is active
        }
}
