function ld()
{
	//if (document.applets.length>0)
	tcountst++;
	if (tcountst>1)
	{
		clearTimeout(tout);
		initMainFrame();
		//reLoadFrame();
	}	
	else
	{
		tout = setTimeout("ld()", 100);
	}
}


function getNisabRate(objYear, disID)
{
	//return;
	var nid = null;
	var year = objYear.value;
	var nYear = parseInt(year, 10);
	//if (year < 1970) return;
	var packet = "nyear=" + nYear + "&nOption=" + disID;
	var nRate = asyncXMLPayload(getScriptBase() + "ZakatNisabRate.aspx" , packet);
	//alert(nRate);
	if (nRate != "ERROR")
	{
		switch (disID)
		{
			case 1:
				nid = MM_findObj("divmultiple");
				if (nid) nid.innerHTML = nRate;
			break;
				
			case 2:
				nid = MM_findObj("divfixed");
				if (nid) nid.innerHTML = nRate;
			break;
			
			case 3:
				nid = MM_findObj("divinsurance");
				if (nid) nid.innerHTML = nRate;
			break;
			
			case 4:
			
			break;
			
			case 5:
				// reserved for CPF
			break;
			
			case 6:
				nid = MM_findObj("nisabRate");
				var goldy = MM_findObj("divGoldRate");
				if (nid && goldy)
				{
					var marray = nRate.split("::::");
					nid.innerHTML = marray[0];	
					goldy.innerHTML = marray[1] + "&nbsp;per gm";	
				}	
			break;
			
			default:
				nid = MM_findObj("nisabRate");
				if (nid) nid.innerHTML = nRate;
			break;
		}
	}
}

function getNextHaulDate(strDate)
{
//	alert(strDate);
  var d, s, t, q;
  var MinMilli = 1000 * 60;
  var HrMilli = MinMilli * 60;
  var DyMilli = HrMilli * 24;
  var p = Date.parse(strDate);
  p += DyMilli * 355;
  d = new Date(p);
  alert("Akhir Tarikh Haul Adalah:\n" + d.toDateString());
  return false;
}
//// VALIDATION FUNCTIONS

function check_empty(emptyStr)
{
	customError = "";
	emptyStr = trim(emptyStr);
	if (emptyStr == "")
	{
		customError = "field is blank\n";
		return 2;
	}		

	return 0;
}

function check_email(email)
{
	customError = "";
	var pat1 = /(.+)@(.+)\.(.+)/i;
	var str = new String(email);
	if (email.length == 0 )
	{
		customError = "field is blank\n";
		return 2;
	}
	var mat1 = str.match(pat1);
	
	if (mat1 == null)
	{
		customError = "invalid email address\n";
		return 1;
	}
		
	return 0;
}


function check_num(num, len)
{
	var err=0;
	customError = "";
	var checkstr = "+-.0123456789";
	
	if (len<1)
	{
		customError = "field is blank\n";
		return 0;
	}
	
	for (i = 0; i < len; i++)
	{
		if (checkstr.indexOf(num.substr(i,1)) <= 0)
		{
			err=10;
			customError = "Please enter numbers only\n";
			break;
		}
	}

	return err;
}

function check_num_abs(num, len)
{
	var err=0;
	customError = "";
	var checkstr = "+-.0123456789";
	
	if (len<1)
	{
		customError = "field is blank\n";
		return 11;
	}
	
	for (i = 0; i < len; i++)
	{
		if (checkstr.indexOf(num.substr(i,1)) <= 0)
		{
			err=10;
			customError = "Please enter numbers only\n";
			break;
		}
	}

	return err;
}

function fieldMatch(f1, f2)
{
	customError = "";
	if (f1 != f2)
	{
		customError = "Fields Do Not Match\n";
		return 10;
	}
	else
		return 0;
}

function strip(file)
{
	var reg1 = /\w:/
	var res1 = file.replace(reg1, "");
	var reg2 = /([^\/\\]+)$/;
	var res2 = res1.match(reg2);	
	return res2[1];
}

function trimq(somestr)
{
	var qreg = /(^\")/;
	var qnewreg = somestr.replace(qreg, "");
	qnewreg = qnewreg.replace(/(\"$)/, '');
	return qnewreg;
}

function trim(somestr)
{
	// trims all leading and trailing whitespaces
	var qreg = /(^\s*)|(\s*$)/g;
	var qnewreg = somestr.replace(qreg, "");

	return qnewreg;
}


function getScriptBase(sp)
{
	var thisscr = location.href;
	var pat = /(.*)\/(.*)$/;
	var actions = thisscr.match(pat);
	switch (sp)
	{
		case 1:
			return actions[1] + "/";
			break;
		case 2: 
			return actions[2] + "/";
			break;
		case 3: 
			return actions[3] + "/";
			break;
		case 4: 
			return actions[1];
			break;
		default:
			return actions[1] + "/";
			break;
	}											
}

function getPathBase(path)
{
	var pat = /(.*)\/(.*)$/;
	var actions = path.match(pat);
	return actions[2];									
}

function asyncPayload(src, params)
{
	var stdReqXML = new ActiveXObject("MSXML2.XMLHTTP");
	stdReqXML.Open("POST", src, false);
	stdReqXML.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	stdReqXML.send(params);
	return stdReqXML.responsetext;

}

function asyncXMLPayload(src, params)
{
	var stdReqXML = new ActiveXObject("MSXML2.XMLHTTP");
	stdReqXML.Open("POST", src, false, "", "");
	stdReqXML.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	stdReqXML.send(params);
	return stdReqXML.responsetext;
}

function asyncProxyRequest(src, params)
{
	var basecxt = strip(src);
	//alert(basecxt);
	var dt = new Date();
	var ret = "";
	var proxyApp = document.proxy;
	proxyApp.startRequest(Math.random()*dt.getTime(),window.location.href,basecxt,params,0);
	while(true) {
		if (proxyApp.waitForResponse()) {
			if (proxyApp.hasResponse()) break;
		}
	}
	if (proxyApp.getStatus() != -1) {
		ret = proxyApp.getData();
		proxyApp.endResponse();
		return ret;
	} else {
	//	alert("ERROR");
		alert(proxyApp.getMessage());
	}
}

function setRadialValue(form, strFieldName, value)
{
	try
	{
		var objFormField = form.elements[strFieldName];
		var intControlLength = objFormField.length;
		for (i=0;i<intControlLength;i++){
			if(objFormField[i].value == value){
				objFormField[i].checked = true;
			}
		}   
	}
	catch (cet)
	{
		return;
	}
}

function getRadialValue(form, strFieldName)
{
	try
	{
		var objFormField = form.elements[strFieldName];
		var intControlLength = objFormField.length;
		for (i=0;i<intControlLength;i++){
			if(objFormField[i].checked){
				return objFormField[i].value;
			}
		}   
	}
	catch (e)
	{
		return 0;
	}
}


function printIT()
{
	var context = MM_findObj("swordfish");
	var textcon = context.innerHTML;
	//alert(textcon);
	var patt1 = /<A\s/g;
	var patt2 = /\/A>/g;
	textcon = textcon.replace(patt1, "<ASK");
	textcon = textcon.replace(patt2, "");
	//alert(textcon);
    var cartwin = window.open('',
                'FullScreen',
                'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=640,height=480');
	var cdoc = cartwin.document;
	cdoc.createStyleSheet("Library/css.css");
	
	cdoc.body.innerHTML = textcon;
	cartwin.focus();
	cartwin.print();
	cdoc.onafterprint = cartwin.close();	
}

function processHTML(html)
{
	var more_info = MM_findObj("more_info");
	more_info.innerHTML = "";
	html.replace("/<\/script>/i", "'</script' + '>'");
	more_info.insertAdjacentHTML("beforeEnd", html);
	return;
}