// JavaScript Document
var request = null;

try {
	request = new XMLHttpRequest();
}catch (trymicrosoft){
	try{
		request = new ActiveXObject("Msxml2.XMLHTTP");
	}catch (othermicrosoft){
		try{
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}catch (failed){
			request = null;
		}
	}
}

if(request == null){
	alert("Error creating request object");
}


function checkUsername(){
	if(document.F1Upload.user.value != ""){
		var username = document.F1Upload.user.value;
		var rand = Math.floor(Math.random()*123542);
		var url = "ajaxFunctions/checkUser.php?username="+username+"&random="+rand;
		request.open("GET", url, true);
		request.onreadystatechange = usernameResult;
		request.send(null);
	}else{
		document.getElementById('userResult').innerHTML = "";	
	}
}

function checkTMemail(){
	if(document.F1Upload.theirmusic_email.value != ""){
		var email = document.F1Upload.theirmusic_email.value;
		var rand = Math.floor(Math.random()*123542);
		var url = "ajaxFunctions/checkEmailJoin.php?email="+email+"&random="+rand;
		request.open("GET", url, true);
		request.onreadystatechange = tmEmailResult;
		request.send(null);
	}else{
		document.getElementById('tmEmailResult').innerHTML = "";	
	}
}

function tmEmailResult(){
	if(request.readyState == 4){
			if(request.responseText == "false"){
				window.badTMEmail = true;
				$('tmEmailResult').style.color = "#ba1200";
				setTimeout("document.getElementById('tmEmailResult').innerHTML = '<strong>Their|Music Email already Taken</strong>';",1250);
			}else{
				window.badTMEmail = false;
				$('tmEmailResult').style.color = "#2cba00";
				setTimeout("document.getElementById('tmEmailResult').innerHTML = '<strong>Their|Music Email OK</strong>';",1250);
			}
	}else{
			document.getElementById('tmEmailResult').innerHTML = "<img src='images/ajax-loader.gif'>";
	}
}

function checkEmailUser(){
	if(document.email_join.user.value != ""){
		var email = document.email_join.user.value;
		var rand = Math.floor(Math.random()*123542);
		var url = "ajaxFunctions/checkEmailJoin.php?email="+email+"&random="+rand;
		request.open("GET", url, true);
		request.onreadystatechange = emailJoinResult;
		request.send(null);
	}else{
		document.getElementById('userResult').innerHTML = "";	
	}
}

function emailJoinResult(){
	if(request.readyState == 4){
			if(request.responseText == "false"){
				window.badEmail = true;
				$('userResult').style.color = "#ba1200";
				setTimeout("document.getElementById('userResult').innerHTML = '<strong>Email Already In Use</strong>';",1250);
			}else{
				window.badEmail = false;
				$('userResult').style.color = "#2cba00";
				setTimeout("document.getElementById('userResult').innerHTML = '<strong>Congrats, your email is available.</strong>';",1250);
			}
	}else{
			document.getElementById('userResult').innerHTML = "<img src='images/ajax-loader.gif'>";
	}
}

function checkTMurl(){
	if(document.F1Upload.theirmusic_url.value != ""){
		var url = document.F1Upload.theirmusic_url.value;
		var rand = Math.floor(Math.random()*123542);
		var url = "ajaxFunctions/checkURL.php?url="+url+"&random="+rand;
		request.open("GET", url, true);
		request.onreadystatechange = tmUrlResult;
		request.send(null);
	}else{
		document.getElementById('tmUrlResult').innerHTML = "";	
	}
}

function tmUrlResult(){
	if(request.readyState == 4){
			if(request.responseText == "false"){
				window.badTMUrl = true;
				$('tmUrlResult').style.color = "#ba1200";
				setTimeout("document.getElementById('tmUrlResult').innerHTML = '<strong>Their|Music URL already Taken</strong>';",1250);
			}else{
				window.badTMUrl = false;
				$('tmUrlResult').style.color = "#2cba00";
				setTimeout("document.getElementById('tmUrlResult').innerHTML = '<strong>Their|Music URL OK</strong>';",1250);
			}
	}else{
			document.getElementById('tmUrlResult').innerHTML = "<img src='images/ajax-loader.gif'>";
	}
}

function checkIndustryUsername(){
	if(document.industry_join.user.value != ""){
		var username = document.industry_join.user.value;
		var rand = Math.floor(Math.random()*123542);
		var url = "ajaxFunctions/checkUser.php?username="+username+"&random="+rand;
		request.open("GET", url, true);
		request.onreadystatechange = usernameResult;
		request.send(null);
	}else{
		document.getElementById('userResult').innerHTML = "";	
	}
}

function checkVendorUsername(){
	if(document.vendor_signup_form.user.value != ""){
		var username = document.vendor_signup_form.user.value;
		var rand = Math.floor(Math.random()*123542);
		var url = "ajaxFunctions/checkUser.php?username="+username+"&random="+rand;
		request.open("GET", url, true);
		request.onreadystatechange = usernameResult;
		request.send(null);
	}else{
		document.getElementById('userResult').innerHTML = "";	
	}
}

function usernameResult(){
	if(request.readyState == 4){
			if(request.responseText == "false"){
				window.badUsername = true;
				$('userResult').style.color = "#ba1200";
				setTimeout("document.getElementById('userResult').innerHTML = '<strong>Username already exists</strong>';",1250);
			}else{
				window.badUsername = false;
				$('userResult').style.color = "#2cba00";
				setTimeout("document.getElementById('userResult').innerHTML = '<strong>Username OK</strong>';",1250);
			}
	}else{
			document.getElementById('userResult').innerHTML = "<img src='images/ajax-loader.gif'>";
	}
}

function checkContactEmail(){
	if(document.F1Upload.contact_email.value != ""){
		var contact_email = document.F1Upload.contact_email.value;
		var rand = Math.floor(Math.random()*123542);
		var url = "ajaxFunctions/checkContactEmail.php?contact_email="+contact_email+"&random="+rand;
		request.open("GET", url, true);
		request.onreadystatechange = contactEmailResult;
		request.send(null);
	}else{
		document.getElementById('contactEmailResult').innerHTML = "";	
	}
}

function checkVendorEmail(){
	if(document.vendor_signup_form.email.value != ""){
		var email = document.vendor_signup_form.email.value;
		var rand = Math.floor(Math.random()*123542);
		var url = "ajaxFunctions/checkVendorEmail.php?email="+email+"&random="+rand;
		request.open("GET", url, true);
		request.onreadystatechange = contactEmailResult;
		request.send(null);
	}else{
		document.getElementById('contactEmailResult').innerHTML = "";	
	}
}

function checkIndustryContactEmail(){
	if(document.industry_join.contact_email.value != ""){
		var contact_email = document.industry_join.contact_email.value;
		var rand = Math.floor(Math.random()*123542);
		var url = "ajaxFunctions/checkContactEmail.php?contact_email="+contact_email+"&random="+rand;
		request.open("GET", url, true);
		request.onreadystatechange = contactEmailResult;
		request.send(null);
	}else{
		document.getElementById('contactEmailResult').innerHTML = "";	
	}
}

function checkCompIndustryContactEmail(){
	if(document.industry_join.company_email.value != ""){
		var contact_email = document.industry_join.company_email.value;
		var rand = Math.floor(Math.random()*123542);
		var url = "ajaxFunctions/checkContactEmail.php?contact_email="+contact_email+"&random="+rand;
		request.open("GET", url, true);
		request.onreadystatechange = contactEmailResult;
		request.send(null);
	}else{
		document.getElementById('contactEmailResult').innerHTML = "";	
	}
}

function contactEmailResult(){
	if(request.readyState == 4){
			if(request.responseText == "false"){
				window.badContactEmail = true;
				$('contactEmailResult').style.color = "#ba1200";
				setTimeout("document.getElementById('contactEmailResult').innerHTML = '<strong>Email address is already in use</strong>';",1250);
			}else{
				window.badContactEmail = false;
				$('contactEmailResult').style.color = "#2cba00";
				setTimeout("document.getElementById('contactEmailResult').innerHTML = '<strong>Email OK</strong>';",1250);

			}
	}else{
			document.getElementById('contactEmailResult').innerHTML = "<img src='images/ajax-loader.gif'>";
	}
}

function updateGenres(){
	var selIndex = document.edit_profile.music_styles.selectedIndex;
	var music_style = document.edit_profile.music_styles.options[selIndex].value;
	var rand = Math.floor(Math.random()*123542);
	var url = "ajaxFunctions/getGenres.php?styleID="+music_style+"&random="+rand;
	request.open("GET", url, true);
	request.onreadystatechange = updateGenreList;
	request.send(null);
}

function updateGenreList(){
	if(request.readyState == 4){
		//convert json string into a javascript object
		var myGenres = eval('(' + request.responseText + ')');
		var hash = $H(myGenres);
		
		//clear all of the options from the select boxes
		document.forms['edit_profile'].music_genre_1.options.length = 0;
		document.forms['edit_profile'].music_genre_2.options.length = 0;
		document.forms['edit_profile'].music_genre_3.options.length = 0;
		
		//set default options '--Please Select--'
		document.forms['edit_profile'].music_genre_1.options[0] = new Option("--Please Select--", "");
		document.forms['edit_profile'].music_genre_2.options[0] = new Option("--Please Select--", "");
		document.forms['edit_profile'].music_genre_3.options[0] = new Option("--Please Select--", "");
		
		//loop through json array to make new options
		var i = 1;
		hash.each( function(keyVal){
				var text = String(keyVal);
				var comma = text.indexOf(",");
				var id = text.substring(0, comma);
				var name = text.substring(comma+1);
				document.forms['edit_profile'].music_genre_1.options[i] = new Option(name,id);
				document.forms['edit_profile'].music_genre_2.options[i] = new Option(name,id);
				document.forms['edit_profile'].music_genre_3.options[i] = new Option(name,id);
				i++;
		});
		
		/*var i = 1;
		for(var keyVal in myGenres){
			var val = keyVal;
			var text = myGenres[keyVal];
			
			document.forms['edit_profile'].music_genre_1.options[i] = new Option(text,val);
			document.forms['edit_profile'].music_genre_2.options[i] = new Option(text,val);
			document.forms['edit_profile'].music_genre_3.options[i] = new Option(text,val);
			i++;
		}*/
		
		document.forms['edit_profile'].music_genre_1.disabled = false;
		document.forms['edit_profile'].music_genre_2.disabled = false;
		document.forms['edit_profile'].music_genre_3.disabled = false;
	}else{
		document.edit_profile.music_genre_1.disabled = true;
		document.edit_profile.music_genre_2.disabled = true;
		document.edit_profile.music_genre_3.disabled = true;
	}
}

function getPicInfo(position, userID){
	var rand = Math.floor(Math.random()*123542);
	var url = "ajaxFunctions/getPicInfo.php?userID="+userID+"&position="+position+"&random="+rand;
	request.open("GET", url, true);
	request.onreadystatechange = updatePicDiv;
	request.send(null);
}

function updatePicDiv(){
	if(request.readyState == 4){
		var myInfo = eval('(' + request.responseText + ')');
		var info = $H(myInfo);
		
		//swap divs around
		$('default_pic').style.display = "none";
		$('update_pic').style.display = "block";
		
		//disable file field so files aren't accidentally written over
		if(info["Filepath"] == null){
			$('file').disabled = false;
			$('changeLink').style.display = "none";
		}else{
			$('file').disabled = true;
			$('changeLink').style.display = "block";
		}
		
		$('uploadTitle').innerHTML = "Picture #"+info["Position"];
		$('position').value = info["Position"];
		
		//update current picture
		if(info['Folder'] != "" && info['Filepath'] != null){
				var imgLink = "<img src='artists/"+info['Folder']+"/"+info['Filepath']+"' width='100px'>";
				$('currentPic').innerHTML = imgLink;
		}else{
				var imgLink = "";
				$('currentPic').innerHTML = imgLink;
		}
		
		if(info["Title"] == "null" || info["Title"] == null){
			$('title').value = "";
		}else{
			$('title').value = info["Title"];
		}
		
	}
}

function sack(file){
	this.AjaxFailedAlert = "Your browser does not support the enhanced functionality of this website, and therefore you will have an experience that differs from the intended one.\n";
	this.requestFile = file;
	this.method = "POST";
	this.URLString = "";
	this.encodeURIString = true;
	this.execute = false;

	this.onLoading = function() { };
	this.onLoaded = function() { };
	this.onInteractive = function() { };
	this.onCompletion = function() { };

	this.createAJAX = function() {
		try {
			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (err) {
				this.xmlhttp = null;
			}
		}
		if(!this.xmlhttp && typeof XMLHttpRequest != "undefined")
			this.xmlhttp = new XMLHttpRequest();
		if (!this.xmlhttp){
			this.failed = true; 
		}
	};
	
	this.setVar = function(name, value){
		if (this.URLString.length < 3){
			this.URLString = name + "=" + value;
		} else {
			this.URLString += "&" + name + "=" + value;
		}
	}
	
	this.encVar = function(name, value){
		var varString = encodeURIComponent(name) + "=" + encodeURIComponent(value);
	return varString;
	}
	
	this.encodeURLString = function(string){
		varArray = string.split('&');
		for (i = 0; i < varArray.length; i++){
			urlVars = varArray[i].split('=');
			if (urlVars[0].indexOf('amp;') != -1){
				urlVars[0] = urlVars[0].substring(4);
			}
			varArray[i] = this.encVar(urlVars[0],urlVars[1]);
		}
	return varArray.join('&');
	}
	
	this.runResponse = function(){
		eval(this.response);
	}
	
	this.runAJAX = function(urlstring){
		this.responseStatus = new Array(2);
		if(this.failed && this.AjaxFailedAlert){ 
			alert(this.AjaxFailedAlert); 
		} else {
			if (urlstring){ 
				if (this.URLString.length){
					this.URLString = this.URLString + "&" + urlstring; 
				} else {
					this.URLString = urlstring; 
				}
			}
			if (this.encodeURIString){
				var timeval = new Date().getTime(); 
				this.URLString = this.encodeURLString(this.URLString);
				this.setVar("rndval", timeval);
			}
			if (this.element) { this.elementObj = document.getElementById(this.element); }
			if (this.xmlhttp) {
				var self = this;
				if (this.method == "GET") {
					var totalurlstring = this.requestFile + "?" + this.URLString;
					this.xmlhttp.open(this.method, totalurlstring, true);
				} else {
					this.xmlhttp.open(this.method, this.requestFile, true);
				}
				if (this.method == "POST"){
  					try {
						this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded')  
					} catch (e) {}
				}

				this.xmlhttp.send(this.URLString);
				this.xmlhttp.onreadystatechange = function() {
					switch (self.xmlhttp.readyState){
						case 1:
							self.onLoading();
						break;
						case 2:
							self.onLoaded();
						break;
						case 3:
							self.onInteractive();
						break;
						case 4:
							self.response = self.xmlhttp.responseText;
							self.responseXML = self.xmlhttp.responseXML;
							self.responseStatus[0] = self.xmlhttp.status;
							self.responseStatus[1] = self.xmlhttp.statusText;
							self.onCompletion();
							if(self.execute){ self.runResponse(); }
							if (self.elementObj) {
								var elemNodeName = self.elementObj.nodeName;
								elemNodeName.toLowerCase();
								if (elemNodeName == "input" || elemNodeName == "select" || elemNodeName == "option" || elemNodeName == "textarea"){
									self.elementObj.value = self.response;
								} else {
									self.elementObj.innerHTML = self.response;
								}
							}
							self.URLString = "";
						break;
					}
				};
			}
		}
	};
this.createAJAX();
}