﻿//////////////////////////////////////////////////////////////////////////////
//////  BROWSER VARIABLES                                               //////
//////////////////////////////////////////////////////////////////////////////
var browserString = navigator.userAgent.toLowerCase();
var isIE = browserString.indexOf('msie') > -1;
var isFF = browserString.indexOf('firefox') > -1;
var isSF = browserString.indexOf('safari') > -1;
var isNN = browserString.indexOf('netscape') > -1;

//////////////////////////////////////////////////////////////////////////////
////// CAUTION: This only works with form elements. Textboxes, etc. //////////
////// images are not considered form elements.                     //////////
//////////////////////////////////////////////////////////////////////////////
function $() {
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
    {
        var form = document.forms[0];
        for(var j = 0; j < document.forms[0].length; j++)
        {
            if(form.elements[j].id.indexOf(element) != -1)
                element = form.elements[j];
        }
    }
    if (arguments.length == 1) 
      return element;
    elements.push(element);
  }
  return elements;
}
function GetElementBySimpleName(name)
{
    for(i=0; i<document.length;i++)
    {
        if(document.forms[0].elements[i].id.indexOf(name) != -1)
            return document.forms[0].elements[i];
    }
 }
 function GetImageButton(name)
 {
    var imageButtons = document.getElementsByTagName('input');
    for(var i=0; i<imageButtons.length; i++)
    {
        if(imageButtons[i].id.indexOf(name) != -1)
            return imageButtons[i];
    }
 }
 
////////////////////////////////////////////////////////////////////////////////
////////// HERE'S ONE FOR IMAGES ///////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function getImages(name) 
{
	var images = new Array();
	for(var i = 0; i < document.images.length; i++)
	{
		if(document.images[i].id.indexOf(name) != -1)
			images.push(document.images[i]);
    }
	return images;
}
////////////////////////////////////////////////////////////////////////////////////////
// Methods for the registration.aspx page
////////////////////////////////////////////////////////////////////////////////////////
// enables the register button if the user agrees to the TOS

function EnableRegister(agreed)
{
    var nextButton = GetImageButton('NextButton')
    nextButton.disabled = !agreed;
    if(agreed)
        nextButton.setAttribute('src', nextButton.src.replace('NextDisabled_Button', 'Next_Button'));
    else
        nextButton.setAttribute('src', nextButton.src.replace('Next_Button', 'NextDisabled_Button'));
}

/*----------------------- Duplicate username checking --------------------------------*/
// username ajax call to see if the username already exists in the db
function UsernameExists(username)
{
    var url = 'ajax.aspx';
    var parms = 'method=IsDuplicateUsername&username='+username;
    var myAjax = new Ajax.Request(url, {method: 'get', parameters: parms, onSuccess: GetUsernameExists, onFailure: UsernameFailure} );
}
// username success callback
function GetUsernameExists(request)
{
    if(request.responseText=='true')
    alert("Username is already in use.\nPlease choose another username."  );
}
// username failure callback
function UsernameFailure(request)
{
    alert("An error has occurred.\nThe Artist Ovation team has been notified of the error.\nPlease check your username entry."  );
}
/*------------------------ Duplicate email checking --------------------------------*/
// email ajax call to see if the email already exists in the db
function EmailExists(email)
{
    var url = 'ajax.aspx';
    var parms = 'method=IsDuplicateEmail&email='+email;
    var myAjax = new Ajax.Request(url, {method: 'get', parameters: parms, onSuccess: GetEmailExists, onFailure: EmailFailure} );
}
// username success callback
function GetEmailExists(request)
{
    if(request.responseText=='true')
        alert('Email address already in use.\nPlease log in or use another email address.');
                
}
// username failuer callback
function EmailFailure(request)
{
    alert("An error has occurred.\nThe Artist Ovation team has been notified of the error.\nPlease check your email address entry."  );
}

/*----------------------- Rating a song ------------------------------*/
// ajax call to rate media
function RateMedia(prefix, mediaId, contestId, rating)
{
    var url = 'ajax.aspx';
    var parms = 'method=RateMedia&prefix='+prefix+'&mediaId='+mediaId+'&contestId='+contestId+'&rating='+rating;
    var myAjax = new Ajax.Request(url, {method: 'get', parameters: parms, onSuccess: GetRateMedia, onFailure: RateMediaFailure} );
}
// ratemedia success callback
function GetRateMedia(request)
{
	if (request.readyState == 4) 
	{
	    var response = request.responseText;
        var s = response.split(',');
        var prefix = s[0];
        var songId = s[1];
        var rating = s[2];
        alert('Rating of '+ rating + ' saved successfully.');
       	for (i=1;i<=5;i++)
	    {
	        imageId = prefix.substring(0, prefix.length - 1) + i;
		    imag = document.getElementById(imageId);
		    if (i <= rating) {
		        imag.setAttribute('src', imag.src.replace('star_unselected.gif', 'star_selected.gif'));
		    } else {
		        imag.setAttribute('src', imag.src.replace('star_selected.gif', 'star_unselected.gif'));
		    }
		    imag.setAttribute('onmouseover', 'rating_hover(this,' + i + ', ' + parseInt(rating) + ');');
		    imag.setAttribute('onmouseout', 'rating_out(this, ' + parseInt(rating) + ');');
		    //alert(imag.getAttribute('onmouseover'));
        }
    }
}
// ratemedia failure callback
function RateMediaFailure(request)
{
    alert("An error has occurred.\nThe Artist Ovation team has been notified of the error.\n"  );
}

function setRatingImages(rating)
{
	var images = getImages('StarImageButton');
	for (i=0;i<images.length;i++)
	{
		imag = images[i];
		if (i < rating) {
			imag.src = imag.src.replace('star_unselected.gif', 'star_selected.gif');
		} else {
			imag.src = imag.src.replace('star_selected.gif', 'star_unselected.gif');
		}
		imag.setAttribute("onmouseover", null);
		imag.setAttribute("onmouseout", null);
	}
}
/////////////////////////////////////////////////////////////////////////////
/////////////////  Activates the flash object for IE  ///////////////////////
/////////////////////////////////////////////////////////////////////////////
function WriteFlashObject(obj)
{
    document.write(obj);
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////// OnKeyPress Fix /////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
// this catches all keypress events and kills em
document.onkeypress = CatchEnterKey;
if (document.layers) document.captureEvents(Event.KEYPRESS);
function CatchEnterKey(e)
{
    var pK = e ? e.which : window.event.keyCode;
    return pK != 13;
}
// this fires the appropriate button click based on the text box you're in
///http://weblogs.asp.net/rajbk/archive/2003/12/11/setting-the-default-button-for-a-textbox-in-asp-net.aspx
function clickButton(e, buttonid)
{ 
      var evt = e ? e : window.event;
      var bt = document.getElementById(buttonid);
        
      if (bt){ 
          if (evt.keyCode == 13){ 
                bt.click(); 
                return false; 
          } 
      } 
}