/*----------------------------------/
/ Fingermag.com PayPal Order-Script /
/ Version: 2.0                      /
/ Copyright 2007, Ivan Wolf         /
/ eiwaen@gmail.com                  /
/----------------------------------*/

// Destinations, products and prices
var Destination = new Array();

// Schweiz
Destination[0] = new Object();
Destination[0]['Name'] = "Schweiz";
Destination[0]['Code'] = "CHF";
Destination[0]['Prod'] = new Object();

var i=0;
Destination[0]['Prod'][i] = new Object();
Destination[0]['Prod'][i]['Type']     = "2-Jahr Abonnement";
Destination[0]['Prod'][i]['Price']    = 24;
Destination[0]['Prod'][i]['Shipping'] = 8;

i++;
Destination[0]['Prod'][i] = new Object();
Destination[0]['Prod'][i]['Type']     = "3-Jahr Abonnement";
Destination[0]['Prod'][i]['Price']    = 39;
Destination[0]['Prod'][i]['Shipping'] = 12;

i++;
Destination[0]['Prod'][i] = new Object();
Destination[0]['Prod'][i]['Type']     = "Shirt";
Destination[0]['Prod'][i]['Price']    = 18;
Destination[0]['Prod'][i]['Shipping'] = 5;

i++;
Destination[0]['Prod'][i] = new Object();
Destination[0]['Prod'][i]['Type']     = "Issue 1";
Destination[0]['Prod'][i]['Price']    = 8;
Destination[0]['Prod'][i]['Shipping'] = 2;

i++;
Destination[0]['Prod'][i] = new Object();
Destination[0]['Prod'][i]['Type']     = "Issue 2";
Destination[0]['Prod'][i]['Price']    = 8;
Destination[0]['Prod'][i]['Shipping'] = 2;

i++;
Destination[0]['Prod'][i] = new Object();
Destination[0]['Prod'][i]['Type']     = "Issue 3";
Destination[0]['Prod'][i]['Price']    = 8;
Destination[0]['Prod'][i]['Shipping'] = 2;

i++;
Destination[0]['Prod'][i] = new Object();
Destination[0]['Prod'][i]['Type']     = "Issue 4";
Destination[0]['Prod'][i]['Price']    = 8;
Destination[0]['Prod'][i]['Shipping'] = 2;

i++;
Destination[0]['Prod'][i] = new Object();
Destination[0]['Prod'][i]['Type']     = "Issue 5";
Destination[0]['Prod'][i]['Price']    = 8;
Destination[0]['Prod'][i]['Shipping'] = 2;

i++;
Destination[0]['Prod'][i] = new Object();
Destination[0]['Prod'][i]['Type']     = "Issue 6";
Destination[0]['Prod'][i]['Price']    = 8;
Destination[0]['Prod'][i]['Shipping'] = 2;

/* Zum einfuegen weiterer Issues: (genau gleich bei den anderen Destinationen...)
i++;
Destination[0]['Prod'][i] = new Object();
Destination[0]['Prod'][i]['Type']     = "Issue 5";
Destination[0]['Prod'][i]['Price']    = 8;
Destination[0]['Prod'][i]['Shipping'] = 2;
*/


// Europe
Destination[1] = new Object();
Destination[1]['Name'] = "Europe";
Destination[1]['Code'] = "EUR";
Destination[1]['Prod'] = new Object();

i=0;
Destination[1]['Prod'][i] = new Object();
Destination[1]['Prod'][i]['Type']     = "2-year subscription";
Destination[1]['Prod'][i]['Price']    = 21;
Destination[1]['Prod'][i]['Shipping'] = 8;

i++;
Destination[1]['Prod'][i] = new Object();
Destination[1]['Prod'][i]['Type']     = "3-year subscription";
Destination[1]['Prod'][i]['Price']    = 31;
Destination[1]['Prod'][i]['Shipping'] = 12;

i++;
Destination[1]['Prod'][i] = new Object();
Destination[1]['Prod'][i]['Type']     = "Shirt";
Destination[1]['Prod'][i]['Price']    = 11;
Destination[1]['Prod'][i]['Shipping'] = 4;

i++;
Destination[1]['Prod'][i] = new Object();
Destination[1]['Prod'][i]['Type']     = "Issue 1";
Destination[1]['Prod'][i]['Price']    = 6;
Destination[1]['Prod'][i]['Shipping'] = 2;

i++;
Destination[1]['Prod'][i] = new Object();
Destination[1]['Prod'][i]['Type']     = "Issue 2";
Destination[1]['Prod'][i]['Price']    = 6;
Destination[1]['Prod'][i]['Shipping'] = 2;

i++;
Destination[1]['Prod'][i] = new Object();
Destination[1]['Prod'][i]['Type']     = "Issue 3";
Destination[1]['Prod'][i]['Price']    = 6;
Destination[1]['Prod'][i]['Shipping'] = 2;

i++;
Destination[1]['Prod'][i] = new Object();
Destination[1]['Prod'][i]['Type']     = "Issue 4";
Destination[1]['Prod'][i]['Price']    = 6;
Destination[1]['Prod'][i]['Shipping'] = 2;

i++;
Destination[1]['Prod'][i] = new Object();
Destination[1]['Prod'][i]['Type']     = "Issue 5";
Destination[1]['Prod'][i]['Price']    = 6;
Destination[1]['Prod'][i]['Shipping'] = 2;

i++;
Destination[1]['Prod'][i] = new Object();
Destination[1]['Prod'][i]['Type']     = "Issue 6";
Destination[1]['Prod'][i]['Price']    = 6;
Destination[1]['Prod'][i]['Shipping'] = 2;


// UK
Destination[2] = new Object();
Destination[2]['Name'] = "UK";
Destination[2]['Code'] = "GBP";
Destination[2]['Prod'] = new Object();

i=0;
Destination[2]['Prod'][i] = new Object();
Destination[2]['Prod'][i]['Type']     = "2-years subscription";
Destination[2]['Prod'][i]['Price']    = 15;
Destination[2]['Prod'][i]['Shipping'] = 3;

i++;
Destination[2]['Prod'][i] = new Object();
Destination[2]['Prod'][i]['Type']     = "3-years subscription";
Destination[2]['Prod'][i]['Price']    = 21;
Destination[2]['Prod'][i]['Shipping'] = 5;

i++;
Destination[2]['Prod'][i] = new Object();
Destination[2]['Prod'][i]['Type']     = "Shirt";
Destination[2]['Prod'][i]['Price']    = 8;
Destination[2]['Prod'][i]['Shipping'] = 2;

i++;
Destination[2]['Prod'][i] = new Object();
Destination[2]['Prod'][i]['Type']     = "Issue 1";
Destination[2]['Prod'][i]['Price']    = 3.50;
Destination[2]['Prod'][i]['Shipping'] = 1.50;

i++;
Destination[2]['Prod'][i] = new Object();
Destination[2]['Prod'][i]['Type']     = "Issue 2";
Destination[2]['Prod'][i]['Price']    = 3.50;
Destination[2]['Prod'][i]['Shipping'] = 1.50;

i++;
Destination[2]['Prod'][i] = new Object();
Destination[2]['Prod'][i]['Type']     = "Issue 3";
Destination[2]['Prod'][i]['Price']    = 3.50;
Destination[2]['Prod'][i]['Shipping'] = 1.50;

i++;
Destination[2]['Prod'][i] = new Object();
Destination[2]['Prod'][i]['Type']     = "Issue 4";
Destination[2]['Prod'][i]['Price']    = 3.50;
Destination[2]['Prod'][i]['Shipping'] = 1.50;

i++;
Destination[2]['Prod'][i] = new Object();
Destination[2]['Prod'][i]['Type']     = "Issue 5";
Destination[2]['Prod'][i]['Price']    = 3.50;
Destination[2]['Prod'][i]['Shipping'] = 1.50;

i++;
Destination[2]['Prod'][i] = new Object();
Destination[2]['Prod'][i]['Type']     = "Issue 6";
Destination[2]['Prod'][i]['Price']    = 3.50;
Destination[2]['Prod'][i]['Shipping'] = 1.50;


// Overseas
Destination[3] = new Object();
Destination[3]['Name'] = "Overseas";
Destination[3]['Code'] = "USD";
Destination[3]['Prod'] = new Object();

i=0;
Destination[3]['Prod'][i] = new Object();
Destination[3]['Prod'][i]['Type']     = "2-years subscription";
Destination[3]['Prod'][i]['Price']    = 21;
Destination[3]['Prod'][i]['Shipping'] = 8;

i++;
Destination[3]['Prod'][i] = new Object();
Destination[3]['Prod'][i]['Type']     = "3-years subscription";
Destination[3]['Prod'][i]['Price']    = 31;
Destination[3]['Prod'][i]['Shipping'] = 12;

i++;
Destination[3]['Prod'][i] = new Object();
Destination[3]['Prod'][i]['Type']     = "Shirt";
Destination[3]['Prod'][i]['Price']    = 16;
Destination[3]['Prod'][i]['Shipping'] = 6;

i++;
Destination[3]['Prod'][i] = new Object();
Destination[3]['Prod'][i]['Type']     = "Issue 1";
Destination[3]['Prod'][i]['Price']    = 7;
Destination[3]['Prod'][i]['Shipping'] = 2;

i++;
Destination[3]['Prod'][i] = new Object();
Destination[3]['Prod'][i]['Type']     = "Issue 2";
Destination[3]['Prod'][i]['Price']    = 7;
Destination[3]['Prod'][i]['Shipping'] = 2;

i++;
Destination[3]['Prod'][i] = new Object();
Destination[3]['Prod'][i]['Type']     = "Issue 3";
Destination[3]['Prod'][i]['Price']    = 7;
Destination[3]['Prod'][i]['Shipping'] = 2;

i++;
Destination[3]['Prod'][i] = new Object();
Destination[3]['Prod'][i]['Type']     = "Issue 4";
Destination[3]['Prod'][i]['Price']    = 7;
Destination[3]['Prod'][i]['Shipping'] = 2;

i++;
Destination[3]['Prod'][i] = new Object();
Destination[3]['Prod'][i]['Type']     = "Issue 5";
Destination[3]['Prod'][i]['Price']    = 7;
Destination[3]['Prod'][i]['Shipping'] = 2;

i++;
Destination[3]['Prod'][i] = new Object();
Destination[3]['Prod'][i]['Type']     = "Issue 6";
Destination[3]['Prod'][i]['Price']    = 7;
Destination[3]['Prod'][i]['Shipping'] = 2;


// Initialisiere Variablen
var dest = "none";
var shirt_size;
var max_items = 8;

// Issue-Checkboxen ein und ausblenden
function toggleCheckboxes()
{
	if (!isSubscription())
	{
		var toggle = false;
	} else
	{
		var toggle = true;
	}

	var elements = document.getElementsByName("Issue").length;
	for (var i=0; i<elements; i++)
	{  
		// Nur falls noetig
		if (isSubscription())
		{
			document.getElementsByName("Issue")[i].checked = false;
		}
		document.getElementsByName("Issue")[i].disabled = toggle;
	}
}

// Subscription-Radiobuttons ausblenden fuer gewisse Destinationen / nicht mehr verwendet
function toggleRadiobuttons(dest)
{
	var elements = document.getElementsByName("Subscription").length;

	if (dest != 0 && dest != 1 && dest != "none")
	{
		var toggle = true;
		var last = elements - 1;
		document.getElementsByName("Subscription")[last].checked = true;
		toggleCheckboxes();
	} else
	{
		var toggle = false;
	}	
	
	for (var i=0; i<elements; i++)
	{  
		document.getElementsByName("Subscription")[i].disabled = toggle;
	}
}

// Destinationen ausgeben im Browser (Drop Down)
function listDestinations()
{
	var num = Destination.length;
	var html;
	for (var i=0; i<num; i++)
	{
		html += '<option value="' + i + '">' + Destination[i]['Name'] + '</option>';		
	}
	document.write(html);
}

// momentan nicht verwendet...
function listSelectedIssues(lang)
{
	var issues = new Array();
	var elements = document.getElementsByName("Issue").length;
	for (var i=0; i<elements; i++)
	{
		if (document.getElementsByName("Issue")[i].checked == true)
		{
			issues[i] = document.getElementsByName("Issue")[i].value;
		}
	}
	
	var html = "";
	for (i=0; i<issues.length; i++)
	{
		if (i>0) html += ", ";
		html += lang + " " +issues[i];		
	}
	return html;
}

// Waehlt die gewaehlten Issues
function addIssues()
{
	var issues = new Array();
	var elements = document.getElementsByName("Issue").length;
	for (var i=0; i<elements; i++)
	{  
		if (document.getElementsByName("Issue")[i].checked == true)
		{	
			issues.push(document.getElementsByName("Issue")[i].value); // Offset: Issue 1 = prod 3
		}
	}
	return issues;
	
}

// Waehlt die korrekte Subscription (2 oder 3 Jahre)
function addProdFromRadio(name)
{
	elements = document.getElementsByName(name).length;
	var prod = new Array();
	for (var i=0; i<elements; i++)
	{
		if (document.getElementsByName(name)[i].checked == true)
		{
			prod.push(document.getElementsByName(name)[i].value);
			
			if (name == "Shirt")
			{
				shirt_size = document.getElementsByName(name)[i].id;
			}
			break; // achung... ?
		}
	}
	return prod;
}

// Checkt, ob Subscription gewaehlt
function isSubscription()
{
	if (document.getElementById('Subscr0').checked == true)
	{
		return false;
	} else
	{
		return true;
	}
}

// Checkt, ob ein Shirt gewaehlt
function isShirt()
{
if (document.getElementById('shirt_none').checked == true)
	{
		return false;
	} else
	{
		return true;
	}
}

// Bei absenden des Formulars...
function processForm()
{
	var prod = new Array();
	
	// Entweder einzelne Ausgaben gewaehlt...
	if (!isSubscription())
	{
		var issues = addIssues();
		
		for (var i=0; i<issues.length; i++)
		{
			prod.push(issues[i]);
		}
		
	// ...oder dann Subscription
	} else
	{
		prod.push(addProdFromRadio("Subscription"));		
	}
	// noch ein Shirt dazu
	if (isShirt())
	{
		prod.push(addProdFromRadio("Shirt"));
	}
	
	dest = document.getElementById('Destination').value;
	
	// Sicherheitsabfragen
	if (prod.length == 0 || dest == "none")
	{
		var msg_de = "Es sind folgende Fehler aufgetreten:\n";
		var msg_en = "There were some errors:\n";
		if (prod.length == 0)
		{
			msg_de += "- Kein Angebot angewählt\n";
			msg_en += "- No product selected\n";
		}
		if (dest == "none")
		{
			msg_de += "- Keine Destination angewählt\n";
			msg_en += "- No destination selected\n";
		}
		alert(msg_de + "\n" + msg_en);
		
	} else
	{
		// Abfuellen des PayPal Forms
		
		document.getElementById('currency_code').value = Destination[dest]['Code'];
		
		for (var i=0; i<prod.length; i++)
		{
			var index     = i + 1;
			var item_name = "item_name_" + index;
			var amount    = "amount_" + index;
			var shipping  = "shipping_" + index
			document.getElementById(item_name).value  = Destination[dest]['Prod'][prod[i]]['Type'];
			document.getElementById(amount).value     = Destination[dest]['Prod'][prod[i]]['Price'];
			document.getElementById(shipping).value   = Destination[dest]['Prod'][prod[i]]['Shipping'];
			
			// Shirt Groesse
			if (document.getElementById(item_name).value == "Shirt")
			{
				document.getElementById(item_name).value = document.getElementById(item_name).value + " (" + shirt_size + ")";
			}
		}
		
		// Nicht gebrauchte Item-Container leeren
		for (i=prod.length; i<max_items; i++)
		{
			index = i + 1;
			var item_name = "item_name_" + index;
			var amount    = "amount_" + index;
			var shipping  = "shipping_" + index
			document.getElementById(item_name).value = "";
			document.getElementById(amount).value    = "";
			document.getElementById(shipping).value  = "";
		}
		
		// Und schicken
		window.document.forms['paypalForm'].submit();
	}
}

