function checkNotNull(str) {
	try{
		var newstr = str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
		if (newstr != null && newstr != ''){
			return true;
		}
		else
		{
			return false;
		}
	}
	catch(err){
		ExceptionHandler(err, arguments.callee.toString());
		return false;
	}
}

function check_billing_info(){
	try{
		var add_same = document.getElementById('add_same').checked;
			if(!checkNotNull(document.getElementById('order_firstname').value))
		{
			resetBilling();		

			document.getElementById('order_firstname').className = 'input-login';
			document.getElementById('order_firstname').style.border = '1px solid red';
			document.getElementById('order_firstname').focus();
			output_error('billing_error', 'Please input First Name.');
			return false;
		}
		if(!checkNotNull(document.getElementById('order_lastname').value))
		{
			resetBilling();		

			document.getElementById('order_lastname').className = 'input-login';
			document.getElementById('order_lastname').style.border = '1px solid red';
			document.getElementById('order_lastname').focus();
			output_error('billing_error', 'Please input Last Name.');
			return false;
		}
		if(!checkNotNull(document.getElementById('order_phone').value))
		{
			resetBilling();		

			document.getElementById('order_phone').className = 'input-login';
			document.getElementById('order_phone').style.border = '1px solid red';
			document.getElementById('order_phone').focus();
			output_error('billing_error', 'Please input Phone.');
			return false;
		}
		if(!checkNotNull(document.getElementById('order_email').value))
		{
			resetBilling();		

			document.getElementById('order_email').className = 'input-login';
			document.getElementById('order_email').style.border = '1px solid red';
			document.getElementById('order_email').focus();
			output_error('billing_error', 'Please input Email.');
			return false;
		}
		if(!checkNotNull(document.getElementById('order_email2').value))
		{
			resetBilling();		

			document.getElementById('order_email2').className = 'input-login';
			document.getElementById('order_email2').style.border = '1px solid red';
			document.getElementById('order_email2').focus();
			output_error('billing_error', 'Please input Email Confirmation.');
			return false;
		}
		if((document.getElementById('order_email').value!=document.getElementById('order_email2').value))
		{
			resetBilling();		
            document.getElementById('order_email').className = 'input-login';
			document.getElementById('order_email').style.border = '1px solid red';
			document.getElementById('order_email2').className = 'input-login';
			document.getElementById('order_email2').style.border = '1px solid red';
			document.getElementById('order_email2').focus();
			output_error('billing_error', 'Your email entered do not match.');
			return false;
		}
		if(!checkNotNull(document.getElementById('order_address').value))
		{
			resetBilling();		

			document.getElementById('order_address').className = 'input-login';
			document.getElementById('order_address').style.border = '1px solid red';
			document.getElementById('order_address').focus();
			output_error('billing_error', 'Please input Street Address1.');
			return false;
		}
		if(!checkNotNull(document.getElementById('order_city').value))
		{
			resetBilling();		

			document.getElementById('order_city').className = 'input-login';
			document.getElementById('order_city').style.border = '1px solid red';
			document.getElementById('order_city').focus();
			output_error('billing_error', 'Please input City.');
			return false;
		}
		if(!checkNotNull(document.getElementById('order_post').value))
		{
			resetBilling();		

			document.getElementById('order_post').className = 'input-login';
			document.getElementById('order_post').style.border = '1px solid red';
			document.getElementById('order_post').focus();
			output_error('billing_error', 'Please input Postal/Zip Code.');
			return false;
		}
	
		
       if(!checkNotNull(document.getElementById('order_province').value))
		{
			resetBilling();		

			document.getElementById('order_province').className = 'input-login';
			document.getElementById('order_province').style.border = '1px solid red';
			document.getElementById('order_province').focus();
			output_error('billing_error', 'Please input Province/State.');
			return false;
		}
		if(!checkNotNull(document.getElementById('order_shipaddress').value)&&!add_same)
		{
			resetBilling();		

			document.getElementById('order_shipaddress').className = 'input-login';
			document.getElementById('order_shipaddress').style.border = '1px solid red';
			document.getElementById('order_shipaddress').focus();
			output_error('billing_error', 'Please input Street Address1');
			return false;
		}
		if(!checkNotNull(document.getElementById('order_shipcity').value)&&!add_same)
		{
			resetBilling();		

			document.getElementById('order_shipcity').className = 'input-login';
			document.getElementById('order_shipcity').style.border = '1px solid red';
			document.getElementById('order_shipcity').focus();
			output_error('billing_error', 'Please input City');
			return false;
		}
		
		if(!checkNotNull(document.getElementById('order_shipprovince').value)&&!add_same)
		{
			resetBilling();		

			document.getElementById('order_shipprovince').className = 'input-login';
			document.getElementById('order_shipprovince').style.border = '1px solid red';
			document.getElementById('order_shipprovince').focus();
			output_error('billing_error', 'Please input Province/State');
			return false;
		}
		if(!checkNotNull(document.getElementById('order_shippost').value)&&!add_same)
		{
			resetBilling();		

			document.getElementById('order_shippost').className = 'input-login';
			document.getElementById('order_shippost').style.border = '1px solid red';
			document.getElementById('order_shippost').focus();
			output_error('billing_error', 'Please input Postal/Zip Code');
			return false;
		}
		
		return true;
	}
	catch(err){
		ExceptionHandler(err, arguments.callee.toString());
		return false;
	}
}

function resetBilling(){
	document.getElementById('order_firstname').style.border = '1px solid #0484b7';
	document.getElementById('order_lastname').style.border = '1px solid #0484b7';
	document.getElementById('order_phone').style.border = '1px solid #0484b7';
	document.getElementById('order_email').style.border = '1px solid #0484b7';
	document.getElementById('order_email2').style.border = '1px solid #0484b7';
    document.getElementById('order_address').style.border = '1px solid #0484b7';
	document.getElementById('order_province').style.border = '1px solid #0484b7';
	document.getElementById('order_city').style.border = '1px solid #0484b7';
	document.getElementById('order_post').style.border = '1px solid #0484b7';
	document.getElementById('order_shipaddress').style.border = '1px solid #0484b7';
	document.getElementById('order_shipcity').style.border = '1px solid #0484b7';
	document.getElementById('order_shipprovince').style.border = '1px solid #0484b7';
	document.getElementById('order_shippost').style.border = '1px solid #0484b7';

	}


function output_error(obj_id, message){
	try{
		document.getElementById(obj_id).innerHTML = message;
	}catch(err){
		ExceptionHandler(err, arguments.callee.toString(), obj_id);
	}
}
function ExceptionHandler(err, ownName, parameter){
	//var ownName = arguments.callee.toString();
	ownName = ownName.substr('function '.length);        // trim off "function "
	ownName = ownName.substr(0, ownName.indexOf(')')+1);        // trim off everything after the function name
													  
	alert('Error Name: ' + err.name + '\nError Message: ' + err.message + '\nParameter: ' + parameter + '\nLine Number: ' + err.lineNumber + '\nCalleeInfo: ' + ownName);
	return false;
}

function check_login_form(){
	try{
		if(!checkNotNull(document.getElementById('username').value))
		{
			resetMidLogin();		

			document.getElementById('username').className = '';
			document.getElementById('username').style.width = '100px';
			document.getElementById('username').style.border = '1px solid red';
			document.getElementById('username').focus();
			output_error('login_error', 'Please input Username.');
			return false;
		}
		if(!checkNotNull(document.getElementById('password').value))
		{
			resetMidLogin();		

			document.getElementById('password').className = '';
			document.getElementById('password').style.width = '100px';
			document.getElementById('password').style.border = '1px solid red';
			document.getElementById('password').focus();
			output_error('login_error', 'Please input Password.');
			return false;
		}
		return true;
	}
	catch(err){
		ExceptionHandler(err, arguments.callee.toString());
		return false;
	}
}

function resetMidLogin(){
	document.getElementById('username').style.border = '1px solid #0484b7';
	document.getElementById('password').style.border = '1px solid #0484b7';
	}
	


function check_card_info(){
	try{
		 var read_privacy = document.getElementById('read_privacy').checked;
		  if(!read_privacy)
	{
		resetCard();
		document.getElementById('read_privacy').style.border = '1px solid red';
	   document.getElementById('read_privacy').focus();
	   output_error('card_error', 'You must check the checkbox after reading the Privacy & Terms of Use before continuing.');
	   return false;
	}
        if(!checkNotNull(document.getElementById('order_cardname').value))
		{
			resetCard();		

			document.getElementById('order_cardname').className = '';
			document.getElementById('order_cardname').style.width = '150px';
			document.getElementById('order_cardname').style.border = '1px solid red';
			document.getElementById('order_cardname').focus();
			output_error('card_error', 'Please input Name on Credit Card.');
			return false;
		}
		if(!checkNotNull(document.getElementById('order_cardnum').value))
		{
			resetCard();		

			document.getElementById('order_cardnum').className = '';
			document.getElementById('order_cardnum').style.width = '150px';
			document.getElementById('order_cardnum').style.border = '1px solid red';
			document.getElementById('order_cardnum').focus();
			output_error('card_error', 'Please input Credit Card Number.');
			return false;
		}
		
		var cardtype = document.getElementsByName('order[order_cardtype]');
		 var i,n=0;
		  for(i=0;i<cardtype.length;i++)
		  if(cardtype[i].checked){n++;}
		  if (n<1){
          resetCard();		
			output_error('card_error', 'Please choose Credit Card Type.');
			return false;
		}
		
		if(!checkNotNull(document.getElementById('order_cvv').value))
		{
			resetCard();		

			document.getElementById('order_cvv').className = '';
			document.getElementById('order_cvv').style.width = '150px';
			document.getElementById('order_cvv').style.border = '1px solid red';
			document.getElementById('order_cvv').focus();
			output_error('card_error', 'Please input CCV.');
			return false;
		}
		if(!checkNotNull(document.getElementById('order_expmonth').value))
		{
			resetCard();		

			document.getElementById('order_expmonth').className = '';
			document.getElementById('order_expmonth').style.width = '100px';
			document.getElementById('order_expmonth').style.border = '1px solid red';
			document.getElementById('order_expmonth').focus();
			output_error('card_error', 'Please input Expiration Date.');
			return false;
		}
		if(!checkNotNull(document.getElementById('order_expyear').value))
		{
			resetCard();		

			document.getElementById('order_expyear').className = '';
			document.getElementById('order_expyear').style.width = '100px';
			document.getElementById('order_expyear').style.border = '1px solid red';
			document.getElementById('order_expyear').focus();
			output_error('card_error', 'Please input Expiration Date.');
			return false;
		}

		
		return true;
	}
	catch(err){
		ExceptionHandler(err, arguments.callee.toString());
		return false;
	}
}
function resetCard(){
	document.getElementById('order_cardname').style.border = '1px solid #0484b7';
	document.getElementById('order_cardnum').style.border = '1px solid #0484b7';
	document.getElementById('order_cvv').style.border = '1px solid #0484b7';
	document.getElementById('order_expmonth').style.border = '1px solid #0484b7';
	document.getElementById('order_expyear').style.border = '1px solid #0484b7';
	}
	