var zIndexVal = 100;
var pageGreyOut = "false";
var layerIdParamsMap = new Array();

// For animation Layer .....
var totalWidth = 0;
var totalHeight = 0;
var initLeft = 0;
var tempLayerId = null;
var tempCallBackHandler= null;
var zoomStyle = null;


//****************** LAYER CODE START ******************/

var CLayer = new _CLayer();

function _CLayer()
{
    this.refDivObj = new Array();
    this.openLayer = _CLayer_openLayer;
    this.closeLayer = _CLayer_closeLayer;
    this.closeLayers = _CLayer_closeLayers;
    this.closeAllLayers = _CLayer_closeAllLayers;
    this.updateLayer = _CLayer_updateLayer
}

function _CLayer_openLayer(layerId, tempLayerParams)
{
    if(_CLayer_isElementDefined(layerId, false))
    {
        var layerParams = _CLayer_setLayerParams(tempLayerParams);
         layerIdParamsMap[layerId] = layerParams;
        if(layerParams.animation == "true")
        {
              totalWidth = parseInt(layerParams.width.substring(0,layerParams.width.indexOf("px"))) ;
              totalHeight = parseInt(layerParams.height.substring(0,layerParams.height.indexOf("px")));
              initLeft = parseInt(layerParams.left.substring(0,layerParams.left.indexOf("px")));
              layerParams.width = 0+"px";
              layerParams.height = 0+"px";
              layerParams.isMovable = "false";
              layerParams.scrolling = "no";
        }
        if(_CLayer_getArrayElementIndex(this.refDivObj, layerId) == -1)
        {
            this.refDivObj.push(layerId);
            _CLayer_createLayer(layerId, layerParams);
            if(layerParams.isMovable == "true")
            {
                setMovableDiv(layerId);
            }
        }
        else
        {
            if(layerParams.type == "iframe" && layerParams.reload == "true" && !(layerParams.animation == "true"))
            {
                _CLayer_showLoadMsg(layerId);
            }
            _CLayer_updateLayer(layerId, layerParams);
        }

        if(layerParams.greyOut == "true")
        {
            var bodyHeightBeforeLayer=document.body.scrollHeight;
            pageGreyOut = "true";
            var options = new Array();
            if(_CLayer_isElementDefined(layerId, true))
            {
                options.zindex = document.getElementById(layerId).style.zIndex;
                options.opacity = layerParams.opacity;
            }
            else
                options.zindex = zIndexVal;

            _CLayer_greyOut(true, options);
        }
        if(layerParams.animation == "true")
        {
         document.getElementById("layerTitle_"+layerId).style.display = "none";
         if(layerParams.templateName == 'thinlayer_template')
         document.getElementById("seperator_"+layerId).style.display = "none";
        }
        _CLayer_showLayer(layerId);
       if(layerParams.animation == "true")
        {
          _CLayer_layerAnimation(layerId,layerParams);
        }
    }

    if(_CLayer_isElementDefined('darkenScreenObject', true) && bodyHeightBeforeLayer!='undefined'){
        if(bodyHeightBeforeLayer < document.body.scrollHeight){ //INT0022884 fix
                _CLayer_greyOut(true, options);
        }
    }
}
function _CLayer_layerAnimation(layerId ,layerParams)
{
    tempLayerId = layerId;
    zoomStyle = "out";
    setTimeout("zoomLayer()",0.8);
}
var timerId;
function zoomLayer()
{

  var layerParams = layerIdParamsMap[tempLayerId];
  var layerWidth = parseInt(layerParams.width.substring(0,layerParams.width.indexOf("px"))) ;
  var layerHeight = parseInt(layerParams.height.substring(0,layerParams.height.indexOf("px"))) ;
  var timerFlag = true;
  if(zoomStyle =="out")
  {
      if(layerWidth < totalWidth)
      {
        layerWidth += 50;
        if(layerWidth >= totalWidth)
            layerWidth = totalWidth;
        layerParams.width = layerWidth+"px";
        if(layerParams.animationStyle == "left")
          layerParams.left = (initLeft - layerWidth)+"px" ;
        else if(layerParams.animationStyle == "center")
            layerParams.left = (initLeft - (layerWidth/2))+"px" ;
      }
      else if(layerHeight < totalHeight)
        {
         layerHeight  += 50;
         if(layerHeight >= totalHeight)
         layerHeight = totalHeight;
         layerParams.height = layerHeight+"px";
        }
      else
      {
         timerFlag = false;
          zoomStyle = "";
      }

  }
  else if(zoomStyle == "in")
  {
      if(layerHeight > 0 )
      {
        layerHeight -= 50;
        if(layerHeight <= 0)
            layerHeight = 0;
        layerParams.height = layerHeight+"px";
      }
     else if(layerWidth > 0)
          {
             layerWidth -= 50;
             if(layerWidth <= 0)
                    layerWidth = 0;
             layerParams.width = layerWidth+"px";
             if(layerParams.animationStyle == "left")
               layerParams.left = (initLeft - layerWidth)+"px" ;
             else if(layerParams.animationStyle == "center")
                    layerParams.left = (initLeft - (layerWidth/2))+"px" ;
          }
     else
        timerFlag = false;
 }
 if(timerFlag)
 {
        layerIdParamsMap[tempLayerId] = layerParams;
        _CLayer_updateLayer(tempLayerId, layerParams);
        timerId = setTimeout("zoomLayer()",0.8);
 }
 else
 {
     clearTimeout(timerId);
        if(zoomStyle == "in")
            hideLayer(tempLayerId,tempCallBackHandler);
        else
        {
            document.getElementById("layerTitle_"+tempLayerId).style.display = "block";
           if(layerParams.templateName == 'thinlayer_template')
            document.getElementById("seperator_"+tempLayerId).style.display = "block";
        }
 }
}

function _CLayer_setLayerParams(layerParams)
{
    if(layerParams.type == undefined)
        layerParams.type = "iframe";
    else
        layerParams.type = layerParams.type.toLowerCase();

    if(layerParams.scrolling == undefined)
        layerParams.scrolling = "auto";
    else
        layerParams.scrolling = layerParams.scrolling.toLowerCase();

    if(layerParams.isMovable == undefined)
        layerParams.isMovable = "true";
    else
        layerParams.isMovable = layerParams.isMovable.toLowerCase();

    if(layerParams.templateName == undefined)
        layerParams.templateName = "default";
    else
        layerParams.templateName = layerParams.templateName.toLowerCase();

    if(layerParams.clearDiv == undefined)
    {
        if(layerParams.type == "div")
            layerParams.clearDiv = "false";
        else
            layerParams.clearDiv = "true";
    }
    else
        layerParams.clearDiv = layerParams.clearDiv.toLowerCase();

    if(layerParams.reload == undefined)
        layerParams.reload = "true";
    else
        layerParams.reload = layerParams.reload.toLowerCase();

    if(layerParams.position == undefined)
        layerParams.position = "absolute";
    else
        layerParams.position = layerParams.position.toLowerCase();

    if(layerParams.greyOut == undefined)
        layerParams.greyOut = "true";
    else
        layerParams.greyOut = layerParams.greyOut.toLowerCase();

    if(layerParams.greyOut == "true")
        layerParams.zIndexValue = zIndexVal;
    else
        layerParams.zIndexValue = 0;

    if(layerParams.src == undefined)
        layerParams.src = "";

    if(layerParams.layerTitle == undefined)
        layerParams.layerTitle = "";

    if(layerParams.top == undefined)
    {
        var topPos = _CLayer_getTopPosition() + 90;
        layerParams.top = topPos+"px";
    }
    else
        layerParams.top = layerParams.top+"px";

    if(layerParams.left == undefined)
    {
        var leftPos = _CLayer_getLeftPosition() + 200;
        layerParams.left = leftPos+"px";
    }
    else
        layerParams.left = layerParams.left+"px";

    if(layerParams.width == undefined)
        layerParams.width = "200px";
    else
        layerParams.width = layerParams.width+"px";

    if(layerParams.height == undefined)
        layerParams.height = "30px";
    else
        layerParams.height = layerParams.height+"px";

    if(layerParams.isInnerLayer == undefined)
        layerParams.isInnerLayer = "false";
    else
        layerParams.isInnerLayer = layerParams.isInnerLayer.toLowerCase();

    if(layerParams.contentDivPadding == undefined)
        layerParams.contentDivPadding = 10;

    if(layerParams.isSecure == true)
    {
        layerParams.scheme="https://";
    }else
    {
        layerParams.scheme="http://";
    }
    if(layerParams.animation == "true")
    {
        if(layerParams.animationStyle == undefined)
            layerParams.animationStyle = "center";
    }
    if(layerParams.closeText == undefined || layerParams.closeText=='')
        layerParams.closeText = false;

    return layerParams;

}

function _CLayer_getLeftPosition(evt)
{
    return document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft;
}

function _CLayer_getTopPosition(evt)
{
    return document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
}

function _CLayer_getArrayElementIndex(refArray, arrElement)
{
    for(var i=0; i<refArray.length; i++)
    {
        if(refArray[i] == arrElement)
            return i;
    }
    return -1;
}

function _CLayer_createLayer(layerId, layerParams)
{
    var layerInnerHtml = new Array();
    switch(layerParams.templateName)
    {
        case "thinlayer_template" : layerInnerHtml = _CLayer_getThinLayer(layerId, layerParams);
                                     break;
		case "no_border_template" : layerInnerHtml = _CLayer_getNoBorderLayer(layerId, layerParams);
		                             break;
        default : layerInnerHtml = _CLayer_getDefaultLayer(layerId, layerParams);
            break;
    }
    var mainDivEle = document.createElement('div');
    mainDivEle.id = "mainDiv_"+layerId;
    mainDivEle.name = "mainDiv_"+layerId;
    mainDivEle.style.top = "0px";
    mainDivEle.style.left = "0px";
    mainDivEle.style.textAlign = "center";
    mainDivEle.style.position = "absolute";
    mainDivEle.style.width = "100%";
    mainDivEle.style.height = "100%";
    mainDivEle.style.zIndex = layerParams.zIndexValue;
    var ele;

    ele = document.body;
    ele.appendChild(mainDivEle);
    var layerHtmlCode = "";
    layerHtmlCode = layerInnerHtml.join('');
    document.getElementById("mainDiv_"+layerId).innerHTML = layerHtmlCode;

    var innerText = "";
    if(layerParams.type == "iframe")
        innerText = _CLayer_getIFrame(layerId, layerParams);
    else
        innerText = _CLayer_getDiv(layerId, layerParams);

    document.getElementById("main_content_div_"+layerId).innerHTML = innerText;
    return true;
}

function _CLayer_getThinLayer(layerId , layerParams)
{
    var layerInnerHtml = new Array();
    var mainDivDispStyle = "block";
    var loadDispStyle = "none";
    if(layerParams.type == "iframe" && !(layerParams.animation == 'true'))
    {
        mainDivDispStyle = "none";
        loadDispStyle = "block";
    }
    var closeText="Close";
    if(layerParams.closeText)
    {
        closeText=layerParams.closeText
    }

        layerInnerHtml.push("<div style='position:relative;margin:0;height:100%; width:'100%';auto;text-align:left;'>");
        layerInnerHtml.push("<div style='position:absolute;display:none;z-index:"+layerParams.zIndexValue+";position:absolute;width:"+layerParams.width+";height:"+layerParams.height+";top:"+layerParams.top+";left:"+layerParams.left+";' id='"+layerId+"' name='"+layerId+"'>");
        layerInnerHtml.push("<table align='center' border='0' cellspacing='0' cellpadding='0'>");
        layerInnerHtml.push("<tr align='left' valign='top'>");
        layerInnerHtml.push("<td class='w-shadow-topleft'></td>");
        layerInnerHtml.push("<td class='w-shadow-top' ></td>");
        layerInnerHtml.push("<td  class='w-shadow-topright' style='background-position:left top;'></td></tr>");
        layerInnerHtml.push("<tr align='right' valign='top'>");
        layerInnerHtml.push("<td class='w-shadow-left' ><img src='/default/images/spacer.gif' width='4' /></td>");
        layerInnerHtml.push("<td bgcolor='#ffffff' style='border:1px solid #ccc;'>");
        layerInnerHtml.push("<table align='center' border='0' cellspacing='0' cellpadding='0' width='100%'>");
        layerInnerHtml.push("<tr><td colspan='2' height='10' bgcolor='#ffffff'></td></tr>");
        layerInnerHtml.push("<tr><td style='color:#666;' bgcolor='#ffffff'><div id='layerTitle_"+layerId+"'><a href='javascript:_CLayer_closeLayer("+'\"'+layerId+'\",'+layerParams.closeCallBack+")' title=\" "+closeText+" \" style=\"padding:0 5px 0 10px;\"><img src='/default/images/shadow/plus-icon.gif' align='absmiddle' border='0'/></a>"+layerParams.layerTitle+"</div></td>");
        layerInnerHtml.push("<td id='closeLink_"+layerId+"' align='right' style='display:block;'>");
        layerInnerHtml.push("<a href='javascript:_CLayer_closeLayer("+'\"'+layerId+'\",'+layerParams.closeCallBack+")' style='text-decoration:none;color:#c1c1c1;font-size:9px;' title=\" "+closeText+" \">"+closeText+"<img src='/default/images/shadow/close-grey-icon.gif'/ style='margin:0 10px 0 5px;' border='0'></a>");
        layerInnerHtml.push("</td></tr>");
        layerInnerHtml.push("<tr><td colspan='2' height='8' bgcolor='#ffffff'></td></tr>");
        layerInnerHtml.push("<tr><td colspan='2' bgcolor='#ffffff'><div id='seperator_"+layerId+"' style='border-bottom:1px dashed #ccc;'></div></td></tr>");
        layerInnerHtml.push("<tr align='left' valign='top'><td colspan='2' bgcolor='#ffffff'>");
        layerInnerHtml.push("<div  style='display:"+mainDivDispStyle+";' id='main_content_div_"+layerId+"' name='main_content_div_"+layerId+"' >");
        layerInnerHtml.push("</div>");
        layerInnerHtml.push("<div style='display:"+loadDispStyle+"; margin:auto; width:"+layerParams.width+"; height:"+layerParams.height+";' id='load_msg_div_"+layerId+"' align='center' name='load_msg_div_"+layerId+"' >");
        layerInnerHtml.push("<table width="+layerParams.width+" height="+layerParams.height+" id='load_msg_table_"+layerId+"' align='center' name='load_msg_table_"+layerId+"' >");
        layerInnerHtml.push("<tr>");
        layerInnerHtml.push("<td align='center' valign='middle'><div id='optLoadMsg"+layerId+"' name='optLoadMsg"+layerId+"'>"+getLoadingText()+"<br><br><img src='"+layerParams.scheme+"static.snapfish.com/MD5=ba58a2dd92ab23fa6a7c06b6d8b7a5e2/default/images/share/pleasewait.gif'></div></td>");
        layerInnerHtml.push("</tr>");
        layerInnerHtml.push("</table>");
        layerInnerHtml.push("</div>");
        layerInnerHtml.push("</td></tr></table>");
        layerInnerHtml.push("</td>");
        layerInnerHtml.push("<td align='left' class='w-shadow-right'><img src='/default/images/spacer.gif' width='4' /></td>");
        layerInnerHtml.push("</tr><tr align='left' valign='top'>");
        layerInnerHtml.push("<td class='w-shadow-bottomleft'></td>");
        layerInnerHtml.push("<td class='w-shadow-bottom'><img src='/default/images/spacer.gif' height='4' /></td>");
        layerInnerHtml.push("<td class='w-shadow-bottomright'></td></tr>");
        layerInnerHtml.push("</table>");
        layerInnerHtml.push("</div>");
        layerInnerHtml.push("</div>");
        return layerInnerHtml;
}

function _CLayer_getNoBorderLayer(layerId, layerParams)
{
    var layerInnerHtml = new Array();
	if(layerParams.isInnerLayer == "true")
	{
		layerInnerHtml.push("<div style='position:relative;width:"+layerParams.width+";height:"+layerParams.height+";margin:0 auto;text-align:left;'>");
	}
	else
	{
		layerInnerHtml.push("<div style='position:relative;width:766px;height:100%;margin:0 auto;text-align:left;'>");
	}
	var mainDivDispStyle = "block";
	var loadDispStyle = "none";
    if(layerParams.type == "iframe"  && !(layerParams.animation == 'true'))
    {
    	mainDivDispStyle = "none";
		loadDispStyle = "block";
    }
    layerInnerHtml.push("<div style='display:none;z-index:"+layerParams.zIndexValue+";position:absolute;width:"+layerParams.width+";height:"+layerParams.height+";top:"+layerParams.top+";left:"+layerParams.left+";' id='"+layerId+"' name='"+layerId+"'>");
    layerInnerHtml.push("<table align='center' border='0' cellspacing='0' cellpadding='0'>");
    layerInnerHtml.push("<tr>"); 
    layerInnerHtml.push("<td>"); 
    layerInnerHtml.push("<div style='display:"+mainDivDispStyle+";' id='main_content_div_"+layerId+"' name='main_content_div_"+layerId+"' >");
    layerInnerHtml.push("</div>");
    layerInnerHtml.push("<div style='display:"+loadDispStyle+"; margin:auto; width:"+layerParams.width+"; height:"+layerParams.height+";' id='load_msg_div_"+layerId+"' align='center' name='load_msg_div_"+layerId+"' >");
    layerInnerHtml.push("<table width="+layerParams.width+" height="+layerParams.height+" id='load_msg_table_"+layerId+"' align='center' name='load_msg_table_"+layerId+"' >");
    layerInnerHtml.push("<tr>");
    layerInnerHtml.push("<td align='center' valign='middle'><div id='optLoadMsg"+layerId+"' name='optLoadMsg"+layerId+"'>loading...<br><br><img src='"+layerParams.scheme+"static.snapfish.com/MD5=ba58a2dd92ab23fa6a7c06b6d8b7a5e2/default/images/share/pleasewait.gif'></div></td>");
    layerInnerHtml.push("</tr>");
    layerInnerHtml.push("</table>");
    layerInnerHtml.push("</div>");
    layerInnerHtml.push("</td>");   
    layerInnerHtml.push("</tr>");
    layerInnerHtml.push("</table>");
    layerInnerHtml.push("</div>");
    layerInnerHtml.push("</div>");

    return layerInnerHtml;

}

function _CLayer_getDefaultLayer(layerId, layerParams)
{
    var layerInnerHtml = new Array();
    if(layerParams.isInnerLayer == "true")
    {
        layerInnerHtml.push("<div style='position:relative;width:"+layerParams.width+";height:"+layerParams.height+";margin:0 auto;text-align:left;'>");
    }
    else
    {
        layerInnerHtml.push("<div style='position:relative;width:766px;height:100%;margin:0 auto;text-align:left;'>");
    }
    var mainDivDispStyle = "block";
    var loadDispStyle = "none";
    if(layerParams.type == "iframe"  && !(layerParams.animation == 'true'))
    {
        mainDivDispStyle = "none";
        loadDispStyle = "block";
    }
    layerInnerHtml.push("<div style='display:none;z-index:"+layerParams.zIndexValue+";position:absolute;width:"+layerParams.width+";height:"+layerParams.height+";top:"+layerParams.top+";left:"+layerParams.left+";' id='"+layerId+"' name='"+layerId+"'>");
    layerInnerHtml.push("<table align='center' border='0' cellspacing='0' cellpadding='0'>");
    layerInnerHtml.push("<tr align='left' valign='top'>");
    layerInnerHtml.push("<td width='11px' class='grey-shadow-topleft'></td>");
    layerInnerHtml.push("<td class='grey-shadow-top' height='9px'></td>");
    layerInnerHtml.push("<td width='10px' class='grey-shadow-topright'></td>");
    layerInnerHtml.push("</tr>");
    layerInnerHtml.push("<tr align='right' valign='top'>");
    layerInnerHtml.push("<td width='11px' class='grey-shadow-left'>");
    layerInnerHtml.push("<img src='"+layerParams.scheme+"static.snapfish.com/MD5=ba58a2dd92ab23fa6a7c06b6d8b7a5e2/default/images/shadow/g-top-bg1.gif' width='7px' />");
    layerInnerHtml.push("</td>");
    layerInnerHtml.push("<td bgcolor='#ffffff'>");
    layerInnerHtml.push("<div class='greyBackground' id='movHeader_"+layerId+"' name='movHeader_"+layerId+"'>");
    layerInnerHtml.push("<span class='greyBackgroundLeft' id='layerTitle_"+layerId+"' name='layerTitle_"+layerId+"'>"+layerParams.layerTitle+"</span>");
    if(layerParams.closeText)
    {
      layerInnerHtml.push("<a href='javascript:CLayer.closeLayer("+'\"'+layerId+'\",'+layerParams.closeCallBack+")' style='text-decoration:none; color:#000000;' title=\"" +layerParams.closeText+" \">"+layerParams.closeText+" X</a>");
    }
    else
    {
    layerInnerHtml.push("<a href='javascript:_CLayer_closeLayer("+'\"'+layerId+'\",'+layerParams.closeCallBack+','+layerParams.callBeforeClose+")' style='text-decoration:none;' title=\" close \">X</a>");
    }
    layerInnerHtml.push("</div>");
    layerInnerHtml.push("<div class='contentDiv' style='display:"+mainDivDispStyle+";' id='main_content_div_"+layerId+"' name='main_content_div_"+layerId+"' >");
    layerInnerHtml.push("</div>");
    layerInnerHtml.push("<div class='contentDiv' style='display:"+loadDispStyle+"; margin:auto; width:"+layerParams.width+"; height:"+layerParams.height+";' id='load_msg_div_"+layerId+"' align='center' name='load_msg_div_"+layerId+"' >");
    layerInnerHtml.push("<table width="+layerParams.width+" height="+layerParams.height+" id='load_msg_table_"+layerId+"' align='center' name='load_msg_table_"+layerId+"' >");
    layerInnerHtml.push("<tr>");
    layerInnerHtml.push("<td align='center' valign='middle'><div id='optLoadMsg"+layerId+"' name='optLoadMsg"+layerId+"'>"+getLoadingText()+"<br><br><img src='"+layerParams.scheme+"static.snapfish.com/MD5=ba58a2dd92ab23fa6a7c06b6d8b7a5e2/default/images/share/pleasewait.gif'></div></td>");
    layerInnerHtml.push("</tr>");
    layerInnerHtml.push("</table>");
    layerInnerHtml.push("</div>");
    layerInnerHtml.push("</td>");
    layerInnerHtml.push("<td width='12px' align='left' class='grey-shadow-right'>");
    layerInnerHtml.push("<img src='"+layerParams.scheme+"static.snapfish.com/MD5=ba58a2dd92ab23fa6a7c06b6d8b7a5e2/default/images/shadow/g-top-bg1.gif' width='5px' />");
    layerInnerHtml.push("</td>");
    layerInnerHtml.push("</tr>");
    layerInnerHtml.push("<tr align='left' valign='top'>");
    layerInnerHtml.push("<td width='11px' class='grey-shadow-bottomleft'>");
    layerInnerHtml.push("<img src='"+layerParams.scheme+"static.snapfish.com/MD5=ba58a2dd92ab23fa6a7c06b6d8b7a5e2/default/images/spacer.gif' width='11px' />");
    layerInnerHtml.push("</td>");
    layerInnerHtml.push("<td class='grey-shadow-bottom'></td>");
    layerInnerHtml.push("<td width='12px' class='grey-shadow-bottomright'>");
    layerInnerHtml.push("<img src='"+layerParams.scheme+"static.snapfish.com/MD5=ba58a2dd92ab23fa6a7c06b6d8b7a5e2/default/images/spacer.gif' width='12px' />");
    layerInnerHtml.push("</td>");
    layerInnerHtml.push("</tr>");
    layerInnerHtml.push("</table>");
    layerInnerHtml.push("</div>");
    layerInnerHtml.push("</div>");

    return layerInnerHtml;

}

function _CLayer_updateLayer(layerId, layerParams)
{
    if(_CLayer_isElementDefined("ele_iframe_"+layerId, true))
    {
        var iframeId = document.getElementById("ele_iframe_"+layerId);
        if(layerParams.src != undefined)
        {
            if(layerParams.reload != undefined && layerParams.reload == "true")
            {
                iframeId.src = layerParams.src;
            }
        }
        if(layerParams.width != undefined)
            iframeId.width = layerParams.width;
        if(layerParams.height != undefined)
            iframeId.height = layerParams.height;

    }

    if(_CLayer_isElementDefined("load_msg_div_"+layerId, true) && _CLayer_isElementDefined("load_msg_table_"+layerId, true))
    {
        var msgDivLayer = document.getElementById("load_msg_div_"+layerId);
        var msgTableLayer = document.getElementById("load_msg_table_"+layerId);
        if(layerParams.width != undefined)
        {
            msgDivLayer.style.width = layerParams.width;
            msgTableLayer.style.width = layerParams.width;
        }
        if(layerParams.height != undefined)
        {
            msgDivLayer.style.height = layerParams.height;
            msgTableLayer.style.height = layerParams.height;
        }
    }
  if(layerParams.layerTitle != undefined && layerParams.templateName == "default"){
        document.getElementById("layerTitle_"+layerId).innerHTML = layerParams.layerTitle;
    }

    var mainLayer = document.getElementById(layerId);
    if(layerParams.position != undefined)
        mainLayer.style.position = layerParams.position;
    if(layerParams.top != undefined)
        mainLayer.style.top = layerParams.top;
    if(layerParams.left != undefined)
        mainLayer.style.left = layerParams.left;
    if(layerParams.width != undefined)
        mainLayer.style.width = layerParams.width;
    if(layerParams.height != undefined)
        mainLayer.style.height = layerParams.height;
    setZIndexValue(layerId);
}

function _CLayer_getIFrame(layerId, layerParams)
{
    var iframeEleHtml = new Array();
    iframeEleHtml.push("<iframe id='ele_iframe_"+layerId+"' onload='_CLayer_hideLoadMsg("+"\""+layerId+"\""+");' name='ele_iframe"+layerId+"' src='"+layerParams.src+"' allowtransparency='no' width='"+layerParams.width+"' height='"+layerParams.height+"' frameborder='0' border='0' marginwidth='0' marginheight='0' scrolling='"+layerParams.scrolling+"'></iframe>");
    return iframeEleHtml.join('');
}

function _CLayer_getDiv(layerId, layerParams)
{
    var divEleHtml = new Array();
    divEleHtml.push("<div id='ele_div_"+layerId+"' name='ele_div_"+layerId+"' >");
    if(_CLayer_isElementDefined(layerParams.src, true))
        divEleHtml.push(document.getElementById(layerParams.src).innerHTML);
    divEleHtml.push("</div>");
    document.getElementById(layerParams.src).innerHTML = "";
    return divEleHtml.join('');
}

function _CLayer_setLayerSource(layerId, layerParams)
{
    if(layerParams.type == "iframe")
    {
        if(_CLayer_isElementDefined("ele_iframe_"+layerId, true))
            document.getElementById("ele_iframe_"+layerId).src = layerParams.src;
    }
    else
    {
        if(_CLayer_isElementDefined("ele_div_"+layerId, true))
        document.getElementById("ele_div_"+layerId).innerHTML = document.getElementById(layerParams.src).innerHTML
    }
}

function _CLayer_showLayer(layerId)
{
    if(_CLayer_isElementDefined(layerId, true))
        document.getElementById(layerId).style.display = "block";
}

function _CLayer_closeLayer(layerId,callBackHandler,callBeforeClose)
{
	if(callBeforeClose)
	{
		var isCloseLayer = callBeforeClose();	
		if(isCloseLayer == undefined)
			isCloseLayer = true;
		if(isCloseLayer)
			_CLayer_closeThisLayer(layerId,callBackHandler);	
	}
	else
		_CLayer_closeThisLayer(layerId,callBackHandler);
    
}

function _CLayer_closeThisLayer(layerId,callBackHandler)
{
     tempLayerId = layerId;
     zoomStyle = "in";
        tempCallBackHandler = callBackHandler;
    if(layerIdParamsMap[layerId])
    {
        var layerParams = layerIdParamsMap[layerId];
        if(layerParams.reload == "true" && _CLayer_isElementDefined("ele_iframe_"+layerId, true))
            document.getElementById("ele_iframe_"+layerId).src = "about:blank";
        if(layerParams.animation != "true")
          {
            hideLayer(layerId,callBackHandler);
          }
        else
        {
           if(_CLayer_isElementDefined("layerTitle_"+tempLayerId, true)){
             document.getElementById("layerTitle_"+tempLayerId).style.display = "none";
           }
             if(layerParams.templateName == "thinlayer_template")
               document.getElementById("seperator_"+tempLayerId).style.display = "none";
            setTimeout("zoomLayer()",0.8);
        }
    }
}

function hideLayer(layerId,callBackHandler)
{
     if(_CLayer_isElementDefined(layerId, true)){
        document.getElementById(layerId).style.display = "none";
       }
    setZIndexValue(layerId, -1);

    if(pageGreyOut == "true")
    {
        pageGreyOut = "false";
        _CLayer_greyOut(false);
    }
    if(callBackHandler){
        callBackHandler();
    }
}

function _CLayer_closeAllLayers()
{
    _CLayer_closeLayers(this.refDivObj);
}

function _CLayer_closeLayers(layerIds)
{
    for(var i=0; i<layerIds.length; i++)
    {
        if(_CLayer_isElementDefined(layerIds[i], true))
            _CLayer_closeLayer(layerIds[i]);
    }
}

function _CLayer_showLoadMsg(layerId)
{
    if(_CLayer_isElementDefined("main_content_div_"+layerId, true))
        document.getElementById("main_content_div_"+layerId).style.display = "none";

    if(_CLayer_isElementDefined("load_msg_div_"+layerId, true))
        document.getElementById("load_msg_div_"+layerId).style.display = "block";

}

function _CLayer_hideLoadMsg(layerId)
{
    if(_CLayer_isElementDefined("load_msg_div_"+layerId, true))
        document.getElementById("load_msg_div_"+layerId).style.display = "none";

    if(_CLayer_isElementDefined("main_content_div_"+layerId, true))
        document.getElementById("main_content_div_"+layerId).style.display = "block";
}

function _CLayer_isElementDefined(layerId, isElement)
{
    if(isElement)
    {
        if(document.getElementById(layerId) != undefined && document.getElementById(layerId) != null)
            return true;
    }
    else
    {
        if(layerId != undefined && layerId != null)
            return true;
    }
    return false;
}

function _CLayer_greyOut(vis, options)
{
    // Pass true to gray out screen, false to ungray
    // options are optional.  This is a JSON object with the following (optional) properties
    // opacity:0-100         // Lower number = less greyOut higher = more of a blackout
    // zindex: #             // HTML elements with a higher zindex appear on top of the gray out
    // bgcolor: (#xxxxxx)    // Standard RGB Hex color code
    // greyOut(true, {'zindex':'50', 'bgcolor':'#0000FF', 'opacity':'70'});
    // Because options is JSON opacity/zindex/bgcolor are all optional and can appear
    // in any order.  Pass only the properties you need to set.

    var options = options || {};
    var zindex = options.zindex || zIndexVal;
    var topDark =  options.topDark || false; //This is to deactivate the top window.
    var refDocument = document;
    if(topDark)
      refDocument = window.top.document ;
    if(!topDark)
    {
     --zindex;
     --zindex;
    }
    var opacity = options.opacity || 50;
    var bgcolor = options.bgcolor || '#000000';
    var pageWidth = refDocument.body.clientWidth +"px";
    var pageHeight = refDocument.body.clientHeight +"px";
    var opaque = (opacity / 100);
    var dark=refDocument.getElementById('darkenScreenObject');
    if(topDark)
        dark=refDocument.getElementById('topDarkenScreenObject');
        if(_CLayer_isElementDefined(refDocument.body.scrollWidth, false) && _CLayer_isElementDefined(refDocument.body.scrollHeight, false))
        {
         if(refDocument.body.clientHeight < refDocument.body.scrollHeight)
         {
           pageWidth = refDocument.body.scrollWidth + "px";
           pageHeight = refDocument.body.scrollHeight + "px";
          }
        }
        else if(_CLayer_isElementDefined(refDocument.body.offsetWidth, false) && _CLayer_isElementDefined(refDocument.body.offsetHeight, false))
        {
         if(refDocument.body.clientHeight < refDocument.body.offsetHeight)
          {
           pageWidth = refDocument.body.offsetWidth + "px";
           pageHeight = refDocument.body.offsetHeight + "px";
          }
        }
    if (!_CLayer_isElementDefined(dark, false))
    {
        // The dark layer doesn't exist, it's never been created.  So we'll
        // create it here and apply some basic styles.
        // If you are getting errors in IE see: http://support.microsoft.com/default.aspx/kb/927917
        var tnode = refDocument.createElement('div');       // Create the layer.
        tnode.style.position='absolute';                 // Position absolutely
        tnode.style.top='0px';                           // In the top
        tnode.style.left='0px';                          // Left corner of the page
        tnode.style.overflow='hidden';                   // Try to avoid making scroll bars
        tnode.style.display='none';                      // Start out Hidden
        tnode.id='darkenScreenObject';                   // Name it so we can find it later
        tnode.name='darkenScreenObject';
        var isIE6 = document.all && (navigator.userAgent.toLowerCase().indexOf("msie 6.") != -1);
        if (isIE6) // fix for ie6 select box z-index issue
        {
           var hiddenIframe =
              "<iframe style=\"position: absolute; display: block; " +
              "z-index: -1; width: 100%; height: 100%; top: 0; left: 0;" +
              "filter: mask(); background-color: #ffffff; \"></iframe>";
           if (tnode) tnode.innerHTML += hiddenIframe;
        }
        if(topDark)
        {
         tnode.id='topDarkenScreenObject';                   // Name it so we can find it later
         tnode.name='topDarkenScreenObject';
        }
        var tbody = refDocument.body;
        tbody.appendChild(tnode);                            // Add it to the web page
        dark=refDocument.getElementById('darkenScreenObject');  // Get the object.
        if(topDark)
          dark=refDocument.getElementById('topDarkenScreenObject');
    }
    if (vis)
    {
        // Calculate the page width and height
        //set the shader to cover the entire page and make it visible.
        dark.style.opacity=opaque;
        dark.style.MozOpacity=opaque;
        dark.style.filter='alpha(opacity='+opacity+')';
        dark.style.zIndex=zindex;
        dark.style.backgroundColor=bgcolor;
        dark.style.width= pageWidth;
        dark.style.height= pageHeight;
        dark.style.display='block';
    }
    else
    {
        dark.style.zIndex = 0;
        dark.style.width = 0;
        dark.style.height = 0;
        dark.style.display = 'none';
    }
}

function _CLayer_checkGreyOut()
{
    if(pageGreyOut == "true")
        _CLayer_greyOut(true);
}

if(window.addEventListener)
{
    window.addEventListener('load', _CLayer_checkGreyOut, false);
    window.addEventListener('resize', _CLayer_checkGreyOut, false);
}
else if(window.attachEvent)
{
    window.attachEvent('onload', _CLayer_checkGreyOut);
    window.attachEvent('onresize', _CLayer_checkGreyOut);
}
else if(window.onload && window.onresize)
{
    window.onload = _CLayer_checkGreyOut;
    window.onresize = _CLayer_checkGreyOut;
}

//****************** LAYER CODE END ******************/

//****************** MOVABLE DIV CODE START ******************/

function setMovableDivs(divIds)
{
    var arrDivIds = new Array();
    arrDivIds = divIds;
    for(var i=0; i<arrDivIds.length; i++)
    {
        setMovableDiv(arrDivIds[i]);
    }
}

function setMovableDiv(divId)
{
    document.getElementById(divId).onmousedown=function(event) { divMseDown(event,this,divId);}
}

function divMseDown(event,obj,divId)
{
    setZIndexValue(divId);
    document.onmousemove=function(event){divDrag(event);}
    document.onmouseup=function(event){divMseUp(event);}
    divObj=obj;
    divMse(event);
    divDragX=divMseX-divObj.offsetLeft;
    divDragY=divMseY-divObj.offsetTop;
}

function divMseUp(event)
{
    document.onmousemove = null;
    divDragX = -1;
    divDragY = -1;
}

function divDrag(event)
{
    divMse(event);
    divObj.style.left=(divMseX-divDragX)+'px';
    divObj.style.top=(divMseY-divDragY)+'px';
}

function divMse(event)
{
    if(!event) var event=window.event;
    if (document.all)
    {
        divMseX=event.clientX;
        divMseY=event.clientY;
    }
    else
    {
        divMseX=event.pageX;
        divMseY=event.pageY;
    }
}

function setZIndexValue(divId, indexVal)
{
    if(indexVal == undefined || indexVal == null)
        indexVal = zIndexVal
    if(document.getElementById(divId) != null)
        document.getElementById(divId).style.zIndex = indexVal;
    if(document.getElementById("mainDiv_"+divId) != null)
        document.getElementById("mainDiv_"+divId).style.zIndex = indexVal;

    zIndexVal++;
}
function getLoadingText(){
    if(typeof loadingText != 'undefined')
    return loadingText;
    else return "loading...";
}
//****************** MOVABLE DIV CODE END ******************/
