
var myCookieName = "somersNowMenu";	//This variable holds the cookie name
var yrsactive = 5;                      //This variable determins how long a cookie is valid for
var linksArrycodes = "";		//This variable eventually holds the codes
var sortedcodes = "";			//This variable eventually holds the sorted codes
var defaultCodes = "UVZ";		//This variable defines the default Links
var categoryFactor = 2;			//This variable difines the number of active Cataegories


var A = new Array(5);
	A[0] = "A";			//Link Code
	A[1] = "All Saints Church";		//Link Name
	A[2] = "http://www.somersallsaints.org/";	//Link URL
	A[3] = "000";			//Sort Code
	A[4] = "1.0";			//Version
var B = new Array(5);
	B[0] = "B";			//Link Code
	B[1] = "Beautification";		//Link Name
	B[2] = "http://www.somersnow.com/Beautification.htm";	//Link URL
	B[3] = "005";			//Sort Code
	B[4] = "1.0";			//Version
var C = new Array(5);
	C[0] = "C";			//Link Code
	C[1] = "Congregational Church of Somersville";		//Link Name
	C[2] = "http://www.somersvilleucc.org/";	//Link URL
	C[3] = "010";			//Sort Code
	C[4] = "1.0";			//Version
var D = new Array(5);
	D[0] = "D";			//Link Code
	D[1] = "Cooperative Preschool";		//Link Name
	D[2] = "http://www.somersco-op.org/";	//Link URL
	D[3] = "015";			//Sort Code
	D[4] = "1.0";			//Version
var E = new Array(5);
	E[0] = "E";			//Link Code
	E[1] = "Cultural Commission";		//Link Name
	E[2] = "http://www.somersnow.com/Town/CulturalCommission";	//Link URL
	E[3] = "020";			//Sort Code
	E[4] = "1.0";			//Version
var F = new Array(5);
	F[0] = "F";			//Link Code
	F[1] = "Friends of the Library";		//Link Name
	F[2] = "http://www.somersnow.com/FriendLibrary";	//Link URL
	F[3] = "025";			//Sort Code
	F[4] = "1.0";			//Version
var G = new Array(5);
	G[0] = "G";			//Link Code
	G[1] = "Historical Society";		//Link Name
	G[2] = "http://www.somersnow.com/HistoricalSociety/index.htm";	//Link URL
	G[3] = "030";			//Sort Code
	G[4] = "1.0";			//Version
var H = new Array(5);
	H[0] = "H";			//Link Code
	H[1] = "Lacrosse Association";		//Link Name
	H[2] = "http://www.somerslacrosse.org/";	//Link URL
	H[3] = "035";			//Sort Code
	H[4] = "1.0";			//Version
var I = new Array(5);
	I[0] = "I";			//Link Code
	I[1] = "Library";		//Link Name
	I[2] = "http://www.somersnow.com/Library/index.htm";	//Link URL
	I[3] = "040";			//Sort Code
	I[4] = "1.0";			//Version
var J = new Array(5);
	J[0] = "J";			//Link Code
	J[1] = "Lions Club";		//Link Name
	J[2] = "http://www.somersnow.com/Lions.htm";	//Link URL
	J[3] = "045";			//Sort Code
	J[4] = "1.0";			//Version
var K = new Array(5);
	K[0] = "K";			//Link Code
	K[1] = "Little League";		//Link Name
	K[2] = "http://www.somerslittleleague.org";	//Link URL
	K[3] = "050";			//Sort Code
	K[4] = "1.0";			//Version
var L = new Array(5);
	L[0] = "L";			//Link Code
	L[1] = "Music Patrons";		//Link Name
	L[2] = "http://www.somersnow.com/MusicPatrons.htm";	//Link URL
	L[3] = "055";			//Sort Code
	L[4] = "1.0";			//Version
var M = new Array(5);
	M[0] = "M";			//Link Code
	M[1] = "Newcomers Club";		//Link Name
	M[2] = "http://www.somersnow.com/Newcomers.htm";	//Link URL
	M[3] = "060";			//Sort Code
	M[4] = "1.0";			//Version
var N = new Array(5);
	N[0] = "N";			//Link Code
	N[1] = "Ponytail Softball";		//Link Name
	N[2] = "http://www.somerssoftball.com/";	//Link URL
	N[3] = "070";			//Sort Code
	N[4] = "1.0";			//Version
var O = new Array(5);
	O[0] = "O";			//Link Code
	O[1] = "Public Schools";		//Link Name
	O[2] = "http://www.somersnow.com/PublicSchools.htm";	//Link URL
	O[3] = "080";			//Sort Code
	O[4] = "1.0";			//Version
var P = new Array(5);
	P[0] = "P";			//Link Code
	P[1] = "PTA";		//Link Name
	P[2] = "http://www.somersnow.com/PTA.htm";	//Link URL
	P[3] = "090";			//Sort Code
	P[4] = "1.0";			//Version
var Q = new Array(5);
	Q[0] = "Q";			//Link Code
	Q[1] = "PTSA";		//Link Name
	Q[2] = "http://www.somersnow.com/PTSA.htm";	//Link URL
	Q[3] = "100";			//Sort Code
	Q[4] = "1.0";			//Version
var R = new Array(5);
	R[0] = "R";			//Link Code
	R[1] = "Senior Citizens";		//Link Name
	R[2] = "http://www.somersnow.com/seniors/index.htm";	//Link URL
	R[3] = "110";			//Sort Code
	R[4] = "1.0";			//Version
var S = new Array(5);
	S[0] = "S";			//Link Code
	S[1] = "Soccer Association";		//Link Name
	S[2] = "http://www.somerssoccerassociation.org/";	//Link URL
	S[3] = "120";			//Sort Code
	S[4] = "1.0";			//Version
var T = new Array(5);
	T[0] = "T";			//Link Code
	T[1] = "Somers Congregational Church";		//Link Name
	T[2] = "http://www.somerscongregational.org/";	//Link URL
	T[3] = "130";			//Sort Code
	T[4] = "1.0";			//Version
var U = new Array(5);
	U[0] = "U";			//Link Code
	U[1] = "Town Government";		//Link Name
	U[2] = "http://www.somersct.gov";	//Link URL
	U[3] = "140";			//Sort Code
	U[4] = "1.0";			//Version
var V = new Array(5);
	V[0] = "V";			//Link Code
	V[1] = "Tag Sales";		//Link Name
	V[2] = "http://www.somersnow.com/TagSales.htm";	//Link URL
	V[3] = "150";			//Sort Code
	V[4] = "1.0";			//Version
var W = new Array(5);
	W[0] = "W";			//Link Code
	W[1] = "Village Players";		//Link Name
	W[2] = "http://www.somersnow.com/VillagePlayers.htm";	//Link URL
	W[3] = "160";			//Sort Code
	W[4] = "1.0";			//Version
var X = new Array(5);
	X[0] = "X";			//Link Code
	X[1] = "Volunteer Fire & Ambulance";		//Link Name
	X[2] = "http://www.somersnow.com/Fire/index.htm";	//Link URL
	X[3] = "170";			//Sort Code
	X[4] = "1.0";			//Version
var Y = new Array(5);
	Y[0] = "Y";			//Link Code
	Y[1] = "Youth Wrestling";		//Link Name
	Y[2] = "http://www.somersnow.com/YouthWrestling.htm";	//Link URL
	Y[3] = "180";			//Sort Code
	Y[4] = "1.0";			//Version
var Z = new Array(5);
	Z[0] = "Z";			//Link Code
	Z[1] = "Movie Listings";		//Link Name
	Z[2] = "http://movies.yahoo.com/showtimes/showtimes.html?z=06071&r=sim";	//Link URL
	Z[3] = "053";			//Sort Code
	Z[4] = "1.0";			//Version
var a = new Array(5);
	a[0] = "a";			//Link Code
	a[1] = "Volunteers Wanted";		//Link Name
	a[2] = "http://www.somersnow.com/volunteers.htm";	//Link URL
	a[3] = "175";			//Sort Code
	a[4] = "1.0";			//Version

// This Array contains all individual link arrays
var linksArry = new Array(27);
	linksArry[0] = A;
	linksArry[1] = B;
	linksArry[2] = C;
	linksArry[3] = D;
	linksArry[4] = E;
	linksArry[5] = F;
	linksArry[6] = G;
	linksArry[7] = H;
	linksArry[8] = I;
	linksArry[9] = J;
	linksArry[10] = K;
	linksArry[11] = L;
	linksArry[12] = M;
	linksArry[13] = N;
	linksArry[14] = O;
	linksArry[15] = P;
	linksArry[16] = Q;
	linksArry[17] = R;
	linksArry[18] = S;
	linksArry[19] = T;
	linksArry[20] = U;
	linksArry[21] = V;
	linksArry[22] = W;
	linksArry[23] = X;
	linksArry[24] = Y;
	linksArry[25] = Z;
	linksArry[26] = a;

// This Array holds the Category Names
var linksCatagory = new Array(20);
	linksCatagory[0] = "Catagory 1";          //"0-49"
	linksCatagory[1] = "Catagory 2";         //"50-99"
	linksCatagory[2] = "Catagory 3";       //"100-149"
	linksCatagory[3] = "150-199";
	linksCatagory[4] = "200-249";
	linksCatagory[5] = "250-299";
	linksCatagory[6] = "300-349";
	linksCatagory[7] = "350-399";
	linksCatagory[8] = "400-449";
	linksCatagory[9] = "450-499";
	linksCatagory[10] = "500-549";
	linksCatagory[11] = "550-599";
	linksCatagory[12] = "600-649";
	linksCatagory[13] = "650-699";
	linksCatagory[14] = "700-749";
	linksCatagory[15] = "750-799";
	linksCatagory[16] = "800-849";
	linksCatagory[17] = "850-899";
	linksCatagory[18] = "900-949";
	linksCatagory[19] = "950-999";




// returns the cookie Name
function getMenuDisplayCookieName() {
	return myCookieName;
}

// returns the default codes
function getDefaultMenuValues() {
	return defaultCodes;
}

// returns sorted codes
function getSortedCodes() {
	if (sortedcodes.length > 1)
		return sortedcodes;
	var current = 0;
	var next = 999;
	var cnt = 0;
	var processed = new Array(linksArry.length);
	for (var lctn = 0 ; lctn < linksArry.length ; lctn++) {
		processed[lctn] = isCodeInvalid((linksArry[lctn])[0]);
	}
	while (cnt < linksArry.length ) {
		for (var lctn = 0 ; lctn < linksArry.length ; lctn++) {
			var arrysortcd = (linksArry[lctn])[3];
			if (!processed[lctn]) {
				if (current == arrysortcd) {
					sortedcodes += (linksArry[lctn])[0];
					processed[lctn] = true;
					cnt += 1;
				}
				else if (current < arrysortcd) {
					if ( arrysortcd < next )
						next = arrysortcd;
				}
			}
			else if ( isCodeInvalid((linksArry[lctn])[0]) )
				cnt += 1;

		}
		current = next;
		next = 999;
	}
	return sortedcodes;
}


// returns all valid codes
function getAllCodes() {
	if (linksArrycodes.length > 1)
		return linksArrycodes;

	for ( var lctn = 0 ; lctn < linksArry.length ; lctn++ )
		linksArrycodes += (linksArry[lctn])[0];
	return linksArrycodes;
}

function getLocationOfCode( cd ) {
	getAllCodes();
	for (var lctn = 0 ; lctn < linksArry.length ; lctn++) {
		if ( cd == linksArrycodes.substring(lctn,lctn+1)) {
			return lctn;
		}
	}
	return -1;
}

function getNameOfCode( cd ) {
	return (linksArry[getLocationOfCode( cd )])[1];
}

function getURLOfCode( cd ) {
	return (linksArry[getLocationOfCode( cd )])[2];
}


function isNewCatagory(oldcd, newcd) {
	return ( Math.floor((linksArry[getLocationOfCode( oldcd )])[3]/50 )) != ( Math.floor((linksArry[getLocationOfCode( newcd )])[3]/50 ) );
}

function getNewCatagory(newcd) {

	return linksCatagory[ (linksArry[getLocationOfCode( newcd )])[3]/50 ];
}

function usingInvalidValues(val) {
	for (var lctn = 0 ; lctn < val.length ; lctn++) {
		if (isCodeInvalid(val.substring(lctn,lctn +1)))
			return true;
	}
	return false;
}

function assignValidValues(val) {
	var newval = "";
	var thiscode = "";
	for (var lctn = 0 ; lctn < val.length ; lctn++) {
		thiscode = val.substring(lctn,lctn +1);
		if (!isCodeInvalid(thiscode))
			newval += thiscode;
	}
	if (newval.length < 1)
		return defaultCodes;
	return newval;
}

function isCodeInvalid(cd) {
	if ( getNameOfCode( cd ).length < 1 ||
	     getURLOfCode( cd ).length < 1 )
	     return true;
	return false;

}

// below are generic functions

function getCookieVal (offset) {
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
		endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) {
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var gclctn = 0;
	while (gclctn < clen) {
		var gcsize = gclctn + alen;
		if (document.cookie.substring(gclctn, gcsize) == arg)
			return getCookieVal (gcsize);
		gclctn = document.cookie.indexOf(" ", gclctn) + 1;
		if (gclctn == 0)
			break;
	}
	return defaultCodes;
}

function SetCookie (name, value) {
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	var expires = new Date();
	expires.setTime(expires.getTime() + (1000 * 60 * 60 * 24 * yrsactive * 365));
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString();
}

