

// CALLED BY THE FLASH PLAYER ------------------------------------------
function handlePlayerEvent(playerEvent) {
        var eventObj = eval('(' + playerEvent + ')');

        switch (eventObj.type) {
		case "buyTrack":
			purchase(eventObj);
			break;
		case "buyPlaylist":
			purchase(eventObj);
			break;
        }
}


function js_purchase(data) {
	url = "/commerce/buy?track_id=" + data.track_enid + "&price=" + data.price + "&user_id=" + data.user + "&sig=" + data.sig + "&timestamp=" + data.timestamp + "&tracklink_id=" + data.tracklink_enid;

	document.getElementById('ticketframe').src = url;
}

function js_purchase_playlist(data) {
	track_string = "";
	// if the tracklink_enid is an array, make it into the string we want!
	// in some cases, we send in a javascript array instead of a comma-delimited string
	if(typeof(data.tracklink_enid) != "string") {
		for(i=0; i < data.tracklink_enid.length; i++) {
			track_string = track_string + data.tracklink_enid[i];
			if(i < data.tracklink_enid.length - 1)
				track_string = track_string + ",";
		}
	}

	if(track_string == "")
		track_string = data.tracklink_enid;

	url = "/commerce/buy?tracklink_id=" + track_string + "&price=" + data.price + "&user_id=" + data.user + "&sig=" + data.sig
		+ "&timestamp=" + data.timestamp + "&playlist_id=" + data.playlist_id + "&item_name=" + escape(data.item_name);

	document.getElementById('ticketframe').src = url;
}

function js_confirm_purchase(data) {
	url = "/commerce/buy?track_id=" + data.track_enid + "&price=" + data.price + "&user_id=" + data.user + "&sig=" + data.sig + "&timestamp=" + data.timestamp + "&tracklink_id=" + data.tracklink_enid;

	$('#confirm').load('/async/commerce/thanks');
	document.getElementById('ticketframe').src = url;
}

function js_confirm_playlist(data) {
	track_string = "";
	// if the tracklink_enid is an array, make it into the string we want!
	// in some cases, we send in a javascript array instead of a comma-delimited string
	if(typeof(data.tracklink_enid) != "string") {
		for(i=0; i < data.tracklink_enid.length; i++) {
			track_string = track_string + data.tracklink_enid[i];
			if(i < data.tracklink_enid.length - 1)
				track_string = track_string + ",";
		}
	}

	

	if(track_string == "")
		track_string = data.tracklink_enid;

	url = "/commerce/buy?tracklink_id=" + track_string + "&price=" + data.price + "&user_id=" + data.user + "&sig=" + data.sig
		+ "&timestamp=" + data.timestamp + "&playlist_id=" + data.playlist_id + "&item_name=" + escape(data.item_name);

	$('#confirm').load('/async/commerce/thanks');
	document.getElementById('ticketframe').src = url;
}

function playlist_select(data) {
	tracks = [];
	i = 0;
	checked_items = $("#confirm_playlist :checked");
	for(i=0;i < checked_items.length;i++ ) {
		tracks.push(checked_items[i].value);
	}

	js_purchase_playlist({user: data.user,
		playlist_id: data.playlist_id,
		tracklink_enid: tracks,
		item_name: data.item_name,
		price: document.getElementById("total_price") * 100,
		user: data.user,
		sig: document.getElementById("sig").value,
		timestamp: document.getElementById("timestamp").value}
	);
	return false;
}

function purchase(data) {
	/*if(data.verify == true) {
		loginModalOptions = {
  			id: 'verifyModal',
			width: 756,
			height: 390,
			ajax: true,
			//overrideText: '<h3>You may also <a href="http://www.playlist.com/user/login">Login Directly</a> and return to this page</h3',
			overrideTimein: 3,
		}
		mainModal = new Modalog(DOMAIN_ASYNC + '/searchbeta/verify?id=' + data.tracklink_enid, loginModalOptions);
	}
	//global_player.sendLogin(($F('txtUsername')), ($F('txtPassword')), "loginError");
	// need to check whether the cookie is up-to-date or not
	else*/

	if(data.playlist_id) {
		if(data.user == "") {
			window.location.href = "/user/login?playlist_id=" + data.playlist_id;
			return true;

		} else {
			confirmDialog('playlist_purchase', {
				item_name: data.item_name,
				user: data.user,
				playlist_id: data.playlist_id
			}, null);

			jQuery('#tracklist').load('/async/commerce/playlist?playlist_id=' + data.playlist_id);
		}
	} else {
		if(data.user == "") {
			if (global_playerInit) {
				$('navLogIn').fire('modal:login', {
					tracklink_enid: data.tracklink_enid,
					track_enid: data.track_enid,
					price: data.price
				});
				return false;
			} else {
				window.location.href = "/user/login";
				return true;
			}
		} else {
			confirmDialog('purchase', {
			item_name: data.item_name,
			tracklink_enid: data.tracklink_enid,
			user: data.user,
			track_enid: data.track_enid,
			price: data.price,
			sig: data.sig,
			timestamp: data.timestamp
			}, null);
		}
	}
}

function purchase_playlist(data) {
	if(data.user == "") {
		window.location.href = "/user/login?playlist_id=" + data.playlist_id;
		return true;

	} else {
		confirmDialog('playlist_purchase', {
			item_name: data.item_name,
			user: data.user,
			playlist_id: data.playlist_id
		}, null);

		$('#tracklist').load('/async/commerce/playlist', "playlist_id=" + data.playlist_id);
	}
}


function locationModal() {
	var modalOptions = {
		closeable: true, 
		center: true,
		fixed: false,
		modal:true,
		hideFade: true,
		hideShrink: false,
		unloadOnHide:true
	};

	modalOptions.id = 'signUpModal';
	modalOptions.width = '300px';
	modalOptions.height = '100px';
	var content_string = '<div style="width: 100%; text-align: center; margin-top: 30px; padding: 50px;"><h2>Sorry, at this time we only allow sales to people within the U.S.</h2></div>';
	var mainModal = new Boxy(content_string, modalOptions);
	return false;
}



function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}



function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function calculate_total_price(element) {
	var total_price_element = document.getElementById('total_price');
	var total_price = total_price_element.innerHTML;

	total_price = parseFloat(total_price) * 100;

	var price_element = document.getElementById("price_" + element.value);
	var item_price = price_element.innerHTML;
	item_price = parseFloat(item_price.replace("$", "")) * 100;

	if(element.checked) {
		var new_total_price = total_price + item_price;
	}
	else if(!element.checked) {
		var new_total_price = total_price - item_price;
	}

	var calculated_price = new_total_price / 100;
	total_price_element.innerHTML = calculated_price.toFixed(2)
}


function download_manager_continue() {
	createCookie("dlm", 1, "730");

	document.getElementById('continue').style.display = "block";
	document.getElementById('download').className = "button grey";

	return false;
}

/*—————————————————————*/
/*                                                               */
/* Function  : isCreditCard()                                    */
/* Purpose   : Check if cc is LUHN10                             */
/*                                                               */
/*                                                               */
/* Parameters:     cc – the cc number                            */
/*                                                               */
/* Returns   : boolean                                           */
/*                                                               */
/* Usage     : isCreditCard(cc)                                  */
/*—————————————————————*/

function isCreditCard( CC ) {
    if (CC.length > 19)
		return (false);

	sum = 0; mul = 1; l = CC.length;
	for (i = 0; i < l; i++)	{
		digit = CC.substring(l-i-1,l-i);
		tproduct = parseInt(digit ,10)*mul;
	
		if (tproduct >= 10)
			sum += (tproduct % 10) + 1;
		else
			sum += tproduct;
	
		if (mul == 1)
			mul++;
		else
			mul = mul - 1;
	}
	if ((sum % 10) == 0) {
		return (true);
	}
	else {
		return (false);
	}
}
