// JavaScript Document
function playTrack(playlist,track){
	//alert('playlist: '+playlist+' track: '+track);	
	loadFlashInDiv('/cms/get/flash/audio/default.swf?id='+playlist+'&curSong='+track,'audio');
	ajaxpage('index.php?track=audio-'+playlist+'-'+track, 'trackDiv');
}


function buy(pick){
	alert ('Purchases from '+pick+' will be available February 23, 2010');	
}


function emailListSubmit(){
	var ui=document.getElementById("emailInput").value;
	if (ui!=''){
		ajaxpage('index.php?emailSubmit='+ui, 'emailListInput');
	}else{
		alert ('you need to enter your email');	
	}
	
	//return false;
}

function dlCodeSubmit(){
	var ui=document.getElementById("dlCodeInput").value;
	var email=document.getElementById("dlEmailInput").value;
	if (ui!='' && ui!='type code here' && email!='' && email!='type email, press enter'){
		ajaxpage('index.php?ajax=1&email='+email+'&url=/download-code/'+ui, 'contentRight');
	}else{
		alert ('you need to enter a code and your email');	
	}
	return false;
}

//UTILITIES
function btn_overs(sel, newImage){
	var theImage=document.getElementById(sel);
	theImage.src=newImage;
}

//auto clear a text field when clicked
function clickclear(thisfield, defaulttext) {
	if (thisfield.value == defaulttext) {
		thisfield.value = "";
	}
}
//parse <body> onload functions
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);		
	}
}
//load flash in a div after page is loaded
function loadFlashInDiv(flash,theDiv){
	//alert (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;
}
//pop up div
function closePop(innerIdRoot){
	var innerDiv=innerIdRoot+'Stage';
	togglePop(innerDiv);
	if (innerIdRoot=='vid' || innerIdRoot=='pic'){
		var innerFrame=innerIdRoot+'Frame';
		document.getElementById(innerFrame).src="/blank";
	}
	document.getElementById('detailsStage').innerHTML="";
	document.getElementById('popStage').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;
	}
}
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


//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 'Jonny Sonic dot com ' + (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 (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);
}

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

function handleChange(event) {
    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';
	

    var xhr = getTransport();
    xhr.onreadystatechange = function() {
        updateChange(xhr,theTargDiv);
    }
	window.scrollTo(0,0);
	//var url=toString(window.location);
	//var urlParts=url.split('/');
	//alert (urlParts);
	if (event.path=='/'){urlString='/news';}
	xhr.open('get', '/index.php?url=' + urlString + '&ajax=1', true);
	xhr.send('');
	SWFAddress.setTitle(formatTitle(event.path));
}
SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);
//end swf address


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
}
}
}