var isIE = window.navigator.userAgent.indexOf('MSIE') != -1;
var isFirefox = window.navigator.userAgent.indexOf('Firefox') != -1;
var isOpera = window["opera"] != null;
var isNetscape = window.navigator.userAgent.indexOf('Netscape') != -1;



function insertAfter( elementIns  , elementSemafore ){
	if ( elementSemafore == null || elementSemafore == undefined )
		return ;
	var pElem = elementSemafore.nextSibling;
	if ( pElem == null || pElem == undefined )
		elementSemafore.parentNode.appendChild(elementIns);
	else
		elementSemafore.parentNode.insertBefore(elementIns , pElem);
}
function fGetXY( a , offset ,parentObj ) {
    var p=offset ? offset : {x:0, y:0};
    var orig = a;
    while( a ){
        if (a === parentObj)break;
//        if (a.id && a.id =="MB_window"){// if poput - stop offset
//            if (isOpera && Modalbox && Modalbox.MBwindow){
//                p.x-= Modalbox.MBcontent.scrollLeft;
//                p.y-= Modalbox.MBcontent.scrollTop;
//            }
//            if (isIE && Modalbox && Modalbox.MBwindow && Modalbox.MBheader)
//                p.y -= Modalbox.MBheader.offsetHeight;
//            break;
//         }
        p.x+=a.offsetLeft;
		p.y+=a.offsetTop;
        if (a.tagName.toLowerCase() != "body"){
            if (a.scrollLeft)
                p.x-= a.scrollLeft;
            if (a.scrollTop)
                p.y-= a.scrollTop;
        }
        if (!isOpera && a.offsetParent != a.parentNode && a.offsetParent && a.offsetParent.tagName.toLowerCase() != "body" && a.parentNode && a.parentNode.tagName.toLowerCase() != "body" ){
            if (a.parentNode && a.parentNode.scrollLeft)
                p.x-= a.parentNode.scrollLeft;
            if (a.parentNode && a.parentNode.scrollTop)
                p.y-= a.parentNode.scrollTop;
        }
        a=a.offsetParent;
	}
//    confirm(orig +" x:"+p[0]+" y:"+p[1]);
    return p;
}
function createElement( parent , tagName , className )
{
	var oTag = document.createElement( tagName );
    if( className )
		oTag.className = className;
	parent.appendChild(oTag);
	return oTag;
}
function createInputElement(parent, type, id, value, className)
{
    var oInput;
    if(isIE)
        oInput = createElement(parent, "<input type=\"" + type + "\">", className);
    else {
        oInput = createElement(parent, "input", className);
        oInput.type = type;
    }
    if(id)
        oInput.id = id;
    if(value)
        oInput.value = value;
    return oInput;
}


function getProperty(oObject, sProperty)
{
    sProperty.split(".").each(function(item , ind){
        oObject = oObject[item];
    });
    if (oObject != null && typeof oObject == "string")
        while(oObject.indexOf("&quot;")>=0)
            oObject = oObject.replace("&quot;" ,"\"");
    return oObject ;
}

function popupSelectElements(b){
	if(isIE){
        for (var i=0;i<20;i++ ) {
            var slc = document.getElementById("hide4popup"+i);
            if (slc !=null) slc.style.visibility =(!b ? "hidden" : "");
        }
	}
}
function objToString(o , dif){
    if (!dif)
        dif =0;
    if (dif >5 || typeof o == "string") return o;
    var tabbedStr ="";
    for (var i = 0 ; i < dif ; i++)
        tabbedStr +="\t";
    var s ="{\n";
    for (var k in o)
        s+=tabbedStr +"\t"+k +"="+objToString(o[k] ,dif+1)+"\n";
    if (s == "{\n")
        return o;
    s = tabbedStr +"\n"+tabbedStr+s+tabbedStr+"}";
    return s ;
}
function checkEmpty(elem ,mess){
  if (elem.value == ""){
        alert(mess);
        elem.value = "";
        elem.select();
        elem.focus();
        return false;
        }
   return true;
}
function checkInt(elem ,mess ,hasEmpty){
if (!hasEmpty  && checkEmpty(elem ,mess) )
    return;
var elemVal = parseInt(elem.value , 10);
  if (isNaN(elemVal) || elem.value != elemVal){
        alert(mess);
        elem.select();
        elem.focus();
        return false;
        }
   return true;
}
function checkNumber(elem ,mess,hasEmpty){
if (!hasEmpty  && checkEmpty(elem ,mess) )
    return;
var elemVal = parseFloat(elem.value );
  if (isNaN(elemVal) || elem.value != elemVal){
        alert(mess);
        elem.select();
        elem.focus();
        return false;
        }
   return true;
}


function viewInlineImage(oEvent,sUrl){
    if (!oEvent)
        oEvent = window.event;
    var oTarget = oEvent.target || oEvent.srcElement;
    if (oTarget){
        var oImage = new Image();
        oImage.onload = function(){
            showInlineImage(oImage ,oTarget);
        };
        oImage.onerror = function(){
            showInlineImage("Error loading image" ,oTarget);
        };
        oImage.onabort = function(){
           showInlineImage("Abort loading image", oTarget);
        };
        oImage.src = sUrl;
    }
}
function  showInlineImage(sobj ,oTarget){
  var dvEl = document.getElementById("imgViewerDiv_Data");
  var dvEl1 =document.getElementById("imgViewerDiv");
  if(!dvEl ){
      dvEl1 = new Element("div", {id: "imgViewerDiv", style: "display: none;position : absolute;z-index: 99999;margin:5px"})
      var aEl = new Element("a", {href: "#",style:"color:#000;font-weight:bold;"})
      aEl.update("<span>x</span>");
      aEl.onclick = function(ev){hideInlineImage();ev = ev || window.event; if (ev) ev.returnValue = false; return false;};
      var frameEl = new Element("div", {}).update(
          new Element("div", {style:"text-align:left;background-color:#777;"}).update(aEl)
      );
      dvEl1.update(frameEl);
      dvEl = new Element("div", {id: "imgViewerDiv_Data",style:"background-color:#DDD;"})
      dvEl1.insert({"bottom": dvEl });
      oTarget.parentNode.appendChild(dvEl1);
  }
  dvEl = document.getElementById("imgViewerDiv_Data");
  if (typeof sobj == "string"){
      dvEl.update(sobj);
      dvEl1.style.width = 150+"px";
      dvEl1.style.heigth = 90+"px";
  }else{
      var img = new Element("img",{width : sobj.width ,heigth :sobj.width });
      dvEl1.style.width = (sobj.width > 150 ? sobj.width :150)+"px";
      dvEl1.style.heigth = ((sobj.width > 20 ? sobj.width :20)+30)+"px";
      img.src = sobj.src; 
      dvEl.update(img);
  }
  var xy = fGetXY(oTarget);
  dvEl1.style.left = (xy.x-10)+"px";
  dvEl1.style.top =  (xy.y-10)+"px";
  dvEl1.style.display  ="";
}
function  hideInlineImage(){
    var dvEl = document.getElementById("imgViewerDiv");
    if(dvEl )
        dvEl.style.display = "none";
}

