///////////////////////////////////////////////////////////////////////////////////////////////////////
// ua.js - Detect Browser
// Requires JavaScript 1.1

// work around bug in xpcdom Mozilla 0.9.1
window.saveNavigator = window.navigator;

// Handy functions
function noop() {}
function noerror() { return true; }

function defaultOnError(msg, url, line)
{
  // customize this for your site
  if (top.location.href.indexOf('/evangelism/lib/js/errors/') == -1)
    top.location = '/evangelism/lib/js/errors/index.html?msg=' + escape(msg) + '&url=' + escape(url) + '&line=' + escape(line);
}

// Display Error page...
// XXX: more work to be done here
//
function reportError(message)
{
  // customize this for your site
  if (top.location.href.indexOf('/evangelism/lib/js/errors/') == -1)
    top.location = '/evangelism/lib/js/errors/index.html?msg=' + escape(message);
}

function pageRequires(cond, msg, redirectTo)
{
  if (!cond)
  {
    msg = 'This page requires ' + msg;
    top.location = redirectTo + '?msg=' + escape(msg);
  }
  // return cond so can use in <A> onclick handlers to exclude browsers
  // from pages they do not support.
  return cond;
}

function detectBrowser()
{
  var oldOnError = window.onerror;
  var element = null;

  window.onerror = defaultOnError;

  navigator.OS    = '';
  navigator.version  = 0;
  navigator.org    = '';
  navigator.family  = '';

  var platform;
  if (typeof(window.navigator.platform) != 'undefined')
  {
    platform = window.navigator.platform.toLowerCase();
    if (platform.indexOf('win') != -1)
      navigator.OS = 'win';
    else if (platform.indexOf('mac') != -1)
      navigator.OS = 'mac';
    else if (platform.indexOf('unix') != -1 || platform.indexOf('linux') != -1 || platform.indexOf('sun') != -1)
      navigator.OS = 'nix';
  }

  var i = 0;
  var ua = window.navigator.userAgent.toLowerCase();

  if (ua.indexOf('opera') != -1)
  {
    i = ua.indexOf('opera');
    navigator.family  = 'opera';
    navigator.org    = 'opera';
    navigator.version  = parseFloat('0' + ua.substr(i+6), 10);
  }
  else if ((i = ua.indexOf('msie')) != -1)
  {
    navigator.org    = 'microsoft';
    navigator.version  = parseFloat('0' + ua.substr(i+5), 10);

    if (navigator.version < 4)
      navigator.family = 'ie3';
    else
      navigator.family = 'ie4'
  }
  else if (typeof(window.controllers) != 'undefined' && typeof(window.locationbar) != 'undefined')
  {
    i = ua.lastIndexOf('/')
    navigator.version = parseFloat('0' + ua.substr(i+1), 10);
    navigator.family = 'gecko';

    if (ua.indexOf('netscape') != -1)
      navigator.org = 'netscape';
    else if (ua.indexOf('compuserve') != -1)
      navigator.org = 'compuserve';
    else
      navigator.org = 'mozilla';
  }
  else if ((ua.indexOf('mozilla') !=-1) && (ua.indexOf('spoofer')==-1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera')==-1)&& (ua.indexOf('webtv')==-1) && (ua.indexOf('hotjava')==-1))
  {
      var is_major = parseFloat(navigator.appVersion);

    if (is_major < 4)
      navigator.version = is_major;
    else
    {
      i = ua.lastIndexOf('/')
      navigator.version = parseFloat('0' + ua.substr(i+1), 10);
    }
    navigator.org = 'netscape';
    navigator.family = 'nn' + parseInt(navigator.appVersion);
  }
  else if ((i = ua.indexOf('aol')) != -1 )
  {
    // aol
    navigator.family  = 'aol';
    navigator.org    = 'aol';
    navigator.version  = parseFloat('0' + ua.substr(i+4), 10);
  }

  navigator.DOMCORE1  = (typeof(document.getElementsByTagName) != 'undefined' && typeof(document.createElement) != 'undefined');
  navigator.DOMCORE2  = (navigator.DOMCORE1 && typeof(document.getElementById) != 'undefined' && typeof(document.createElementNS) != 'undefined');
  navigator.DOMHTML  = (navigator.DOMCORE1 && typeof(document.getElementById) != 'undefined');
  navigator.DOMCSS1  = ( (navigator.family == 'gecko') || (navigator.family == 'ie4') );

  navigator.DOMCSS2   = false;
  if (navigator.DOMCORE1)
  {
    element = document.createElement('p');
    navigator.DOMCSS2 = (typeof(element.style) == 'object');
  }

  navigator.DOMEVENTS  = (typeof(document.createEvent) != 'undefined');

  window.onerror = oldOnError;
}

detectBrowser();

// ua.js - Detect Browser
///////////////////////////////////////////////////////////////////////////////////////////////////////

var BROWSER_NS = (navigator.org == "netscape")? true:false;
var BROWSER_NSold = (BROWSER_NS && (parseFloat(navigator.appVersion) < 6.0));


function getAltLangURL(lang){
	var strPathName = new String(self.document.location.href)

	if (lang != '') {
		strPathName = strPathName.replace(/english/g, lang);
		strPathName = strPathName.replace(/big5/g, lang);
		strPathName = strPathName.replace(/gb/g, lang);
	}
	return strPathName;
}


var windowHandle = null;

// open popup window
function openWindow(url, w, h, name, menu, resize, scroll) {
    if (windowHandle != null) {
        if (windowHandle.closed) {
			windowHandle = window.open(url, name,"width=" + w + ",height=" + h + ",menubar=" + menu + ",resizable=" + resize + ",scrollbars=" + scroll);
		} else {
			windowHandle.close();
			windowHandle = window.open(url, name,"width=" + w + ",height=" + h + ",menubar=" + menu + ",resizable=" + resize + ",scrollbars=" + scroll);
		}
	} else {
		windowHandle = window.open(url, name,"width=" + w + ",height=" + h + ",menubar=" + menu + ",resizable=" + resize + ",scrollbars=" + scroll);
	}
}

function openWindowScrollResize(url, w, h) {
    if (windowHandle != null) {
        if (windowHandle.closed) {
			windowHandle = window.open(url,"popupWindow","width=" + w + ",height=" + h + ",resizable=yes,scrollbars=yes");
		} else {
			windowHandle.close();
			windowHandle = window.open(url,"popupWindow","width=" + w + ",height=" + h + ",resizable=yes,scrollbars=yes");
		}
	} else {
		windowHandle = window.open(url,"popupWindow","width=" + w + ",height=" + h + ",resizable=yes,scrollbars=yes");
	}
}

// Lun modified: 2003-06-12
function openLangWindow(url, w, h, frm, fld, flddisp, val, row, col) {
    if (windowHandle != null) {
        if (windowHandle.closed) {
			windowHandle = window.open(url,"langWindow","width=" + w + ",height=" + h + ",resizable=yes,scrollbars=yes");
		} else {
			windowHandle.close();
			windowHandle = window.open(url,"langWindow","width=" + w + ",height=" + h + ",resizable=yes,scrollbars=yes");
		}
	} else {
		windowHandle = window.open(url,"langWindow","width=" + w + ",height=" + h + ",resizable=yes,scrollbars=yes");
	}
}

/*
function openLangWindow(url, w, h, frm, fld, flddisp, val, row, col) {
    if (windowHandle != null) {
        if (windowHandle.closed) {
			windowHandle = window.open(url,"langWindow","width=" + w + ",height=" + h + ",resizable=no,scrollbars=no");
		} else {
			windowHandle.close();
			windowHandle = window.open(url,"langWindow","width=" + w + ",height=" + h + ",resizable=no,scrollbars=no");
		}
	} else {
		windowHandle = window.open(url,"langWindow","width=" + w + ",height=" + h + ",resizable=no,scrollbars=no");
	}
}*/
// End - Lun

function openRelatedProdWindow(url) {
    if (windowHandle != null) {
        if (windowHandle.closed) {
			windowHandle = window.open(url,"relprodWindow","width=600,height=400,resizable=no,scrollbars=yes");
		} else {
			windowHandle.close();
			windowHandle = window.open(url,"relprodWindow","width=600,height=400,resizable=no,scrollbars=yes");
		}
	} else {
		windowHandle = window.open(url,"relprodWindow","width=600,height=400,resizable=no,scrollbars=yes");
	}
}

// validate email address
function validEmail(email) {
	if (email.length < 5)
		return false;
	x1 = email.indexOf("@");
	x2 = email.indexOf(".",x1+2);
	x3 = email.indexOf(" ");
	if ((x1 < 1 ) || (x2 < 1) || (x2 == email.length-1) || (x3 >= 0)){
		return false;
	}
	return true;
}

// check for illegal character
function invalidCharacter(inStr) {
	var blnFound;
	blnFound = false;
	if (inStr.search(/</) != -1) {
		blnFound = true;
	}else if (inStr.search(/>/) != -1) {
		blnFound = true;
	}
	return blnFound;
}

// check for illegal character
function validCharacter(inStr) {
	var blnFound;
	blnFound = true;
	if (inStr.search(/</) != -1) {
		blnFound = false;
	}else if (inStr.search(/>/) != -1) {
		blnFound = false;
	}
	return blnFound;
}

function round(number,X) {
	// rounds number to X decimal places, defaults to 2
	X = (!X ? 2 : X);
	return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}

//Validating the Date Selected
function CheckDate(SelYear,MonIndex,SelDay){
	
	if (isNaN(SelYear) || isNaN(MonIndex) || isNaN(SelDay)){
		return false;	
	}
	if(parseInt(MonIndex)==4 || parseInt(MonIndex)==6 || parseInt(MonIndex)==9 || parseInt(MonIndex)==11)
	{
		if(parseInt(SelDay)==31)
		{
			return false;
		}
	}
	if(parseInt(MonIndex)==2)	//For Feb.
	{
		if((parseInt(SelYear) % 4)!=0)
		{
			if(parseInt(SelDay)>28)
			{
				return false;
			}
		}
		else if((parseInt(SelYear) % 400)==0)
		{
			if(parseInt(SelDay)>29)
			{
				return false;
			}
		}
		else if((parseInt(SelYear) % 100)==0)
		{
			if(parseInt(SelDay)>28)
			{
				return false;
			}
		}
		else
		{
			if(parseInt(SelDay)>29)
			{
				return false;
			}
		}
	}
	return true;
}


function isNumberInt(inputString) {
  return (!isNaN(parseInt(inputString))) ? true : false;
}

function isNumberFloat(inputString) {
  return (!isNaN(parseFloat(inputString))) ? true : false;
}

function selectAll(form){
	if (form.prodid.length > 1) {
		for (var i=0;i<form.prodid.length;i++) {
			form.prodid[i].selected = true;
		}
	}else{
		form.prodid.checked = true;
	}
}

function selectNone(form){
	if (form.prodid.length > 1) {
		for (var i=0;i<form.prodid.length;i++) {
			form.prodid[i].selected = false;
		}
	}else{
		form.prodid.checked = false;
	}
}

function selectAll1(form){
	if (form.prod_id.length > 1) {
		for (var i=0;i<form.prod_id.length;i++) {
			form.prod_id[i].checked = true;
		}
	}else{
		form.prod_id.checked = true;
	}
}

function selectNone1(form){
	if (form.prod_id.length > 1) {
		for (var i=0;i<form.prod_id.length;i++) {
			form.prod_id[i].checked = false;
		}
	}else{
		form.prod_id.checked = false;
	}
}

function showVideo(id){
	if (id) {
		openWindow("video.asp?id=" + id , 360, 360, "video", "no", "yes", "yes");
	}
}

function showPic(theURL) {
	if (theURL) {
		openWindow(theURL , 860, 300, "pic", "no", "yes", "yes");
	}
}

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) 
      break;
  }
  return null;
}

function SetCookie (name, value) {
  var argv = SetCookie.arguments;
  var argc = SetCookie.arguments.length;
  var expires = (argc > 2) ? argv[2] : null;
  var path = (argc > 3) ? argv[3] : null;
  var domain = (argc > 4) ? argv[4] : null;
  var secure = (argc > 5) ? argv[5] : false;
  document.cookie = name + "=" + escape (value) +
    ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
    ((path == null) ? "" : ("; path=" + path)) +
    ((domain == null) ? "" : ("; domain=" + domain)) +
    ((secure == true) ? "; secure" : "");
}


function validateUsername(str) {
    var valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";
    var temp;
    for (var i=0; i<str.length; i++) {
        temp = "" + str.substring(i, i+1);
        if (valid.indexOf(temp) == "-1") return false;
    }
    return true;
}

function trim(str) {
    str = this != window? this : str;
    return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}


function validate(field, choice) {
    var validnum = "0123456789";
    var validchar = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_";
    var validcharnum = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";

    var temp;
    for (var i=0; i<field.value.length; i++) {
        temp = "" + field.value.substring(i, i+1);
        if (choice == "num"){
            if (validnum.indexOf(temp) == "-1") return false;
        }else if (choice =="chr"){
            if (validchar.indexOf(temp) == "-1") return false;
        }else if (choice =="chrnum"){
            if (validcharnum.indexOf(temp) == "-1") return false;
        }
    }
    return true;
}