SPACER=getURL_ROOT_DIR()+"/images/oms_images/spacer.gif";
LOADING=getURL_ROOT_DIR()+"/images/oms_images/loading.gif";

function isdefined(variable)
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}


function display(tag){
if(typeof(tag)=="string"){
	if(window.document.getElementById(tag)){tag=document.getElementById(tag);}else{return;}
	}
if(tag.tagName){tag.style.display='';return true;}
return false;
}

function hide(tag){
if(typeof(tag)=="string"){
	if(window.document.getElementById(tag)){tag=document.getElementById(tag);}else{return;}
	}
if(tag.tagName){tag.style.display='none';return true;}
return false;
}

function switchdisplay(tag){
if(typeof(tag)=="string"){
	if(window.document.getElementById(tag)){tag=document.getElementById(tag);}else{return;}
	}
if(tag.tagName){
	if(tag.style.display=='none'){return display(tag);}else{return !hide(tag);}
	}
return false;
}


function openwin(oms_url,winname){
eval(winname+"=window.open('"+oms_url+"','"+winname+"');")
eval(winname+".focus();")
}

function oms_purgeurl(listvar,theurl){
var theurl = (theurl == null) ? window.location.toString() : theurl;
var tabvar=listvar.split(/,/)
var newurl=theurl
for(i=0;i<tabvar.length;i++){
	eval("newurl=newurl.replace(/&?"+tabvar[i]+"=[^&]*/gi,'')");
	}
return newurl;
}

function getomsidfromurl(vurl){
if(!vurl){return;}
var matches=vurl.toString().match(/php.*[^a-zA-Z_]omsid[=|_]+([0-9]+[A-Za-z][0-9A-Za-z]+)/);
if(!matches || !matches.length){return;}
matches=matches[0].match(/[0-9]+[A-Za-z][0-9A-Za-z]+/);
if(matches && matches.length)return matches[0];
}

function getURL_ROOT_DIR(){
var win=gettopwindow();
var tab=win.location.toString().split(/\/oms.php/)
return tab[0];
}	

function getpathfromroot(vurl){
var reg=new RegExp('^'+getURL_ROOT_DIR().replace(/\//,'\/')+'\/?');
return vurl.replace(reg,'');
}

function oms_encodequote(vtext){
vtext=vtext.replace(/'/g,"!|!");
vtext=vtext.replace(/"/g,"!||!");
vtext=vtext.replace(/\\/g,"!//!");
vtext=vtext.replace(/=/g,"!eq!");
vtext=vtext.replace(/&/g,"!and!");
vtext=vtext.replace(/#/g,"!hash!");
return vtext;
}

function oms_restorequote(vtext){
vtext=vtext.replace(/!|!/g,"'");
vtext=vtext.replace(/!||!/g,'"');
vtext=vtext.replace(/!\/\/!/g,'\\');
vtext=vtext.replace(/!eq!/g,"=");
vtext=vtext.replace(/!and!/g,"&");
vtext=vtext.replace(/!hash!/g,"#");
return vtext;
}

function striptags(text){
return text.replace(/<\S[^><]*>/g,'');
}

function minimizetable(tableid,imgtag,imgminimize,imgmaximize,tagattribute){ 
var node=document.getElementById(tableid).childNodes[0];
if(node.childNodes.length<=1){return}
var skipfirst=0;
value='undefined';
for( var x = 0; x<node.childNodes.length; x++ ){
	if(node.childNodes[x].tagName!='TR'){continue;}
	if (skipfirst){
		if(value=='undefined'){
			if(node.childNodes[x].style.display==''){var value='none';}else{var value='';}
			}
		node.childNodes[x].style.display=value;
		}
	skipfirst=1;
	}
if(imgtag && imgmaximize  && imgminimize ){
	if(imgtag.tagName!='IMG' && imgtag.tagName!='img'){return;}
	eval("var tagatt=imgtag."+tagattribute);
	if(node.childNodes[1].style.display=='none'){
		var reg=new RegExp(imgminimize);
		tagatt=tagatt.toString().replace(reg,imgmaximize)
		}
		else{
		var reg=new RegExp(imgmaximize);
		tagatt=tagatt.toString().replace(reg,imgminimize)
		}
	eval("imgtag."+tagattribute+"=tagatt;")
	}
}



function getElementsByClass( tag_, class_){
  var i, k;
  var T_Result = new Array(); 
  var O_Tab = document.getElementsByTagName( tag_);
  var reg=new RegExp("(^|[ ])"+class_+"($|[ ])","g");
  for( i=0, k=0; i < O_Tab.length; i++){
    if( O_Tab[i].className.search(reg) ==-1){continue;}
    T_Result[k++] = O_Tab[i]; 
  }
  return( T_Result); 
}


function trim (myString)
{
if(myString==null){return '';}
return myString.replace(/^\s+/g,'').replace(/\s+$/g,'')
} 

function selectfromclassgroup(tag,groupclassname,selectclassname){
var reg=new RegExp("(^|[ ])"+selectclassname,"g");

var tab=getElementsByClass(tag.tagName,groupclassname);
for (var i=0;i<tab.length;i++){
	tab[i].className=tab[i].className.replace(reg,"");
	}
tag.className=trim(tag.className)+" "+selectclassname;
tag.className=trim(tag.className);

}




function oms_onevent(vmethodid,vobjid,vtagid){
var iframesrc=getURL_ROOT_DIR()+"/oms_admin/frame_runmethod.php?methodid="+vmethodid+"&objid="+vobjid+"&eventtagid="+vtagid
frameid=createiframe('',iframesrc);
return frameid;
}

if(!window.getElementsByClassName){
document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) retnode.push(elem[i]);
}
return retnode;
}; 
}

function getfunctionname(fn){
var tabfn=fn.toString().match(/^function (.*)\(/i);
if(tabfn.length>0)return tabfn[1].replace(/ /g,'');
	}

function getfunctionparam(fn){
	var tabfn=fn.toString().match(/\(([^\)]*)\)/);
	return tabfn[1];
	}	
	
function getfunctioninner(fn){
	textfn=fn.toString().replace(/^[^\{]+\{/,'');
	textfn=textfn.replace(/\}$/,'');
	return textfn;
	}
	
function clonefunction(fn,win){
	var fncreated=false;
	if(!fn){return function(){};}
	fnname=getfunctionname(fn)
	if(fnname){
		eval("if(win."+fnname+"){var fncreated=false;}else{win."+fnname+"=new win.Function(getfunctionparam("+fn+"),getfunctioninner("+fn+"));var fncreated=true;}");return fncreated;
		}
	}

function sendtowinparent(varname){
if (!window.parent){return;}

if (typeof eval(varname) != 'function'){eval('parent.'+varname+'=varname');return ;}
var functionname=varname
eval('var thefunction='+functionname)
var fnexist=0
eval('if(window.parent.'+functionname+'){var fnexist=1;}')
if(fnexist){return;}
eval('var theparentfunction=parent.'+functionname)
theparentfunction=new parent.Function(getfunctionparam(thefunction),getfunctioninner(thefunction))

}

function sendtotopwin(varname){
if (!window.parent){return;}
var win=gettopwindow(window);
		
if (typeof eval(varname) != 'function'){eval('win.'+varname+'=varname');return ;}
var functionname=varname
eval('var thefunction='+functionname)
var fnexist=0
eval('if(win.'+functionname+'){var fnexist=1;}')
if(fnexist){return;}
eval('var theparentfunction=win.'+functionname)
theparentfunction=new parent.Function(getfunctionparam(thefunction),getfunctioninner(thefunction))

}


function gettopwindow(win,tagid){ //return the highest window or the highest window with tagid element if specified
var win = (win == null) ? window : win;
var tagid = (tagid == null) ? '' : tagid;
if (!win.parent){return win;}
if(!parent.gettopwindow){return win;}
if(win.parent==win){return win;}
if(tagid){
	if(win.document.getElementById(tagid) && !win.parent.document.getElementById(tagid)){return win;}
	}

return gettopwindow(win.parent,tagid);
}


function createiframe(iframeid,iframesrc,win,param){
var win = (win == null || !win) ? window : win;
var param = (param == null) ? '' : param;
if(!win.iframecounter){win.iframecounter=0;}
win.iframecounter++;
var iframesrc = (iframesrc == null) ? null : iframesrc;
var iframeid = (iframeid == null || !iframeid) ? 'iframe'+win.iframecounter : iframeid;

if(win.document.getElementById(iframeid)){
	win.document.getElementById(iframeid).src=iframesrc;
	return iframeid;
	}
var str  = "<iframe ";
if(iframesrc != null && iframesrc){str+=" src='"+iframesrc+"'";}
str+=" name='" + iframeid + "' id='" + iframeid + param + "' width=0 height=0></iframe>";
var div = win.document.createElement("DIV");
div.innerHTML = str;

win.document.body.appendChild(div);
return iframeid;

}


function sendform(divid,action,method,target,win){
var win = (win == null) ? window : win;
var method = (method == null || !method) ? 'POST' : method;
var action = (action == null) ? '' : action;
if (target == null || !target){target=createiframe();}

var tag=win.document.getElementById(divid);

var theform = win.document.createElement("FORM");

theform.style.position='absolute';
theform.style.left='-10000px';
theform.style.top='-10000px';

theform.target=target;
theform.action=action;
theform.method=method;

tag.id='';
var clonetag=tag.cloneNode(false);
clonetag.id=divid;
tag.parentNode.insertBefore(clonetag,tag)
var theinput=tag.parentNode.removeChild(tag);

theform.appendChild(theinput);

win.document.body.appendChild(theform);

theform.submit();

}


function createtag(tagname,tagparent,tagid,taginnerhtml,win){
var taginnerhtml = (taginnerhtml == null) ? '' : taginnerhtml;
var win = (win == null) ? window : win;
if(!window.tagcounter){tagcounter=0;}
tagcounter++;
var tagid = (tagid == null || !tagid) ? 'tag'+tagcounter : tagid;

var newtag = win.document.createElement(tagname);
newtag.id=tagid
newtag.innerHTML = taginnerhtml;
tagparent.appendChild(newtag);

return tagid;

}

function creatediv(divid,divhtml,left,top,width,height,header,drag,resize,classname,win,nofitleft,nofittop){  //no dragheader dragheader=0 
var divhtml = (divhtml == null) ? '' : divhtml;

var top = (top == null) ? '' : top;
var left = (left == null) ? '' : left;
var width = (width == null) ? '' : width;
var height = (height == null) ? '' : height;
var drag = (drag == null) ? '' : drag;
var resize = (resize == null) ? '' : resize;
var nofitleft = (nofitleft == null) ? 0 : nofitleft;
var nofittop = (nofittop == null) ? 0 : nofittop;
var win = (win == null) ? window : win;
var classname = (classname == null || !classname) ? '' : classname;
if(!classname && (header || drag || left || top))classname='popupdhtml';
if(!window.divcounter){divcounter=0;}
divcounter++;
var divid = (divid == null || !divid) ? 'div'+divcounter : divid;
//divhtml=oms_restorequote(divhtml);

divhtml="<div class='"+classname+"container'>"+divhtml+"</div>"
if(resize){
	divhtml+="<div ><img src='"+SPACER+"' class='resizepopup' align='right' valign='bottom' onmousedown=maketitresizable(this.offsetParent)></div>"
	}
if(header){
	divhtml=addheader(divhtml,header,drag,classname)
	}

if(win.document.getElementById(divid)){
	var tag=win.document.getElementById(divid);
	tag.innerHTML=divhtml;
	if(classname){tag.className=classname;}
	if(top!='' || left!=''){
		tag.style.position="absolute";
		if(left){
			if(nofitleft){tag.style.left=left+"px";}else{fitwindowleft(tag,left,win);}
			}
		if(top){
			if(nofittop){tag.style.top=top+"px";}else{fitwindowtop(tag,top,win);}
			}
		}
	
	return divid;
	}
	
var div = win.document.createElement("DIV");
div.id=divid;
div.innerHTML = divhtml;
if(width){div.style.width=width+"px";}
if(height){div.style.height=height+"px";}
div.className=classname;
div.valign='top' 
if(resize){div.resizable=true;}else{div.resizable=false;}

win.document.body.appendChild(div);
if(top!='' || left!=''){
	div.style.position="absolute"
	if(left){
		if(nofitleft){div.style.left=left+"px";}else{fitwindowleft(div,left,win);}
		}
	if(top){
		if(nofittop){div.style.top=top+"px";}else{fitwindowtop(div,top,win);}
		}
	}

return divid
}

function addheader(html,header,drag,classname){
if(window.customheader){return customheader(html);}
var htmlres="<table valign='top' cellpading='0' cellspacing='0'><tr><td><div"; 
if(drag){htmlres+=" onmousedown='makeDraggable(this.offsetParent.offsetParent.offsetParent)'";} htmlres+=" class='"+classname+(drag?"drag":"")+"header'><img src='"+SPACER+"' class='closepopup' align='right' valign='top' onclick=this.offsetParent.offsetParent.offsetParent.style.display='none'><img src='"+SPACER+"' class='verpopupheaderspacer'>"+header+"<img src='"+SPACER+"' class='horpopupheaderspacer'></div>"
if(drag){htmlres+="<div onclick='this.offsetParent.offsetParent.offsetParent.onmousedown=null'>";}
htmlres+=html;
if(drag){htmlres+="</div>";}
htmlres+="</td></tr></table>"
return htmlres
}



function popupdhtml(url,left,top,header,drag,resize,classname){
var classname = (classname == null || !classname) ? 'popupdhtml' : classname;
var header = (header == null) ? '' : header;
var drag = (drag == null) ? '' : drag;
var resize = (resize == null) ? '' : resize;


var src=url+"&top="+top+"&left="+left+"&header="+header+"&drag="+drag+"&resize="+resize+"&classname="+classname
iframeid=createiframe('',src);
return iframeid;
}



function mouseX() {
if(arguments){var evt=arguments[0];}else{var evt=window.event;}
if(!evt){evt=window.event;}
if (evt.pageX) {return evt.pageX;}
evt=window.event;
if (evt.clientX)
   return evt.clientX + (document.documentElement.scrollLeft ?
   document.documentElement.scrollLeft :
   document.body.scrollLeft);
else return null;
}

function mouseY() {
if(arguments){var evt=arguments[0];}else{var evt=window.event;}
if(!evt){evt=window.event;}
if (evt.pageY) {return evt.pageY;}
evt=window.event;
if (evt.clientY)
   return evt.clientY + (document.documentElement.scrollTop ?
   document.documentElement.scrollTop :
   document.body.scrollTop);
else return null;
}

function displaydiv(divid){
var tag=document.getElementById(divid)
tag.style.display='';
x=Math.floor((document.body.clientWidth-tag.offsetWidth)/2+document.body.scrollLeft-100);
y=Math.floor((document.body.clientHeight-tag.offsetHeight)/2+document.body.scrollTop);
	//alert('x='+x+'  y='+y+'  clientwidth='+document.body.clientWidth+'  offsetwidth='+tag.offsetWidth+'  clientHeight='+document.body.clientHeight+'  offsetHeight='+tag.offsetHeight)	

	if (x+ tag.offsetWidth >document.body.scrollLeft +document.body.clientWidth - 160){
		x=document.body.scrollLeft +document.body.clientWidth-tag.offsetWidth-1-160
		}
	if (y+ tag.offsetHeight >document.body.scrollTop +document.body.clientHeight-270){
		y=document.body.scrollTop +document.body.clientHeight-tag.offsetHeight-1-270
		}
tag.style.position='absolute';
tag.style.left=x;
tag.style.top=y;


}

function removefromtab(vtab,velt){
vlist=vtab.join(",");
vlist=removefromlist(vlist,velt);
if (vlist){return vlist.split(',');}
return new Array;
}

function removefromlist(vlist,velt){
eval("vlist=vlist.replace(/"+velt+"/g,'')");
vlist=cleanlist(vlist);
return vlist;
}

function cleanlist(vlist){
while (vlist.search(/,,/)>-1){
vlist=vlist.replace(/,,/g,',');
}
while (vlist && vlist.substr(0,1)==','){
	vlist=vlist.substr(1);
	}
while (vlist && vlist.substr(vlist.length-1,1)==','){
	vlist=vlist.substr(0,vlist.length-1);
	}
return vlist;
}

function intab(tab,elt){
var i
for (i=0;i<tab.length;i++){
	if (elt==tab[i]){return true;}
	}
return false;
}


function arrayunique(vtab){
var restab=new Array;
var i
var j
for (i=0;i<vtab.length;i++){
	var vfound=0
	for (j=0;j<restab.length;j++){
		if (vtab[i]==restab[j]){vfound=1;break;}
		}
	if (vfound==0){restab[restab.length]=vtab[i];}
	}

return restab;
}

function isinarray(velt,vtab){
vfound=0
var i
for (i=0;i<vtab.length;i++){
	if (vtab[i]==velt){return 1;}
	
	}
return 0;
}


function changesetting(vsetting,vtid){
event.cancelBubble=true;
if (confirm('Do you want to change this value?')){openwinchangesetting(vsetting,vtid);}
}


function validationpage(valtype){

if (valtype=='create'){
	eval("var inlist=listcheckname.search(/,"+document.forms.mainform.pagename.value+",/)");
	if (inlist>=0){
		alert('The name already exists. Creation impossible.')
		return false;
		}
	
	}

var error=0;
messagealert='';
if (!document.forms.mainform.pagename.value){
	messagealert+="the page name\n"
	document.forms.mainform.pagename.focus()
	error=1;
	}
	else{
	if (valtype!='create' && window.oldpagename && document.forms.mainform.pagename.value!=oldpagename){
		if (!confirm("The page's name has changed.\nYou may wish to create a new page.\nAre you sure you want to replace the page's name?")){return false;}
		}
	}


if (error==1){
	messagealert="You need to enter :\n"+messagealert;
	alert(messagealert);
	return false;
	}
	else{
	return true;
	
	}

}


function validationinput(tag,classname){
var classname = (classname == null || !classname) ? "omsform" : classname;
if(typeof(tag)=="string"){
	if(window.document.getElementById(tag)){tag=document.getElementById(tag);}else{return;}
	}
if(!tag.className){return true;}
var tagvalue='';
var inputvalid=true;

switch(tag.tagName.toUpperCase()){
	case "INPUT": 
		if(tag.type.toLowerCase()=="checkbox"){tagvalue=tag.checked?'1':'';break;}
		if(tag.type.toLowerCase()=="radio"){tagvalue=tag.checked?'1':'';break;}
		if(tag.value){tagvalue=tag.value;}
		break;
	case "SELECT":tagvalue=tag.selectedIndex;break;
	case "TEXTAREA":tagvalue=tag.value;break;
	}

var advid;
tabclass=tag.className.match(/:[^ ;]+(;[^ ;]*)?(;[^ ;]*)?/gi);
if(!tabclass){return true;}
for (var i=0;i<tabclass.length;i++){
	var tabparam=tabclass[i].substring(1).split(';');
	var advhtml=(tabparam[2]!=null &&  window.document.getElementById(trim(tabparam[2])))?document.getElementById(trim(tabparam[2])).innerHTML : "";
	var param=(tabparam[1]!=null)?tabparam[1] : "";
	switch(tabparam[0].toLowerCase()){
		case "required":
			if(tagvalue== ''){
				validationaction(tag,0,classname,advhtml?advhtml:"this field is required");
				return false;
				}
				else{
				validationaction(tag,1,classname,'');
				}
			break;
		case "email":
			if(!validEmail(tag.value)){
				validationaction(tag,0,classname,advhtml?advhtml:"wrong format (eg mybox@domain.com)");
				return false;
				}
				else{
				validationaction(tag,1,classname,'');
				}
			break;
		case "format":
			if(!param){break;}
			var tabreg=param.split('\/');
			if(tabreg.length<2){break;}
			var reg=new RegExp(tabreg[1],tabreg[2]);
			if(!tag.value.match(reg)){
				validationaction(tag,0,classname,advhtml?advhtml:"wrong format for match("+param+")");
				return false;
				}
				else{
				validationaction(tag,1,classname,'');
				}
			break;
		case "number":
			if(isNaN(tag.value)){
				validationaction(tag,0,classname,advhtml?advhtml:"must be a number");
				return false;
				}
				else{
				validationaction(tag,1,classname,'');
				}
			break;
		case "integer":
			if(tag.value!=Math.floor(parseFloat(tag.value))){
				validationaction(tag,0,classname,advhtml?advhtml:"must be an integer");
				return false;
				}
				else{
				validationaction(tag,1,classname,'');
				}
			break;
		case "length":
			if(!param){break;}
			if(tag.value.length!=param){
				validationaction(tag,0,classname,advhtml?advhtml:"minimum length is "+param);
				return false;
				}
				else{
				validationaction(tag,1,classname,'');
				}
			break;
		case "min_length":
			if(!param){break;}
			if(tag.value.length<param){
				validationaction(tag,0,classname,advhtml?advhtml:"minimum length is "+param);
				return false;
				}
				else{
				validationaction(tag,1,classname,'');
				}
			break;
		case "min_length_or_null":
			if(!param){break;}
			if(tag.value && tag.value.length<param){
				validationaction(tag,0,classname,advhtml?advhtml:"minimum length is "+param);
				return false;
				}
				else{
				validationaction(tag,1,classname,'');
				}
			break;
		case "max_length":
			if(!param){break;}
			if(tag.value.length>param){
				validationaction(tag,0,classname,advhtml?advhtml:"maximum length is "+param);
				return false;
				}
				else{
				validationaction(tag,1,classname,'');
				}
			break;
		case "min_value":
			if(!param){break;}
			if(parseFloat(tag.value)<param){
				validationaction(tag,0,classname,advhtml?advhtml:"minimum value is "+param);
				return false;
				}
				else{
				validationaction(tag,1,classname,'');
				}
			break;
		case "max_value":
			if(!param){break;}
			if(parseFloat(tag.value)>param){
				validationaction(tag,0,classname,advhtml?advhtml:"maximum value is "+param);
				return false;
				}
				else{
				validationaction(tag,1,classname,'');
				}
			break;
		case "same_as":
			if(!param){break;}
			if(!window.document.getElementById(param)){break;}
			if(tag.value!=document.getElementById(param).value){
				validationaction(tag,0,classname,advhtml?advhtml:"not identical");
				return false;
				}
				else{
				validationaction(tag,1,classname,'');
				}
			break;
		case "visualconfirm":
			if(!window.testvisualconfirm){
				validationaction(tag,0,classname,"sorry possible connection failure, try again");
				return false;
				}
			if(tag.value.length>=6 && !testvisualconfirm()){
				validationaction(tag,0,classname,advhtml?advhtml:"failure try again");
				if(window.document.getElementById('imgvisualconfirm') && document.getElementById('imgvisualconfirm').onclick){document.getElementById('imgvisualconfirm').onclick();}
				document.getElementById('visualconfirm').value='';
				return false;
				}
			if(tag.value.length<6 && (!tag.onkeyup || tag.onkeyup.toString().search(/onkeyupreplace/)==-1)){
				validationaction(tag,0,classname,advhtml?advhtml:"failure try again");
				return false;
				}
			if(testvisualconfirm()){
				validationaction(tag,1,classname,'');
				}
				
			break;
		}
	}
return true;
}



function omsformvalidation(tag,classname){
var classname = (classname == null) ? "" : classname;

listtagname='input,select,textarea';
if(typeof(tag)=="string"){
	if(window.document.getElementById(tag)){tag=document.getElementById(tag);}else{return;}
	}
var inputvalid=true;
var tabtag=getchildrenbytagname(tag,listtagname);

for(var i=0;i<tabtag.length;i++){
	if (!validationinput(tabtag[i],classname)){inputvalid=false;}
	}

return inputvalid;
}


function getchildrenbytagname(tag,listtagname,tabresult){
var tabresult = (tabresult == null) ? new Array : tabresult;
if(typeof(tag)=="string"){
	if(window.document.getElementById(tag)){tag=document.getElementById(tag);}else{return tabresult;}
	}
if(!tag.childNodes.length){return tabresult;}
var reg=new RegExp(listtagname.replace(/,/g,'|'),'i');
for( var i = 0; i<tag.childNodes.length; i++ ){
	if(!tag.childNodes[i].tagName){continue;}
	if(tag.childNodes[i].tagName.search(reg)!=-1){tabresult[tabresult.length]=tag.childNodes[i];}
	tabresult=getchildrenbytagname(tag.childNodes[i],listtagname,tabresult);
	}
return tabresult;
}

function validationaction(tag,valid,classname,advhtml){
switch(valid){
	case 0:
		var regadv=new RegExp(classname+'-advice');
		if(tag.nextSibling && tag.nextSibling.className!=null && tag.nextSibling.className.search(regadv)!=-1){removeelement(tag.nextSibling);}
		inserthtmlafter(tag,advhtml,classname+'-advice');
		var regvalid= new RegExp(classname+"-valid",'g');
		tag.className=tag.className.replace(regvalid,"");
		tag.className+=' '+classname+'-invalid';
		break;
	case 1:
		var regadv=new RegExp(classname+'-advice');
		if(tag.nextSibling && tag.nextSibling.className!= null && tag.nextSibling.className.search(regadv)!=-1){removeelement(tag.nextSibling);}
		var reginvalid= new RegExp(classname+"-invalid",'g')
		tag.className=tag.className.replace(regvalid,"");
		tag.className+=' '+ classname+'-valid';
		break;
	}

if(tag.type && (tag.type.toLowerCase()=="checkbox" || tag.type.toLowerCase()=="radio" )){
	if(!tag.onclickreplace){tag.onclickreplace=tag.onclick?tag.onclick:"";
	tag.onclick=tag.onclick?function(){validationinput(this,classname);tag.onclickreplace();}:function(){validationinput(this,classname);};}
	}
	else{
	if(!tag.onkeyupreplace){
	tag.onkeyupreplace=tag.onkeyup?tag.onkeyup:"";
	tag.onkeyup=tag.onkeyup?function(){validationinput(this,classname);tag.onkeyupreplace();}:function(){validationinput(this,classname);};}
	}

}


function removeelement(el){
el.parentNode.removeChild(el);

}

function insertafter(el,newEl){
if(el.nextSibling) el.parentNode.insertBefore(newEl, el.nextSibling);
else el.parentNode.appendChild(newEl);
}

function inserthtmlafter(el,html,classname,win){
var win = (win == null) ? window : win;
var newEl = win.document.createElement("SPAN");
newEl.className=classname;
newEl.innerHTML=html;
insertafter(el,newEl);
}

function getvisualconfirmvalue(){
httpget(getURL_ROOT_DIR()+"/oms_admin/visualconfirm/visualconfirmvalue.php","visualconfirmcont");
}

tabrequiredname=new Array;
tabrequiredalert=new Array;
youneedtoenter="You need to enter :\n";
invalidemail="Invalid email address";
confirmemail="Confirm email address";

function formvalidation(formname){
var error=0;
messagealert='';
if (!window.tabrequiredname){return true;}

for (var i=0;i<tabrequiredname.length;i++){
	
	eval("var confirmexist=window.document."+formname+"['"+tabrequiredname[i]+"']")
	if (!confirmexist){continue;}
	eval("var reqtag=document."+formname+"['"+tabrequiredname[i]+"']")
	if(window.tinyMCE && tinyMCE.get(reqtag.id) && !tinyMCE.get(reqtag.id).getContent()){
		
		messagealert+=tabrequiredalert[i]+"\n"
		//if (!error){reqtag.focus();}
		error=1;
		}
	//alert(reqtag.id+"\n"+reqtag.value)
	else if (!reqtag.value){
		messagealert+=tabrequiredalert[i]+"\n"
		//if (!error){reqtag.focus();}
		error=1;
		}
	}
	
if (error==1){
	messagealert=youneedtoenter+messagealert;
	alert(messagealert);
	return false;
	}
	else{
	for (var i=0;i<tabrequiredalert.length;i++){
		
		if (tabrequiredalert[i].search(/email/)==-1){continue;}
		eval("var reqtag=document."+formname+"['"+tabrequiredname[i]+"']")
		
		if (!validEmail(reqtag.value))
			{
				alert(invalidemail)
				reqtag.focus()
				return false
			}
		eval("var confirmexist=window.document."+formname+"['"+tabrequiredalert[i]+"2"+"']")
		if (confirmexist){
			eval("var reqtag2=document."+formname+"['"+tabrequiredalert[i]+"2"+"']")
			if (reqtag2.value!=reqtag.value)
				{
				alert(confirmemail)
				reqtag2.focus()
				return false
				}
			}
		}
	
	return true;
	
	}

}

function validEmail(email) {

	invalidChars = " /:,;"

	if (email == "") {
		return false
	}
	for (i=0; i<invalidChars.length; i++) {
		badChar = invalidChars.charAt(i)
		if (email.indexOf(badChar,0) > -1) {
			return false
		}
	}
	atPos = email.indexOf("@",1)
	if (atPos == -1) {
		return false
	}
	if (email.indexOf("@",atPos+1) > -1) {
		return false
	}
	periodPos = email.indexOf(".",atPos)
	if (periodPos == -1) {
		return false
	}
	if (periodPos+3 > email.length)	{
		return false
	}
	return true
}


function itemmenuover(menuitemid){
		
	document.getElementById(menuitemid).style.display='';
	}
	
function itemmenuout(menuitemid){

//document.getElementById("tr_"+menuitemid).className='navtopsubmenuitem';
if (window.document.getElementById('sub_'+menuitemid)){document.getElementById('sub_'+menuitemid).style.display='none';}

	//setTimeout("document.getElementById('tr_"+menuitemid+"').className='navtopsubmenuitem';document.getElementById('sub_"+menuitemid+"').style.display='none';",100);

	}
	
// position of element must be absolute or relative
// element called with onmousedown='makeDraggable(this)'




document.onmousemove = mouseMove;
document.onmouseup = mouseUp;
var dragObject     = null;
var dragObject  = null;
var mouseOffset = null;


function mouseCoords(ev){
	if(ev.pageX || ev.pageY){
		return {x:ev.pageX, y:ev.pageY};
	}
	return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop  - document.body.clientTop
	};
}


function makeClickable(object){
	object.onmousedown = function(){
		dragObject = this;
	}
}


function getMouseOffset(target, ev){
	ev = ev || window.event;

	var docPos    = getPosition(target);
	var mousePos  = mouseCoords(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

function getPosition(e){
	var left = 0;
	var top  = 0;

	while (e.offsetParent && e.offsetParent.style.position!='relative' ){
		left += e.offsetLeft;
		top  += e.offsetTop;
		e     = e.offsetParent;
	}

	left += e.offsetLeft;
	top  += e.offsetTop;

	return {x:left, y:top};
}

currentresize=''
function mouseMove(ev){
	ev           = ev || window.event;
if(window.currentresize && currentresize){resizeme(ev);return;}	
	var mousePos = mouseCoords(ev);

	if(dragObject){
		dragObject.style.position = 'absolute';
		dragObject.style.top      = mousePos.y - mouseOffset.y;
		dragObject.style.left     = mousePos.x - mouseOffset.x;
			
		return false;
	}
}

function mouseUp(){
	if(currentresize){currentresize='';startresizeleft=0;startresizetop=0;}
	if (window.dragObject && window.dragObject.id){
		var dragid=dragObject.id
		if (window.document.getElementById('ilistfamily'+dragid)){
			var theurl=window.location.href;
			var taburl=theurl.split("?")
				theurl=taburl[0]+'?omsid=1547oms&methodcatid=770oms&methodname=toolbarposition&toolbarname='+dragid+'&top='+dragObject.style.top+'&left='+dragObject.style.left
			
			document.getElementById('ilistfamily'+dragid).src=theurl
			}
		}
	dragObject = null;
}


function getmaxzindex(win){
var win = (win == null) ? window : win;
var varzindex=1;
var tabtag=new Array('div','span','img','table')

for (var i=0;i<tabtag.length;i++){
	var tabz=win.document.getElementsByTagName(tabtag[i]);
	
	for (var j=0;j<tabz.length;j++){
		if (tabz[j].style.zIndex && tabz[j].style.zIndex>varzindex){varzindex=tabz[j].style.zIndex;}
		}
	}

return varzindex;
}


function makeDraggable(item){ // dragmode=drag or resize (default drag)
	if(!item) return;
	if (!window.maxzindex){maxzindex=getmaxzindex();}
	maxzindex++;
	item.style.zIndex=maxzindex
	item.onmousedown = function(ev){
		dragObject  = this;
		mouseOffset = getMouseOffset(this, ev);
		return false;
	}
}



function maketitresizable(tag){

startresizeleft=0;
startresizetop=0;
currentresize=tag
resizewidth0=currentresize.clientWidth
resizeheight0=currentresize.clientHeight
//alert(posWidth0+' '+posHeight0)
//alert(mp.tagName);

}

function resizeme(ev){
if(startresizeleft==0 && startresizetop==0){startresizeleft=mouseX(ev);startresizetop=mouseY(ev);}
//var mp = findresizeable(window.event.srcElement);
//alert(mouseX(ev)-startresizeleft)

currentresize.style.width = resizewidth0+ mouseX(ev)-startresizeleft;
currentresize.style.height = resizeheight0 + mouseY(ev)-startresizetop;
}

function findresizable(e) {
	
  if (e.resizable == 'true')
   return e;

  if (e.tagName == "BODY")
    return null;

  return findresizable(e.parentElement);
}

function getloadingicon(){
return "<img src='"+getURL_ROOT_DIR()+"/images/oms_images/loading.gif'>"
}

function getparentframetag(win){
var win = (win == null || !win) ? window : win;
if(!win.parent || win.parent==win){return null;}
var tabframe=win.parent.document.getElementsByTagName('iframe');
for (var i in tabframe){
	if (tabframe[i].src==win.location){return tabframe[i];}
	}
}

function getframeoffsetposition(win){
var win = (win == null || !win) ? window : win;
var topwin=gettopwindow();
var left=0;
var top=0;
while(win!=topwin){
	var frametag=getparentframetag(win);
	if (!frametag){break;}
	left+=getPosition(frametag).x-win.document.body.scrollLeft;
	top+=getPosition(frametag).y-win.document.body.scrollTop;
	if(win.parent && win.parent!=win){win=win.parent;}
	}
return {x:left, y:top};
}


function updatetagbyid(tagid,content){
	var win=window;
	
	if(win.document.getElementById(tagid)){win.document.getElementById(tagid).innerHTML=content;}
	while(win.parent && win.parent!=win){
		win=win.parent;	if(win.document.getElementById(tagid)){win.document.getElementById(tagid).innerHTML=content;win.document.getElementById(tagid).style.display='';}
		
		}
	}

	

function updatetagbyclass(classname,content){
	var win=window;
	
	var tab=win.document.getElementsByClassName(classname);
	if(tab.length){
		for(var i=0;i<tab.length;i++){
			tab[i].innerHTML=content;
			}
		}
	while(win.parent!=win){
		win=win.parent;
		tab=win.document.getElementsByClassName(classname);
		if(tab.length){
			for(var i=0;i<tab.length;i++){
				tab[i].innerHTML=content;
				}
			}
		
		}
	}

function prmurl()
{
 var prm = new Array();
 var tmp = unescape(window.location.search).substr(1).split("&");
 var inter;
 for ( i=0; i<tmp.length; i++)
 {
  inter=tmp[i].indexOf("=");
  if ( inter>=0 )
    {
     prm[tmp[i].substr(0,inter)]=tmp[i].substr(inter+1)
    }
  else {
     prm[tmp[i]]="";
    }
 }
 return prm;
}


function getfunctioninner(fn){
	textfn=fn.toString().replace(/^[^\{]+\{/,'');
	textfn=textfn.replace(/\}$/,'');
	return textfn;
}


function getfunctionparam(fn){
	var tabfn=fn.toString().match(/\(([^\)]*)\)/);
	return tabfn[1];
}	

function fitwindowleft(tag,left,win){
var win = (win == null) ? window : win;
left=parseInt(left);
if(left+tag.clientWidth>win.document.body.clientWidth+win.document.body.scrollLeft){
	if(win.document.body.clientWidth+win.document.body.scrollLeft-tag.clientWidth-1<0){
		left=0;
		}else{
		left=win.document.body.clientWidth+win.document.body.scrollLeft-win.document.body.scrollLeft-1;
		}
	}
tag.style.left=left+'px'
return;
}

function fitwindowtop(tag,top,win){
var win = (win == null) ? window : win;
top=parseInt(top);
if(top+tag.clientHeight>win.document.body.clientHeight+win.document.body.scrollTop){
	if(win.document.body.clientHeight+win.document.body.scrollTop-tag.clientHeight-1<0){
		top=0;
		}else{
		top=win.document.body.clientHeight+win.document.body.scrollTop-tag.clientHeight-1;
		}
	}
	
tag.style.top=top+'px'
return;
}

function fitwindow(tag,left,top,win){
var win = (win == null) ? window : win;
fitwindowleft(tag,left,win);
fitwindowtop(tag,top,win);
return;
}

function httpsend(url){
try {
	 var xhr = new ActiveXObject("Microsoft.XMLHTTP");    // Essayer Internet Explorer 
	}
	catch(e)   // Echec
	{
	var xhr = new XMLHttpRequest();  // Autres navigateurs 
	}
xhr.open( "GET", url,  true); 
xhr.send(null);
}

function httpget(url,tagid,left,top,width,height,header,drag,resize,classname,win,nofitleft,nofittop){
win = (win == null || !win) ? window : win;
if(!win.tabomsget){win.tabomsget=new Array;}
if(!win.httpgetcounter){win.httpgetcounter=0;}
if(tagid==null || !tagid){
	win.httpgetcounter++;
	tagid='divhttpget'+win.httpgetcounter;
	}
if(win.tabomsget[tagid]){
	win.tabomsget[tagid].activate=0;
	}
var omsget=new Object;
omsget.win = win;

omsget.top = (top == null) ? '' : top;
omsget.left = (left == null) ? '' : left;
omsget.width = (width == null) ? '' : width;
omsget.height = (height == null) ? '' : height;
omsget.drag = (drag == null) ? '' : drag;
omsget.resize = (resize == null) ? '' : resize;
omsget.nofitleft = (nofitleft == null) ? 0 : nofitleft;
omsget.nofittop = (nofittop == null) ? 0 : nofittop;
omsget.header = (header == null) ? '' : header;
omsget.tagid=tagid;
omsget.id=tagid;
omsget.url=url;
omsget.classname = (classname == null || !classname) ? '' : classname;
 

win.tabomsget[tagid]=omsget;


try {
	 omsget.xhr = new ActiveXObject("Microsoft.XMLHTTP");    // Essayer Internet Explorer 
	}
	catch(e)   // Echec
	{
	 omsget.xhr = new XMLHttpRequest();  // Autres navigateurs 
	}
omsget.activate=1;
omsget.xhr.onreadystatechange  = function()
    { 
	if(!omsget.activate)return;
         if(omsget.xhr.readyState  == 4)
         {
              if(omsget.xhr.status  == 200) {
			  	creatediv(omsget.tagid,omsget.xhr.responseText,omsget.left,omsget.top,omsget.width,omsget.height,omsget.header,omsget.drag,omsget.resize,omsget.classname,omsget.win,omsget.nofitleft,omsget.nofittop);
                 } 
              else{ 
			  	creatediv(omsget.tagid,omsget.xhr.status,omsget.left,omsget.top,omsget.width,omsget.height,omsget.header,omsget.drag,omsget.resize,omsget.classname,omsget.win,omsget.nofitleft,omsget.nofittop);
				}
			var js = omsget.win.document.getElementById(tagid).getElementsByTagName('script');
			for( var i in js )
			{
				eval(js[i].text);
			}

			omsget.win.document.getElementById(tagid).style.display='';
         }
	 	 
    }
omsget.xhr.open( "GET", omsget.url,  true); 
omsget.xhr.send(null);

return tagid;
}

function isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}

function launchwhen(condition,func,tabparam,msecond,launchwhenid){
if(!window.tablaunchwhen){tablaunchwhen=new Array}
var launchwhenid = (launchwhenid == null) ? tablaunchwhen.length : launchwhenid;
var tabparam = (tabparam == null) ? new Array : tabparam;
if(!isArray(tabparam)){tabparam=new Array(tabparam);}
if(!window.tablaunchwhen[launchwhenid]){
	tablaunchwhen[launchwhenid]={
	condition : condition,
	func:func,
	tabparam:tabparam ,
	msecond:msecond
	}
}

if(eval(condition)){
	func.apply(this, tabparam)
	}
	else if(msecond){
	setTimeout("trylaunchwhen("+launchwhenid+");",msecond);
	}
}

function trylaunchwhen(launchwhenid){
var launch=tablaunchwhen[launchwhenid];
launchwhen(launch.condition,launch.func,launch.tabparam,launch.msecond,launchwhenid);
}