﻿function onUpdating() {
    // get the update progress div
    var updateProgressDiv = $get('updateProgressDiv');
    // make it visible
    updateProgressDiv.style.display = '';

    //  get the gridview element
    var gridView = $get('list');

    // get the bounds of both the gridview and the progress div
    var gridViewBounds = Sys.UI.DomElement.getBounds(gridView);
    var updateProgressDivBounds = Sys.UI.DomElement.getBounds(updateProgressDiv);

    updateProgressDiv.style.width = gridViewBounds.width;
    updateProgressDiv.style.height = gridViewBounds.height;
    updateProgressDiv.style.textAlign = 'center';
    updateProgressDiv.style.verticalAlign = 'middle';

    //    set the progress element to this position
    Sys.UI.DomElement.setLocation(updateProgressDiv, gridViewBounds.x, gridViewBounds.y);
}

function onUpdated() {
    // get the update progress div
    var updateProgressDiv = $get('updateProgressDiv');
    // make it invisible
    updateProgressDiv.style.display = 'none';
    updateProgressDiv.style.width = "20px";
    updateProgressDiv.style.height = "20px";
}

function ToggleStates(ddl, state1, val1, state2, usa, canada) {
	var country = $get(ddl).value;
	var state = $get(state1);
	var stateval = $get(val1);
	var stateprovince = $get(state2);

	if (country == "" || country == usa || country == canada) {
		state.style.display = '';
		stateval.validationGroup = "g1";
		stateprovince.style.display = 'none';
	}
	else {
		state.style.display = 'none';
		stateval.validationGroup = "disabled";
		stateprovince.style.display = '';
	}
}

function ToggleStatesWithoutValidator(ddlCountry, ddlState, tbxState, usa, canada) {
	var countryid = $get(ddlCountry).value;
	var statedropdown = $get(ddlState);
	var statetextbox = $get(tbxState);

	if (countryid == usa || countryid == canada) {
		statedropdown.style.display = 'block';
		statetextbox.style.display = 'none';
		statetextbox.value = '';
	}
	else {
		statedropdown.style.display = 'none';
		statedropdown.selectedIndex = 0;
		statetextbox.style.display = 'block';
	}
}

function ValidateEducationSections(input1, input2, input3, input4, input5, val1, val2, val3, val4, val5) {
	var cntrl1 = $get(input1);
	var cntrl2 = $get(input2);
	var cntrl3 = $get(input3);
	var cntrl4 = $get(input4);
	var cntrl5 = $get(input5);
	var tb1 = '';
	var tb2 = '';
	var tb3 = '';
	var tb4 = '';
	var tb5 = '';
	var validator1 = $get(val1);
	var validator2 = $get(val2);
	var validator3 = $get(val3);
	var validator4 = $get(val4);
	var validator5 = $get(val5);

	if (cntrl1) { tb1 = cntrl1.value; }
	if (cntrl2) { tb2 = cntrl2.value; }
	if (cntrl3) { tb3 = cntrl3.value; }
	if (cntrl4) { tb4 = cntrl4.value; }
	if (cntrl5) { tb5 = cntrl5.value; }

	if (tb1 != '' || tb2 != '' || (tb3 != '' && tb3 != '__/__/____') || (tb4 != '' && tb4 != '__/__/____') || tb5 != '') {
		if (validator1) { validator1.validateemptytext = 'true'; }
		if (validator2) { validator2.validateemptytext = 'true'; }
		if (validator3) { validator3.validateemptytext = 'true'; }
		if (validator4) { validator4.validateemptytext = 'true'; }
		if (validator5) { validator5.validateemptytext = 'true'; }
	}
	else {
		if (validator1) {
			validator1.innerHTML = '';
			validator1.validateemptytext = 'false';
		}
		if (validator2) {
			validator2.innerHTML = '';
			validator2.validateemptytext = 'false';
		}
		if (validator3) {
			validator3.innerHTML = '';
			validator3.validateemptytext = 'false';
		}
		if (validator4) {
			validator4.innerHTML = '';
			validator4.validateemptytext = 'false';
		}
		if (validator5) {
			validator5.innerHTML = '';
			validator5.validateemptytext = 'false';
		}
	}
}

function ValidateBoardSections(input1, input2, input3, val1, val2, val3) {
	var cntrl1 = $get(input1);
	var cntrl2 = $get(input2);
	var cntrl3 = $get(input3);
	var tb1 = '';
	var tb2 = '';
	var tb3 = '';
	var validator1 = $get(val1);
	var validator2 = $get(val2);
	var validator3 = $get(val3);

	if (cntrl1) { tb1 = cntrl1.value; }
	if (cntrl2) { tb2 = cntrl2.value; }
	if (cntrl3) { tb3 = cntrl3.value; }

	if (tb1 != '' || tb2 != '' || tb3 != '' && tb3 != '__/__/____') {
		if (validator1) { validator1.validateemptytext = 'true'; }
		if (validator2) { validator2.validateemptytext = 'true'; }
		if (validator3) { validator3.validateemptytext = 'true'; }
	}
	else {
		if (validator1) {
			validator1.innerHTML = '';
			validator1.validateemptytext = 'false';
		}
		if (validator2) {
			validator2.innerHTML = '';
			validator2.validateemptytext = 'false';
		}
		if (validator3) {
			validator3.innerHTML = '';
			validator3.validateemptytext = 'false';
		}
	}
}

function ValidateSocietySections(input1, input2, input3, val1, val2, shared) {
	var cntrl1 = $get(input1);
	var cntrl2 = $get(input2);
	var cntrl3 = $get(input3);
	var cntrl4 = $get(shared);
	var tb = '';
	var cb = false;
	var ddl = '';
	var validator1 = $get(val1);
	var validator2 = $get(val2);

	if (cntrl1) { tb = cntrl1.value; }
	if (cntrl2) { ddl = cntrl2.value; }
	if (cntrl3) { cb = cntrl3.checked; }

	if (tb != '' || cb || ddl != '') {
		if (validator1) { validator1.validateemptytext = 'true'; }
		if (validator2) { validator2.validateemptytext = 'true'; }
		if (tb != '' || cb) {
			cntrl4.value = 'fill';
			validator1.innerHTML = '';
		}
	}
	else {
		if (validator1) {
			validator1.innerHTML = '';
			validator1.validateemptytext = 'false';
		}
		if (validator2) {
			validator2.innerHTML = '';
			validator2.validateemptytext = 'false';
		}
		cntrl4.value = '';
	}
}

function ValidateEmailAddress(src, args) {
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

    if (!filter.test(args.Value)) {
        args.IsValid = false;
    }
    else {
        args.IsValid = true;
    }
}

function ValidateUpload(src, args) {
	var validtypes = $('.ValidTypes').val();
	var typearray = validtypes.split(',');
	var valid = false;

	if (args.Value != '') {
		for (var i = 0; i < typearray.length; i++) {
			if (args.Value.toLowerCase().endsWith(typearray[i])) {
				valid = true;
				break;
			}
		}

		if (!valid) { src.innerHTML = '* invalid file type'; }
	}
	else {
		src.innerHTML = '* required';
	}

	args.IsValid = valid;
}

function ValidateImageUpload(src, args) {
	var validtypes = $('.ValidImageTypes').val();
	var typearray = validtypes.split(',');
	var valid = false;

	if (args.Value != '') {
		for (var i = 0; i < typearray.length; i++) {
			if (args.Value.toLowerCase().endsWith(typearray[i])) {
				valid = true;
				break;
			}
		}

		if (!valid) { src.innerHTML = '* invalid file type'; }
	}
	else {
		src.innerHTML = '* required';
	}

	args.IsValid = valid;
}

function ValidateText(src, args) {
	if (args.Value == '') {
		args.IsValid = false;
		src.innerHTML = '* required';
	}
	else {
		args.IsValid = true;
	}
}

function ValidateDate(src, args) {
	if (args.Value == '') {
		args.IsValid = false;
		src.innerHTML = '* required';
	}
	else if (!isDate(args.Value)) {
		args.IsValid = false;
		src.innerHTML = '* invalid';
	}
	else {
		args.IsValid = true;
	}
}

function ConfirmDelete(uploadid, assetcontainerid, val, deleteflag, typedisplay, toggleEmptyText) {
	if (confirm('Are you sure you want to delete this file?')) {
		var up = $get(uploadid);
		var acontainer = $get(assetcontainerid);
		var validator = $get(val);
		var flag = $get(deleteflag);

		validator.validateemptytext = toggleEmptyText;
		up.style.display = '';
		acontainer.style.display = 'none';
		flag.value = 'true';
		$get(typedisplay).style.display = '';
	}
}

function isDate(dtStr) {
	var daysInMonth = DaysArray(12)
	var pos1 = dtStr.indexOf(dtCh)
	var pos2 = dtStr.indexOf(dtCh, pos1 + 1)
	var strDay = dtStr.substring(pos1 + 1, pos2)
	var strMonth = dtStr.substring(0, pos1)

	var strYear = dtStr.substring(pos2 + 1)
	strYr = strYear
	if (strDay.charAt(0) == "0" && strDay.length > 1) strDay = strDay.substring(1)
	if (strMonth.charAt(0) == "0" && strMonth.length > 1) strMonth = strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0) == "0" && strYr.length > 1) strYr = strYr.substring(1)
	}
	month = parseInt(strMonth)
	day = parseInt(strDay)
	year = parseInt(strYr)
	if (pos1 == -1 || pos2 == -1) {
		//alert("The date format should be : mm/dd/yyyy")
		return false
	}
	if (strMonth.length < 1 || month < 1 || month > 12) {
		//alert("Please enter a valid month")
		return false
	}
	if (strDay.length < 1 || day < 1 || day > 31 || (month == 2 && day > daysInFebruary(year)) || day > daysInMonth[month]) {
		//alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year == 0 || year < minYear || year > maxYear) {
		//alert("Please enter a valid 4 digit year between " + minYear + " and " + maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh, pos2 + 1) != -1 || isInteger(stripCharsInBag(dtStr, dtCh)) == false) {
		//alert("Please enter a valid date")
		return false
	}
	return true
}

var dtCh = "/";
var minYear = 1909;
var maxYear = 2100;

function isInteger(s) {
	var i;
	for (i = 0; i < s.length; i++) {
		// Check that current character is number.
		var c = s.charAt(i);
		if (((c < "0") || (c > "9"))) return false;
	}
	// All characters are numbers.
	return true;
}

function stripCharsInBag(s, bag) {
	var i;
	var returnString = "";
	// Search through string's characters one by one.
	// If character is not in bag, append to returnString.
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) returnString += c;
	}
	return returnString;
}

function daysInFebruary(year) {
	// February has 29 days in any year evenly divisible by four,
	// EXCEPT for centurial years which are not also divisible by 400.
	return (((year % 4 == 0) && ((!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28);
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i == 4 || i == 6 || i == 9 || i == 11) { this[i] = 30 }
		if (i == 2) { this[i] = 29 }
	}
	return this
}


function toggleButton(btnToHide, btnFake, show) {
	if (show == false) {
		$("#" + btnToHide.id).hide();
		$("#" + btnFake).show();
	}
	else {
		$("#" + btnToHide.id).show();
		$("#" + btnFake).hide();
	}
}

function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode

    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;

    return true;
}
