﻿//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//County Office Page
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function getURL(x)
{
    var val = "countyPage.aspx?county=" + x.value;
    
    if (x.value == "Benton")
    {
        window.open("http://bentoncountyfarmbureau.com/","_blank");
    }
    else if (x.value == "Carroll")
    {
        window.open("http://www.carrollcountyfarmbureau.org/","_blank");
    }
    else if (x.value == "Cass")
    {
        window.open("http://casscountyfarmbureau.org/index.html","_blank");
    }
    else if (x.value == "Clinton")
    {
        window.open("http://www.clintoncountyfarmbureau.org/","_blank");
    }
    else if(x.value == "Hancock")
    {
        window.open("http://www.hcfb.org/","_blank");
    }
    else if(x.value == "LaPorte")
    {
        window.open("http://www.farmbureaulaporteco.org/","_blank");
    }
    else if (x.value == "Tippecanoe")
    {
        window.open("http://www.tippecanoecountyfarmbureau.org/","_blank");
    }
    else if (x.value == "Union")
    {
        window.open("http://www.ucfb.org/","_blank");
    }
    else if (x.value == "White")
    {
        window.open("http://whitecountyfarmbureau.org","_blank");
    }
    else
    {    
        window.open(val,"_blank");
    }
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//Image roll-over functions.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function findObj(n, d) { 
			var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
				d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
			if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
			for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
			if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function swapImage() {
			var i,j=0,x,a=swapImage.arguments; document.sr=new Array; for(i=0;i<(a.length-2);i+=3)
			if ((x=findObj(a[i]))!=null){document.sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//PHONE NUMBER VALIDATION AND MASKING
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function Phone_onChange(field)
{	
	field.value = Phone_Format(field.value);	
	if(!Phone_Validate(field))
		return;
//	field_onChange(field);
}

function Phone_Validate(field)
{
	var strInput = field.value;
	if(strInput.length == 0)
		return true;
	
	if( strInput.indexOf("(") != 0 || 
		strInput.indexOf(")") != 4 || 
		strInput.indexOf(" ") != 5 ||
		strInput.indexOf("-") != 9 ||
		strInput.length < 14 || strInput.length > 14)
	{
		alert('Invalid Phone Number! ', field);	
		return false;
	}
	return true;
}

function Phone_Format(strInput)
{
	if(strInput.length == 0)
		return strInput;
	
	if(strInput.indexOf("-", 0) > -1 && 
		strInput.indexOf("(") > -1 && 
		strInput.indexOf(")") > -1 &&
		strInput.indexOf(" ") > -1)
		return strInput;
		
	if(strInput.length < 11)
		return "(" + strInput.substring(0, 3) + ")" +" "+ strInput.substring(3, 6) + "-" + strInput.substring(6); //  14 char for phone
	else
		return "(" + strInput.substring(0, 3) + ")" +" "+ strInput.substring(3, 6) + "-" + strInput.substring(6, 10); // + "x" + strInput.substring(10);
}


function Phone_UnFormat(strInput)
{
	aCurrStripChars = new Array("(", ")", " ", "-", "x") // Add Space into Array to Check 14 char long
	
	if(strInput.length == 0)
		return strInput;

	return strStrip(strInput, aCurrStripChars)	
}


function Phone_onKeyPress(field)
{  
	var inputChar = window.event.keyCode;
	if(inputChar < 48 || inputChar > 57)
		return window.event.returnValue = false;
		
	var strInput = field.value;	
	
	if (strInput.length ==1 && strInput !="(")
		field.value = "(" + strInput;
	if (strInput.length == 4)
		field.value += ") ";
	if (strInput.length == 5)
		field.value += " ";
	if (strInput.length == 9)
		field.value += "-";	
	//if (strInput.length == 13)
	//	field.value += "x";

	if (strInput.length > 13)
		return window.event.returnValue = false;
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//ZIP VALIDATION AND MASKING
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

function Zip_onChange(field)
{	
	field.value = Zip_Format(field.value);
	if(!Zip_Validate(field))
		return;
//	field_onChange(field);
}

function Zip_Validate(field)
{
	var strInput = field.value;
	if(strInput.length == 0)
		return true;

	if	((strInput.indexOf("-") == 5 && strInput.length != 10) ||
		 (strInput.length > 5 && strInput.indexOf("-") != 5) || 
		 (strInput.length < 5))
	{
		HandleClientError("Invalid Zip Code!", field);		
		return false;
	}
	return true;		
}

function Zip_Format(strInput)
{	
	if(strInput.length == 0)
		return strInput;
	
	if(strInput.indexOf("-", 0) > -1) // aleady formated
		return strInput;

	if (strInput.length > 5)
		return strInput.substring(0, 5) + "-" + strInput.substring(5);
	else
		return strInput;
}

function Zip_UnFormat(strInput)
{
	aCurrStripChars = new Array("-")
	
	if(strInput.length == 0)
		return strInput;

	return strStrip(strInput, aCurrStripChars)	
}

function Zip_onKeyPress(field)
{
	var inputChar = window.event.keyCode;
	if(inputChar < 48 || inputChar > 57)
		return window.event.returnValue = false;
	
	var strInput = field.value;	
	if (strInput.length == 5)
		field.value += "-";
		
	if (strInput.length > 9)
		return window.event.returnValue = false;
}
/*----------------------------------------------------------------
Common code
	Code that allows linkbuttons to not cause onbeforeunload twice
----------------------------------------------------------------*/
var linkButtonClicked = false;
document.onclick = 
	function (evt) 
	{		
		var target = document.all ? event.srcElement : evt.target;		
		if (target.parentElement.href)
			linkButtonClicked = true;
	};
	
/*----------------------------------------------------------------
Function GetDate
	Open the calendar window to retrieve a date
	
	Parameters:
		[in]  item - object which will be populated with selected date
----------------------------------------------------------------*/
function GetDate(item)
{	
	//Set domain so calendar page can return values if domain was set by another function
	OpenWindow("Calendar",'form=' + document.forms[0].name + '&item=' + item);
}
/*----------------------------------------------------------------
DATE VALIDATION AND MASKING
----------------------------------------------------------------*/
function Date_onChange(field) {	
	if(!Date_Validate(field))
		return;	
	field.value = Date_Format(field.value);	
}

function Date_Validate(field) {
	var strInput = field.value;	
	if(strInput.length == 0)
		return true;
	
	var month ;
	var day;
	var year;
	
	if(strInput.indexOf("/") > 0) {
		month = strInput.substring(0, strInput.indexOf("/"));	
		var pos = strInput.lastIndexOf("/")
		day = strInput.substring(strInput.indexOf("/") + 1, pos);			
		if(strInput.indexOf("/") != strInput.lastIndexOf("/"))
			year = strInput.substring(strInput.lastIndexOf("/") + 1);
		else
			year = "";
	}
	else {
		if(strInput.length == 8){
			month = strInput.substring(0, 2);
			day = strInput.substring(2, 4);
			year = strInput.substring(4, 8);
		}
		else {		
			alert("Invalid date.");
			return false;
		}		
	}
	if (year.length != 4) {
		alert("4 digits must be entered for the year.");
		return false;
	}
	month = month - 0;
	day = day - 0;
	year = year - 0;
	if (month ==0 || month > 12 || day == 0 || day > getDaysInMonth(month, year)) {		
		alert("Invalid date");
		return false;	
	}
	if (year > 3000) {
		alert("Date is too far in the future.");
		return false;	
	}
	if (year < 1753) {
		alert("Date is too far in the past.");
		return false;	
	}
	return true; 
}

function Date_Format(strInput) {
	if(strInput.length == 0)
		return strInput;
	var month; 
	var day;
	var year;
	if(strInput.indexOf("/", 0) == -1) {
		month = strInput.substring(0, 2) - 0;
		day = strInput.substring(2, 4) - 0;
		year = strInput.substring(4);
	}		
	else {
		var pos1 = strInput.indexOf("/");
		month = strInput.substring(0, pos1) - 0;
		var pos2 = strInput.lastIndexOf("/");
		day = strInput.substring(pos1 + 1, pos2) - 0;
		var pos3 = strInput.lastIndexOf(" ");
		if(pos3 == -1)
			year = strInput.substring(pos2 + 1);
		else
			year = strInput.substring(pos2 + 1, pos3) - 0;
	}
	if (month < 10)
		month = "0" + month;	
	if (day < 10)
		day = "0" + day;
	if (year.length < 4 && (year - 0) < 100)
		year = (year - 0) + 1900;	
	return month + "/" + day + "/" + year;
}
function Date_onKeyPress(field) {	
	var inputChar = window.event.keyCode;
	var strInput = field.value;	
	if(inputChar == 67 || inputChar == 99) {
        if (strInput.length < 8)
		  field.value = "";		
	    DateButton_OnClick(field);
	}
	if(inputChar < 47 || inputChar > 57)	
		return window.event.returnValue = false;	
	var month; 
	var day;
	var year;
	
	if(strInput.indexOf("/") > 0) {
		month = parseInt(strInput.substring(0, strInput.indexOf("/")));
		day = strInput.substring(strInput.indexOf("/") + 1);
		if(strInput.indexOf("/") != strInput.lastIndexOf("/")) {
			year = strInput.substring(strInput.lastIndexOf("/") + 1);
			if (document.selection.type == "None") {
			  if(year.length > 3)  {
			  	return window.event.returnValue = false;
			  }
			}
		}
	}

	if (inputChar == 47 && 
		(strInput.length == 0 ||								// no "/" at the first position
		 strInput.lastIndexOf("/") == strInput.length -1 ||	// no "/" after another
		 strInput.lastIndexOf("/") >= 3))						// no more than two "/" 
	{
		return window.event.returnValue = false;
	}
	if (strInput.length == 1 && 
		((parseInt(strInput) > 1  && inputChar != 47 ) || 
		(parseInt(strInput) == 1 && inputChar > 50) )) {
		field.value += "/";	
	}

	if (strInput.length == 2) {
		if(strInput.substring(1, 2) == "/" && inputChar == 47)	
			return window.event.returnValue = false;			
		if(strInput.substring(1, 2) != "/" && inputChar != 47)									
			field.value += "/";		  
	}
			
	if (strInput.length == 3) {							
		if(	(month == 2 && day > 2 || month !=2 && day > 3 && inputChar != 47) ||
			(month != 2 && day == 3 && inputChar > 49))					
			field.value += "/";				 				
	}	
		
	if (strInput.length == 4) {							
		if((month == 2 && day > 2 || month !=2 && day > 3) && inputChar != 47)								
			field.value += "/";		
		if(month != 2 && day == 3 && inputChar > 49)
			return window.event.returnValue = false;
	}	
	if (strInput.length == 5) {
		if(strInput.lastIndexOf("/") < 3 && inputChar != 47)
			field.value += "/"; 	
	}	
	return window.event.returnValue = true;	
}
function getDaysInMonth(month, year) {
	var daysInMonth= new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	if (month == 2) // Test for leap year when Febrary is selected
		return ((year % 4 ==0) && (year % 100 != 0)) || (year % 400 == 0) ? 29 : 28;
	else
		return daysInMonth[month - 1];
}
function OpenWindow(name,queryString,link) 
{
	var modal = false;
	var attributes = "";
	var url = "";
	queryString = "?" + queryString
	switch (name)	
	{	
		case ("Calendar"):
			modal=false;
			attributes = "width=200,height=168,toolbars=no,scrollbars=no,status=no,resizable=yes";					
			url = "../calendar.aspx" + queryString;
			break;		
		default:
			url = link;
			break;
	}			
		
	while (name.indexOf(" ") != -1)
		name = name.replace(" ","");
	if (modal == true) 
		window.showModalDialog(url,name,attributes);		
	else {		
		window.open(url,name,attributes);		 
	}	
}


