// JavaScript Document

//media popups
function readMore(sid){
	ajaxpage('/inc/ajax.php?pg=showDetail&sel='+sid,'detailsStage');
	togglePop('detailsStage');
}
function buyTickets(sid){
	ajaxpage('/inc/ajax.php?pg=buyTix&sel='+sid,'buyStage');
	togglePop('buyStage');	
}
function showSlideShow(sid){
	window.scrollTo(0,0);
	document.getElementById("picFrame").src='/cms/get/pro/photoAlbum.php?u=2&id='+sid+'&width=600&height=460&template=custom/cultureyard/pics';
	togglePop('picStage');
}
function showVideo(youtubeid){
	pauseAudio();
	window.scrollTo(0,0);
	document.getElementById("vidFrame").src='/cms/get/youtube.php?id='+youtubeid;
	togglePop('vidStage');
}
function closePop(innerIdRoot){
	var innerDiv=innerIdRoot+'Stage';
	togglePop(innerDiv);
	if (innerIdRoot=='vid'){
		resumeAudio();	
	}
	if (innerIdRoot=='vid' || innerIdRoot=='pic'){
		var innerFrame=innerIdRoot+'Frame';
		document.getElementById(innerFrame).src="/blank";
	}
	document.getElementById('detailsStage').innerHTML="";
	document.getElementById('buyStage').innerHTML="";
}
function togglePop(innerId) {
		var fader=document.getElementById("fade");
	var popBox=document.getElementById("popup");
	var innerDiv = document.getElementById(innerId);

	switch (fader.style.display){
		case 'none':
			fader.style.display='block';
			popBox.style.display='block';
			innerDiv.style.display="block";
		break;
		case 'block':
			fader.style.display='none';
			popBox.style.display='none';
			innerDiv.style.display="none";
			if (innerId=='vidStage'){document.getElementById("vidFrame").src='/blank';}
		break;
	}
	var wrapHeight=document.getElementById("xouter").offsetHeight;
	var innerHeight=document.getElementById("detailsStage").innerHTML;
	//alert (wrapHeight+'/'+innerHeight);
}
//end media pops

//audio player
function update_aptracker(val){
	document.getElementById("aptracker").value=val;	
}
function pauseAudio(){
	document.getElementById("audioPlayer").innerHTML='';
}
function resumeAudio(){
	q=document.getElementById("aptracker").value;
	loadFlashInDiv('/cms/get/flash/audio/cultureyard_audio.swf?id='+q,'audioPlayer');
}
function loadPlaylist(pid){
	v_aptracker=document.getElementById("aptracker").value;
	var parameters = v_aptracker.split('&');
	var queryString = new Array();
	var v='100';
	for (var i=0; i<parameters.length; i++) {
		var pos = parameters[i].indexOf('=');
		if (pos > 0) {
			var paramname = parameters[i].substring(0,pos);
			var paramval = parameters[i].substring(pos+1);
			if (paramname=='volume'){
				v=paramval;
			}
		}
	}
	loadFlashInDiv('/cms/get/flash/audio/cultureyard_audio.swf?id='+pid+'&volume='+v,'audioPlayer');
}


//utilities
function btn_overs(sel, newImage){
	var theImage=document.getElementById(sel);
	theImage.src=newImage;
}
function selectText(id){
	document.getElementById(id).select();
}
function loaders(jsonStrFns){
	for (t=0;t<jsonStrFns.length;t++){
		valueStr='';
		for (v=0;v<jsonStrFns[t][1].length;v++){
			valueStr+="'"+jsonStrFns[t][1][v]+"'";
			if (v!=jsonStrFns[t][1].length-1){valueStr+=",";}	
		}
		functionStr=jsonStrFns[t][0]+"("+valueStr+")";
		eval(functionStr);		
	}
}
function loadFlashInDiv(flash,theDiv){
	var flash_width="100%";
	var flash_height="100%";
	var version='8,0,24,0';
	var str='<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+version+'" width="'+flash_width+'" height="'+flash_height+'">';
	str+='<param name="movie" value="'+flash+'"><param name="quality" value="high"><param name="wmode" value="transparent"><param name="SCALE" value="noborder">';
	str+='<embed src="'+flash+'" width="'+flash_width+'" height="'+flash_height+'" wmode="transparent" scale="noborder" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed></object>';
	var theTarg=document.getElementById(theDiv);
	theTarg.innerHTML=str;
}

function strtolower(str) {
    return (str+'').toLowerCase();
}
function strstr (haystack, needle, bool) { 
    var pos = 0;
    haystack += '';
    pos = haystack.indexOf( needle );
    if (pos == -1) {
        return false;
    } else{
        if (bool){
            return haystack.substr( 0, pos );
        } else{
            return haystack.slice( pos );
        }
    }
}
function str_replace(search, replace, subject, count) {
    var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }

    for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {
            temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}
        }
    }
    return sa ? s : s[0];
}

String.prototype.capitalize = function(){ //v1.0
    return this.replace(/\w+/g, function(a){
        return a.charAt(0).toUpperCase() + a.substr(1).toLowerCase();
    });
};
//end utilities

//tooltip
var offsetxpoint=-60
var offsetypoint=20
var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
if (ie||ns6)
function ietruebody(){return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body}
function ddrivetip(thetext, thecolor, thewidth){
var tipobj=document.all? document.all["tip"] : document.getElementById? document.getElementById("tip") : ""
if (ns6||ie){
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
tipobj.innerHTML=thetext
enabletip=true
return false
}
}

function positiontip(e){
var tipobj=document.all? document.all["tip"] : document.getElementById? document.getElementById("tip") : ""
if (enabletip){
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20
var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000
if (rightedge<tipobj.offsetWidth)
tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
else if (curX<leftedge)
tipobj.style.left="5px"
else
tipobj.style.left=curX+offsetxpoint+"px"

if (bottomedge<tipobj.offsetHeight)
tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px"
else
tipobj.style.top=curY+offsetypoint+"px"
tipobj.style.visibility="visible"
}
}

function hideddrivetip(){
var tipobj=document.all? document.all["tip"] : document.getElementById? document.getElementById("tip") : ""
if (ns6||ie){
enabletip=false
tipobj.style.visibility="hidden"
tipobj.style.left="-1000px"
tipobj.style.backgroundColor=''
tipobj.style.width=''
}
}
document.onmousemove=positiontip
//end tooltip

//ajax/swf address
function toTitleCase(str) {
    var title=str.substr(0,1).toUpperCase() + str.substr(1).toLowerCase();
	title=str_replace('_',' | ',title);
	title=str_replace('-',' ',title);
	title=title.capitalize();
	return title;
}      
function formatTitle(title) {
    return 'CultureYard Productions' + (title != '/' ? ' | ' + toTitleCase(title.substr(1, title.length - 1).replace(/\//g, ' | ')) : '');
}
// Custom SWFAddress and Ajax handling
function getTransport() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        try {
            return new ActiveXObject('Msxml2.XMLHTTP');
        } catch(e) {
            return new ActiveXObject('Microsoft.XMLHTTP');
        }
    }
}

function appear(content, value) {
	if (navigator.appName!='Microsoft Internet Explorer'){
		if (typeof value == 'undefined') value = 0;
		if (value > 1) return;
		var property = content.filters ? 'filter' : 'opacity';
		content.style[property] = content.filters ? 'alpha(opacity=' + value*100 + ')' : value;
		setTimeout(function () {appear(content, value + .1)}, 25);
	}
	hideddrivetip();
}

function updateChange(xhr,theTarg) {
    if (xhr.readyState == 4) {
        if (xhr.status == 200) {
            var content = document.getElementById(theTarg);
            if (content!=undefined){
				content.innerHTML = xhr.responseText;
    	        appear(content);
			}
        } else {
            //alert('Error: ' + xhr.status + '!');
        }
    }
}

function handleChange(event) {
	if (navigator.appName!='Microsoft Internet Explorer'){
		//alert ('ie');	
	}
	if (pageRequest=='index'){
		pageRequest='internal';
	}else{
		var index, rel, links = document.getElementsByTagName('a'), path = event.path;
		if (path.substr(path.length - 1) != '/') {
			//path += '/';
		}
		for (var i = 0, l, link; link = links[i]; i++) {
			index = link.rel.indexOf('?');
			rel = (index > -1) ? link.rel.substr(0, index) : link.rel;
			link.className = (rel == path) ? 'selected' : '';
		}
		var parameters = '';
		for (var p in event.parameters) {
			parameters += '&' + p + '=' + event.parameters[p];
			
		}
		var urlString=event.path + parameters;
		var theTargDiv='contentRight';
		if(strstr (urlString, 'shows') && urlString!='/shows'){
			var sb = document.getElementById("showContent");
			if (sb){//stage box exists, on show page already
				urlString+='&update=show';
				theTargDiv='showContent';
			}
		}
		var xhr = getTransport();
		xhr.onreadystatechange = function() {
			if (typeof updateChange!="undefined"){
				updateChange(xhr,theTargDiv);
			}
		}
		window.scrollTo(0,0);
		if (event.path=='/'){urlString='/home';}
		xhr.open('get', 'index.php?url=' + urlString + '&ajax=1', true);
		//alert ('index.php?url=' + urlString + '&ajax=1');
		xhr.send('');
		SWFAddress.setTitle(formatTitle(event.path));
	}
}
SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);

//search
function submitSearch(){
	var ui=document.getElementById("searchFor").value;
	var urlString='/search/'+ui;
	SWFAddress.setValue(urlString);
}
//end swf address/ajax

//ajax
var loadedobjects=""
var rootdomain="http://"+window.location.hostname

function ajaxpage(url, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
page_request.open('GET', url, true)
page_request.send(null)
}

function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=page_request.responseText
}

function loadobjs(){
if (!document.getElementById)
return
for (i=0; i<arguments.length; i++){
var file=arguments[i]
var fileref=""
if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
if (file.indexOf(".js")!=-1){ //If object is a js file
fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", file);
}
else if (file.indexOf(".css")!=-1){ //If object is a css file
fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", file);
}
}
if (fileref!=""){
document.getElementsByTagName("head").item(0).appendChild(fileref)
loadedobjects+=file+" " //Remember this object as being already added to page
}
}
}
//end ajax