function getRandom(min,max) {randNum=min-1; while ((randNum<min) || (randNum>max)) { randNum=Math.round(Math.random()*(max+1)); } return (randNum);}

var fVersion=deconcept.SWFObjectUtil.getPlayerVersion();
var useFlash=(fVersion['major']>=8) ? true : false ;

var xmlData;

function launchModule() {
	if (useFlash) {
		var so = new SWFObject(swfPath, 'flash', '783', '325', '8', '#ffffff');
		so.addVariable('xmlPath',xmlPath);

		so.addParam('wmode','transparent');
		so.write('flashholder');
	} else {
		noflashInitialFrame();
		new Ajax.Request(xmlPath, { method: 'get', onSuccess: function(transport) {xmlData=transport.responseText; xmlData=xmlData.split('\r\n'); xmlData=xmlData.join(''); noFlashDraw();} });
	}
}
Event.observe(window, 'load', launchModule);

function showSkipLink() {
	trace('show');
	new Insertion.Top('module_wrapper','<div id="skipLoad" onClick="this.remove(); useFlash=false; launchModule();">'+skipThisLoadAndGoToNoFlash+'</div>');
}
function hideSkipLink() {
	$('skipLoad').remove();
}
function trace(what) {
	console.log(what);
}

function noflashInitialFrame() {
	noflashHTML='';
	noflashHTML+='<div id="noflash-wrapper">';
	noflashHTML+='<div id="maintabs">';
	noflashHTML+='	<div id="easytouse" class="maintab top pointer">';
	noflashHTML+='		<div class="off">';
	noflashHTML+='			<div id="easytouse_firstline" class="maintab-firstline"></div>';
	noflashHTML+='			<div id="easytouse_secondline" class="maintab-secondline"></div>';
	noflashHTML+='		</div>';
	noflashHTML+='	</div>';
	noflashHTML+='	<div id="easytochoose" class="maintab middle pointer">';
	noflashHTML+='		<div class="off">';
	noflashHTML+='			<div id="easytochoose_firstline" class="maintab-firstline"></div>';
	noflashHTML+='			<div id="easytochoose_secondline" class="maintab-secondline"></div>';
	noflashHTML+='		</div>';
	noflashHTML+='	</div>';
	noflashHTML+='	<div id="easytobuy" class="maintab bottom pointer">';
	noflashHTML+='		<div class="off">';
	noflashHTML+='			<div id="easytobuy_firstline" class="maintab-firstline"></div>';
	noflashHTML+='			<div id="easytobuy_secondline" class="maintab-secondline"></div>';
	noflashHTML+='		</div>';
	noflashHTML+='	</div>';
	noflashHTML+='</div>';
	noflashHTML+='<div id="contentarea">';
	noflashHTML+='	<div id="buttons">';
	noflashHTML+='		<div id="v360" class="button pointer"><div class="off"><div class="l-end"></div><span class="c"></span><div class="r-end"></div></div></div>';
	noflashHTML+='		<div id="gallery" class="button pointer"><div class="off"><div class="l-end"></div><span class="c"></span><div class="r-end"></div></div></div>';
	noflashHTML+='	</div>';
	noflashHTML+='	<div id="title-subhead-box">';
	noflashHTML+='		<div id="title"></div>';
	noflashHTML+='		<div id="subhead"></div>';
	noflashHTML+='	</div>';
	noflashHTML+='	<div id="subtabs"></div>';
	noflashHTML+='	<div id="bodybg">';
	noflashHTML+='		<div id="bodycopy"></div>';
	noflashHTML+='	</div>';
	noflashHTML+='</div>';
	noflashHTML+='</div>';
	$('flashholder').update(noflashHTML);
	Behaviour.apply();
}

function parseXML(nodeName,sourceXML) {
	if (sourceXML==undefined) {sourceXML=xmlData;}
	outData=new Object();
	nonIDcount=0;
	while (sourceXML.indexOf('<'+nodeName)>=0) {
		startData=sourceXML.slice(sourceXML.indexOf('<'+nodeName),sourceXML.indexOf('</'+nodeName+'>')+nodeName.length+3);
		sourceXML=sourceXML.slice(0,sourceXML.indexOf(startData))+sourceXML.slice(sourceXML.indexOf(startData)+startData.length);
		if (startData.indexOf('id="')>=0) {
			dataArray=startData.split('<'+nodeName+' id="');
			for (i=1; i<dataArray.length; i++) {
				temp=dataArray[i].split('</'+nodeName+'>');
				temp=temp.join('');
				outData[temp.slice(0,temp.indexOf('">'))]=temp.slice(temp.indexOf('">')+2);
			}
		} else {
			outData[nonIDcount]=startData.slice(startData.indexOf('<'+nodeName+'>')+nodeName.length+2,startData.indexOf('</'+nodeName+'>'));
			nonIDcount++;
		}
	}
	return outData;
}

// NOFLASH DRAW FUNC
var yearArray=new Array();
var cYear;
var textSizes=new Object();
var textLabels=new Object();
var mainTitle;
var mainSubhead;
var mainTabs=new Object();
var tabsList=new Array();
var subtabsList=new Array();
function noFlashDraw() {
	//yank xml comments
	while (xmlData.indexOf('<!--')>=0) {
		yankedComment=xmlData.slice(xmlData.indexOf('<!--'),xmlData.indexOf('//-->')+5);
		xmlData=xmlData.slice(0,xmlData.indexOf(yankedComment))+xmlData.slice(xmlData.indexOf(yankedComment)+yankedComment.length);
	}

	//get text sizes
	textSizes=parseXML('setting');

	flashCompensation=3; //mysterious difference in font layout between flash and HTML, this modifies leading to compensate

	//change font size tags to inline css and add line-height
	xmlData=xmlData.replace(
		new RegExp('size="(.[0-9]{1})','gi'),
		function($1){
			pixelsize=$1.replace('size="','');
			newStr=$1.replace('size="','style="font-size:');
			newStr+='px; line-height: '+(Number(pixelsize)+Number(textSizes['textSize_bodycopy_leading'])+flashCompensation)+'px; ';
			return newStr;
		}
	);

	//add inline styles to p tags based on textSize settings
	xmlData=xmlData.replace(/<p>/g,'<p style="line-height: '+(Number(textSizes['textSize_bodycopy'])+Number(textSizes['textSize_bodycopy_leading'])+flashCompensation)+'px; padding: 0px; margin: 0px 0px '+(Number(textSizes['textSize_bodycopy_paragraphspacing'])+1)+'px 0px; ">');

	//get text labels, title, subhead, etc.
	textLabels=parseXML('label');
	mainTitle=xmlData.slice(xmlData.indexOf('<title>')+7,xmlData.indexOf('</title>'));
	mainSubhead=xmlData.slice(xmlData.indexOf('<subhead>')+9,xmlData.indexOf('</subhead>'));

	//360 button (360 first so it's the default click after load)
	$('v360').getElementsByClassName('c')[0].update('<font style="font-size: '+textSizes['textSize_buttonlabels']+'px;"><b>'+textLabels['view_360']+'</b></font>');
	tabsList.push('v360');

	//check for and load gallery content
	if (xmlData.indexOf('<gallery>')>=0) {
		galleryPhotos=parseXML('photo');
		$('gallery').getElementsByClassName('c')[0].update('<font style="font-size: '+textSizes['textSize_buttonlabels']+'px;"><b>'+textLabels['gallery']+'</b></font>');
		tabsList.push('gallery');
		for (var cGallery in galleryPhotos) {
			temp=galleryPhotos[cGallery];
			galleryPhotos[cGallery]=new Object();
			galleryPhotos[cGallery]['large']=temp;
			temp2=temp.split('/large/');
			galleryPhotos[cGallery]['thumb']=temp2.join('/thumb/');
			galleryPhotos[cGallery]['hires']=temp2.join('/hires/');
		}
	}

	//process main content
	mainTabs=parseXML('maintab');
	dataPiecesArray=new Array('title_firstline','title_secondline','subhead','bodycopy','subtab','link','linkurl');
	subTabPiecesArray=new Array('tab_label','subtab_bodycopy');
	for (var whichTab in mainTabs) {
		temp=mainTabs[whichTab];
		mainTabs[whichTab]=new Object();
		for (j=0; j<dataPiecesArray.length; j++) {
			if ((temp.indexOf('<'+dataPiecesArray[j]+'>')>=0) && (dataPiecesArray[j]!='subtab')){
				mainTabs[whichTab][dataPiecesArray[j]]=temp.slice(temp.indexOf('<'+dataPiecesArray[j]+'>')+dataPiecesArray[j].length+2,temp.indexOf('</'+dataPiecesArray[j]+'>'));
			} else if ((temp.indexOf('<'+dataPiecesArray[j]+'>')>=0) && (dataPiecesArray[j]=='subtab')){
				temp2=temp.slice(temp.indexOf('<'+dataPiecesArray[j]+'>'),temp.lastIndexOf('</'+dataPiecesArray[j]+'>')+dataPiecesArray[j].length+3);
				mainTabs[whichTab][dataPiecesArray[j]]=new Object();
				temp3=temp2.split('<subtab>');
				for (i=1;i<temp3.length;i++) {
					mainTabs[whichTab][dataPiecesArray[j]][i-1]=new Object();
					for (k=0; k<subTabPiecesArray.length; k++) {
						mainTabs[whichTab][dataPiecesArray[j]][i-1][subTabPiecesArray[k]]=temp3[i].slice(temp3[i].indexOf('<'+subTabPiecesArray[k]+'>')+subTabPiecesArray[k].length+2,temp3[i].indexOf('</'+subTabPiecesArray[k]+'>'));
					}
				}
			}
			//do page split for multi-page content
			if ((dataPiecesArray[j]=='bodycopy') && (mainTabs[whichTab][dataPiecesArray[j]]!=undefined)) {
				if (mainTabs[whichTab][dataPiecesArray[j]].indexOf('<page>')>=0) {
					temp4=mainTabs[whichTab][dataPiecesArray[j]].split('<page>');
					mainTabs[whichTab]['numpages']=temp4.length-1;
					for (r=1; r<temp4.length; r++) {
						temp4[r]='<div id="page'+r+'" style="display: '+((r==1) ? 'block' : 'none' )+';">'+temp4[r];
						pageNav='<div id="pageNav">';
						if (r<temp4.length-1) {
							pageNav+='<a href="#" onclick="changePages('+(r+1)+','+(temp4.length-1)+');return false;" class="linkmore"><font style="font-size: '+textSizes['bodycopy']+'px;"><b>'+textLabels['more']+'</b></font></a>';
						}
						if (r>1) {
							pageNav+='<a href="#" onclick="changePages('+(r-1)+','+(temp4.length-1)+');return false;" class="linkback"><font style="font-size: '+textSizes['bodycopy']+'px;"><b>'+textLabels['back']+'</b></font></a>';
						}
						pageNav+='</div>';
						temp4[r]=temp4[r].replace('</page>',pageNav+'</div>');
					}
					mainTabs[whichTab][dataPiecesArray[j]]=temp4.join('');
				}
			}
		}
	}
	//drop in text, update tablist, 'click' default
	for (var whichTab in mainTabs) {
		$(whichTab).getElementsByClassName('maintab-firstline')[0].update('<font style="font-size: '+textSizes['textSize_firstline']+'px;">'+mainTabs[whichTab]['title_firstline']+'</font>');
		$(whichTab).getElementsByClassName('maintab-secondline')[0].update('<font style="font-size: '+textSizes['textSize_secondline']+'px;"><b>'+mainTabs[whichTab]['title_secondline']+'</b></font>');
		tabsList.push(whichTab);
	}
	updateContent(tabsList[0]);
}

var maintabSelected='none';
function updateContent(whichTab) {
	if (whichTab!=maintabSelected) {
		maintabSelected=whichTab;
		$(tabsList).each(function(t) {
			$(t).style.display='block';
			$(t).firstDescendant().removeClassName('on');
			$(t).firstDescendant().addClassName('off');
			$(t).clicked=false;
		});
		$(whichTab).firstDescendant().removeClassName('off');
		$(whichTab).firstDescendant().addClassName('on');
		//reset subtabs, bodycopy, background image
		$('subtabs').update('');
		$('bodycopy').update('');
		$('bodybg').style.backgroundImage='';
		if ($(whichTab).hasClassName('maintab')) {
			$('title').update('<font style="font-size: '+textSizes['textSize_title']+'px;"><b>'+mainTabs[whichTab]['title_firstline']+' '+mainTabs[whichTab]['title_secondline']+'</b></font>');
			$('subhead').update(mainTabs[whichTab]['subhead']);
			//specific layout changes per content
			switch (whichTab) {
				case 'easytobuy':
					$('bodybg').style.backgroundPosition='0px 0px';
					$('bodycopy').style.padding='29px 0px 0px 17px';
					$('bodycopy').style.margin='0px 0px 0px 0px';
					$('bodycopy').style.width='376px';
					linkStyle='reversed';
					break;
				default:
					$('bodybg').style.backgroundPosition='310px 9px';
					linkStyle='normal';
					bodycopyFormatDefault();
			}
			if (mainTabs[whichTab]['subtab']==undefined) {
				$('bodycopy').update(mainTabs[whichTab]['bodycopy']);
				if (mainTabs[whichTab]['numpages']>1) {
					changePages(1,mainTabs[whichTab]['numpages']);
				} else {
					$('bodybg').style.backgroundImage='url(noflash/'+whichTab+'_bg.jpg)';
					if (mainTabs[whichTab]['link']!=undefined) {
						new Insertion.Bottom('bodycopy','<div style="margin-top: '+textSizes['textSize_bodycopy_paragraphspacing']+'px;"><a class="linkbasic '+linkStyle+'" href="'+mainTabs[whichTab]['linkurl']+'">'+mainTabs[whichTab]['link']+'</a>');
					}
				}
			} else {
				for (var subtab in mainTabs[whichTab]['subtab']) {
					subtabsHTML='';
					subtabsHTML+='<div id="subtab_'+subtab+'" class="subtab pointer">';
					subtabsHTML+='<div class="off"><div class="l-end"></div><span class="c">';
					subtabsHTML+='<font style="font-size: '+textSizes['textSize_subtablabels']+'px;"><b>'+mainTabs[whichTab]['subtab'][subtab]['tab_label']+'</b></font>';
					subtabsHTML+='</span><div class="r-end"></div></div></div>';
					new Insertion.Bottom('subtabs', subtabsHTML);
					$('subtab_'+subtab).idnum=subtab;
					subtabsList.push('subtab_'+subtab);
				}
				Behaviour.apply();
				updateSubtab(0);
			}
		} else {
			$('title').update('<font style="font-size: '+textSizes['textSize_title']+'px;"><b>'+mainTitle+'</b></font>');
			$('subhead').update('<font style="font-size: '+textSizes['textSize_subhead']+'px;">'+mainSubhead+'</font>');
			//specific per content
			switch (whichTab) {
				case 'v360':
					$('bodybg').style.backgroundPosition='0px 0px';
					$('bodycopy').style.margin='48px 0px 0px 150px';
					$('bodycopy').style.padding='0px 0px 0px 0px';
					$('bodycopy').style.width='350px';
					$('bodycopy').update('<img src="noflash/ax4_360_animGIFslowsmall.gif" width="350" height="114" border="0">');
					break;
				case 'gallery':
					$('bodybg').style.backgroundPosition='0px 0px';
					$('bodycopy').style.margin='11px 0px 0px 11px';
					$('bodycopy').style.padding='0px 0px 0px 0px';
					$('bodycopy').style.width='638px';

					galleryContent='<div id="galleryThumbs">';
					ieFixMargin=6;
					for (var p in galleryPhotos) {
						galleryContent+='<div class="galleryThumbWrapper pointer" style="margin: 0px '+ieFixMargin+'px 7px 0px;"><div class="galleryThumb" id="photo'+p+'" style="background-image: url(';
						ieFixMargin=(ieFixMargin==6) ? 0 : 6;
						galleryContent+=galleryPhotos[p]['thumb'];
						galleryContent+=');"></div></div>';
					}
					galleryContent+='</div>';
					galleryContent+='<div id="galleryLargeWrapper"><div id="galleryLarge" class="pointer"><div id="galleryHiresLink"><font style="font-size: '+textSizes['textSize_bodycopy']+'px;"><b>'+textLabels['hires']+'</b></font></div></div></div>';
					$('bodycopy').update(galleryContent);
					Behaviour.apply();
					//'click' the first one
					$('photo0').clicked=true;
					$('photo0').style.border='3px solid #bbe43f';
					$('photo0').style.width='57px';
					$('photo0').style.height='56px';
					$('photo0').style.backgroundPosition='-3px -3px';
					$('galleryLarge').style.backgroundImage='url('+galleryPhotos[0]['large']+')';
					$('galleryLarge').whichPhoto=0;
					break;
				default:
					$('bodybg').style.backgroundPosition='310px 9px';
					bodycopyFormatDefault();
			}
		}
	}
}
function bodycopyFormatDefault() {
	$('bodycopy').style.margin='0px 0px 0px 17px';
	$('bodycopy').style.padding='17px 0px 0px 0px';
	$('bodycopy').style.width='261px'; //width of all text areas need to be 4px narrower than they are in Flash due to Flash's 2px padding
}
function updateSubtab(whichSubtab) {
	$(subtabsList).each(function(t) {
		$(t).firstDescendant().removeClassName('on');
		$(t).firstDescendant().addClassName('off');
		$(t).clicked=false;
	});
	$('subtab_'+whichSubtab).firstDescendant().removeClassName('off');
	$('subtab_'+whichSubtab).firstDescendant().addClassName('on');
	$('bodycopy').update('<font style="font-size: '+textSizes['textSize_bodycopy']+'px;">'+mainTabs[maintabSelected]['subtab'][whichSubtab]['subtab_bodycopy']+'</font>');
	$('bodybg').style.backgroundImage='url(noflash/'+maintabSelected+'_'+(Number(whichSubtab)+1)+'_bg.gif)';
}
function changePages(pageTo,outOf) {
	for (pt=1; pt<=outOf; pt++) {
		$('page'+pt).style.display='none';
	}
	$('page'+pageTo).style.display='block';
	$('bodybg').style.backgroundPosition='310px 9px';
	$('bodybg').style.backgroundImage='url(noflash/'+maintabSelected+'_'+pageTo+'_bg.gif)';
}

Behaviour.register({
	'.maintab' : function (e) {
		e.onclick=function() {
			if (!$(e).clicked && (e.hasClassName('pointer'))) {
				updateContent(e.id);
				$(e).clicked=true;
			}
		}
	},
	'.button' : function (e) {
		e.onclick=function() {
			if (!$(e).clicked && (e.hasClassName('pointer'))) {
				updateContent(e.id);
				$(e).clicked=true;
			}
		}
	},
	'.subtab' : function (e) {
		e.onclick=function() {
			if (!$(e).clicked && (e.hasClassName('pointer'))) {
				updateSubtab(e.idnum);
				$(e).clicked=true;
			}
		}
	},
	'.galleryThumb' : function (e) {
		e.onclick=function() {
			if (!e.clicked) {
				for (var p in galleryPhotos) {
					$('photo'+p).clicked=false;
					$('photo'+p).style.border='1px solid #e0e0e0';
					$('photo'+p).style.width='61px';
					$('photo'+p).style.height='60px';
					$('photo'+p).style.backgroundPosition='-1px -1px';
				}
				e.clicked=true;
				e.style.border='3px solid #bbe43f';
				e.style.width='57px';
				e.style.height='56px';
				e.style.backgroundPosition='-3px -3px';
				whichPhoto=e.id.slice(5);
				$('galleryLarge').style.backgroundImage='url('+galleryPhotos[whichPhoto]['large']+')';
				$('galleryLarge').whichPhoto=whichPhoto;
			}
		}
		e.onmouseover=function() {
			if (!e.clicked) {
				e.style.border='3px solid #bbe43f';
				e.style.width='57px';
				e.style.height='56px';
				e.style.backgroundPosition='-3px -3px';
			}
		}
		e.onmouseout=function() {
			if (!e.clicked) {
				e.style.border='1px solid #e0e0e0';
				e.style.width='61px';
				e.style.height='60px';
				e.style.backgroundPosition='-1px -1px';
			}
		}
	},
	'#galleryLarge' : function (e) {
		e.onclick=function() {
			window.open(galleryPhotos[e.whichPhoto]['hires'],'_blank');
		}
		e.onmouseover=function() {
			$('galleryHiresLink').style.backgroundImage='url(noflash/link_hires_bullet_on.gif)';

		}
		e.onmouseout=function() {
			$('galleryHiresLink').style.backgroundImage='url(noflash/link_hires_bullet_off.gif)';

		}
	}
});

