﻿
function isValidEmail(email) {
  return email.length>0 && (/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(email));
}

$Timer = {
    startTime: 0,
    stopTime: 0,
    
    start: function() {
        $Timer.startTime = new Date().getTime();
    },
    stop: function() {
        $Timer.stopTime = new Date().getTime();
        ddd((($Timer.stopTime - $Timer.startTime) / 1000) + " secs");
    }
}

var $id = function(id) {
    return document.getElementById(id) || null;
};
                    
var $hide = function(e) {
    if(e){
        if(e.style.display=="inline")
            e.style.visibility = "hidden";
        else
            e.style.display = "none";
    }
};

var $view = function(e) {
    if(e){
        e.style.visibility='visible';
    }
};

var $noview = function(e) {
    if(e){
        e.style.visibility='hidden';
    }
};

var $show = function(e) {
    if(e){
        e.style.display = "block";
    }
};

var $currenturl = function() {
    u = window.location.href.replace("http://","");
    i = u.indexOf("/");
    return u.substring(i);
}

var $remove = function(elementID) {
	d = $$(elementID); 
	if (d)
		d.parentNode.removeChild(d);
};

function $defined(obj){
	return (obj != undefined);
};

function $type(obj){
	if (!$defined(obj)) return false;
	if (obj.htmlElement) return 'element';
	var type = typeof obj;
	if (type == 'object' && obj.nodeName){
		switch(obj.nodeType){
			case 1: return 'element';
			case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : 'whitespace';
		}
	}
	if (type == 'object' || type == 'function'){
		switch(obj.constructor){
			case Array: return 'array';
			case RegExp: return 'regexp';
		}
		if (typeof obj.length == 'number'){
			if (obj.item) return 'collection';
			if (obj.callee) return 'arguments';
		}
	}
	return type;
};

function $$(objID){
	return document.getElementById(objID);
}

function checkNumber(value){
	var anum=/(^\d+$)|(^\d+\.\d+$)/;
	if (anum.test(value))
		testresult=true
	else{
		testresult=false
	}
	return testresult;
}

function timestamp()
{
	var now = new Date();
	var hours = now.getTime();
	return hours;
}

function removePostfixDomain(value, domain) {
    if(typeof value != "undefined" && value.length > 0 
        && value.indexOf(domain) > -1) {
        return value.substring(0, value.indexOf(domain));
    }else {
        return value;
    }
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function checkEnter(e){ //e is event object passed from function invocation
    var characterCode; //literal character code will be stored in this variable

    if(e && e.which){ //if which property of event object is supported (NN4)
        e = e;
        characterCode = e.which; //character code is contained in NN4's which property
    }
    else{
        e = event
        characterCode = e.keyCode //character code is contained in IE's keyCode property
    }

    if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
        document.forms[0].submit() //submit the form
        return false 
    }
    else{
        return true 
    }
}

function qs(name) {
    var qsParm = [];
    var query = window.location.search.substring(1);
    var parms = query.split('&');
    for (var i=0; i<parms.length; i++) {
        var pos = parms[i].indexOf('=');
        if (pos > 0) {
            var key = parms[i].substring(0,pos);
            var val = parms[i].substring(pos+1);
            qsParm[key] = val;
        }
    }
    return qsParm[name];
}

function pre(b)
{
	t=b.value.substring(b.value.lastIndexOf(".")+1);
    t=t.toLowerCase();
	if(t!="jpg"&&t!="gif"&&t!="png")
	{
		alert("Please only upload jpg/png/gif format image");
		b.value="";
	}
    else
    {
        i = parseInt(b.id.substring(4)) + 1;
        if((!$$("file" + i)) && i<6)
        {
            $(b).parent().append('<br><input name="file' + i + '" type="file" id="file' + i + '" onchange="pre(this);" size="' + b.size + '" />');
            if(window!=window.parent)
            {
              window.parent.document.getElementById("side-photo-up-frame").height = document.body.scrollHeight + 10;
            }
        }
    }
}

function ddd() { 
    if(typeof console != 'undefined')
        console.log.apply(console, arguments); 
}

 //This function is use to calculate the number of characters typing
var charCounter = function (obj, wcObj, maxchar) {
    var value = obj.value;
    if (value.length > maxchar) {
        value = value.substring(0, maxchar);
        obj.value = value;
    }
    else
        wcObj.innerHTML = maxchar - value.length;
};

function getform(formname)
{
  var r={};
  d = $("#" + formname)[0];
  for(var i=0;i<d.length;i++)
  {
    f = d[i];
    if ((f.type=="checkbox" | f.type=="radio") )
    {
      if(f.checked==true)
        r[d[i].name] = d[i].value;
    }
    else
      r[d[i].name] = d[i].value;
  }
  return r;
}

function getformArray(formname)
{
  var r=[];
  d = $("#" + formname)[0];
  for(var i=0;i<d.length;i++)
  {
    f = d[i];
    if ((f.type=="checkbox" | f.type=="radio") )
    {
      if(f.checked==true)
      {
         r.push({name: d[i].name, value: d[i].value});
      }      
    }
    else
      r.push({name: d[i].name, value: d[i].value});
  }
  return r;
}


function clearform(formname)
{
  var r={};
  d = $("#" + formname)[0];
  for(var i=0;i<d.length;i++)
  {
    f = d[i];
    if ((f.type=="checkbox" | f.type=="radio") )
    {
      if(f.checked==true)
        f.checked=false;
    }
    else
      d[i].value = "";
  }
  return r;
}

function flash_version() {
  // ie
  try {
      try {
          var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
          try { axo.AllowScriptAccess = 'always';	} 
          catch(e) { return '6,0,0'; }				
      } catch(e) {}
      return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
  // other browsers
  } catch(e) {
      try {
          if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){
              return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1];
          }
      } catch(e) {}		
  }
  return '0,0,0';
}

function round(i, precision){
    precision = Math.pow(10, precision || 0);
    return Math.round(i * precision) / precision;
}

function calcChatroomPopupDefaultHeight(){
	if($.browser.msie){
		return 500+33;
	}else{
		if(navigator.userAgent.indexOf('Firefox/3')!=-1){
			return 500+85;
		}else{
			return 500+53;
		}
	}
}