//library.js - holds regex and functions used across validation routines in checkMe.js

//Basic Regex validations (cross-form)
function checkEmail(formElement) {
	//alert('run email check');
	if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(formElement.value))){		
		return false;	
	} else {
		return true;
	}
}

function checkDate(formElement) {	
	if(!(/^(0?[1-9]|1[0-2])[\/](0?[1-9]|[12][0-9]|3[01])[\/]((19|20)[0-9]{2})$/.test(formElement.value))) {		
		return false;	
	} else {
		return true;
	}
}

function checkYear(formElement) {	
	if(!(/^((19|20)[0-9]{2})$/.test(formElement.value))) {		
		return false;	
	} else {
		return true;
	}
}

function checkZip(formElement) {
	return(/^([0-9]{5})(-[0-9]{4})?$/.test(formElement.value));	
}

function checkPhone(formElement) {
	return (/^([0-9]{3}-?)?([0-9]{3}-?){1}([0-9]{4}){1}$/.test(formElement.value));	
}

function checkCheckbox(formElement) {	
	return formElement.checked;
}

function checkRadio(formElement) {
	var cnt = -1;
	
	for (var i=formElement.length-1; i > -1; i--) {
        if (formElement[i].checked) {cnt = i; i = -1;}
    }
	
    if (cnt == -1) {		
		return false;
	}
		
	return true;	
}

function checkPassword(pw01, pw02) {
	var password01 = document.getElementById(pw01);
	var password02 = document.getElementById(pw02);
	
	if(password01.value != password02.value) {
		//alert('The passwords do not match. Please re-enter.');
		password01.value = '';
		password02.value = '';
		return false;
	} else {
		return true;
	}	
}

function checkSelected(formElement) {
	var selections = 0;
	
	for(var i = 0; i < formElement.options.length; i++) {
		if(formElement.options[i].selected)
		{		  
			selections++;
			return true;		
		}
	}
	
	return false;
}

//Form specific validation functions

function checkIndustryMax(formElement) {
	var maxIndustries = 3;
	var selections = 0;
	
	for(var i = 0; i < formElement.options.length; i++)
	{
	  if(formElement.options[i].selected)
	  {		  
		selections++;
		if(selections > maxIndustries) {
			return false;
			break;
	  	}
	  }
	}	
	return true;
}

function checkSkills(x) {
	var skillsBOOL = false;
	var formID = x.id;
	var selectsARR = document.getElementsByTagName('select');
	
	for(var i = 0; i < selectsARR.length; i++) 
	{				
		var current_select = selectsARR[i];		
	
		if(current_select.name.search(/^Skills_[0-9]+$/) != -1)	{	
			if(current_select.value != '') {
				skillsBOOL = true;
				break;
			}
		}
	}
	return skillsBOOL;
}

function checkSkillsMax(x) {
	var totalSkills = 0;
	var minSkills = 5;
	var skillsBOOL = true;
	var formID = x.id;
	var selectsARR = document.getElementsByTagName('select');
	
	for(var i = 0; i < selectsARR.length; i++) 
	{				
		var current_select = selectsARR[i];		
	
		if(current_select.name.search(/^Skills_[0-9]+$/) != -1)	{
			for(j=0;j < current_select.options.length; j++) {
				//alert(current_select.options[j].firstChild.nodeValue);
				if(current_select.options[j].selected) {
					totalSkills++;
					break;
				}							
			}			
		}
	}
	
	return totalSkills < minSkills? false:true;	
}

function textCounter_turnOn(field, countfield, maxlimit) {
	
	if (field.value.length > maxlimit) // if too long...trim it!
		field.value = field.value.substring(0, maxlimit);
	// otherwise, update 'characters left' counter
	else 
	{
		counter_field = document.getElementById(countfield);
		counter_field.innerHTML = maxlimit - field.value.length;
		//countfield.value = maxlimit - field.value.length;
	}
}

function textCounter(field, countfield, maxlimit) {
	
	if (field.value.length > maxlimit) { // if too long...trim it!
		//field.value = field.value.substring(0, maxlimit);
		counter_field = document.getElementById(countfield);
		counter_field.innerHTML = '<strong>' + (maxlimit - field.value.length) + '/' + maxlimit + '</strong>';
	}
	// otherwise, update 'characters left' counter
	else 
	{
		counter_field = document.getElementById(countfield);
		counter_field.innerHTML = (maxlimit - field.value.length) + '/' + maxlimit;
		//countfield.value = maxlimit - field.value.length;
	}
}

function submit_members(url,option_field)
{
	var optionOBJ;
	var page_id;
	var Order;
	var Sort;	
	var Keywords;
	var new_url;
	
	Letter = document.getElementById('Letter').value;	
	Order = document.getElementById('Order').value;		
	Sort = document.getElementById('Sort').value;
	Keywords = document.getElementById('search_keywords').value;	
	
	//get option elelment
	optionOBJ = document.getElementById(option_field);		
	page_id = optionOBJ.options[optionOBJ.selectedIndex].value;	
	
	new_url = url + "?page=" + page_id + "&Letter=" + Letter +"&sort=" + Sort +"&order=" + Order;
	
	if(Keywords != '') {
		new_url = new_url + "&keywords=" + Keywords;
	}
	
	location.href = new_url;
	
}

function showCC(additionalDaysCost){
	if( document.getElementById('PremierPosting').checked || document.getElementById('ExtendPosting').checked ){
		document.getElementById('CreditCardInfo').style.display = "block";
		
		// calculate new total
		var total = 0;
		
		if( document.getElementById('PremierPosting').checked ) {
			total = total + 19;
		}
		
		if( document.getElementById('ExtendPosting').checked ) {
			total = total + (additionalDaysCost * document.getElementById('ExtendPostingLength').value);
		}		
		
		document.getElementById('total_costT').innerHTML = "$" + total + ".00";
	} else {
		document.getElementById('CreditCardInfo').style.display = "none";
	}
}

function showCCAdvertising(){
	if( document.getElementById('BannerAdvertising').checked ){
		document.getElementById('CreditCardInfo').style.display = "block";
		
		// calculate new total
		var total = 0;
		
		total = total + (99 * document.getElementById('BannerAdvertisingQuantity').value) ;
		
		document.getElementById('total_costT').innerHTML = "$" + total + ".00";
	} else {
		document.getElementById('CreditCardInfo').style.display = "none";
	}
}

function showYear() {
	if(document.getElementById('SeekerBirthYearDecline').checked) {
		document.getElementById('dob').disabled = true;
		document.getElementById('dob').value = '';
	} else {
		document.getElementById('dob').disabled = false;
	}
}

function showResumeUpload() {
	if (document.getElementById('UseCurrentResume').checked) {
		document.getElementById('Resume').disabled = true;
		document.getElementById('Resume').value = '';
	} else {
		document.getElementById('Resume').disabled = false;
	}
}

function showCoverLetterUpload() {
	if (document.getElementById('UseCurrentCoverLetter').checked) {
		document.getElementById('CoverLetter').disabled = true;
		document.getElementById('CoverLetter').value = '';
	} else {
		document.getElementById('CoverLetter').disabled = false;
	}
}