document.observe("dom:loaded",function do2()
{
	
	var s1 = new SWFObject("/player/mediaplayer.swf","playerID","450","185","8");
	s1.addParam("allowfullscreen","false");
	s1.addParam("allowscriptaccess","always");
	s1.addVariable("width","450");
	s1.addVariable("height","185");
	s1.addVariable("displayheight","0");
	s1.addVariable("enablejs","true");
	s1.addVariable("javascriptid","playerID");
	s1.addVariable("file","/player/sikhsangeetplayer-"+albumid+".xml");
	//s1.addVariable("file","/test.xml");
	s1.write("mediaplayer");
	
	function getCurrID(ele){
		return ele.up('div.tabcontentwrapper').identify();
	}
	
	$$('.subsection_tabs').each(function(element) {
		var tabs = new Control.Tabs (element.identify(), {  
			afterChange: function(element){
				var currid = getCurrID(element);
				// download
				if (element.identify().indexOf('dl') >= 0) {
					if (element.innerHTML.indexOf('Download Link') < 0)	{
						dl_link(currid);
					}
				} else if (element.identify().indexOf('shabad') >= 0) {
					if ($('shabadres'+currid).innerHTML == '') {
						read_shabad(currid);
					}
				}
			}
		});
	});	
	
	$$('.rating').each(function(element) {
		var avg=element.readAttribute('avg');
		var tot=element.readAttribute('tot');
		//alert("Avg"+avg);
		rating(element,element.next(),avg,tot);
	});

	$$('.dl_link').each(function(element) {
		var currid = element.up('div.tabcontentwrapper').identify();
		$(element).observe('click', function(ev){	
			ev.stop();
			return dl_link(currid);
		});
	});
	
	$$('.emailform').each(function(element) {
		var currid = element.up('div.tabcontentwrapper').identify();
		$(element).observe('submit', function(ev){
			ev.stop();
			return send_mail(currid);
		});
	});
	

	$$('.tagform').each(function(element) {
		var currid = element.up('div.tabcontentwrapper').identify();
		Event.observe(element.identify(),'submit',function(ev) {
			ev.stop();
			return send_tag(currid);
		});
	});

	$$('.shabadform').each(function(element) {
		var currid = element.up('div.tabcontentwrapper').identify();
		$(element).observe('submit',function(ev) {
			ev.stop();
			return send_shabad(currid);
		});
	});
	
	$$('.readshabad').each(function(element) {
		var currid = element.up('div.tabcontentwrapper').identify();
		$(element).observe('click',function(ev) {
			ev.stop();
			return read_shabad(currid);
		});
	});
	
	$$('.tag_text').each(function(element) {
		var currid = element.up('div.tabcontentwrapper').identify();
		new Ajax.Autocompleter(element.identify(), 'autocomplete_choices', '/ajax/getAutoTags.php', { /*paramName: "value", */ minChars: 2, indicator: 'indicator'+currid } );
	});
    
});

var ratinglabels = { 1: "Poor", 2: "Nothing Special", 3: "Worth hearing", 4: "Pretty Cool", 5: "Awesome" };

function starClicked(event) {
		var myhash=new Hash();
		var params=myhash.merge(event.memo).toObject();
		
		new Ajax.Request('ajax/saveStar.php', {
	     		parameters: params,
       		onSuccess: 	function(resp) {
  	         result.update(resp.responseText);
          }
	  });
}

function rating(ele,result,avg,tot) 
{   
	var log=true;
	if(logged_in)
		log=false;
	//alert("before starbox");	
	new Starbox(ele,avg,{locked:log,rerating:true});
	result.update("Rated " +avg+" by "+tot+" users");
	
	ele.observe('starbox:rated', starClicked);
	ele.observe('starbox:changed', function (event) {
		result.update(ratinglabels[event.memo.rating]);
	});
	
	ele.observe('starbox:left', function (event) {
		result.update(avg+" average after "+tot+" votes");
	});
}

//function to email a track
function send_mail(currid)
{
	//var mail_div="email"+currid;
	var mail_form="emailform"+currid;
	
	if (!checkForm(mail_form)) {
		return false;
	} else {
		new Ajax.Request('/ajax/mail.php', {
	     			method: 'get',
	         		parameters: $(mail_form).serialize(),
	         		onSuccess: function(resp){
	     	     		$("email"+currid+"_result").update(resp.responseText);
	     	     		$(mail_form).reset();
	        		}
	        });
		return false;
	}
}

//function to tag a track
function send_tag(currid)
{
	var tags_div="tags"+currid;
	var tagsres_div=$("tagsres"+currid);
	var serialEmailForm=new Hash();
	var values = $(tags_div).select('input','textarea');
	
	if (! $F($(tags_div).select('input','textarea')[0]) ) {
		alert ('Tag empty!');
		return false;
	} else {
		new Ajax.Request('ajax/saveTag.php', {
	     			method: 'post',
	         		parameters: $('tagform'+currid).serialize(),
	         		onSuccess: function(resp){
	     	     		var tag_res = resp.responseText.evalJSON();
	     	     		if (tag_res.msg) {
	     	     			elementhtml = '<a href="/tags.php?tag='+ encodeURIComponent(tag_res.tag_text)+ '">' + tag_res.tag_text +'</a>, ';
	     	     			if ($$('#tags'+currid+' .taglist')[0].innerHTML.indexOf("No tags") > -1)	{
	     	     				$$('#tags'+currid+' .taglist')[0].update(elementhtml);
	     	     			} else {
	     	     				$$('#tags'+currid+' .taglist')[0].insert({ bottom: elementhtml });
	     	     			}
	     	     			
	     	     			tagsres_div.update(tag_res.msg);
	     	     		}
	     	     		else {
	     	     			tagsres_div.update(tag_res.err);
	     	     		}
	     	     		new Effect.Highlight(tagsres_div);
	        		}
	        });
		return false;
	}
}

//function to add shabad to a track
function send_shabad(currid)
{
	var shabad_div="shabad"+currid;
	var shabadres_div=$("shabadres"+currid);
	var values = $(shabad_div).select('input');
	
	if (! $F($(shabad_div).select('input')[0]) ) {
		alert ('Shabad id empty!');
		return false;
	} else {
		new Ajax.Request('ajax/saveShabad.php', {
	     			method: 'post',
	         		parameters: $('shabadform'+currid).serialize(),
	         		onSuccess: function(resp){
	     	     		var shabadres = resp.responseText.evalJSON();
	     	     		if (shabadres.msg) {
	     	     			shabadres_div.update(shabadres.msg);
	     	     		}
	     	     		else {
	     	     			shabadres_div.update(shabadres.err);
	     	     		}
	     	     		new Effect.Highlight(shabadres_div);
	        		}
	        });
		return false;
	}
}

//function to read shabad of a track
function read_shabad(currid)
{
	var shabadres_div=$("shabadres"+currid);

	new Ajax.Request('ajax/getShabad.php', {
     			method: 'post',
         		parameters: "song_id="+currid,
         		onSuccess: function(resp){
     	     		var shabadres = resp.responseText.evalJSON();
     	     		if (shabadres.msg) {
     	     			shabadres_div.update(shabadres.msg);
     	     		}
     	     		else {
     	     			shabadres_div.update(shabadres.err);
     	     		}
     	     		new Effect.Highlight(shabadres_div);
        		}
        });
	return false;
}

function checkForm(mail_form)
{
	// the variables below are assigned to each
	// form input 
	var gname, gemail, gmessage;
	gname    = $(mail_form).getInputs('text','name').first();
	gemail   = $(mail_form).getInputs('text','email_to').first();
	gmessage = $$('#'+mail_form+' textarea[name="message"]').first();
	
  //alert(gname.value);
	// if name is empty alert the visitor
	if(trim(gname.value) == '')
	{
		alert('Please enter your name');
		gname.focus();
		return false;
	}
	// alert the visitor if email is empty or the format is not correct 
	else if(trim(gemail.value) == '' || !isEmail(trim(gemail.value)))
	{
		alert('Please enter a valid email address');
		gemail.focus();
		return false;
	}
	// alert the visitor if message is empty
	else if(trim(gmessage.value) == '')
	{
		alert('Please enter your message');
		gmessage.focus();
		return false;
	}
	else
	{
		// when all input are correct 
		// return true so the form will submit		
		return true;
	}
}

/*
Strip whitespace from the beginning and end of a string
Input  : a string
Output : the trimmed string
*/
function trim(str)
{
	return str.replace(/^\s+|\s+$/g,'');
}

/* reverses a string:
x = new String('test')
x.reverse()
 */
String.prototype.reverse = function(){
	splitext = this.split("");
	revertext = splitext.reverse();
	reversed = revertext.join("");
	return reversed;
}

/*
Check if a string is in valid email format. 
Input  : the string to check
Output : true if the string is a valid email address, false otherwise.
*/
function isEmail(str)
{
	var regex = /^[-_.a-z0-9]+@(([-a-z0-9]+\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i;
	return regex.test(str);
}                            
function dl_success(song, link)
{
	var linkrevd = new String(decodeURIComponent(link));
	linkrevd = linkrevd.replace(/\+/g, " ");
	var a = new Element('a', { href: linkrevd.reverse() }).update("Download Link");
	$('dl'+song).update(a);
}
// function for download link
function dl_link(song)
{
	new Ajax.Request('/ajax/download.php', {
  			method: 'post',
  			parameters: "id="+song,
				onSuccess: function(transport){
		     	 $('dl'+song).update( new Element('img', { src: '/template/images/ajax-loader.gif', alt: 'Loading...' }) );
		      	setTimeout("dl_success("+song+", '"+ transport.responseText +"')", 1000);
			}
		});
	return false;
}
