﻿var frm = null;
var bckScr = null;
var dialog = null;
var isDialogOpened = false;
var browser_ = null
var MSIE_BROWSER = 'MSIE';
var SAFARI_BROWSER = 'AppleWebKit/';
var OPERA_BROWSER = 'Opera/';
var FIREFOX_BROWSER = 'Firefox/';
var clearDialogContent = true;

function getSize()
{
    var w;
    var h;
    identifyBrowser();
    var sh = document.body.scrollHeight;
    var sw = document.documentElement.scrollWidth;
    var pgH = (h > sh)?h:sh;
    var pgW = (w > sw)? w: sw;
    if (browser_ == MSIE_BROWSER)
    {
        w = document.documentElement.clientWidth;
        h = document.documentElement.clientHeight;
        pgH = (h > sh)?h:sh + 15;
    }
    else if (browser_ == SAFARI_BROWSER)
    {
        w = window.innerWidth;
        h = window.innerHeight;
        pgH = (h > sh)?h:sh;
    }
    else if (browser_ == OPERA_BROWSER) 
    {
        w = Math.min(window.innerWidth, document.body.clientWidth);
        h = Math.min(window.innerHeight, document.body.clientHeight);
        pgH = (h > sh)?h:sh;
    }
    else if(browser_ == FIREFOX_BROWSER) 
    {   
        w = Math.min(window.innerWidth, document.documentElement.clientWidth);
        h = Math.min(window.innerHeight, document.documentElement.clientHeight);
        pgH = (h > sh)?h:sh + 15;
    }
    
    return ({width: pgW, height:pgH});
}

function setClearDialogFields(_clearDialogFields)
{
    clearDialogContent = _clearDialogFields;
}

function showDialog(dialogId)
{
    dialog = getElm(dialogId);   
//    frm = getElm('ifrm');
//    bckScr = getElm('divBack'); 
    if(isValid(dialog)){
        frm = document.createElement('iframe');
        bckScr = document.createElement('div');

        bckScr.className = 'bgTransparant';
        frm.className = 'bgTransparantFrm';
        frm.frameBorder = "0";

        document.body.insertBefore(frm, document.body.firstChild)
        document.body.insertBefore(bckScr, document.body.firstChild)

        s = getSize();
        frm.style.width = s.width+ 'px';
        frm.style.height = s.height + 'px';
        bckScr.style.width = s.width+ 'px';
        bckScr.style.height = s.height + 'px';
        
        frm.style.display = 'block';
        bckScr.style.display = 'block';
        dialog.style.display = 'block';
        
        setDialogAtCenter(dialog);
    }
    window.scroll(0, 0);
    return false;
}

function setDialogAtCenter(d)
{
  
    
    for(var i=0; i<=15; i++)
    {
        var scrollLeft = (document.documentElement.scrollLeft ? 
							    document.documentElement.scrollLeft : document.body.scrollLeft);
	    var scrollTop = (document.documentElement.scrollTop ? 
							    document.documentElement.scrollTop : document.body.scrollTop);
	    //gets height-width of popup element
	    var popUpWidth = d.offsetWidth?d.offsetWidth:d.scrollWidth;
        var popUpHeight = d.offsetHeight?d.offsetHeight:d.scrollHeight;
        //gets height width of screen
        
        var screenWidth = getSize().width;
        var screenHeight = getSizeForPopup().height;
        
        //calculate center position for popup element
        var popUpLeft = (screenWidth - popUpWidth) / 2;
        var popUpTop = (screenHeight - popUpHeight) / 2;
        d.style.position = 'absolute';
        
        if(popUpLeft > 0){d.style.left = popUpLeft + 'px';}
        else { d.style.left = '0px';}
        
        if(popUpTop > 0){d.style.top = popUpTop + 'px';}
        else {d.style.top = '0px'}
        
    }
}

window.onresize = resizeHandler;

function resizeHandler()
{
    if(isValid(frm) && isValid(bckScr)){
        s = getSize();
        frm.style.width = s.width + 'px';
        bckScr.style.width = s.width + 'px';
        frm.style.height = s.height + 'px';
        bckScr.style.height = s.height + 'px';
        setDialogAtCenter(dialog);
    }
}


function closeDialog()
{
    if(isValid(dialog) && isValid(frm) && isValid(bckScr))
    {
        frm.style.display = 'none';
        dialog.style.display = 'none';
        bckScr.style.display = 'none'; 
        
        clearFields(dialog);    
        
        frm.parentNode.removeChild(frm);
        bckScr.parentNode.removeChild(bckScr);
        window.scroll(0, 0); 
    }
    return false;
}

function clearFields()
{
    if(clearDialogContent)
    {
        var txts = dialog.getElementsByTagName("input");
        if(isValid(txts) && txts.length > 0)
        {
            for(var i = 0; i < txts.length; i++)
            {
                if(txts[i].type == 'text')
                    txts[i].value = '';
            }
        }
        
        var txtAreas = dialog.getElementsByTagName("textarea");
        if(isValid(txtAreas) && txtAreas.length > 0)
        {
            for(var i = 0; i < txtAreas.length; i++)
            {
                txtAreas[i].innerHTML = '';
            }
        }
        
        var spns = dialog.getElementsByTagName("span");
        if(isValid(spns) && spns.length > 0)
        {
            for(var i = 0; i < spns.length; i++)
            {
                if(spns[i].id.indexOf('Validator') != -1)
                {
                    if(spns[i].style.visibility != ''){
                        spns[i].style.visibility = 'hidden';
                    } else if(spns[i].style.display != ''){
                        spns[i].style.display = 'none';
                    }
                }
            }
        }
        
        var dvs = dialog.getElementsByTagName("div");
        if(isValid(dvs) && dvs.length > 0)
        {
            for(var i = 0; i < dvs.length; i++)
            {
                if(dvs[i].id.indexOf('Validator') != -1)
                {
                    if(dvs[i].style.visibility != ''){
                        dvs[i].style.visibility = 'hidden';
                    } else if(dvs[i].style.display != ''){
                        dvs[i].style.display = 'none';
                    }
                }
            }
        }
        
        var dds = dialog.getElementsByTagName("select");
        if(isValid(dds) && dds.length > 0)
        {
            for(var i = 0; i < dds.length; i++){
                if(dds[i].options.length > 0 && dds[i].selectedIndex != 0)
                    dds[i].selectedIndex = 0;
            }
        }
    }
}

function getElm(elmId)
{
    return document.getElementById(elmId);
}

function isValid(obj)
{
    if(obj != null && typeof(obj) != undefined)
        return true;
    else
        return false;
}

function identifyBrowser()
{
    if (navigator.userAgent.indexOf(MSIE_BROWSER) > -1) //Internet Explorer
    {
        browser_ = MSIE_BROWSER;
    }
    else if (navigator.userAgent.indexOf(SAFARI_BROWSER) > -1) //Safari
    {
        browser_ = SAFARI_BROWSER;
    }
    else if (navigator.userAgent.indexOf(OPERA_BROWSER) > -1) //Opera
    {
        browser_ = OPERA_BROWSER;
    }
    else if(navigator.userAgent.indexOf(FIREFOX_BROWSER) > -1) //FireFox Browser
    {   
        browser_ = FIREFOX_BROWSER;
    }
}

function getSizeForPopup()
{
	var w = 0;
	var h = 0;

	//IE
	if(!window.innerWidth)
	{
		//strict mode
		if(!(document.documentElement.clientWidth == 0))
		{
			w = document.documentElement.clientWidth;
			h = document.documentElement.clientHeight;
		}
		//quirks mode
		else
		{
			w = document.body.clientWidth;
			h = document.body.clientHeight;
		}
	}
	//w3c
	else
	{
		w = window.innerWidth;
		h = window.innerHeight;
	}
	return {width:w,height:h};
}
