﻿// Display an error
function ShowError(err, pnlName) {
	// pnlName = "div#pnlError"
	if (err == "") {
		$(pnlName).hide();
		return false;
	} else {
		$(pnlName).html('<p class="nb">' + err + '</p>');
		$(pnlName).show();
		return true;
	}
}

// Check email is valid
function ValidateEmail(fieldID, divResultID) {
	var email = $("#" + fieldID).val();

	if (email != 0) {
		if (isValidEmailAddress(email)) {
			$("#" + divResultID).css({ "background-image": "url('/gfx/validyes.png')" });
		} else {
			$("#" + divResultID).css({ "background-image": "url('/gfx/validno.png')" });
		}
	} else {
		$("#" + divResultID).css({ "background-image": "none" });
	}
}

// regex for valid email address
function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}

// Set max len on textarea
function maxlen(field, counterName, max) {
	var counter = document.getElementById(counterName);

	if (field.value.length > max)
		field.value = field.value.substring(0, max);
	else
		if (counter != null)
		counter.firstChild.data = max - field.value.length;
}

// Set default button
function clickButton(e, buttonid) {
	var bt = document.getElementById(buttonid);
	if (typeof bt == 'object') {
		if (navigator.appName.indexOf("Netscape") > (-1)) {
			if (e.keyCode == 13) {
				bt.click();
				return false;
			}
		}
		if (navigator.appName.indexOf("Microsoft Internet Explorer") > (-1)) {
			if (event.keyCode == 13) {
				bt.click();
				return false;
			}
		}
	}
}

// http://www.dexign.net/post/2008/07/16/jQuery-To-Call-ASPNET-Page-Methods-and-Web-Services.aspx
function PageMethod(pagePath, fn, paramArray, successFn, errorFn) {
	if (pagePath == '/')	// Override for default
		pagePath = 'default.aspx';

	if (pagePath.indexOf("http://") == -1)
		pagePath = 'http://' + window.location.host + '/' + pagePath

	var paramList = '';
	if (paramArray.length > 0) {
		for (var i = 0; i < paramArray.length; i += 2) {
			if (paramList.length > 0) paramList += ',';
			paramList += '"' + paramArray[i] + '":"' + paramArray[i + 1].toString().replace(/"/g, '\\\"') + '"';
		}
	}
	paramList = '{' + paramList + '}';

	//Call the page method   
	$.ajax({
		type: "POST",
		url: pagePath + '/' + fn,
		contentType: "application/json; charset=utf-8",
		data: paramList,
		dataType: "json",
		success: successFn,
		error: errorFn
	});
}

function GenericFail(xml, options, msg) {
	alert(xml.statusText + ": " + xml.responseText + " - " + options + " / " + msg);
}

function PopulateDDL(ddl_ID, response) {
	var myObject = eval("(" + response + ")");
	$("#" + ddl_ID + ">option").remove();
	for (var i = 0; i <= myObject.length - 1; i++) {
		$("#" + ddl_ID).append($('<option></option>').val(myObject[i].ID).html(myObject[i].Value));
	}
}

