﻿//////////////////////////////////////////////////////////////////////////////
//////  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.forms[0].elements.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 j = 0; j < document.images.length; j++)
	{
		if(document.images[j].id.indexOf(name) != -1)
			images.push(document.images[j]);
    }
	return images;
}
////////////////////////////////////////////////////////////////////////////////////////
// Methods for the registration.aspx page
////////////////////////////////////////////////////////////////////////////////////////
// enables the register button if the user agrees to the TOS

function EnableRegister(agreed)
{
    $('SaveButton').disabled = !agreed;
}

/*----------------------- 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."  );
        var user = GetElementBySimpleName('UserNameTextBox');
        user.value='';
        user.focus();
    }
}
// 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.');
                var email = GetElementBySimpleName('EmailTextBox');
        email.value='';
        email.focus();
     }   
        
                
}
// 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);
	}
}
