/*
COPYRIGHT (C) 2007 MALTRADE.COM
Do not remove copytight

Common javascript library
*/

var baseurl='http://www.muslimconsumer.org.my/';

//older browser compat
if (!document.getElementById) { document.getElementById = function (id) { return document.all[id]; }; }
function getobj(id) { var obj=false; obj=document.getElementById(id); return obj; }

function attach_event(e,f,o) //event,function,object
{
	if (!o) o=window;
	if (typeof(f)=='function') {
		if (o.addEventListener) o.addEventListener(e,f,false);
		else if (o.attachEvent) o.attachEvent('on'+e,f);
	}
}

function decision(message, url) { if(confirm(message)) location.href = url; }

//pop-up a window
function openpop(url,w,h)
{
	wn=window.open(url,"Large","toolbar=no,width="+w+",height="+h+",status=no,scrollbars=yes,resize=no,menubars=no");
}
function ssb(t) { window.status=t; return true; }
function csb() { window.status=''; }

//my menu
function mnutab_set(tabid)
{
	mnutab_reset();
	if (tabid==currtab) return;
	var t=document.getElementById(tabid);
	t.className="tabover";
}
function mnutab_reset()
{
	for (var i=0; i<mnutab_t.length; i++) {
		var t=document.getElementById(mnutab_t[i]);
		if (mnutab_t[i]==currtab) t.className="tabcur";
		else t.className="tab";
	}
}

//load form value
function load_form(o,v,type) {
	if (typeof(o)=='undefined') return;
	if (!type) type=o.type; //radio fix
	switch (type) {
	case 'text':
	case 'textarea':
	case 'password':
	case 'file':
	case 'hidden':
		o.value=v; break;
	case 'select-one':
	case 'select-multiple':
		for (var i=0;i<o.length;i++) { if (o.options[i].value == v) o.selectedIndex=i; }
		break;
	case 'radio':
		for (var i=0;i<o.length;i++) { if (o[i].value==v) o[i].checked=true; }
		break;
	case 'checkbox':
		if (v=="1") o.checked=true;
		else o.checked=false;
		break;
	}
}


//Validator
function showerr(o,m) {
	if (typeof(o)=='string') { var p=document.getElementById(o); }
	else { var p=document.getElementById(o.name+'_err'); }
	if (m=='') p.className="fok";
	else { p.className="ferr"; alert(m); }
}

function val_required(o,m) {
	if (parseInt(o.value.length) < 1) { showerr(o,m); o.focus(); return false; }
	showerr(o,'');
	return true;
}

function val_minlength(o,len,m) {
	if (parseInt(o.value.length) < len) { showerr(o,m); o.focus(); return false; }
	showerr(o,'');
	return true;
}

function val_maxlength(o,len,m) {
	if (parseInt(o.value.length) > len) { showerr(o,m); o.focus(); return false; }
	showerr(o,'');
	return true;
}

function val_callback(o,cb) { //must return '' for true or 'message' for false
	eval('var cbres='+cb+'(o);');
	if (cbres!='') { showerr(o,cbres); o.focus(); return false; }
	showerr(o,'');
	return true;
}

function val_regex(o,regex,m) {
	if (!regex_test(regex,o.value)) { showerr(o,m); o.focus(); return false; }
	showerr(o,'');
	return true;
}

function val_unregex(o,regex,m) { //reverse result regex
	if (regex_test(regex,o.value)) { showerr(o,m); o.focus(); return false; }
	showerr(o,'');
	return true;
}

function regex_test(regex,v) { //regex test
	//preset test
	if (typeof(regex)=='string') {
		switch (regex) {
			case "RE_NUM":			return (!(/\D+/).test(v));
			case "RE_ALPHANUM":		return (!(/\W+/).test(v)); //alternative patern - /^([a-zA-Z]+)$/
			case "RE_EMAIL":		return ((/^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,3}){1,2}$/i).test(v));
			case "RE_TEL":			return ((/^\d{1,2}-\d{1,3}-\d+/).test(v));
			case "RE_POSTALZIP":	if(v.length==6 || v.length==7) return((/^[a-zA-Z]\d[a-zA-Z] ?\d[a-zA-Z]\d$/).test(v));
									if(v.length==5 || v.length==10) return((/^\d{5}(\-\d{4})?$/).test(v));
									return false;
			case "RE_URL":			return ((/^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([\w]+)(.[\w]+){1,2}$/i).test(v));
			default:				return false; //unknown preset
		}
	}
	//custom pattern
	else return regex.test(v);
	return false;
}

//auto load form value
var formval=new Array();
function formval_load()
{
	for (var i=0; i<formval.length; i++) {
		var e=document.getElementById(formval[i].name);
		if (!e) continue;
		switch (e.type) {
			case 'text':
			case 'textarea':
			case 'password':
			case 'file':
			case 'hidden': e.value=formval[i].value; break;
			case 'select-one':
			case 'select-multiple': for (var k=0;k<e.length;k++) { if (e.options[k].value == formval[i].value) e.selectedIndex=k; } break;
			case 'radio': for (var k=0;k<e.length;k++) { if (e[k].value==formval[i].value) e[k].checked=true; } break;
			case 'checkbox': if (formval[i].value=="1") e.checked=true; else e.checked=false; break;
		}
	}
}
attach_event('load',formval_load);
