function validateSuggestForm(form){
	if(form.organization_name.value == ''){
		alert('Organization name can\'t be empty');
		return false;
	}

	if(form.organization_contact.value == ''){
		alert('Organization contact can\'t be empty');
		return false;
	}
	
	if(form.user_email.value != ''){
		if(!validateEmail(form.user_email.value)){
			alert('User email is not valid');
			return false;
		}
	}

	return true;
}

function validateSpreadWordForm(form){
	if(form.spread_word_form_name.value == ''){
		alert('Name can\'t be empty');
		return false;
	}

	if(form.spread_word_form_email.value == ''){
		alert('Email can\'t be empty');
		return false;
	}

	if(!validateEmail(form.spread_word_form_email.value)){
		alert('Email is not valid');
		return false;
	}

	if(form.spread_word_form_recipients.value == ''){
		alert('Recipients can\'t be empty');
		return false;
	}

	if(form.spread_word_form_message.value == ''){
		alert('Message can\'t be empty');
		return false;
	}
	return true;	
}
	
function validateEmail(email){ 
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i ;
	if (filter.test(email)) return true;
	else return false;
}

function displayDonationForm(button_id) {
    jQuery("#donation-form").slideDown('fast');
    if (button_id == 1) {
        jQuery("#donate-button").html('<img src="/media/images/donate-disabled.png" />');
    } else {
        jQuery("#donate-button").html('<img style="margin-top:25px;" src="/media/images/remindme-disabled.png" />');
    }

    if (jQuery.browser.msie) {
	if (jQuery.browser.version == '7.0') {
    		jQuery("#content").css('cssText', 'height:1158px !important');
                jQuery(".info-panel").css('cssText', 'height:1000px !important');
    		var cont = document.getElementById('content');
    		curvyCorners.adjust(cont, 'style.height', '1158px');
	} else if (jQuery.browser.version == '8.0') { 
		jQuery("#content").css('cssText', 'height:1120px !important');
        	var cont = document.getElementById('content');
        	curvyCorners.adjust(cont, 'style.height', '1120px');
	}
    	curvyCorners.redraw();
    }
}

function IsNumeric(sText){
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}

function validateReminderForm(form){
    if(form.reminder_form_email.value == ''){
        alert('Email can\'t be empty');
        return false;
    }

    if(!validateEmail(form.reminder_form_email.value)){
        alert('Email is not valid');
        return false;
    }
    return true;
}

function validateDonationForm(form){
	if(form.first_name.value == ''){
		alert('First name can\'t be empty');
		return false;
	}

	if(form.last_name.value == ''){
		alert('Last name can\'t be empty');
		return false;
	}
	
	if(form.address.value == ''){
		alert('Address can\'t be empty');
		return false;
	}
	
	if(form.city.value == ''){
		alert('City can\'t be empty');
		return false;
	}
	
	if(form.zip_code.value == ''){
		alert('Zip code can\'t be empty');
		return false;
	}
	
	if(!IsNumeric(form.zip_code.value)){
		alert('Zip code value is not valid');
		return false;
	}
	
	if(form.card_number.value == ''){
		alert('Card number can\'t be empty');
		return false;
	}
	
	if(!validateCreditCardPayment(form)){
		alert('Card number value is not valid');
		return false;
	}
	
	if(form.card_verification_number.value == ''){
		alert('Card verification number can\'t be empty');
		return false;
	}
	
	if(!IsNumeric(form.card_verification_number.value)){
		alert('Card verification number value is not valid');
		return false;
	}
        
        if(!validateEmail(form.email.value)){
                alert('Email is not valid');
		return false;
        }

        if(!validateDonationAmount(form.donationgroup)) {
                alert('Select a donation amount');
		return false;
        }

	return true;
}

function validateDonationAmount(group) {
    var btn = valButton(group);
    if (btn == null)
        return false;

    return true;
}

function valButton(btn) {
    if (document.getElementsByName('donationgroup')[0].checked) return document.getElementsByName('donationgroup')[0].value;

    var cnt = -1;
    for (var i=btn.length-1; i > -1; i--) {
        if (btn[i].checked) {cnt = i; i = -1;}
    }
    if (cnt > -1) return btn[cnt].value;
    else return null;
}

function validateEmail(email) {
 var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
 return email.match(re) 
}


function validateCreditCardPayment(form){
	var index = form.card_type.selectedIndex;
	var cardType = form.card_type.options[index].value;
	var cardNumber = form.card_number.value;
	// Remove spaces
	cardNumber = cardNumber.replace (/\s/g, "");

	if (cardType == 'Visa') {
	/* Visa validation: length 16, prefix 4. */
		if(cardNumber.length != 16 && cardNumber.length != 13){
			return false;
		}
		if (cardNumber.charAt(0)!='4'){
			return false;
		}
		
	} else if (cardType == 'MasterCard'){
	/* MasterCard validation: length 16, prefix 51-55. */
		if(cardNumber.length != 16){
			return false;
		}
		if (cardNumber.charAt(0)!='5' || (cardNumber.charAt(1)!='1' && cardNumber.charAt(1)!='5')){
			return false;
		}
		
	} else if (cardType == 'Discover'){
	/* Discover validation: length 16, prefix 6011. */
		if(cardNumber.length != 16){
			return false;
		}
		if (cardNumber.substring(0,4) != '6011'){
			return false;
		}
		
	} else if (cardType == 'Amex'){
	/* American Express validation: length 15, prefix 34 or 37. */
		if(cardNumber.length != 15){
			return false;
		}
		if (cardNumber.charAt(0)!='3' || (cardNumber.charAt(1)!='4' && cardNumber.charAt(1)!='7')){
			return false;
		}
	}  
	return luhn10(cardNumber);

}

/**
 * Validates the Luhn algorithm for credit card number
 */
function luhn10(CC){                         
	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--;
		}     
	}
	if ((sum % 10) == 0){
		return true;
     } else{
    	 return false;
     } 
}

