var browser = navigator.userAgent.toLowerCase();
var browserUrl; // browser-specific script
var dateUrl = "Scripts/date.js";

if (browser.indexOf("chrome") >= 0)
    browser = "chrome";
else if (browser.indexOf("firefox") >= 0)
    browser = "ff";
else if (browser.indexOf("msie") >= 0)
    browser = "ie";
else if (browser.indexOf("applewebkit") >= 0)
    browser = "apple";

switch(browser)
{
	case "ff":
	case "apple":
	    browserUrl = "Scripts/scriptns.js";
	    break;

	case "ie":
		browserUrl = "Scripts/scriptie.js";
		break;
	case "chrome":
		browserUrl = "Scripts/scriptChrome.js";
		break;		
	default:
		browserUrl = "Scripts/scriptie.js";
		break;
}

document.write("<script language='javascript' src='" + browserUrl + "'></script>");
document.write("<script language='javascript' src='Scripts/date.js'></script>");

String.prototype.trim = function() {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

/* *********************************************************************************

>>> multi browsers compatible functions

********************************************************************************* */

/**************************************************
**  PL									 
***************************************************/

function BeginGroupPannel( Title )
{
	document.writeln( "<table cellpadding=0 cellspacing=0 border=0 width='100%' height='100%'>" );
	document.writeln(	"<tr>" );
	document.writeln(		"<td>" );
	document.writeln(			"<table cellpadding=0 cellspacing=0 border=0>" );
	document.writeln(				"<tr>" );
	document.writeln(					"<td style='WIDTH: 10px' nowrap>&nbsp;</td>" );
	document.writeln(					"<td rowspan=2 class=fixedText nowrap style='PADDING-RIGHT: 5px; PADDING-LEFT: 5px'>" + Title + "</td>" );
	document.writeln(				"</tr>" );
	document.writeln(				"<tr>" );
	document.writeln(					"<td style='BORDER-TOP: darkgray 1px solid; BORDER-LEFT: darkgray 1px solid; WIDTH: 10px'>&nbsp;</td>" );
	document.writeln(					"<td width='100%' style='BORDER-RIGHT: darkgray 1px solid; BORDER-TOP: darkgray 1px solid'>&nbsp;</td>" );
	document.writeln(				"</tr>" );
	document.writeln(			"</table>" );
	document.writeln(		"</td>" );
	document.writeln(	"</tr>" );
	document.writeln(	"<tr>" );
	document.writeln(		"<td height='100%' width='100%' style='BORDER-RIGHT: darkgray 1px solid; PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 12px; BORDER-LEFT: darkgray 1px solid; BORDER-BOTTOM: darkgray 1px solid'>" );
}

function EndGroupPannel()
{
	document.writeln(		"</td>" );
	document.writeln(	"</tr>" );
	document.writeln( "</table>" );
}

//----------------------------------------------------------------------------------------------------------------------------------
// USED FOR IMPORT CONTACTS.
function BeginGroupPannelMinHeight( Title )
{
	document.writeln( "<table cellpadding=0 cellspacing=0 width='100%'>" );
	document.writeln(	"<tr>" );
	document.writeln(		"<td>" );
	document.writeln(			"<table cellpadding=0 cellspacing=0>" );
	document.writeln(				"<tr>" );
	document.writeln(					"<td style='WIDTH: 10px' nowrap>&nbsp;</td>" );
	document.writeln(					"<td rowspan=2 class=fixedText nowrap style='PADDING-RIGHT: 5px; PADDING-LEFT: 5px'>" + Title + "</td>" );
	document.writeln(				"</tr>" );
	document.writeln(				"<tr>" );
	document.writeln(					"<td style='BORDER-TOP: 1px solid darkgray; BORDER-LEFT: 1px solid darkgray; WIDTH: 10px'>&nbsp;</td>" );
	document.writeln(					"<td width='100%' style='BORDER-RIGHT: 1px solid darkgray; BORDER-TOP: 1px solid darkgray'>&nbsp;</td>" );
	document.writeln(				"</tr>" );
	document.writeln(			"</table>" );
	document.writeln(		"</td>" );
	document.writeln(	"</tr>" );
	document.writeln(	"<tr>" );
	document.writeln(		"<td width='100%' style='padding: 0px 10px 12px 10px; BORDER-RIGHT: 1px solid darkgray; BORDER-LEFT: 1px solid darkgray; BORDER-BOTTOM: 1px solid darkgray'>" );
}

function EndGroupPannelMinHeight()
{
	document.writeln(		"</td>" );
	document.writeln(	"</tr>" );
	document.writeln( "</table>" );
}

//----------------------------------------------------------------------------------------------------------------------------------
// SET ALTERNATING COLORED PACKAGE ROWS
function tableListStylePkgs(tableID)
{
	var alternate = false;
	
	for(var i = 0; i < tableID.rows.length; i++)
	{
		if(tableID.rows[i].style.display != "none")
		{
			tableID.rows[i].cells[0].className = alternate == false ? "dgItem" : "dgAlterItem";
			
			tableID.rows[i].cells[1].className = alternate == false ? "dgItem1 packagevalue" : "dgAlterItem1 packagevalue";
			tableID.rows[i].cells[2].className = alternate == false ? "dgItem2 packagevalue" : "dgAlterItem2 packagevalue";
			tableID.rows[i].cells[3].className = alternate == false ? "dgItem3 packagevalue" : "dgAlterItem3 packagevalue";
			tableID.rows[i].cells[4].className = alternate == false ? "dgItem4 packagevalue" : "dgAlterItem4 packagevalue";
			
			alternate = (alternate == true ? false : true);
		}
	}
}
//----------------------------------------------------------------------------------------------------------------------------------
// SET ALTERNATING COLORED OPTIONS ROWS
function tableListStyleOptions(tableID)
{
	var alternate = false;
	
	for(var i = 0; i < tableID.rows.length; i++)
	{
		if(tableID.rows[i].style.display != "none")
		{
			tableID.rows[i].cells[0].className = alternate == false ? "dgItem1" : "dgAlterItem1";
			tableID.rows[i].cells[1].className = alternate == false ? "dgItem2 packagevalue" : "dgAlterItem2 packagevalue";
			tableID.rows[i].cells[2].className = alternate == false ? "dgItem3 packagevalue" : "dgAlterItem3 packagevalue";
			
			alternate = (alternate == true ? false : true);
		}
	}
}

function ExpandSection(id, imgId)
{
	if(document.getElementById(id).rows[1].style.display != "none")
	{
		document.getElementById(id).rows[1].style.display = "none";
		document.getElementById(id).rows[2].style.display = "none";
		
		document.getElementById(imgId).src = "images/box_expand.png";
	}
	else
	{
		document.getElementById(id).rows[1].style.display = "";
		document.getElementById(id).rows[2].style.display = "";
		
		document.getElementById(imgId).src = "images/box_collapse.png";
	}
}

function ShowHideSection(id, imgId)
{
	if(document.getElementById(id).style.display != "none")
	{
		document.getElementById(id).style.display = "none"
		document.getElementById(imgId).src = "images/box_expand.png";
	}
	else
	{
		document.getElementById(id).style.display = ""
		document.getElementById(imgId).src = "images/box_collapse.png";
	}
}

/** FIN PL  ********************************/

function CloseBrowserWindow() {
    window.open('', '_self', ''); // Chrome bug fix
    window.close();
}

function Resize( div, Margin )
{
	if(div != null)
	{
		var height = document.body.offsetHeight - Margin;
		
		if ( height > 0 )
		{
			div.style.height = height;
		}
	}
}

function RefreshOpener() {
    var url = new String();
    url = "";
    if (typeof opener != 'undefined') {
        var oname = "";

        if (opener != null) {
            url += opener.location;
            oname = opener.name;
            url = url.replace("#", "");
            window.open(url, oname);
        }
    }
}

function OpenOpener()
{
	var url = new String();
	url     = "";
	if ( typeof opener != 'undefined' )
	{	
		url += opener.location; 
		url  = url.replace( "#", "" );
		opener.open(url, opener.name);
    }

    CloseBrowserWindow();
}

function RefreshPreviousScreen() {
    opener.document.getElementById('btnRefresh').click();
}

function OpenOpenerWithParams(params)
{
	var url = new String();
	url     = "";
	if ( typeof opener != 'undefined' )
	{	
		url += opener.location; 
		url  = url.replace( "#", "" );
		
		var sParam = "";
		for( var i=0; i<params.length/2; i++)
		{
			var iParam = url.indexOf( params[i*2] + "=" );
		
			if ( iParam >= 0 )
			{
				var sValue = "";
				
				var iAnd = url.indexOf( "&", iParam+2 );
				if ( iAnd >= 0 )
				{
					sValue = url.substring(iParam+2, iAnd);
				}
				else
				{
					sValue = url.substring(iParam + 2);
				}
				
				sParam = params[i*2] + "=" + sValue;
				
				url = url.replace("&" + sParam, "").replace(sParam, "");
			}
		}
		
		
		var sParams = "";
		for( var i=0; i<params.length/2; i++)
		{
			if ( sParams != "" )
			{
				sParams += "&";
			}
			
			sParams += params[i*2] + "=" + params[ i*2+1 ];
		}
		
		if ( url.length == url.indexOf("?") + 1 )
		{
			url = url + sParams;
		}
		else
		{
			url = url + (url.indexOf("?") >= 0 ? "&" : "?") + sParams;
		}

		window.open( url, opener.name );
    }

    CloseBrowserWindow();
}

function OpenWindow(url, Name, Modal, Width, Height) 
{
	var Left = (screen.width-Width) /2;
	var Top = (screen.height-Height) /2;
	
	this.LastPopupWin = window.open(url, Name, "location=0, resizable=1, toolbar=0, scrollbars=" + (eval(Modal)==1?0:1) + ", menubar=0, width=" + Width + ", height=" + Height + ", top=" + Top + ", left=" + Left);
	
	if( eval(Modal) == 1 )
	{
		window.onblur = ShowModal;
	}
}

function ShowModal()
{
	try
	{
		if( LastPopupWin != null )
			this.LastPopupWin.focus();
	}
	catch(e)
	{
		this.LastPopupWin = null;
	}
}

function ShowHelp(url)
{
	var vWidth  = 350;

	/* Screen credentials*/
	var ScreenWidth   = window.screen.width;
	var ScreenHeight  = window.screen.height;
	
	/* Web pages*/
	var WebPageTop    = 0;
	var WebPageLeft   = 0;
	var WebPageWitdh  = ScreenWidth - vWidth;
	var WebPageHeight = ScreenHeight;
	
	/* Help page*/
	var HelpPageTop    = 0;
	var HelpPageLeft   = WebPageLeft + WebPageWitdh;
	var HelpPageWidth  = vWidth;
	var HelpPageHeight = ScreenHeight;
	
	window.moveTo(WebPageLeft, WebPageTop);
	window.resizeTo(WebPageWitdh - 12,WebPageHeight);

	helpWindow = window.open( url, "WebMangerHelp", "location=0, resizable=1, toolbar=0, scrollbars=1, menubar=0, width=" + HelpPageWidth + ", height=" + HelpPageHeight + ", top=" + HelpPageTop + ", left=" + HelpPageLeft  );
}

//---------------------------------------------------------------------------------------------
// CloseWebHelp()
//   Close the web help window, resize manager window to max
//---------------------------------------------------------------------------------------------
function CloseWebHelp(checkboxId)
{
	try {
		if(!document.getElementById(checkboxId).checked)
			helpWindow.close();
	}
	catch(exception)
	{
		//alert(exception.message);
	}
}

function CloseWebHelp()
{
	try {
			helpWindow.close();
	}
	catch(exception)
	{
	}
}

function Trim( string, Characters )
{
	var OldStr = string;
	var NewStr = "";
	for ( var i = 0; i < Characters.length; i++ )
	{
		NewStr = "";
		var j = 0;
		while( j < OldStr.length )
		{
			if ( OldStr.charAt(j) != Characters.charAt(i) ) 
				NewStr = NewStr + OldStr.charAt(j);
			j = j + 1;
		}
		OldStr = NewStr;
	}
	return NewStr;
}

// ************************************************************************************
// OLD FUNCTIONS TO REMOVE EXTRA SPACES 

function LTrim(input)
{
	return LeftTrim( input, " " );
}

function RTrim(input) 
{
	for (var i=input.length-1; input.charAt(i)==" "; i--);
		return input.substring(0,i+1);
}

function LeftTrim( string, Char )
{
	var st = new String();
	st = string;
	var index = -1;
	
	if ( st != null )
	{
		for( var i=0; i<st.length; i++)
		{
			if ( st.charAt(0) == Char )
			{
				index = i;
			}
			else
			{
				break;
			}
		}
	}

	return index > 0 ? st.substring(index) : st;
}
//************************************************************************************

//---------------------------------------------------------------------------------------------
// TrimSpaces(str)
//   Remove all repeating spaces found in the variable 'str'
//---------------------------------------------------------------------------------------------
function TrimSpaces(str)
{
	if(str != null)
	{
		str = str.replace(/(^\s*)|(\s*$)/gi,"");
		str = str.replace(/[ ]{2,}/gi," ");
		str = str.replace(/\n /,"\n");
	}
	
	return str;
}

var maxNumTabs=6;

function writeTabStrip(ontabNumber,tabName,suffix,height,caption1,functionCall1,mouseover1,caption2,functionCall2,mouseover2,caption3,functionCall3,mouseover3,caption4,functionCall4,mouseover4,caption5,functionCall5,mouseover5,caption6,functionCall6,mouseover6)
{
	var numtabs = 0;
	if(caption1 == '')
	return '';

	document.write("<TABLE cellspacing=0 cellpadding=0 border=0 ID=\"TabStrip\"><TR height=" + height + " valign=bottom>");

	Tab = writeTabCell('1',tabName,caption1,functionCall1,suffix,'','',true);
	Tab = writeTabCell('2',tabName,caption2,functionCall2,suffix);

	if(Tab) Tab=writeTabCell('3',tabName,caption3,functionCall3,suffix);
	if(Tab) Tab=writeTabCell('4',tabName,caption4,functionCall4,suffix);
	if(Tab) Tab=writeTabCell('5',tabName,caption5,functionCall5,suffix);
	if(Tab) Tab=writeTabCell('6',tabName,caption6,functionCall6,suffix);
	if(Tab) Tab=writeTabCell('7',tabName,'','',suffix,'','');

	document.write("</TR></TABLE>");

	turnonTab(ontabNumber,tabName,suffix);
}

function writeTabCell(number,tabName,caption,functionCall,suffix,mouseoverAction,mouseoutAction,firstTab)
{
	var mouseOverString = '';
	var mouseOutString = '';

	mouseOverString="onmouseover=\"";
	if(mouseoverAction)
	mouseOverString=mouseOverString + mouseoverAction;
	mouseOverString=mouseOverString + ";window.status='" + caption + "';return true;\"";

	mouseOutString="onmouseout=\""
	if(mouseoutAction)
	mouseOutString=mouseOutString + mouseoutAction;
	mouseOutString=mouseOutString + ";window.status='';return true;\""; 

	if(caption > '') {
	if(firstTab == true)
	document.write("<TD><img name=\"" + tabName + "tab" + number + "\" ID=\"" + tabName + "tab" + number + "\" src=\"Images/froff" + suffix + ".gif\"></TD>");
	else
	document.write("<TD><img name=\"" + tabName + "tab" + number + "\" ID=\"" + tabName + "tab" + number + "\" src=\"Images/offoff" + suffix + ".gif\"></TD>");
	document.write("<TD nowrap Id=" + tabName + "tabText" + number + " onclick=\"" + functionCall + "turnonTab(" + number + ",'" + tabName + "','"+suffix+"');\" " + mouseOverString + " " + mouseOutString + " class=\"TabHeader\" background=\"Images/tabbkoff" + suffix + ".gif\">" + caption + "</TD>");
	return true;
	}
	else {
	document.write("<TD><img name=\"" + tabName + "tab" + number + "\" ID=\"" + tabName + "tab" + number + "\" src=\"Images/bkoff" + suffix +".gif\"></TD>");
	return false;
	}
}

function turnonTab(tabNumber,tabName,suffix)
{
	var tabobj;
	var tab1obj;
	var tab2obj;

	tabobj=eval(tabName + 'tabText1');
	tab1obj=eval('document.' + tabName + 'tab1');
	tab2obj=eval('document.' + tabName + 'tab2');

	if(tab1obj) {
	if(tabNumber == 1) {
	tab1obj.src="Images/fron" + suffix +".gif";
	if(tab2obj)
	tabobj.background = "Images/tabbkon" + suffix + ".gif";
	}
	else {
	tab1obj.src="Images/froff" + suffix +".gif";
	if(tab2obj)
	tabobj.background = "Images/tabbkoff" + suffix + ".gif";
	}
	}

	for(i=2;i<=maxNumTabs +1;i++) {
	j=i+1;
	tab1obj=eval('document.' + tabName + 'tab' + i);
	tab2obj=eval('document.' + tabName + 'tab' + j);
	 
	if(tab2obj) {
	tabobj=eval(tabName + 'tabText' + i);
	setTab(tab1obj,tab2obj,tabobj,tabNumber,i,suffix);
	}
	else
	setTab(tab1obj,false,null,tabNumber,i,suffix);
 }
}

function setTab(imgobj,nextimgobj,tabCell,tabNumber,currentvalue,suffix)
{
	if(imgobj) {
	if(nextimgobj) {
	if(tabNumber == currentvalue-1)
	imgobj.src="Images/onoff" + suffix +".gif";
	else {
	if(tabNumber == currentvalue)
		imgobj.src="Images/offon" + suffix +".gif";
	else
		imgobj.src="Images/offoff" + suffix + ".gif";
	}
	}
	else {
	if(tabNumber==currentvalue-1)	
	imgobj.src="Images/bkon" + suffix +".gif";
	else
	imgobj.src="Images/bkoff" + suffix + ".gif";
	}
	}

	if(tabCell) {
	if(tabNumber == currentvalue)
	tabCell.background="Images/tabbkon" + suffix + ".gif";
	else
	tabCell.background="Images/tabbkoff" + suffix + ".gif";
	}
}

function validateInteger( strValue ) 
{
	var objRegExp  = /(^-?\d\d*$)/;

	//check for integer characters
	return objRegExp.test( strValue );
}

function validateNumeric( strValue ) 
{
	var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;

	//check for numeric characters
	return objRegExp.test( strValue );
}

//----------------------------------------------------------------------------------------------------------------------------------
// SET ALTERNATING COLORED ROWS
function tableListStyle(tableID)
{
	var previousRowClass = "dgItem";
	
	for(var i = 0; i < tableID.rows.length; i++)
	{
		if(tableID.rows[i].style.display != "none")
		{
			tableID.rows[i].className = previousRowClass == "dgItem" ? "dgAlterItem" : "dgItem";
			previousRowClass = tableID.rows[i].className;
		}
	}
}

//----------------------------------------------------------------------------------------------------------------------------------
// EMAIL VALIDATION
function emailcheck(str)
{
	var at   = "@";
	var dot  = ".";
	var lat  = str.indexOf(at);
	var lstr = str.length;
	var ldot = str.indexOf(dot);
	
	if (str.indexOf("%@") != -1)
		return false;
		
	if (str.indexOf(" ") != -1)
		return false;

	if (lat <= 0 || lat == lstr)
		return false 
		
	if (ldot <= 0 || ldot == lstr)
		return false
		
	if (str.indexOf(at,(lat+1)) != -1)
		return false
		
	if (str.substring(lat-1, lat) == dot || str.substring(lat+1, lat+2) == dot)
		return false
		
	if (str.indexOf(dot, (lat+2)) == -1)
		return false
		
	if (ldot != -1 && str.substring(ldot + 1, ldot + 2) == "")
		return false;
		
 	return true
}


function ValidatePhoneNumber(Phone)
{
	var PhoneNumber = TrimSpaces(Phone.value).toUpperCase();
		
	var blnSIP = true;
	if ( PhoneNumber.indexOf('SIP') >= 0 )
	{
		var vAddr = new String();
		vAddr = PhoneNumber;
		
		var iAt = vAddr.indexOf( "@" )
		var iAfterAt = vAddr.substring(iAt+1);
		var iSip = vAddr.toLocaleLowerCase().indexOf("sip");
		var iColon = vAddr.toLocaleLowerCase().indexOf(":");
		
		if ( (iAfterAt == "" && vAddr != "") || ( iAt >= 0 && iSip < 0 ) || ( iSip >= 0 && ( iAt < 0 || ( iColon != 3+iSip ) ) ) )
			blnSIP = false;
	}
		
		
	if( PhoneNumber == "" || PhoneNumber.indexOf('X') >= 0 || PhoneNumber.indexOf('+') == 0 || (blnSIP && PhoneNumber.indexOf( "SIP" ) >= 0) )
	{
		Phone.style.color = "black";
	}
	else
	{
		Phone.style.color = "red";
	}
}

//----------------------------------------------------------------------------------------------------------------------------------
// Salutions & Gender validation. Synchronize default values.
function validateSalutations(salutation, gender, type) {
	if(type == "gender")
	{
		switch(document.getElementById(gender).value) {
			case 'Male':
			{
			    if (document.getElementById(salutation).value == 'Miss' ||
			        document.getElementById(salutation).value == 'Mrs' ||
			        document.getElementById(salutation).value == 'Ms')
			        document.getElementById(salutation).value = 'Mr';
			}
				break;
			case 'Female':
			{
			    if (document.getElementById(salutation).value == 'Mr')
			        document.getElementById(salutation).value = 'Mrs';
			}
				break;
		}
	}
	else
	{
	    switch (document.getElementById(salutation).value) {
		
			case 'Mr':
			    document.getElementById(gender).value = 'Male';
				break;
			case 'Mrs':
			case 'Miss':
			case 'Ms':
			    document.getElementById(gender).value = 'Female';
				break;
		}
	}
}

//----------------------------------------------------------------------------------------------------------------------------------
// Confirm before leaving the page
function confirmLeave(msg, homeURL)
{
	if(window.confirm(msg))
		window.location = homeURL;
}

//----------------------------------------------------------------------------------------------------------------------------------
// TO REMOVE
function ActivateSubmitForm(imageId, buttonId) {
    document.getElementById(imageId).style.display = "";

    try { document.getElementById(buttonId).disabled = false; } catch (e) { }
}

//---------------------------------------------------------------------------------------------------------
// Activate/Deactivate the form buttons
function OnFormEvent(disable, imageId, submitButtonId, cancelButtonId) {

    try { document.getElementById(imageId).style.display = disable ? "none" : ""; } catch (e) { }
    try { document.getElementById(submitButtonId).disabled = disable; } catch (e) { }
    try { document.getElementById(cancelButtonId).disabled = disable; } catch (e) { }
}

function urlencode(str) 
{
    str = escape(str);
    str = str.replace('+', '%2B');
    str = str.replace('%20', '+');
    str = str.replace('*', '%2A');
    str = str.replace('/', '%2F');
    str = str.replace('@', '%40');
    return str;
}

function urldecode(str) 
{
    str = str.replace('+', ' ');
    str = unescape(str);
    return str;
}

function isValidMacAddress(macAdd) {
    var RegExPattern = /^[0-9a-fA-F]+$/;

    if (!RegExPattern.test(macAdd) || macAdd.length != 12)
        return false;
    else
        return true;

}
