/*
 * Ext JS Library 2.2.1
 * Copyright(c) 2006-2009, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */

Ext.BLANK_IMAGE_URL = '../../resources/images/default/s.gif';

Ext.Earth = function(){
    var msgCt;

    function createBox(t, s){
        return ['<div class="msg">',
                '<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>',
                '<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"><h3>', t, '</h3>', s, '</div></div></div>',
                '<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>',
                '</div>'].join('');
    }
    return {
        msg : function(title, format){
            if(!msgCt){
                msgCt = Ext.DomHelper.insertFirst(document.body, {id:'msg-div'}, true);
            }
            msgCt.alignTo(document, 't-t');
            var s = String.format.apply(String, Array.prototype.slice.call(arguments, 1));
            var m = Ext.DomHelper.append(msgCt, {html:createBox(title, s)}, true);
            m.slideIn('t').pause(1).ghost("t", {remove:true});
        },

        init : function()
        {
           

            //START PARSE XML
            var xmlDoc;
            if (window.XMLHttpRequest)
            {
                xhttp=new XMLHttpRequest();
            }
            else // Internet Explorer 5/6
            {
                xhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            //EVENTS XML
            xhttp.open("GET","xml/events.xml",false);
            xhttp.send("");
            xmlDoc=xhttp.responseXML;

            var xmlEvents=xmlDoc.getElementsByTagName("EVENT");

            var eventObjPrevious = Ext.get('events-previous');
            var eventObjNext = Ext.get('events-next');
            var eventObj = Ext.get('event-panel');
            var eventObjXY = eventObj.getXY();
            var eventObjStartX = eventObj.getXY();
            var eventObjStartPosition = 0;
            var eventObjStartPositionXY;
            var eventObjStartPositionX;

            var todayDate = new Date();
            var todayMonth = todayDate.format('m');
            var todayDay = todayDate.format('d');

            for (var q=xmlEvents.length-1;q>-1;q--)
            {
                var date = xmlEvents[q].getElementsByTagName("DATE")[0].childNodes[0].nodeValue;
                var month = xmlEvents[q].getElementsByTagName("MONTH")[0].childNodes[0].nodeValue;
                var day = xmlEvents[q].getElementsByTagName("DAY")[0].childNodes[0].nodeValue;
                var moon = xmlEvents[q].getElementsByTagName("MOON")[0].childNodes[0].nodeValue;
                var title = xmlEvents[q].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue;
                var desc = xmlEvents[q].getElementsByTagName("DESC")[0].childNodes[0].nodeValue;
                
                eventObj.insertHtml('afterBegin','<div class="event" id="event' + q + '"><div class="event-header"><div class="event-date">' 
                                    + date + '</div><div class="event-month">'
                                    + month + '</div><div class="event-moon" style="background:url(img/moon/' 
                                    + moon + '.png) no-repeat"></div><div class="event-day">' 
                                    + day + '</div></div><div class="event-title">'
                                    + title + '</div><div class="event-desc">'
                                    + desc + '</div></div>'
                                    );

                switch (month)
                {
                    case 'dec': 
                    month = '12';
                    break;
                    case 'nov': 
                    month = '11';
                    break;
                    case 'oct': 
                    month = '10';
                    break;
                    case 'sep': 
                    month = '09';
                    break;
                    case 'aug': 
                    month = '08';
                    break;
                    case 'jul': 
                    month = '07';
                    break;
                    case 'jun': 
                    month = '06';
                    break;
                    case 'may': 
                    month = '05';
                    break;
                    case 'apr': 
                    month = '04';
                    break;
                    case 'mar': 
                    month = '03';
                    break;
                    case 'feb': 
                    month = '02';
                    break;
                    case 'jan': 
                    month = '01';
                    break;
                }
                if((month == todayMonth))
                {
                    eventObjStartPosition = q;
                }
                
            }
            
            eventObjStartPositionXY = Ext.get('event' + eventObjStartPosition).getXY();
            //eventObjStartPositionXY[0] = eventObjStartPositionXY[0];
            
            
            
            //Internet Explorer
            if(Ext.isIE)
            {
                eventObjStartPositionX = 187*eventObjStartPosition;
            
                eventObj.setWidth(xmlEvents.length*187);
                var eventObjWidth = eventObj.getWidth();
                if(Ext.isIE6)
                {
                    eventObj.moveTo(-eventObjStartPositionX+eventObjStartPositionXY[0], eventObjXY[1]);
                }
                else if(Ext.isIE7)
                {
                    eventObj.moveTo(-eventObjStartPositionX+eventObjStartPositionXY[0], eventObjXY[1]);
                }
                eventObjPrevious.on('click', function()
                {
                    eventObjXY = eventObj.getXY();
                    if((eventObjXY[0]+(4*186))<(eventObjStartX[0]))
                    {
                        eventObj.moveTo(eventObjXY[0]+(4*187), eventObjXY[1], true);
                    }
                });
                
                eventObjNext.on('click', function()
                {
                eventObjXY = eventObj.getXY();
                if((eventObjXY[0]+(-4*186))>(-eventObjWidth))
                {
                    eventObj.moveTo(eventObjXY[0]+(-4*187), eventObjXY[1], true);
                }
                });
            }
            //Other Browsers
            else
            {
                eventObjStartPositionX = 186*eventObjStartPosition;
            
                eventObj.setWidth(xmlEvents.length*186);
                var eventObjWidth = eventObj.getWidth();
                
                eventObj.moveTo(-eventObjStartPositionX+eventObjStartPositionXY[0], eventObjXY[1]);
                eventObjPrevious.on('click', function()
                {
                    eventObjXY = eventObj.getXY();
                    if((eventObjXY[0]+(4*186))<(eventObjStartX[0]))
                    {
                        eventObj.moveTo(eventObjXY[0]+(4*186), eventObjXY[1], true);
                    }
                });
                
                eventObjNext.on('click', function()
                {
                eventObjXY = eventObj.getXY();
                if((eventObjXY[0]+(-4*186))>(-eventObjWidth))
                {
                    eventObj.moveTo(eventObjXY[0]+(-4*186), eventObjXY[1], true);
                }
                });
            }
            
            //END EVENTS XML

            //RESIDENTS XML
            xhttp.open("GET","xml/residents.xml",false);
            xhttp.send("");
            xmlDoc=xhttp.responseXML;

            var xmlResidents=xmlDoc.getElementsByTagName("RESIDENT");
            var residentObj = Ext.get('residents');
            for (var g=xmlResidents.length-1;g>-1;g--)
            {
                var name = xmlResidents[g].getElementsByTagName("NAME")[0].childNodes[0].nodeValue;
                var desc = xmlResidents[g].getElementsByTagName("DESC")[0].childNodes[0].nodeValue;
                var moon = xmlResidents[g].getElementsByTagName("MOON")[0].childNodes[0].nodeValue;
                var links = xmlResidents[g].getElementsByTagName("LINKS")[0].childNodes[0].nodeValue;
                if(xmlResidents[g].getElementsByTagName("LINKS")[2] != null)
                {
                    var link3 = xmlResidents[g].getElementsByTagName("LINKS")[2].childNodes[0].nodeValue;
                    var link2 = xmlResidents[g].getElementsByTagName("LINKS")[1].childNodes[0].nodeValue;
                    
                    residentObj.insertHtml('afterBegin','<div class="resident" id="resident' + g + '"><div class="resident-image" style="background:url(img/residents/' 
                                    + name + '.jpg) no-repeat"></div><div class="resident-desc">' 
                                    + desc + '</div><div class="resident-moon" style="background:url(img/moon/' 
                                    + moon + '.png) no-repeat"></div><div class="resident-links"><a href="http://www.' + links + '">'
                                    + links + '</a><br><a href="http://www.' + link2 + '">'
                                    + link2 + '</a><br><a href="http://www.' + link3 + '">'
                                    + link3 + '</a></div></div>'
                                    );
                }
                else if(xmlResidents[g].getElementsByTagName("LINKS")[1] != null)
                {
                    var link2 = xmlResidents[g].getElementsByTagName("LINKS")[1].childNodes[0].nodeValue;
                    
                    residentObj.insertHtml('afterBegin','<div class="resident" id="resident' + g + '"><div class="resident-image" style="background:url(img/residents/' 
                                    + name + '.jpg) no-repeat"></div><div class="resident-desc">' 
                                    + desc + '</div><div class="resident-moon" style="background:url(img/moon/' 
                                    + moon + '.png) no-repeat"></div><div class="resident-links"><a href="http://www.' + links + '">'
                                    + links + '</a><br><a href="http://www.' + link2 + '">'
                                    + link2 + '</a></div></div>'
                                    );
                }
                else
                {
                residentObj.insertHtml('afterBegin','<div class="resident" id="resident' + g + '"><div class="resident-image" style="background:url(img/residents/' 
                                    + name + '.jpg) no-repeat"></div><div class="resident-desc">' 
                                    + desc + '</div><div class="resident-moon" style="background:url(img/moon/' 
                                    + moon + '.png) no-repeat"></div><div class="resident-links"><a href="http://www.' + links + '">'
                                    + links + '</a></div></div>'
                                    );
                }
                
                

            }
            //END RESIDENTS XML

            //DRESSCODE XML
            xhttp.open("GET","xml/dresscode.xml",false);
            xhttp.send("");
            xmlDoc=xhttp.responseXML;

            var xmlDressCode=xmlDoc.getElementsByTagName("CONTENT");
            var dresscodeObj = Ext.get('dresscode');
            for (var k=xmlDressCode.length-1;k>-1;k--)
            {                var dresscode = xmlDressCode[k].childNodes[0].nodeValue;
                //var dresscode = xmlDressCode[k].getElementsByTagName("CONTENT")[0].childNodes[0].nodeValue;
                dresscodeObj.insertHtml('afterBegin',dresscode + '<br><br>'); 
            }
            //END DRESSCODE XML

            //CONTACTUS XML
            xhttp.open("GET","xml/contactus.xml",false);
            xhttp.send("");
            xmlDoc=xhttp.responseXML;

            var xmlContactUs=xmlDoc.getElementsByTagName("CONTACT");
            var contactusObj = Ext.get('contactus');
            for (var t=xmlContactUs.length-1;t>-1;t--)
            {
                var contactus = xmlContactUs[t].getElementsByTagName("CONTENT")[0].childNodes[0].nodeValue;
                contactusObj.insertHtml('afterBegin',contactus + '<br>'); 
            }
            //END CONTACTUS XML

            //POSTERS XML
            xhttp.open("GET","xml/posters.xml",false);
            xhttp.send("");
            xmlDoc=xhttp.responseXML;

            var xmlPosters=xmlDoc.getElementsByTagName("POSTER");

            var poster1 = Ext.get('upcomingposter1');
            var poster2 = Ext.get('upcomingposter2');
            var poster3 = Ext.get('upcomingposter3');

            var posterBig1 = Earth.posterWindow1;
            var posterBig2 = Earth.posterWindow2;
            var posterBig3 = Earth.posterWindow3;

            for (var s=xmlPosters.length-1;s>-1;s--)
            {
                var name = xmlPosters[s].getElementsByTagName("NAME")[0].childNodes[0].nodeValue;
                var position = xmlPosters[s].getElementsByTagName("POSITION")[0].childNodes[0].nodeValue;
                
                switch (position)
                {
                    case '1': 
                        poster1.insertHtml('afterBegin','<img src="img/poster/' + name + '.png" />');
                        posterBig1.html = '<img src="img/poster/' + name + '_big.png" />';
                        poster1.on('click', function(){
                        Earth.posterWindow1.show();
                        });
                    break;
                    case '2': 
                        poster2.insertHtml('afterBegin','<img src="img/poster/' + name + '.png" />');
                        posterBig2.html = '<img src="img/poster/' + name + '_big.png" />';
                        poster2.on('click', function(){
                        Earth.posterWindow2.show();
                        });
                    break;
                    case '3': 
                        poster3.insertHtml('afterBegin','<img src="img/poster/' + name + '.png" />');
                        posterBig3.html = '<img src="img/poster/' + name + '_big.png" />';
                        poster3.on('click', function(){
                        Earth.posterWindow3.show();
                        });
                    break;
                }
            }
            //END POSTERS XML

            //Function Window
            var bookingText = Ext.get('bookafunction');
                bookingText.on('click', function()
                {
                Earth.functionWindow.show();
                }
                );

            //Map Window
            var googlemap = Ext.get('googlemap');
                googlemap.on('click', function()
                {
                Earth.locationMapWindow.show();
                }
                );

            //Signup window
            //Earth.signupWindow.show();

            //Gallery Window
            var viewphotos = Ext.get('viewphotos');
                viewphotos.on('click',function()
                {
                    Earth.galleryWindow.show();
                    var thumbnailImage = 'thumbnail.gif';
                    
		            var galleryData = {
			              'logo.jpg': { thumbnail: thumbnailImage  },
			              '1.jpg': { thumbnail: thumbnailImage  },
			              '2.jpg': { thumbnail: thumbnailImage  },
			              '3.jpg': { thumbnail: thumbnailImage  },
			              '4.jpg': { thumbnail: thumbnailImage  },
			              '5.jpg': { thumbnail: thumbnailImage  },
			              '6.jpg': { thumbnail: thumbnailImage  },
			              '7.jpg': { thumbnail: thumbnailImage  },
			              '8.jpg': { thumbnail: thumbnailImage  },
			              '9.jpg': { thumbnail: thumbnailImage  },
			              '10.jpg': { thumbnail: thumbnailImage  }
            	         
	                   };
            	    
                    var gallerySlideshow = new Slideshow('galleryShow', galleryData, { captions: false, controller: false, height: 300, hu: 'img/gallery/', thumbnails: true, transition: 'back:out', width: 700});
                    
                }
                );


        }//End init
        
        	
    };
}();





/*HTML CONTENT*/
Ext.Earth.galleryMaterial = '<div style="padding-left:5px;text-align:left"><div id="galleryShow"></div></div>';

/*HEADER*/
Ext.Earth.earthpanel = '<div id="header"><IMG SRC="img/earth-logo-header-top.png" /></div><div id="googlemap"><IMG SRC="img/googlemap.png" /></div>';

Ext.Earth.events = '<div id="event-panel"></div><div id="events-control-panel"><a id="events-previous"><IMG SRC="img/event-previous.gif" /> <span class="event-previous-text">previous.week</span></a><a id="events-next"><span class="event-next-text">next.week </span><IMG SRC="img/event-next.gif" /></a></div>';

Ext.Earth.booking = '<div id="facebook"></div><div id="youtube"></div><div id="twitter"></div><div id="myspace"></div><div id="bookafunction"><IMG class="booking-moon" SRC="img/moon/booking.png" /><a class="booking-text" >book a function</a></div><div id="viewphotos"><IMG class="booking-moon" SRC="img/moon/booking.png" /><a class="booking-text">view photos</a></div>';

Ext.Earth.residents = '<div id="residents" class="residents"></div>';

Ext.Earth.dresscode = '<div id="dresscode"></div>';

Ext.Earth.contactus = '<div id="contactus"><IMG SRC="img/earth-logo-header-bottom.png" /></div>';


Ext.onReady(Ext.Earth.init, Ext.Earth);


// old school cookie functions
//var Cookies = {};
//Cookies.set = function(name, value){
//     var argv = arguments;
//     var argc = arguments.length;
//     var expires = (argc > 2) ? argv[2] : null;
//     var path = (argc > 3) ? argv[3] : '/';
//     var domain = (argc > 4) ? argv[4] : null;
//     var secure = (argc > 5) ? argv[5] : false;
//     document.cookie = name + "=" + escape (value) +
//       ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
//       ((path == null) ? "" : ("; path=" + path)) +
//       ((domain == null) ? "" : ("; domain=" + domain)) +
//       ((secure == true) ? "; secure" : "");
//};

//Cookies.get = function(name){
//	var arg = name + "=";
//	var alen = arg.length;
//	var clen = document.cookie.length;
//	var i = 0;
//	var j = 0;
//	while(i < clen){
//		j = i + alen;
//		if (document.cookie.substring(i, j) == arg)
//			return Cookies.getCookieVal(j);
//		i = document.cookie.indexOf(" ", i) + 1;
//		if(i == 0)
//			break;
//	}
//	return null;
//};

//Cookies.clear = function(name) {
//  if(Cookies.get(name)){
//    document.cookie = name + "=" +
//    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
//  }
//};

//Cookies.getCookieVal = function(offset){
//   var endstr = document.cookie.indexOf(";", offset);
//   if(endstr == -1){
//       endstr = document.cookie.length;
//   }
//   return unescape(document.cookie.substring(offset, endstr));
//};


