var doc = "";
var sty = "";
var htm = "";
var available_width = 0;
var available_height = 0;
var visHide;
var visShow;

window.defaultStatus="Talisma Chat";

function Is() {
    var agent = navigator.userAgent.toLowerCase();
    this.major = parseInt(navigator.appVersion);
    this.ns  = ((agent.indexOf('mozilla')!=-1) && ((agent.indexOf('spoofer')==-1) && (agent.indexOf('compatible') == -1)));
    this.ns4 = (this.ns && (this.major >= 4) && (this.major < 6));
    this.ie   = (agent.indexOf("msie") != -1);
    this.ie4  = (this.ie && (this.major >= 4));
	this.ie5 = (this.ie && ((agent.indexOf("msie 5.") != -1) || (agent.indexOf("msie 6") != -1)));
	this.sun = (agent.indexOf("sun") != -1);
	this.windows = (agent.indexOf("win") != -1);
	this.mac = (agent.indexOf("mac") != -1);;
}

var is = new Is();
var curSel = "";

if(is.ns4) {
    doc = "document";
    sty = "";
    htm = ".document";
	visHide = "hide";
	visShow = "show";
} else if(is.ie4) {
    doc = "document.all";
    sty = ".style";
    htm = ""
	visHide = "hidden";
	visShow = "visible";
}

function VerifyName(sel) {
	sel = Trim(sel,0);
	if (sel.length > 0)
		return true;
	else
		return false;		
}

function VerifyEmail(sel) {
	pos = sel.indexOf("@");
	pos2 = sel.lastIndexOf("@");
	if (pos != pos2) return false;
	pos1 = sel.lastIndexOf(".");
	if (pos == -1 || pos1 == -1 || pos1 <= pos || sel.indexOf(" ") != -1) {
		return false;
	}
	sel1 = sel.substr(pos+1);
	var RegPat = "[`~!#$%^&*)(_+=}{|\[:;\"'><,?/]";
	var emailReg = new RegExp(RegPat,"g");
	if (emailReg.test(sel1) || sel1.indexOf('\\') > 0 || sel1.indexOf(']') > 0) return false;

	sel2 = sel.substr(0, pos);
	var RegPat = "[><)(\[,;:\"]";
	var emailReg = new RegExp(RegPat,"g");
	if (emailReg.test(sel2) || sel2.indexOf('\\') > 0 || sel2.indexOf(']') > 0) return false;

	pos2 = 0;
	while (sel1.indexOf(".") != -1) {
		pos2 = sel1.indexOf(".");
		if (pos2 == -1) pos2 = sel1.length;
		temp = sel1.substr(0,pos2);
		if (temp == "") return false;
		sel1 = sel1.substr(pos2+1);
	}
	if (sel1 == "") return false;
	pos2=0;
	while (sel2.indexOf(".") != -1) {
		pos2 = sel2.indexOf(".");
		if (pos2 == -1) pos2 = sel2.length;
		temp = sel2.substr(0,pos2);
		if (temp == "") return false;
		sel2 = sel2.substr(pos2+1);
	}
	if (sel2 == "") return false;
	return true;
}

function Trim(inStr, inVal) {
	var tmpStr = 0, i = 0;
	if (inVal == 1 || inVal == 0 || Trim.arguments.length == 1)
		for (i = 0;i < inStr.length;i++)
			if (inStr.substring(i,i + 1) != ' ')
				break;
	inStr = inStr.substring(i, inStr.length);
	i = inStr.length - 1;
	if (inVal == 2 || inVal == 0 || Trim.arguments.length == 1)
		for (;i > -1;i--)
			if (inStr.substring(i, i + 1) != ' ')
				break;
	inStr = inStr.substring(0, i + 1);
	return inStr;
}

function VerifyObjects() {
	var arg = VerifyObjects.arguments;
	var i;
	var isOk = true;
	var curRef = eval(arg[0]);
	var curRefString = arg[0];
	if (typeof(curRef) != "object" && typeof(curRef) != "function") isOk = false;
	else {
		for (i=1;i<arg.length;i++) {
			curRefString = curRefString + "." + arg[i];
			if (typeof(eval(curRefString)) != "object" && typeof(eval(curRefString)) != "function") {
				isOk = false;
				break;
			}
			else {
				curRef = eval(curRefString);
			}
		}
	}
	if (isOk == true) return curRef;
	else return null;
}

function VerifyInt(sel) {
	if ((parseInt(sel) == 0 || sel != "") && (sel.toString()).indexOf(".") == -1 && !isNaN(Math.abs(sel))) {
		return true;
	}
	return false;
}

function VerifyFloat(sel) {
	if ((parseInt(sel) == 0 || sel != "") && sel != "" && !isNaN(Math.abs(sel))) {
		return true;
	}
	return false;
}

// fix for Bug 35483; removed any check for any char (there could be any char in the querystring); added check for protocols as in BizAdmin
function VerifyURL(sel)
{
	if (sel.length <= 0)	
		return false;

	var breturnVal=false;
	
	sel = Trim(sel,0);
	if (sel.indexOf("http://") == 0)
		breturnVal = true ;
	else if (sel.indexOf("ftp://") == 0)
		breturnVal = true ;
	else if (sel.indexOf("file://") == 0)
		breturnVal = true;
	else if (sel.indexOf("gopher://") == 0)
		breturnVal = true ;
	else if (sel.indexOf("https://") == 0)
		breturnVal = true;
	else if (sel.indexOf("mailto:") == 0)
		breturnVal = true	;
	else if (sel.indexOf("news:") == 0)
		breturnVal = true;
	else if (sel.indexOf("telnet:") == 0)
		breturnVal = true ;	
	else if (sel.indexOf("wais:") == 0)
		breturnVal = true ;
	return breturnVal;
}

// fix for Bug 35483; removed any check for any char (there could be any char in the querystring); added check for protocols as in BizAdmin
function VerifyNFixURL(sel)
{
	return ParseURL(sel);
	/*
	var breturnVal=false;
	sel = Trim(sel,0);
	var sel2 = sel.toLowerCase();
	if (sel2.indexOf("http://") == 0)
		breturnVal = true ;
	else if (sel2.indexOf("ftp://") == 0)
		breturnVal = true ;
	else if (sel2.indexOf("file://") == 0)
		breturnVal = true;
	else if (sel2.indexOf("gopher://") == 0)
		breturnVal = true ;
	else if (sel2.indexOf("https://") == 0)
		breturnVal = true;
	else if (sel2.indexOf("mailto:") == 0)
		breturnVal = true	;
	else if (sel2.indexOf("news:") == 0)
		breturnVal = true;
	else if (sel2.indexOf("telnet:") == 0)
		breturnVal = true ;	
	else if (sel2.indexOf("wais:") == 0)
		breturnVal = true ;
	if ( !breturnVal )
		sel = "http://" + sel ;
	return sel ;
	*/
}

function IsSpaces(sel)
{
	re = / /g
	if (sel.replace(re,'').length == 0) return true;
	false;
}

// Modification alongwith the Bug 35483; added file, telnet & mailto protocols; removed the // for wais & news protocols
function ParseURL(url) {
	var strProtocol = ["http://","https://","ftp://","news:","gopher://","wais:","\\\\","mailto:","telnet:","file://","prospero://","tn3270:","mms:","pnm:","nntp://","msn:","mid:","cid:","rlogin:"];
	var isParse = false;
	url2 = url.toLowerCase();
	for (i=0;i<strProtocol.length;i++)
		if (url2.indexOf(strProtocol[i])==0) {
			isParse |= true;
			break;
		}
	if (isParse!=true)
		return("http://"+url);
	else
		return url;
}

function GetTrimmedString(sel) {
	var tmpStr = "";
	var startPos = 0;
	var endPos = sel.length;
	
	for (i=0; i<sel.length; i++) {
		if ((escape(sel.charAt(i))!="%0A") && (escape(sel.charAt(i))!="%0D") && (escape(sel.charAt(i))!="%09") && (escape(sel.charAt(i))!="%20"))
			break;
	}
	startPos = i;
	
	for (i=sel.length-1; i>-1; i--) {
		if ((escape(sel.charAt(i))!="%0A") && (escape(sel.charAt(i))!="%0D") && (escape(sel.charAt(i))!="%09") && (escape(sel.charAt(i))!="%20"))
			break;
	}
	endPos = i+1;
	
	for (j=startPos;j<endPos;j++)
		tmpStr += sel.charAt(j);
	return(tmpStr);
}

function DisableContextMenu() {
	//return event.ctrlKey;
	return false;
}

document.oncontextmenu = DisableContextMenu;

function ValidateEmailAdds(inVal)  {
	var j;
	if ((inVal.split (",").length > 1) && (inVal.split (";").length > 1)) {
		emailArr = inVal.split (",");
		for (j=0 ;j<emailArr.length; j++) {
			valid = ValidateMultipleEmailAdds (emailArr[j],";")
			if (!valid)
				return false;
		}
	}
	else if (inVal.split (",").length > 1) {
		valid = ValidateMultipleEmailAdds (inVal,",");
		if  (!valid)
			return false;
	}
	else {
		valid = ValidateMultipleEmailAdds(inVal,";");
		if (!valid)
			return false;
	}
	return true;
}
		
function ValidateMultipleEmailAdds(inVal,character) {
	var i;
	if (Trim(inVal) == "") 
		return true;
	var emailArr = inVal.split(character);
	if  (emailArr.length > 1) {
		for (i=0 ;i<emailArr.length ; i++) {
			if ((VerifyEmail(Trim(emailArr[i])) == false ))
				return false;
		}
	}
	else {
		if (VerifyEmail(Trim(inVal)) == false)
			return false;
	}
	return true;
}

function EncodeURLSpaces(strURL) {
	return (strURL.replace(/ /g,'%20'));
}


function GetCookie(name){
  var cname = name + "=";               
  var dc = document.cookie;             
  if (dc.length > 0) {              
    begin = dc.indexOf(cname);       
    if (begin != -1) {           
      begin += cname.length;       
      end = dc.indexOf(";", begin);
      if (end == -1) end = dc.length;
        return unescape(dc.substring(begin, end));
    } 
  }
  return null;
}


function SetCookie(name, value, expires, path, domain, secure) {
  document.cookie = name + "=" + escape(value) + 
  ((expires == null) ? "" : "; expires=" + expires.toGMTString()) +
  ((path == null) ? "" : "; path=" + path) +
  ((domain == null) ? "" : "; domain=" + domain) +
  ((secure == null) ? "" : "; secure");
}

function DelCookie (name,path,domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
    ((path == null) ? "" : "; path=" + path) +
    ((domain == null) ? "" : "; domain=" + domain) +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}
