function isFormChanged(myform) {
 var rtnVal = false;
 var frm = myform;
 var ele = frm.elements;
 var counter = ele.length;

 for ( var i=1; i < counter; i++ ) {
 	if ( (ele[i].type == "text") || (ele[i].type == "textarea") || (ele[i].type == "radio") || (ele[i].type == "select-one") || (ele[i].type == "select-multiple") || (ele[i].type == "checkbox") )
 	{
 		if ( ele[i].type.length > 0 ) { 		
 			if ( isElementChanged( ele, i ) ) {
	 			rtnVal = true;
 				break;
 			}
 		}
 	}
 }
return rtnVal;
}

function isElementChanged( ele, i ) {

 var isEleChanged = false;

 switch ( ele[i].type ) {

 case "text" :
 if ( ele[i].value != ele[i].defaultValue ) return true;
 break;

 case "textarea" :
 if ( ele[i].value != ele[i].defaultValue ) return true;
 break;

 case "radio" :
 val = "";
 if ( ele[i].checked != ele[i].defaultChecked ) return true;
 break;

 case "select-one" :
 if (ele[i].id>99 ) return false;
 for ( var x =0 ; x <ele[i].length; x++ ) {
 if ( ele[i].options[ x ].selected != ele[i].options[ x ].defaultSelected ) return true;
 }
 break;

 case "select-multiple" :
 if (ele[i].id>99 ) return false;
 for ( var x =0 ; x <ele[i].length; x++ ) {
 if ( ele[i].options[ x ].selected != ele[i].options[ x ].defaultSelected ) return true;
 }
 break;

 case "checkbox" :
 if ( ele[i].checked != ele[i].defaultChecked ) return true;

 default:
 return false;
 break;
 }
}

var g_saving = false;
var g_errmsg="There are unsaved changes on this page.";
g_errmsg += "\n- To save your changes, click the Cancel button, and then click on the Save button.";
g_errmsg += "\n- To disregard your changes, click on the OK button.";

function WarnSave(myform)
{
 var formChanged=isFormChanged(myform);
 if (!g_saving && formChanged) return false;
 return true;
}

function doSave()
{
 g_saving=true;
 doSubmit('SUBMIT');
}

function doCancel()
{
 g_saving = true;
 window.location.reload();
}
