function form_init_step1()
{
	form_country();
	form_cat(null);
	form_prov();
}

function form_init_step2()
{
	form_country();
	if( document.getElementById("glob_info").checked ) {
		form_wordcount(document.getElementById("desc_0"));
	} else {
		for( var x=1;x<=num_cats;x++ ) {
			form_wordcount(document.getElementById("desc_"+x));
			document.getElementById("logo_"+x).checked = false;
			document.getElementById("upload_"+x).valeu = "";
		}
	}

}

function frm_showup()
{
	var uld = document.getElementById( "upload" );
	if( document.getElementById("logo").checked ) {
		uld.style.display = "block";
		document.getElementById("logo-uploaded").value = "Yes";
	} else {
		uld.style.display = "none";
		document.getElementById("file-upload").value = "";
		document.getElementById("logo-uploaded").value = "No";
	}
	form_total();
} 

function form_wordcount( what )
{
	var toup = what.name.split("_")[1];
	var entry = what.value.split( " " );
	var words = 0;

	if( what.value != "" ) {
		for( var j=0;j<entry.length;j++ )
			if( entry[j] != "" ) words++
		
		if( words > 25 ) {
			alert( "Descriptions are limited to 25 words or less." );
			what.value = "";
			for( var i=0;i<26;i++ )
				what.value += entry[i] + " " ;
			words--;
		}
	} else
		words = 0;

	document.getElementById("wcount_"+toup).value = words + " words";

	form_countdescs( toup );
}

function form_countdescs( which )
{
	var num = 0;

	if( (which == 0) && (document.getElementById("desc_0").value != "") )
		num = num_cats;
	else if( which != 0 ) {
		var x;
		for( x=1;x<=num_cats;x++ ) {
			if( document.getElementById("desc_"+x).value != "" )
				num++;
		}
	}

	document.getElementById("num_desc").innerHTML = num;
	document.getElementById("desc_cost").innerHTML = form_money( num * 125 );

	form_discounts();
}

function form_discounts()
{
	var discounts = 0;

	if( document.getElementById("glob_info").checked ) {
		if( document.getElementById("logo_0").checked &&
				(document.getElementById("desc_0").value != "") )
			discounts = num_cats;
	} else {
		var x;
		for( x=1;x<=num_cats;x++ ) {
			if( document.getElementById("logo_"+x).checked &&
					(document.getElementById("desc_"+x).value != "") )
				discounts++;
		}
	}

	document.getElementById("num_disc").innerHTML = discounts;
	document.getElementById("disc_cost").innerHTML = form_money( discounts * 50 );

	form_totals();
}

function form_totals()
{
	var subtotal = 0;
	
	subtotal += parseFloat( document.getElementById("cat_cost").innerHTML.replace("$","") ); 
	subtotal += parseFloat( document.getElementById("logo_cost").innerHTML.replace("$","") );
	subtotal += parseFloat( document.getElementById("desc_cost").innerHTML.replace("$","")  );
	subtotal -= parseFloat( document.getElementById("disc_cost").innerHTML.replace("$","")  );

	document.getElementById("subtotal").innerHTML = form_money( subtotal );

	var gst = 0;
	if( document.getElementById("gstdiv").style.display != "none" ) {
		gst = subtotal * 0.13;
		document.getElementById("gst").innerHTML = form_money( gst );
	}

	var ttl = subtotal + gst;
	document.getElementById("ttl").innerHTML = form_money( ttl );
}


function form_cat( what )
{
	var cats = document.getElementsByName("categories[]");
	var chosen = 0;

	for( var i=0;i<cats.length;i++ ) {
		if( cats[i].checked ) {
			chosen++;
		}
	}

	/*if( chosen > 5 ) {
		alert( "You may not select more than 5 categories" );
		if( what != null )
			what.checked = false;
		chosen--;
	} */

	document.getElementById("num-cat").value = chosen;
	form_total_step1();
}

function form_money( amt )
{
	var rounded = Math.round( amt * 100 ) / 100;

	if( rounded.toString().indexOf(".") == -1 ) {
		rounded = rounded + ".00";
	} else {
		var dec = rounded.toString().split(".");
		if( dec[1].length < 2 )
			rounded = rounded.toString() + "0";
	}

	return "$" + rounded;
}

function form_total_step1()
{
	var cats = document.getElementById("num-cat").value;
	var sttl = 0;
	var gst = 0;
	form_country();

	if( cats >= 2 )
		sttl += 50 * (cats - 1);

	document.getElementById("subtot").value = form_money(sttl);

	if( document.getElementById("gstdiv").style.display == "block" ) {
		gst = sttl * 0.13;
		document.getElementById("gst").value = form_money(gst);
	}

	var ttl = sttl + gst;
	document.getElementById("total").value = form_money( ttl ); 
}

function form_logo(which)
{
	var visible = document.getElementById( "logo_" + which ).checked;
	var num = parseInt( document.getElementById("num_logo").innerHTML );

	if( visible ) {
		document.getElementById("up_logo_"+which).style.display = "block";
		if( which == 0 )
			num = num_cats;
		else
			num++;
		document.getElementById("num_logo").innerHTML = num;
		document.getElementById("logo_cost").innerHTML = form_money( num * 125 ); 
	} else {
		document.getElementById("up_logo_"+which).style.display = "none";
		document.getElementById("upload_"+which).value = "";
		if( which == 0 )
			num = 0;
		else
			num--;
		document.getElementById("num_logo").innerHTML = num;
		document.getElementById("logo_cost").innerHTML = form_money( num * 125 );
	}

	form_discounts();
}

function form_logo_type(which)
{
	var fil = which.value;

	if( fil == "" )
		return;

	if( fil.indexOf("\\") != -1 ) {
		var parts = fil.split( "\\" );
		fil = parts[parts.length-1];
	}

	if( fil.indexOf("/") != -1 ) {
		var parts = fil.split( "/" );
		fil = parts[parts.length-1];
	}

	if( fil.indexOf(":") != -1 ) {
		var parts = fil.split( ":" );
		fil = parts[parts.length-1];
	}

	if( fil.indexOf(".") == -1 ) {
		alert( "I can not determine the type of this file.\r\nPlease re-save it with the appropriate extension" );
		which.value = "";
	} else {
		var data = fil.split(".");
		var extn = data[data.length-1].toLowerCase();
		switch( extn ) {
			case "jpg":
			case "jpeg":
			case "tif":
			case "tiff":
			case "eps":
			case "pdf": break;

			default:
				alert( "You have chosen an illegal file type.\r\nPlease make sure your logo is in one of the following formats:\r\n * JPEG/JPG\r\n * TIFF/TIF\r\n * Encapsulated PostScript (EPS)\r\n * Portable Document Format (PDF)" );
				which.value = "";
				break;
		}
	}
}

function is_blank( what, name )
{
	if( document.getElementById(what).value == "" ) {
		alert( "You must enter your " + name + "." );
		document.getElementById(what).focus();
		return true;
	}
	false;
}

function form_verify_step1()
{
	if( is_blank( "company_name", "company name" ) )
		return false;

	if( is_blank( "address1", "address" ) )
		return false;

	if( is_blank( "prov", "province" ) )
		return false;

	if( document.getElementById("prov").options[document.getElementById("prov").selectedIndex].value == "OTHER" ) {
		if( is_blank( "otherprov", "province" ) )
			return false;

		if( is_blank( "othercountry", "country" ) )
			return false;
	}

	if( is_blank( "postcode", "postal code" ) )
		return false;

	var pcode = document.getElementById("postcode").value.replace( "-", "" ).replace( " ", "" );
	if( (form_country() == "Canada") && (pcode.search( /^[a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d$/ ) == -1) ) {
		alert( "You must enter a valid postal code!" );
		document.getElementById("postcode").focus();
		return false;
	}

	if( (form_country() == "USA") && (pcode.search( /^\d{5}([\-]\d{4})?$/ ) == -1) ) {
		alert( "You must enter a valid ZIP code!" );
		document.getElementById("postcode").focus();
		return false;
	}

	if( ( (form_country() == "Canada") || (form_country() == "USA") ) && is_blank( "tel", "telephone number" ) )
		return false;

	var phone = document.getElementById("tel" );
	if( phone.value.search( /^\d\d\d-\d\d\d-\d\d\d\d$/ ) == -1 ) {
		alert( "You must enter your full 10 digit phone number in the following format:\r\n###-###-####" );
		phone.focus();
		return false;
	}

	var fax = document.getElementById("fax");
	if( (fax.value != "") && (fax.value.search( /^\d\d\d\-\d\d\d\-\d\d\d\d$/ ) == -1 ) ) {
		alert( "You must enter your full 10 digit fax number in the following format:\r\n###-###-####" );
		fax.focus();
		return false;
	}

	if( is_blank( "contact_first", "first name" ) )
		return false;

	if( is_blank( "contact_last", "last name" ) )
		return false;

	if( is_blank( "contact_email", "email address" ) )
		return false;

	var cats = document.getElementsByName("categories[]");
	var chosen = 0;
	for( var i=0;i<cats.length;i++ ) {
		if( cats[i].checked ) chosen++;
	}

	if( chosen == 0 ) {
		alert( "You must choose at least one category." );
		return false;
	}

	return true;
}

function form_glob_info( what )
{
	var glob = document.getElementById("glob_info").checked;

	if( glob ) {
		document.getElementById("glob_data").style.display = "block";
		document.getElementById("other_categories").style.display = "none";
		var x = 0;
		for( x=1;x<=num_cats;x++ ) {
			if( document.getElementById("logo_"+x).checked )
				document.getElementById("logo_"+x).click();
			if( document.getElementById("desc_"+x).value != "" ) {
				document.getElementById("desc_"+x).value = "";
				form_wordcount( document.getElementById("desc_"+x) );
			}
		}
	} else {
		document.getElementById("glob_data").style.display = "none";
		document.getElementById("other_categories").style.display = "block";
		if( document.getElementById("logo_0").checked )
			document.getElementById("logo_0").click();

		document.getElementById("desc_0").value = "";

		form_wordcount( document.getElementById("desc_0") );
	}

}

function form_bill_to()
{
	var style=(document.getElementById("glob_bill").checked)?"block":"none";
	document.getElementById("billto").style.display = style;
}

function form_prov()
{
	var v = document.getElementById("prov").options[document.getElementById("prov").selectedIndex].value;

	if( v == "OTHER" ) {
		document.getElementById("other_country").style.display = "block";
	} else {
		document.getElementById("other_country").style.display = "none";
	}

	form_total_step1()
}

function form_country()
{
	var canada = new Array( "AB", "BC", "MB", "NB", "NF", "NS", "NT", "ON", "PE", "QC", "SK", "YT" );
	var c = null;
	if( document.getElementById("prov") )
		c = document.getElementById("prov").options[document.getElementById("prov").selectedIndex].value;
	else
		c = document.getElementsByName("prov")[0].value;

	var gst = false;
	for( x=0;x<canada.length;x++ ) {
		if( canada[x] == c ) gst = true;
	}

	if( gst ) {
		document.getElementById("gstdiv").style.display = "block";
		return "Canada";
	}

	document.getElementById("gstdiv").style.display = "none";
	if( c != "OTHER" )
		return "USA";

	return c;
}

function form_checks()
{
	var tmp = document.getElementById("glob_info").checked;
	if( tmp ) {
		if( document.getElementById("upload_0").value == "" ) {
			alert( "You must choose a logo to upload" );
			return false;
		}
	}

	var num = document.getElementById("numcats").value;
	var x =1;
	for( x=1;x<=num;x++ ) {
		if( document.getElementById("logo_"+x).checked ) {
			if( document.getElementById("upload_"+x).value == "" ) {
				alert( "You must choose a logo to upload" );
				document.getElementById("upload_"+x).focus();
				return false;
			}
		}
	}

	return true;
}

