twitResultsDiv = document.createElement('div');


function hyperLinked (text) {
//	from http://stackoverflow.com/questions/37684/replace-url-with-html-links-javascript
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
    return text.replace(exp,"<a href='$1'>$1</a>");
}


function humanTime (dateObj) {
	var timeStr = "";

	if ((dateObj.getHours()==0) || (dateObj.getHours()==12)) {
		timeStr = "12:";
	} else {
		timeStr = (dateObj.getHours() % 12) + ":";
	}
	timeStr += dateObj.getMinutes() + " ";
 	timeStr += Math.floor(dateObj.getHours()/12) ? 'pm' : 'am';

	return timeStr;

}

function processSEARCH(feed){
	twitResultsDiv.innerHTML = "";
	obj=feed.results;
	for (var prop in obj) {
		obj2=obj[prop];
		if (obj2.from_user) {
			tweetDateObj = new Date (obj2.created_at);


			var today = new Date();
			today.setHours(0);
			today.setMinutes(0);
			var one_day=1000*60*60*24

			var daysSinceTweet = Math.ceil((today-tweetDateObj)/(one_day));
			var tweetDate = "";
			var dayOfWeek = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
			var monthOfYear = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");



			if (daysSinceTweet==0) {
				tweetDate = "today";
			} else if (daysSinceTweet < 7) {
				tweetDate = dayOfWeek[tweetDateObj.getDay()];
			} else {
				tweetDate = monthOfYear[tweetDateObj.getMonth()] + " " + tweetDateObj.getDate();
			}
			tweetDate += ", " + humanTime(tweetDateObj);
			twitResultsDiv.innerHTML += ("<p style=\"margin: 5px 0px; padding: 0px; height:auto !important; height:60px; min-height:60px; border-bottom: 1px dotted #666666; clear: both;\"><a rel=\"nofollow\" href=\"http://twitter.com/" + obj2.from_user + "\" style=\"display: block; float: left; width: 50px; height: 50px; padding: 0px; margin: 0px 5px 5px 0px; border: 1px solid black;\"><img src=\"" + obj2.profile_image_url + "\" style=\"width: 50px; margin: 0px; padding: 0px; border: none; position: absolute; clip: rect(0px 50px 50px 0px);\"></a><a href=\"http://twitter.com/" + obj2.from_user + "\">@" + obj2.from_user + "</a>: " + hyperLinked(obj2.text) + " (<a href=\"http://twitter.com/" + obj2.from_user + "/statuses/" + obj2.id + "\">" + tweetDate + "</a>)</p>\n");
		}
	}
}

if (((z_page_type == 'event') || (z_page_type == 'restaurant') || (z_page_type == 'movie') || (z_page_type == 'venue') || (z_page_type == 'artist')) && (z_temp_type == 'detail')) {
	OCToldLoad = window.onload;
	window.onload = (OCToldLoad ? function() { OCToldLoad(); loadSocialExtras()} : function() { loadSocialExtras() } )
}
function loadVideo(playerUrl, autoplay) {
	swfobject.embedSWF(playerUrl + '&rel=1&border=0&fs=1&autoplay=' +
		(autoplay?1:0), 'videoPlayer', '310', '250', '9.0.0', false,
		false, {allowfullscreen: 'true'});
}

function showMyVideos2(data) {
	var feed = data.feed;
	var entries = feed.entry || [];
	var html = [''];
	for (var i = 0; i < entries.length; i++) {
		var entry = entries[i];
		var title = entry.title.$t.substr(0, 20);
		var thumbnailUrl = entries[i].media$group.media$thumbnail[0].url;
		var playerUrl = entries[i].media$group.media$content[0].url;
		html.push('<a onclick="loadVideo(\'', playerUrl, '\', true)">',
			'<img title="', title, '" src="',
			thumbnailUrl, '" width="95" style="margin: 0px 5px 0px 0px; border: 1px solid #666666;" />', '</a>');
	}
	html.push('<br style="clear: left;"/>');
	document.getElementById('videos2').innerHTML = html.join('');
	if (entries.length > 0) {
		loadVideo(entries[0].media$group.media$content[0].url, false);
	}
}


var commonWords="the,of,to,and,a,in,is,it,you,that,he,was,for,on,are,with,as,I,his,they,be,at,have,this,from,or,had,by,but,what,there,we,can,out,other,were,your,when,use,how,said,an,each,she,which,do,their,if,will,many,then,them,would,so,these,her,make,thing,see,him,two,has,more,could,come,did,my,no,most,who,than,evening,annual";
// var commonExp = "/\\b" + commonWords.replace(/\,/gi,"\\b|\\b") + "\\b/gi";

function uncommonWord(word) {
	var wordSearch = "/\\b" + commonWords.replace(/\,/gi,"\\b|\\b") + "\\b/i.test(word)";
	if (eval(wordSearch)) {
		return (false);
	} else {
		return (true);
	}
}


function addZero(num) {
	(String(num).length < 2) ? num = String("0" + num) :  num = String(num);
	return num;
}

function getElementsByClassName(classname) {
//	from http://www.trap17.com/index.php/getelementbyclass_t28590.html
    if (document.getElementsByTagName) {
         var els = document.getElementsByTagName("*");
         var c = new RegExp('/b^|' + classname + '|$/b');
         final = new Array();
         var n=0;
         for (var i=0; i < els.length; i++) {
              if (els[i].className) {
                   if(c.test(els[i].className)) {
                   final[n] = els[i];
                   n++;
                   }
              }
         }
         return final;
    } else{return false;}
}

function setStyle (targetObject,typeStyle) {
	if (targetObject.style.setAttribute ) {
		targetObject.style.setAttribute('cssText', typeStyle );
	} else {
		targetObject.setAttribute('style', typeStyle);
	}
}

function addHTML (HTMLcode) {
	this._DOMelement.innerHTML += HTMLcode;
}

function addToElement (targetElement) {
	document.getElementById(targetElement).appendChild(this._DOMelement);
}

function addToRight (targetElement) {
	if (document.getElementById("Middle")!=null) {
		this.addToElement ('Middle');
	} else {
		firstRightColumnElement = getElementsByClassName ('right_column')[0].childNodes[0];
		rightColumnElement = getElementsByClassName ('right_column')[0]
		middleDiv = document.createElement('div');
		middleDiv.setAttribute('id','Middle');
		middleDiv.id='Middle';
		rightColumnElement.insertBefore(middleDiv,firstRightColumnElement);
		this.addToElement ('Middle');
	}
}


function getOCelement () {
	return this._DOMelement;
}

function OCextra (idName,heading) {
	this.id=idName;
	this._DOMelement = document.createElement('div');
	this._DOMelement.setAttribute((document.all ? 'className' : 'class'),'comp');
	this._DOMelement.setAttribute('id',idName);
	this._DOMelement.id=idName;
	setStyle (this._DOMelement,'text-align: left');
	this.addHTML ('<div class="label">' + heading + '</div>');
}

OCextra.prototype.DOMelement	= getOCelement;
OCextra.prototype.addHTML		= addHTML;
OCextra.prototype.addToElement	= addToElement;
OCextra.prototype.addToRight	= addToRight;


function loadSocialExtras(){


	var zKeywordStr=z_id.replace(/^[0-9]+\-/i,"");
	zKeywordStr=zKeywordStr.replace(/\b[^-]*\-*annual\-*/i,"");
	var zKeywordArr= zKeywordStr.split(/\-/i);
	var zOneKeyword;
	var zNumKeywords=0;
	var smKeywords=new Array("event","event");
	if (typeof( window[ 'z_cat_name_0' ] ) != "undefined") smKeywords[1] = z_cat_name_0.toLowerCase();
	while ((zOneKeyword = zKeywordArr.shift())&&(zNumKeywords<2)) {
		if (uncommonWord(zOneKeyword)) {
			smKeywords[zNumKeywords]=zOneKeyword;
			zNumKeywords++;
		}
	}

	var eventName = document.getElementById('summary_fields').getElementsByTagName("h1")[0].innerHTML;
	eventName = eventName.replace(/<img[^>]*>/g, '');
	eventName = eventName.replace(/<\/*div[^>]*>/g, '');
	eventName = eventName.replace(/^\s+|\s+$/g, '');
	if (z_page_type == 'event') {
		var dateParts = Zvents.opt['date'].split(/\s/g);
		var strEventDate = dateParts[0];		// 2009-02-28
		var arrEventDate = strEventDate.split(/\-/g);
		var strEventTime = dateParts[1];		// 16:00:00
		var arrEventTime = strEventTime.split(/:/g);

		var eventDate=new Date();
		eventDate.setFullYear(arrEventDate[0],arrEventDate[1]-1,arrEventDate[2]);
		eventDate.setHours(arrEventTime[0]);
		eventDate.setMinutes(arrEventTime[1]);
		eventDate.setSeconds(0);


		var today = new Date();
		today.setHours(0);
		today.setMinutes(0);
		var one_day=1000*60*60*24;

		var days2event = Math.ceil((eventDate-today)/(one_day));
		var eventWhen = "Don't know";
		var dayOfWeek = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
		var monthOfYear = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

		if (days2event==0) {
			eventWhen = "today";
		} else if (days2event==1) {
			eventWhen = "tomorrow";
		} else if (days2event < 7) {
			eventWhen = "on " + dayOfWeek[eventDate.getDay()];
		} else {
			eventWhen = "on " + monthOfYear[eventDate.getMonth()] + " " + eventDate.getDate();
		}


		var eventVenue = Zvents.opt.widgets['venue_json']['name'];
		var eventCity = Zvents.opt.widgets['venue_json']['city'];
		var pattCity=new RegExp(eventCity,"i");
		if (pattCity.test(eventVenue)) {
			eventCity = "";
		} else {
			eventCity = "in " + eventCity;
		}
		socialMsg = 'Going to ' + eventName.replace(/'/g, '`') + ' at ' + eventVenue + ' ' + eventCity + ' ' + eventWhen + '.';
		var googleLocation	= Zvents.opt.widgets['venue_json']['name'] + ', ' + Zvents.opt.widgets['venue_json']['city'] + ', ' + Zvents.opt.widgets['venue_json']['state'];
		var googleSpropURL	= Zvents.opt.widgets['venue_json']['url'];
		var googleSpropName	= Zvents.opt.widgets['venue_json']['name'];
		var googleDates		= '' + arrEventDate[0] + addZero(eventDate.getUTCMonth()+1) + addZero(eventDate.getUTCDate()) + 'T' + addZero(eventDate.getUTCHours()) + addZero(eventDate.getUTCMinutes()) + '00Z';
		googleDates = googleDates + '/' + googleDates;
		var gcalURL = 'http://www.google.com/calendar/event?action=TEMPLATE&text=' + eventName + '&dates=' + googleDates + '&sprop=name:' + googleSpropName + '&sprop=website:' + googleSpropURL + '&location=' + googleLocation;
	} else {
		socialMsg = 'Looking at "' + eventName + '" on http://orangecounty.com ';
	}


//	var tweetURL	= 'http://ksablan.com/octweet.php?url=' + encodeURIComponent(location.href) + '&title=' + encodeURIComponent(socialMsg);
	var tweetURL	= 'http://orangecounty.com/templates/octweet.php?url=' + encodeURIComponent(location.href.replace(/http:\/\//,"")) + '&title=' + encodeURIComponent(socialMsg);
	var socialBox = new OCextra ('socialDiv','Share it')
	socialBox.addHTML ('<a href="javas' + 'cript:void(0)" onclick="window.open(\'' + tweetURL + '\')"><img src="http://ksablan.com/images/twitter_32.png" width="16"> Tweet about it</a>.<br />');
	if (z_page_type == 'event') {
		socialBox.addHTML ('<a href="' + gcalURL + '" target="_blank"><img src="http://ksablan.com/images/google_32.png" width="16"> Add to Google Calendar</a><br />');
	}
	socialBox.addToRight ('Middle');



	twitterBox = new OCextra ('twitterDiv','Twitter Talk')
	twitterBox.addToRight ('Middle');
	twitterBox.addHTML ('<p class="UGC">These unedited comments come from <a href="http://twitter.com/">Twitter</a>. Click on an image to see that user\'s Twitter page.</p>');

	searchURI='http://search.twitter.com/search.json?q='+escape(smKeywords[0] + '+' + smKeywords[1])+'&rpp=3&callback=processSEARCH';
	var newScript = document.createElement('script');
	newScript.type = 'text/javascript';
	newScript.src = searchURI;


	var viralTwitLink = document.createElement('div');

	viralMsg = 'I am about to show up on orangecounty.com because I mentioned the words ' + smKeywords[0] + ' and ' + smKeywords[1] + ' in this tweet.';
//	var viralURL = 'http://ksablan.com/octweet.php?url=' + encodeURIComponent(location.href) + '&title=' + encodeURIComponent(viralMsg);
	var viralURL = 'http://orangecounty.com/templates/octweet.php?url=' + encodeURIComponent(location.href.replace(/http:\/\//,"")) + '&title=' + encodeURIComponent(viralMsg);
	viralTwitLink.innerHTML = '<a href="javas' + 'cript:void(0)" onclick="window.open(\'' + viralURL + '\')" style="font-weight: bold; text-align: center;">Put your tweet here</a>.<br />';


	twitterBox.DOMelement().appendChild(viralTwitLink);
	twitterBox.DOMelement().appendChild(newScript);
	twitterBox.DOMelement().appendChild(twitResultsDiv);




	var videoBox = new OCextra ('videosDiv','Videos')
	var youTubePlayerContainer=document.createElement('div');
	youTubePlayerContainer.setAttribute('id','playerContainer');
	youTubePlayerContainer.id='playerContainer';
	setStyle(youTubePlayerContainer,'width: 300px; height: 230px; margin-bottom: 20px;');

	var youTubePlayer=document.createElement('object');
	youTubePlayer.setAttribute('id','videoPlayer');
	youTubePlayer.id='videoPlayer';

	var youTubeVideos=document.createElement('div');
	youTubeVideos.setAttribute('id','videos2');
	youTubeVideos.id='videos2';

	var youtubejs=document.createElement('script');
	youtubejs.setAttribute('type','text/javascript');
	youtubejs.setAttribute('src','http://gdata.youtube.com/feeds/api/videos?q=' + smKeywords[0] + '+' + smKeywords[1] + '&alt=json-in-script&callback=showMyVideos2&max-results=3&format=5');

	var youtubeswfobj=document.createElement('script');
	youtubeswfobj.setAttribute('type','text/javascript');
	youtubeswfobj.setAttribute('src','http://swfobject.googlecode.com/svn/trunk/swfobject/swfobject.js');
	if (document.getElementById("Middle")!=null) {
		document.getElementById('Middle').appendChild(youtubeswfobj);
	} else {
		rightColumnElement = getElementsByClassName ('right_column')[0];
		rightColumnElement.appendChild(youtubeswfobj);
	}


	videoBox.addToRight ('Middle');
	videoBox.addHTML ('<p class="UGC">These videos come from <a href="http://flickr.com/">YouTube</a>. While playing a video, click on it to see more from that YouTube user. If you spot content you find offensive, or video for which you own a copyright, visit YouTube\'s <a href="http://help.youtube.com/support/youtube/">help center</a> to report your concern.</p>');
	videoBox.DOMelement().appendChild(youTubePlayerContainer);

	youTubePlayerContainer.appendChild(youTubePlayer);
	videoBox.DOMelement().appendChild(youTubeVideos);
	videoBox.DOMelement().appendChild(youtubejs);



	var slideshowBox = new OCextra ('slideshowDiv','Pictures')
	var flickrQuery="&offsite=true&amp;lang=en-us"
	+ "&page_show_url=%2Fsearch%2Fshow%2F%3Fq%3D" + smKeywords[0] + "%2B" + smKeywords[1] + "%26s%3Drec"
	+ "&page_show_back_url=%2Fsearch%2F%3Fq%3D" + smKeywords[0] + "%2B" + smKeywords[1] + "%26s%3Drec"
	+ "&method=flickr.photos.search"
	+ "&api_params_str="
	+ "&api_text=" + smKeywords[0] + "+" + smKeywords[1] + ""
	+ "&api_tag_mode=bool"
	+ "&api_media=photos"
	+ "&api_sort=date-posted-desc"
	+ "&jump_to="
	+ "&start_index=0";


	slideshowBox.addHTML ('<p class="UGC">These images are from the <a href="http://youtube.com/">Flickr.com</a> photo-sharing site. Click on a picture to find more from a photographer. If you spot something you find offensive, or if someone is sharing a picture that you took, visit Flickr\'s <a href="http://www.flickr.com/guidelines.gne">community guidelines page</a> to help the site and report your concern.</p>');

	if (document.all) {
		slideshowBox.addHTML ('<object width="300" height="225" id="flickrSlideshow">'
		+ '<param name="flashvars" value="' + flickrQuery + '"></param>'
		+ '<param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=69832"></param>'
		+ '<param name="allowFullScreen" value="true"></param>'
		+ '<embed '
		+ 'type="application/x-shockwave-flash" '
		+ 'src="http://www.flickr.com/apps/slideshow/show.swf?v=69832" '
		+ 'allowFullScreen="true" '
		+ 'flashvars="' + flickrQuery + '" '
		+ 'width="300" '
		+ 'height="225">');
		slideshowBox.addHTML ('</object>');
	} else {
		flickrObj=document.createElement('object');
		flickrObj.setAttribute('width','300');
		flickrObj.setAttribute('height','225');
		flickrObj.setAttribute('id','flickrSlideshow');

		var flickrParamVars=document.createElement('param');
		flickrParamVars.setAttribute('name','flashvars');
		flickrParamVars.setAttribute('value',flickrQuery);

		var flickrParamMovie=document.createElement('param');
		flickrParamMovie.setAttribute('name','movie');
		flickrParamMovie.setAttribute('value',"http://www.flickr.com/apps/slideshow/show.swf?v=69832");

		var flickrParamFS=document.createElement('param');
		flickrParamFS.setAttribute('name','allowFullScreen');
		flickrParamFS.setAttribute('value',"true");

		var flickrEmbed=document.createElement('embed');
		flickrEmbed.setAttribute('type','application/x-shockwave-flash');
		flickrEmbed.setAttribute('src',"http://www.flickr.com/apps/slideshow/show.swf?v=69832");
		flickrEmbed.setAttribute('allowFullScreen','true');
		flickrEmbed.setAttribute('flashvars',flickrQuery);
		flickrEmbed.setAttribute('width','300');
		flickrEmbed.setAttribute('height','225');

		slideshowBox.DOMelement().appendChild(flickrObj);
		flickrObj.appendChild(flickrParamVars);
		flickrObj.appendChild(flickrParamMovie);
		flickrObj.appendChild(flickrParamFS);
		flickrObj.appendChild(flickrEmbed);
	}

	slideshowBox.addToRight ('Middle');
}

