TogOffers = {

timestamp : new Date(),

leadins : function(){
url = TogOffers.leadinsURL + "?time="+escape(TogOffers.timestamp);
new Ajax.Request( url, { method: 'get', onComplete: TogOffers.showResponseLeadin });	
},

showResponseLeadin : function(LeadinRequest){
var leadinDoc = LeadinRequest.responseText;
leadinDoc = leadinDoc.stripTags();
leadinDoc = leadinDoc.strip();
var leadinDocArray = new Array();
leadinDocArray = leadinDoc.split("leadin");
var zLen = "";
	for(z=0,zLen=leadinDocArray.length; z<zLen; z++){			
	var licn = leadinDocArray[z].split(":")[0];
	var leadinNameClass = "";
	var crdClass = "";
		if(licn.indexOf(",") !== -1){
		leadinNameClass = licn.split(",")[0];
		crdClass = licn.split(",")[1];
		}
		else{
		leadinNameClass = licn;
		}
		offerNumb = leadinDocArray[z].split(":")[1];
		if(TogOffers.offerNumbRegEx.test(offerNumb)){		
			if(leadinNameClass !== "offerNumb"){	
				$$(".leadin" + leadinNameClass).each(function(linc){
				var hText = linc.innerHTML								 
				hText = hText.strip();
				linc.innerHTML = ""
				new Insertion.Bottom(linc, hText + ' <span class="togOffer">style6 earlies' + offerNumb + '</span>');
				});
			}
			if(crdClass !== ""){
				$$("." + crdClass).each(function(crdc){
				var hText = crdc.innerHTML								 
				hText = hText.strip();
				crdc.innerHTML = ""
				new Insertion.Bottom(crdc, hText + ' <span class="togOffer">style6 earlies' + offerNumb + '</span>');
				});
			}
		}
		else{
		continue;	
		}
	}
	TogOffers.tuiTog();
},
				
tuiTog : function (){
	var OfferElements = $$(TogOffers.offerElement);
	$$(TogOffers.offerElement).each(function(to){
	TogOffers.togElement = to;	
	to.hide();
		if(to.empty()) return;// Any elements in here?
		if(to.firstChild){
		var todChNos = to.childNodes;
			$A(todChNos).each(function(todChNo){
				if(todChNo.nodeType === 3){
				TogOffers.text = todChNo.nodeValue;
					if(TogOffers.text.blank() || typeof TogOffers.text.split(TogOffers.offerPrefix)[1] === "undefined"){//if only containing white space
					return;
					}
					else{
						var getTogFile = function(){
						var url1 = TogOffers.togLocation+TogOffers.text.split(TogOffers.offerPrefix)[1].substr(0,4)+TogOffers.fileType + "?time="+escape(TogOffers.timestamp);
						new Ajax.Request( url1, { method: 'get', onComplete: showResponseTog });
						}
						var showResponseTog = function(originalRequest){	
						var jsonRaw = originalRequest.responseText;	
						jsonContent = eval("(" + jsonRaw + ")");
						var tog = jsonContent[TogOffers.ajaxObj];					
							for(i=1,iLen=TogOffers.style.length; i<iLen; i++){	
							to.innerHTML.strip();
							var toArray = to.innerHTML.split(" ");
								if(toArray[0] === TogOffers.style[i]){
								var trt = new Template(TogOffers.styleHTML[i]);
								to.replace(eval("trt.evaluate(" + TogOffers.valueMapping + ")"));
								TogOffers.clickableElems('div', 'clickBox');
								}						
							}
						}											
						getTogFile();						
				   	}				
				}
			});
		}
		if (to === OfferElements.last()){	
		setTimeout("TogOffers.alternateOfferStyle()", 2000);
		}
	});	
},	


locationPageUrlCreator : function(togLocation){
	if(!togLocation){
	togLocation = "destinations/";
	}
	togLocation = togLocation.toLowerCase().replace(/\s/g,"-");
	for(i=0,iLen=TogOffers.destinationsURLs.length; i<iLen; i++){
		if(TogOffers.destinationsURLs[i] === togLocation){
		var togLocationPageUrl = 'destinations/' + togLocation + '-holidays/';
		return togLocationPageUrl;	
		} 
		else{
		var togLocationPageUrl = 'holidays/' + togLocation + '-holidays/';
		return togLocationPageUrl;
		}
	}
},

alternateOfferStyle : function(){	
var tsn = TogOffers.style
var iLen = "";
var odd = false;
	for(i=1,iLen=tsn.length; i<iLen; i++){
		var tsnI = tsn[i];
		$$("."+tsnI).each(function(sv){
			if (odd === true) {
				if(tsnI === "style2" || tsnI === "dealFinder"){
				sv.addClassName("dealFinderOdd");	
				}
				if(tsnI === "style5" || tsnI === "style5AD"){	
				sv.addClassName("style5odd");	
				}
				else{
        		sv.addClassName("odd");
				}
        	odd = false;
        	} 
			else{
        	odd = true;
        	}						
		});
	}
},

/* makes all of div clickable, linking to the first href found within the row. You simply need to add the class 'clickBox' */
clickableElems : function(el, cls){
if (!document.getElementsByTagName) return false; //added to test the browsers DOM compatibility
if (!document.getElementsByTagName(el)) return false; //added to test for any Elems
var elems = document.getElementsByTagName(el);
	for(var i=0,j=elems.length;i<j;i++){
		if (elems[i].className.match(cls)){ // .match to deal with multiple class names
		if (!elems[i].getElementsByTagName('a')[0]) continue; // to ensure no errors if href is not present
  		elems[i].style.cursor = "pointer"; // change the cursor to a pointer if onclick is applied
   			elems[i].onclick = function (){
   			window.location = this.getElementsByTagName('a')[0].href; //regular link
   			}
  		}
 	}
}

};


var initTogOffers = function(){
/* Get page containing Leading offer details */
TogOffers.leadinsURL = "/leadinoffers/index.html";
/* URL of our Ajax requests */
TogOffers.togLocation = "/togoffers/earlies/";
/* For top ten link building. If location name matches anything in this array we use /destinations/ in the URL otherwise we use /holidays/ */
TogOffers.destinationsURLs = new Array("cyprus","dominican-republic","egypt","italy","mexico","morocco","turkey");
/* Define the offer File type */
TogOffers.fileType = ".html"
/* Class we apply to elements containing offer content */
TogOffers.offerElement = ".togOffer";
/* Prefix for offers in the content */
TogOffers.offerPrefix = "earlies";
TogOffers.offerNumbRegEx = /^\d{3,4}/;
/* Define your offer Object could be earlies or lates or whatever */
TogOffers.ajaxObj = "eog";
/* Define your objects properties can be whatever you like? although we cannot change the TogOffers property name here and expect it to do anything */
TogOffers.ajaxObjPrice = "price";
TogOffers.ajaxObjId = "ogId";
TogOffers.ajaxObjdepGatewayName = "depGatewayName";
TogOffers.ajaxObjlocDesc = "locDesc";
TogOffers.ajaxObjlocCode = "locCode";
TogOffers.ajaxObjisADRTog = "isADRTog";
TogOffers.ajaxObjLocation = "arLocationName";
TogOffers.ajaxObjDurationDays = "holidayDuration";
TogOffers.ajaxObjDurationWeeks = "duration";
TogOffers.ajaxObjAccomName = "accomName";
TogOffers.ajaxObjBoard = "boardBasis";
TogOffers.ajaxObjDate = "depDate";
TogOffers.ajaxObjHref = "href";
TogOffers.ajaxObjAdHref = "adHref";
TogOffers.ajaxObjPeopleSharing = "basedOn";
TogOffers.valueMapping = '{href : tog[TogOffers.ajaxObjHref], adHref : tog[TogOffers.ajaxObjAdHref], DurationWeeks : (tog[TogOffers.ajaxObjDurationWeeks] === "1 nights") ? tog[TogOffers.ajaxObjDurationWeeks].replace("1 nights","Day Trip") : tog[TogOffers.ajaxObjDurationWeeks], DurartionDays : tog[TogOffers.ajaxObjDurationDays], Airport : tog[TogOffers.ajaxObjdepGatewayName].replace("International","Int\'l"), LocationName : tog[TogOffers.ajaxObjlocDesc], AccommodationName : tog[TogOffers.ajaxObjAccomName], depDate : tog[TogOffers.ajaxObjDate], Id : tog[TogOffers.ajaxObjId], PeopleSharing : tog[TogOffers.ajaxObjPeopleSharing], Price : tog[TogOffers.ajaxObjPrice], Board : tog[TogOffers.ajaxObjBoard], LocationPage : TogOffers.locationPageUrlCreator(tog[TogOffers.ajaxObjlocDesc])} ';
TogOffers.style = new Array("style1","style2","style3","style4","style5","style6","style7","style8","style9","style10","style5AD","dealFinder");
TogOffers.styleHTML = new Array();
TogOffers.styleHTML[0] = '<div class="promotionsActivityDetails style1" id="og#{Id}"><div class="promotionsActivityDetailsDate">#{depDate}</div><div class="promotionsActivityDetailsDeparts">#{Airport}</div><div class="promotionsActivityDetailsArrives">#{LocationName}</div><div class="promotionsActivityDetailsOffer"><div class="promotionsActivityDetailsBasis">#{DurationWeeks}, based on #{PeopleSharing} adults sharing</div><div class="promotionsActivityDetailsPrice"><a href="#{href}" class="arrow-link">from <strong>&pound;#{Price}</strong><span class="arrowPlaceholder">&nbsp;</span></a></div><div class="clearer"></div></div></div>';

TogOffers.styleHTML[1] = '<div class="style2" id="og#{Id}"><div class="dealFinder"><a href="#{href}" rel="noindex,nofollow" title="Link to book a holiday for #{DurationWeeks} from #{Airport} to #{LocationName} on #{depDate}"><span class="ogLocation">#{LocationName}</span><span class="ogAirport">#{Airport}</span><span class="ogDate">#{depDate}</span><span class="ogDurationWeeks">#{DurationWeeks}</span><span class="ogPeopleSharing">based on #{PeopleSharing} sharing</span><span class="ogPrice"><span class="arrow-link"><strong>&pound;#{Price}</strong><span class="arrowPlaceholder">&nbsp;</span></span></span></a></div></div>';
TogOffers.styleHTML[2] = '<div class="promotionsOffer style3" id="og#{Id}"><div class="promotionsOfferResort"> <a href="#{LocationName}">#{LocationName}</a> </div><p>from</p><p class="promotionsOfferPrice">&pound;#{Price}</p><p>per person</p><p>#{Airport}<br/>#{depDate}<br/>#{DurationWeeks}, based on<br/>#{Board} people sharing</p><a href="#{href}"> <img alt="View details" src="/images/buttons/form/view_details_small.gif" width="150" height="50" alt="" /></a></div>';
TogOffers.styleHTML[3] = '<div class="style4" id="og#{Id}"><a href="/#{LocationPage}"><span class="topTenOgLocation">#{LocationName}</span><span class="arrow-link"><span class="style4From"> from </span>&pound;#{Price}<span class="arrowPlaceholder">&nbsp;</span></span></a></div>';
TogOffers.styleHTML[4] = '<div class="style5 style5me clickBox" id="og#{Id}"><span class="ogDate">#{depDate}</span><span class="ogAirport">#{Airport}</span><span class="ogLocation">#{LocationName}</span><span class="ogDurationWeeks">#{DurationWeeks}</span><span class="ogPeopleSharing">#{PeopleSharing} adults</span><span class="ogPrice"><a href="#{href}" class="arrow-link">from <strong>&pound;#{Price}</strong><span class="arrowPlaceholder">&nbsp;</span></a></span></div>';
TogOffers.styleHTML[5] = '<span class="style6 ogPrice" id="og#{Id}">from &pound;#{Price}</span>';
TogOffers.styleHTML[6] = '<span class="style7" id="og#{Id}"><span class="ogPrice">from &pound;</span>#{Price}</span>';
TogOffers.styleHTML[7] = '<div class="style8" id="og#{Id}"><a href="#{href}"><span class="style8Location">#{LocationName}</span><span class="style8Price"> from &pound;#{Price}</span></a></div>';
TogOffers.styleHTML[8] = '<div class="style9" id="og#{Id}"><p class="destinationDetails"><br /><strong>Our best deal</strong><br />#{depDate}<br/><strong>#{Airport}</strong><br/>#{DurationWeeks}<br/>based on #{PeopleSharing} sharing<br/><a href="#{href}" class="arrow-link">From <span>&pound;#{Price}</span> per person&nbsp;<span class="arrowPlaceholder">&nbsp;</span></a></p></div>';
TogOffers.styleHTML[9] = '<p id="og#{Id}" class="style10"><span class="togLocation">#{LocationName} </span><span class="togLocationFrom">from </span><span class="togPrice">&pound;#{Price} </span><span class="togAirport">#{Airport} </span><span class="togDurationDays">#{DurationDays} </span><span class="togDurationText">nights </span><span class="togDurationWeeks">#{DurationWeeks} </span><span class="togAccomName">#{AccommodationName} </span><span class="togBoard">#{Board} </span><span class="togDate">#{depDate} </span><span class="togPeopleSharing">#{PeopleSharing} </span><span class="togPeopleSharingText">people sharing </span></p>';
TogOffers.styleHTML[10] = '<div class="style5AD style5me clickBox" id="og#{Id}"><span class="ogDate">#{depDate}</span><span class="ogAirport">#{Airport}</span><span class="ogLocation">#{LocationName}</span><span class="ogDurationWeeks">#{DurationWeeks}</span><span class="ogPeopleSharing">#{PeopleSharing} adults</span><span class="ogPrice"><a href="#{adHref}" class="arrow-link">from <strong>&pound;#{Price}</strong><span class="arrowPlaceholder">&nbsp;</span></a></span></div>';
TogOffers.text = "";
/* fire Leadins checks */
TogOffers.leadins();
TogOffers.tuiTog();
}

addLoadEvent(initTogOffers);