var YEVENT = YAHOO.util.Event;
var YDOM = YAHOO.util.Dom;
var YCONN = YAHOO.util.Connect;
var loadingPanel;
var createLoadingPanel = function(w){
		if( w == undefined ) {
			w = '240px';
		}
		if( loadingPanel == undefined ) {
				loadingPanel = new YAHOO.widget.Panel("wait",  
					                                                    { width: w, 
					                                                      fixedcenter: true, 
					                                                      close: false, 
					                                                      draggable: false, 
					                                                      zindex:4,
					                                                      modal: true,
					                                                      visible: false
					                                                    } 
					                                                );
				loadingPanel.setHeader("Loading, please wait...");
	  		loadingPanel.setBody("<div align=\"center\" style=\"z-index:100\"><img src=\"themes/default/images/loading.gif\"/></div>");
	  		loadingPanel.render(document.body);
	  		loadingPanel.show();
	  }
	  else {
	    		loadingPanel.setHeader("Loading, please wait...");
	      	loadingPanel.setBody("<div align=\"center\"><img src=\"themes/default/images/loading.gif\"/></div>");
	    		loadingPanel.show();
	  }
}

var triggerLogin = function( ev, fm ){
	if( navigator.appName == 'Microsoft Internet Explorer'){
		charcode = ev.keyCode;
	}
	else {
		charcode = ev.charCode;
  }
  
  if( ev.keyCode == 13 ) {
  	submitLogin( ev, fm );
  }
}

var submitLogin = function(ev, fm) {
		YEVENT.preventDefault(ev);
		if( fm.userid.value == '' ){
			alert('Please key in User ID.');
			return;
		}
		if( fm.password.value == '' ){
			alert('Please key in Password.');
			return;
		}
		createLoadingPanel();

		var callback =
		{
		  success: function(o){
									if(o.responseText !== undefined){
										var ret = eval('(' + o.responseText +')');
										//if( ret.status == 1) {
										//	fm.reset();
										//}
										
										if( ret.status == 1 ) {
											//loadingPanel.setBody('<div align="left">' + ret.msg + '</div><div align="center"><input type="button" value="Close" onclick="loadingPanel.hide()"></div>');

											var funcid = querystring('funcid');
											var redirect = querystring('r');
											if( redirect == 'o' ) {
											 		window.setTimeout("window.location = 'order.php?funcid=shw_order'",500);
											 	  return;
											}
											else {
											 	  window.setTimeout("window.location = 'member.php?funcid=shw_message'",500);
											 	  return;
											}
										}
										else {
											loadingPanel.setHeader('Login Result');
											loadingPanel.setBody('<div>' + ret.msg + '</div><div align="center"><input type="button" value="Close" onclick="loadingPanel.hide()"></div>');
										}
									}
									else {
										loadingPanel.setBody('<div align="left">Network connection error, please try again later.</div><div align="center"><input type="button" value="Close" onclick="loadingPanel.hide()"></div>');
									}
								},
		  failure:function(o) {
		  					loadingPanel.setBody('<div align="left">Network connection error, please try again later.</div><div align="center"><input type="button" value="Close" onclick="loadingPanel.hide()"></div>');
		  				},
		  argument:null
		};
		rememberme = 0;
		if( fm.rememberme != null ) {
			rememberme = fm.rememberme.checked ? 1:0;
		}
		var request = YAHOO.util.Connect.asyncRequest('POST', 'member.php?funcid=login', callback, 'userid='+escape(fm.userid.value) + '&password=' + escape(fm.password.value)+'&rememberme=' + rememberme);
}

var submitLogout = function(ev, fm) {
		YEVENT.preventDefault(ev);
		
		createLoadingPanel();

		var callback =
		{
		  success: function(o){
									if(o.responseText !== undefined){
										var ret = eval('(' + o.responseText +')');
										//if( ret.status == 1) {
										//	fm.reset();
										//}
										
										if( ret.status == 1 ) {
											//loadingPanel.setBody('<div align="left">' + ret.msg + '</div><div align="center"><input type="button" value="Close" onclick="loadingPanel.hide()"></div>');
											window.setTimeout("window.location = 'index.php'",500);
										}
										else {
											loadingPanel.setHeader('Logout Result');
											loadingPanel.setBody('<div>' + ret.msg + '</div><div align="center"><input type="button" value="Close" onclick="loadingPanel.hide()"></div>');
										}
									}
									else {
										loadingPanel.setBody('<div>Network connection error, please try again later.</div><div align="center"><input type="button" value="Close" onclick="loadingPanel.hide()"></div>');
									}
								},
		  failure:function(o) {
		  					loadingPanel.setBody('<div>Network connection error, please try again later.</div><div align="center"><input type="button" value="Close" onclick="loadingPanel.hide()"></div>');
		  				},
		  argument:null
		};

		var request = YCONN.asyncRequest('POST', 'member.php?funcid=logout', callback, '');
}

var orderTrack = function() {
	
	if( YDOM.get('track_no').value == '' ) {
			alert('Please key in order no.');
			return false;
	}
	else {
		YDOM.get('fmTopPanel').submit();
	}	
}

var numberOnly = function( ev ) {
	var charcode;

	if( navigator.appName == 'Microsoft Internet Explorer'){
		charcode = ev.keyCode;
	}
	else {
		charcode = ev.charCode;
  }
  var character = String.fromCharCode(charcode);
 
  if ((charcode==null) || (charcode==0) || (charcode==8) || 
      (charcode==9) || (charcode==13) || (charcode==27) )
    return true;
  if (("1234567890").indexOf(character) > -1)
    return true;

  else
    YEVENT.preventDefault(ev);
	
}


var alphaNumericOnly = function( ev ) {
	var charcode;

	if( navigator.appName == 'Microsoft Internet Explorer'){
		charcode = ev.keyCode;
	}
	else {
		charcode = ev.charCode;
  }
  var character = String.fromCharCode(charcode);
 
  if ((charcode==null) || (charcode==0) || (charcode==8) || 
      (charcode==9) || (charcode==13) || (charcode==27) )
    return true;
  if (("0123456789.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_").indexOf(character) > -1)
    return true;

  else
    YEVENT.preventDefault(ev);
	
}

var customCharSet = function( ev, characterSet ) {
	var charcode;

	if( navigator.appName == 'Microsoft Internet Explorer'){
		charcode = ev.keyCode;
	}
	else {
		charcode = ev.charCode;
  }
  var character = String.fromCharCode(charcode);
 	// control keys
  if ((charcode==null) || (charcode==0) || (charcode==8) || 
      (charcode==9) || (charcode==13) || (charcode==27) )
    return true;
  else if (characterSet.indexOf(character) > -1)
    return true;

  else
    YEVENT.preventDefault(ev);
}

var isEmail = function(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

 		 return true					
}

var isDatex = function(dateStr) {

	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	
	
	if (matchArray == null) {
		return false;
	}

	month =parseFloat(matchArray[3]); // p@rse date into variables
	day = parseFloat(matchArray[1]);
	year = parseFloat(matchArray[5]);
	
	
	if (month < 1 || month > 12) { // check month range
		return false;
	}

	if (day < 1 || day > 31) {
		return false;
	}

	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		return false;
	}
	
	if (month == 2) { // check for february 29th
	   var isleap = (year % 4 == 0);
	   if (day>29||(day==29&&!isleap)) {
		return false;
	  }
    }
return true; // date is valid
}

var dump = function(ob, print_method ){
			var str = '';
			for( item in ob ) {
				str += item + ':' + ob[item] + '\n';
			}
			
			if( print_method == 'write') {
				var newwin = window.open('about:blank');
				newwin.document.write(str);
			}
			else {
				alert(str);
			}
}

var querystring = function(key) {
	hu = window.location.search.substring(1);
	gy = hu.split("&");
	for (i=0;i<gy.length;i++) {
		ft = gy[i].split("=");
		if (ft[0] == key) {
			return ft[1];
		}
	}
}

var clone = function( ob )
{ 
	if( ob instanceof Array )
	{
		var newOb = new Array();
		for( var i=0; i<ob.length; i++ )
		{
			newOb.push( ob[i] );
		}	
	}
	else if( ob instanceof Object )
	{
		var newOb = new Object();
		for( i in ob )
		{
			newOb[i] = ob[i];
		}
	}
	else
	{
		return ob;
	}
	
	return newOb;
}
