/* --------------------------------------------------
	Created:	March 6, 2007
	Purpose:	Functions to create and print logos. 
				Used primarily on:
				- displaySimpleEventList
				- displayGroupList 
-------------------------------------------------- */
	function makeLogo(name, logo) {
		this.oname = name;
		this.ologo = logo;
	}

/* --------------------------------------------------
	LOGO LIST
-------------------------------------------------- */
	logoList = new Array;
	var i = 0;
	logoList[i++] = new makeLogo("MAMMA MIA!", "mammamia");	
	logoList[i++] = new makeLogo("AIDA", "aida");
	logoList[i++] = new makeLogo("2008-09 NJPAC SUBSCRIPTIONS", "newark");
	logoList[i++] = new makeLogo("2008-09 NEW BRUNSWICK SUBSCRIPTIONS", "nbrunswick");
	logoList[i++] = new makeLogo("2008-09 TRENTON SUBSCRIPTIONS", "trenton");
	logoList[i++] = new makeLogo("2008-09 RED BANK SUBSCRIPTIONS", "redbank");
	logoList[i++] = new makeLogo("2008-09 ENGLEWOOD SUBSCRIPTIONS", "englewood");
	logoList[i++] = new makeLogo("2008-09 MORRISTOWN SUBSCRIPTIONS", "morristwon");
	logoList[i++] = new makeLogo("2008-09 PRINCETON SUBSCRIPTIONS", "princeton");
	logoList[i++] = new makeLogo("2008-09 NJPAC SINGLES", "newark");
	logoList[i++] = new makeLogo("2008-09 NEW BRUNSWICK SINGLES", "nbrunswick");
	logoList[i++] = new makeLogo("2008-09 TRENTON SINGLE TICKETS", "trenton");
	logoList[i++] = new makeLogo("2008-09 ENGLEWOOD SINGLE TICKETS", "englewood");
	logoList[i++] = new makeLogo("2008-09 PRINCETON SINGLE TICKETS", "princeton");
	logoList[i++] = new makeLogo("2008-09 RED BANK SINGLE TICKETS", "redbank");
	logoList[i++] = new makeLogo("2008-09 MORRISTOWN SINGLE TICKETS", "morristwon");
	logoList[i++] = new makeLogo("SEASON&#39;S GREETINGS GIFT CARD", "seasons-greetings");
	logoList[i++] = new makeLogo("CHRISTMAS GIFT CARD", "merry-christmas");
	logoList[i++] = new makeLogo("CHANUKAH GIFT CARD", "happy-chanukah");
	logoList[i++] = new makeLogo("ART STRINGS VIOLIN 1", "violin_1");
	logoList[i++] = new makeLogo("ART STRINGS VIOLIN 2", "violin_2");
	logoList[i++] = new makeLogo("ART STRINGS VIOLIN 3", "violin_3");
	logoList[i++] = new makeLogo("ART STRINGS VIOLIN 4", "violin_4");
	logoList[i++] = new makeLogo("ART STRINGS VIOLIN 5", "violin_5");
	logoList[i++] = new makeLogo("ART STRINGS VIOLIN 6", "violin_6");
	logoList[i++] = new makeLogo("ART STRINGS VIOLIN 7", "violin_7");
	logoList[i++] = new makeLogo("ART STRINGS VIOLIN 8", "violin_8");
	logoList[i++] = new makeLogo("ART STRINGS VIOLIN 9", "violin_9");
	logoList[i++] = new makeLogo("ART STRINGS VIOLIN 10", "violin_10");
	logoList[i++] = new makeLogo("PETER NERO", "peter_nero");
	logoList[i++] = new makeLogo("BEST OF SHAKESPEAREAN ROMANCE", "bestof_shakespeare");
	logoList[i++] = new makeLogo("VIENNA: OLD AND NEW", "bissplays_beethoven");
	logoList[i++] = new makeLogo("RUSSIAN PASSION", "russian_passion");
	logoList[i++] = new makeLogo("SLAVIC FIRE", "slavic_fire");
	logoList[i++] = new makeLogo("SWINGIN' WITH SINATRA AND DORSEY", "swinginwith_sinatra");
	logoList[i++] = new makeLogo("TCHAIKOVSKY'S PATHETIQUE", "tchaikovskys_pathetique");
	logoList[i++] = new makeLogo("VIVA ITALIA!", "viva_italia");
	logoList[i++] = new makeLogo("JARVI'S FAREWELL", "jarvis_farewell");
	logoList[i++] = new makeLogo("BROADWAY GOES BRITISH", "broadwaygoesbritish");
	logoList[i++] = new makeLogo("BEST OF NATURE", "bestofnature");
	logoList[i++] = new makeLogo("BEETHOVEN&#39;S NINTH", "beethovens_ninth");
	logoList[i++] = new makeLogo("ROMEO AND JULIET", "romeo_juliet");
	logoList[i++] = new makeLogo("THE HERO&#39;S JOURNEY", "heros_journey");
	logoList[i++] = new makeLogo("CARNIVAL OF THE CREATURES", "carnival_creatures");
	//logoList[i++] = new makeLogo("PICTURES AT AN EXHIBITION", "pictures");
	logoList[i++] = new makeLogo("CARMINA BURANA CD", "carmina_burana");
	logoList[i++] = new makeLogo("JACQUES & THE DIVAS - NJPAC", "JacquesAndTheDivas");
	logoList[i++] = new makeLogo("4 Tickets for $104", "bigdeal2");
	logoList[i++] = new makeLogo("BRAHMS PIANO CONCERTO NO. 1", "yuja_wang");
	logoList[i++] = new makeLogo(" SYMPHONY SWEETHEART PACKAGE", "njso_diva");


/* --------------------------------------------------
	EXTRA LIST
-------------------------------------------------- */
	extraList = new Array;
	var i = 0;
	extraList[i++] = ""; // DO NOT remove
	extraList[i++] = "The ";
	extraList[i++] = "at ";
	extraList[i++] = "@ ";
	extraList[i++] = "vs ";
	extraList[i++] = "vs. ";
	extraList[i++] = " FAMILY 4 PACK";
	extraList[i++] = " - Family Four Packs";
	extraList[i++] = " - Group Tickets";
	extraList[i++] = " - Student Matinee";
	extraList[i++] = " Time TBA";
	
	// sort extraList, greatest length first
	extraList.sort(function(a,b) {
		return (a.length > b.length) ? -1 : 1;
	});

/* --------------------------------------------------
	FULL-SIZED IMAGES LIST
-------------------------------------------------- */
	fullsizeList = new Array;
	var i = 0;
//	fullsizeList[i++] = new makeLogo("Rutgers Student Test", "StudentShirt");

/* --------------------------------------------------
	GROUP LIST
-------------------------------------------------- */
	logoGroupList = new Array;
	var i = 0;
	logoGroupList[i++] = new makeLogo(new Array("F","FB","FBS","FBI","FB3","STFB"), "football");
	logoGroupList[i++] = new makeLogo(new Array("BB"), "baseball");
	logoGroupList[i++] = new makeLogo(new Array("SB"), "softball");
	logoGroupList[i++] = new makeLogo(new Array("MB","MBS","MBI"), "basketball");
	logoGroupList[i++] = new makeLogo(new Array("WB","WBS","WBI"), "basketball");
	logoGroupList[i++] = new makeLogo(new Array("V","VB","MVB","WVB"), "volleyball");
	logoGroupList[i++] = new makeLogo(new Array("H"), "hockey");
	logoGroupList[i++] = new makeLogo(new Array("SOC","SO","MS","WS"), "soccer");
	logoGroupList[i++] = new makeLogo(new Array("CLD"), "calendar");

	logoGroupList[i++] = new makeLogo(new Array("N09-JPS-SIN"), "newark");
	logoGroupList[i++] = new makeLogo(new Array("N09-NST-SIN"), "nbrunswick");
	logoGroupList[i++] = new makeLogo(new Array("N09-NWM-SIN"), "trenton");
	logoGroupList[i++] = new makeLogo(new Array("N09-NJH-SIN"), "englewood");
	logoGroupList[i++] = new makeLogo(new Array("N09-NAH-SIN"), "princeton");
	logoGroupList[i++] = new makeLogo(new Array("N09-NRB-SIN"), "redbank");
	logoGroupList[i++] = new makeLogo(new Array("N09-NMC-SIN"), "morristwon");
	logoGroupList[i++] = new makeLogo(new Array("N09-POPS-SI"), "pops_2007");
	logoGroupList[i++] = new makeLogo(new Array("N09-POPS-SIN"), "pops_2007");
	logoGroupList[i++] = new makeLogo(new Array("N09-FAM-SIN"), "njso_family");
	logoGroupList[i++] = new makeLogo(new Array("NJPARK"), "newark");



/* --------------------------------------------------
	MAIN LOGO FUNCTIONS
-------------------------------------------------- */
	function printLogo(name, group) {
		var logo = "";
		name = cleaner(name.toUpperCase());
		
		// remove appending dates/times (ie: "TITLE - Wed., Sept. 17 - 2pm")
		name = name.replace(/(( |,|-|\(|\bon\b|\bat\b){0,2} ?\b(mon|tue(s)?|wed(nes)?|thu(r(s)?)?|fri|sat(ur)?|sun)(day)?\b\.?( morning| afternoon| eve| evening| mat)?\)?)?(( |,|-|\(|\bon\b|\bat\b){0,2} ?(\b(jan(uary)?|feb(ruary)?|mar(ch)?|apr(il)?|may|jun(e)?|jul(y)?|aug(ust)?|sep(t(ember)?)?|oct(ober)?|nov(ember)?|dec(ember)?)\b\.? \d{1,2}(,? ?(20)?\d{2})?\)?|\d{1,2}[/\- ]\d{1,2}([/\- ](20)?\d{2})?\)?))?(( |,|-|\(|\bon\b|\bat\b){0,2} ?\d{1,2}(:\d{2})? ?(am|pm)\)?)?$/ig, "");
		
		// process extralist
		var extraName = name;
		for(var i=0; i<extraList.length; i++) {
			if(extraName.indexOf(extraList[i].toUpperCase())==0) {
				extraName = extraName.slice(extraList[i].length, extraName.length);
				break;
			}
		}
		for(var i=0; i<extraList.length; i++) {
			if(extraName.length - extraList[i].length>0 && extraName.indexOf(extraList[i].toUpperCase())==extraName.length - extraList[i].length) {
				extraName = extraName.slice(0, extraName.length - extraList[i].length);
				break;
			}
		}
		
		// find logo match (start from end for most recently added logos)
		for(var i=logoList.length-1; i>=0; i--) {
			var listName = logoList[i].oname.toUpperCase();
			if(name==cleaner(listName) || extraName==cleaner(listName)) {
				logo = logoList[i].ologo;
				break;
			}
		}

		// custom code
		if(logo=="") {
			var str = name
			if (name.match("PETER NERO")) {
				logo = "peter_nero";
			} else if (name.match("BEST OF SHAKESPEAREAN ROMANCE")) {
				logo = "bestof_shakespeare";
			} else if (name.match("VIENNA: OLD AND NEW")) {
				logo = "bissplays_beethoven";
			} else if (name.match("RUSSIAN PASSION")) {
				logo = "russian_passion";
			} else if (name.match("SLAVIC FIRE")) {
				logo = "slavic_fire";
			} else if (name.match("SWINGIN' WITH SINATRA AND DORSEY")) {
				logo = "swinginwith_sinatra";
			} else if (name.match("TCHAIKOVSKY&#39;S PATHETIQUE")) {
				logo = "tchaikovskys_pathetique";
			} else if (name.match("VIVA ITALIA!")) {
				logo = "viva_italia";
			} else if (name.match("JARVI&#39;S FAREWELL")) {
				logo = "jarvis_farewell";
			} else if (name.match("BROADWAY GOES BRITISH")) {
				logo = "broadwaygoesbritish";
			} else if(name.indexOf("BEST OF NATURE") > -1) {
				logo = "bestofnature";


			} else if(name.indexOf("RUSSIAN TALES") > -1) {
				logo = "russian_tales";
			} else if(name.indexOf("BRONFMAN PLAYS BRAHMS") > -1) {
				logo = "bronfman";
			} else if(name.indexOf("ENIGMA VARIATIONS") > -1) {
				logo = "enigma_variations";
			} else if(name.indexOf("WATER! FROM THE RIVER TO THE SEA") > -1) {
				logo = "rivertosea";
			} else if(name.indexOf("WATER! FANTASY & FABLES") > -1) {
				logo = "fantasy_fables";
			} else if(name.indexOf("ARABIAN NIGHTS") > -1) {
				logo = "arabian_nights";
			} else if(name.indexOf("AN ITALIAN EXCURSION") > -1) {
				logo = "italian_excursion";
			} else if(name.indexOf("MARC-ANDRE HAMELIN RETURNS") > -1) {
				logo = "marc-andre_hamelin";
			} else if(name.indexOf("TCHAIKOVSKY VIOLIN CONCERTO") > -1) {
				logo = "tchaikovsky";
			} else if(name.indexOf("MAHLER THREE") > -1) {
				logo = "mahler_three";
			} else if(name.indexOf("BEST OF MOZART") > -1) {
				logo = "bestofmozart";
			} else if(name.indexOf("BEST OF WATER") > -1) {
				logo = "best_water";
			} else if(name.indexOf("BEST OF SPANISH FLAIR") > -1) {
				logo = "bestofspanishflair";
			} else if(name.indexOf("BEST OF BALLET") > -1) {
				logo = "bestofballet";
			} else if(name.indexOf("THE CANADIAN BRASS") > -1) {
				logo = "canadianbrass";
			} else if(name.indexOf("xxxJACQUES & THE DIVAS") > -1) {
				logo = "xxxx";
			} else if(name.indexOf("A SALUTE TO JOHN WILLIAMS") > -1) {
				logo = "johnwilliams";
			} else if(name.indexOf("AN EVENING WITH MICHAEL FEINSTEIN") > -1) {
				logo = "michaelfeinstein";
			}

		}
		// end custom code
		
		// find logo based on group
		if(logo=="") {
			if(typeof(fullGroupList)!="undefined" && group!="") {
				while(logo=="" && group!="") {
					for(var k=0; k<logoGroupList.length; k++) {
						for(var l=0; l<logoGroupList[k].oname.length; l++) {
							if(logoGroupList[k].oname[l]==group) {
								logo = logoGroupList[k].ologo;
								break;
							}
						}
						if(logo!="") break;
					}
					if(logo!="") break;
					var parent = "";
					for(var i=0; i<fullGroupList.length; i++) {
						if(fullGroupList[i].code==group) {
							parent = fullGroupList[i].parent;
						}
					}
					group = parent;
				}
			} else {
				for(var k=0; k<logoGroupList.length; k++) {
					for(var l=0; l<logoGroupList[k].oname.length; l++) {
						if(logoGroupList[k].oname[l]==group) {
							logo = logoGroupList[k].ologo;
							break;
						}
					}
				}
			}
		}
		
		// set DEFAULT LOGO if still not assigned
		if(logo=="") logo = "na";
		
		// determine if full sized image exists
		var fullSize = "";
		for(var i=0; i < fullsizeList.length; i++) {
			var listName = fullsizeList[i].oname.toUpperCase();
			if(name==cleaner(listName) || extraName==cleaner(listName)) {
				fullSize = fullsizeList[i].ologo;
				break;
			}
		}
		
		var imgSrc = "";
		
		// create and return logo source
		if(logo!="") {
			if(typeof(logo)=="string") {
				imgSrc = '<img src="'+imageWWWPath+'/logos/'+logo+'.gif" border="0" width="60" height="60" alt="'+name+'">';
			} else {
				for(var k=0; k<logo.length; k++) {
					imgSrc += '<img src="'+imageWWWPath+'/logos/'+logo[k]+'.gif" border="0" width="60" height="60" alt="'+name+'"> ';
				}
			}
			if(fullSize!="" && group!="ticketTransfers") {
				imgSrc = '<a href="#" onclick="toggleFullSize(this); return false;" class="thumbHide">' + imgSrc + '<br><small style="white-space:nowrap"><img src="'+imageWWWPath+'/fullsize/mag.gif" border="0" width="11" height="11" align="absmiddle"> view large</small><span><img src="'+imageWWWPath+'/fullsize/'+fullSize+'.gif" border="0" alt="'+name+'"><br><small style="white-space:nowrap"><img src="'+imageWWWPath+'/fullsize/close.gif" border="0" width="11" height="11" align="absmiddle"> click to close</small></span></a>';
			}
		}
		return(imgSrc);
	}
	
	function toggleFullSize(thumb) {
		if(thumb.className=="thumbHide") {
			thumb.className = 'thumbShow';
		} else if(thumb.className=="thumbShow") {
			thumb.className = 'thumbHide';
		}
	}
	
	// print smaller logo for calendar
	function printCalLogo(name, group) {
		var imgSrc = printLogo(name, group);
		if(imgSrc!="") {
			imgSrc = imgSrc.replace(/width="60" height="60"/ig, 'width="40" height="40"');
			
			//remove full size code
			imgSrc = imgSrc.replace(/((<a href[^>]+>){1}|(<br>(<([^>]+)>)+ view large(<([^>]+)>)+ click to close(<([^>]+)>)+))/ig, "");
		}
		return(imgSrc);
	}

	// print very small logo (custom code)
	function printSmallLogo(name, group) {
		var imgSrc = printLogo(name, group);
		if(imgSrc!="") {
			imgSrc = imgSrc.replace(/width="60" height="60"/ig, 'width="25" height="25"');
			
			//remove full size code
			imgSrc = imgSrc.replace(/((<a href[^>]+>){1}|(<br>(<([^>]+)>)+ view large(<([^>]+)>)+ click to close(<([^>]+)>)+))/ig, "");
		}
		return(imgSrc);
	}

	// custom code (print large logo - for displaygrouplist)
	function printBigLogo(name, group) {
		var logo = "";
		var imgSrc = "";
		
		switch(group) {
			case "PA": logo = "twuni"; break;
			case "GB": logo = "gbpac"; break;
			case "WS": logo = "wcfso"; break;
			case "SW": logo = "theatre"; break;
			case "SM": logo = "som"; break;
			case "EC": logo = "uniComplex"; break;
			default: logo = "twuni"; break;
		}
		
		if(logo!="") {
			imgSrc = '<img src="'+imageWWWPath+'/logos/'+logo+'.jpg" border="0" alt="'+name+'">';
			imgSrc = imgSrc.replace(/.gif"/ig, '.jpg"');
		}
		return(imgSrc);
	}

